26 constexpr float2(
float inX,
float inY) :
x(inX),
y(inY) { }
27 explicit constexpr float2(
float inS) :
x(inS),
y(inS) { }
91 constexpr float3(
float inX,
float inY,
float inZ) :
x(inX),
y(inY),
z(inZ) { }
92 explicit constexpr float3(
float inS) :
x(inS),
y(inS),
z(inS) { }
166 constexpr float4(
float inX,
float inY,
float inZ,
float inW) :
x(inX),
y(inY),
z(inZ),
w(inW) { }
167 explicit constexpr float4(
float inS) :
x(inS),
y(inS),
z(inS),
w(inS) { }
213constexpr float dot(
const float4 &inA,
const float4 &inB) {
return inA.
x * inB.
x + inA.
y * inB.
y + inA.
z * inB.
z + inA.
w * inB.
w; }
352 constexpr int3(
int inX,
int inY,
int inZ) :
x(inX),
y(inY),
z(inZ) { }
353 explicit constexpr int3(
const float3 &inV) :
x(int(inV.
x)),
y(int(inV.
y)),
z(int(inV.
z)) { }
393constexpr int dot(
const int3 &inA,
const int3 &inB) {
return inA.
x * inB.
x + inA.
y * inB.
y + inA.
z * inB.
z; }
410 constexpr int4(
int inX,
int inY,
int inZ,
int inW) :
x(inX),
y(inY),
z(inZ),
w(inW) { }
411 explicit constexpr int4(
int inS) :
x(inS),
y(inS),
z(inS),
w(inS) { }
412 explicit constexpr int4(
const float4 &inV) :
x(int(inV.
x)),
y(int(inV.
y)),
z(int(inV.
z)),
w(int(inV.
w)) { }
417 constexpr int4 &
operator *= (
int inRHS) {
x *= inRHS;
y *= inRHS;
z *= inRHS;
w *= inRHS;
return *
this; }
418 constexpr int4 &
operator /= (
int inRHS) {
x /= inRHS;
y /= inRHS;
z /= inRHS;
w /= inRHS;
return *
this; }
455constexpr int dot(
const int4 &inA,
const int4 &inB) {
return inA.
x * inB.
x + inA.
y * inB.
y + inA.
z * inB.
z + inA.
w * inB.
w; }
490constexpr T
clamp(
const T &inValue,
const T &inMinValue,
const T &inMaxValue)
492 return min(
max(inValue, inMinValue), inMaxValue);
499 std::atomic<T> *value =
reinterpret_cast<std::atomic<T> *
>(&ioT);
500 return value->fetch_add(inValue) + inValue;
508constexpr float4::float4(
const int4 &inV) : x(float(inV.x)), y(float(inV.y)), z(float(inV.z)), w(float(inV.w)) { }
511#define xy swizzle_xy()
512#define yx swizzle_yx()
513#define xyz swizzle_xyz()
514#define xzy swizzle_xzy()
515#define yxz swizzle_yxz()
516#define yzx swizzle_yzx()
517#define zxy swizzle_zxy()
518#define zyx swizzle_zyx()
519#define xywz swizzle_xywz()
520#define xwyz swizzle_xwyz()
521#define wxyz swizzle_wxyz()
unsigned int uint
Definition Core.h:500
#define JPH_NAMESPACE_END
Definition Core.h:425
std::uint32_t uint32
Definition Core.h:503
#define JPH_NAMESPACE_BEGIN
Definition Core.h:419
JPH_INLINE To BitCast(const From &inValue)
Definition Math.h:192
#define JPH_AtomicAdd
Definition ShaderCore.h:74
Definition HLSLToCPP.h:11
int4 asint(const float4 &inV)
Definition HLSLToCPP.h:504
float2 round(const float2 &inV)
Definition HLSLToCPP.h:78
constexpr float2 operator/(const float2 &inA, const float2 &inB)
Definition HLSLToCPP.h:57
constexpr float3 cross(const float3 &inA, const float3 &inB)
Definition HLSLToCPP.h:153
constexpr T clamp(const T &inValue, const T &inMinValue, const T &inMaxValue)
Definition HLSLToCPP.h:490
constexpr float2 operator+(const float2 &inA, const float2 &inB)
Definition HLSLToCPP.h:54
constexpr float2 operator*(const float2 &inA, const float2 &inB)
Definition HLSLToCPP.h:56
constexpr float2 min(const float2 &inA, const float2 &inB)
Definition HLSLToCPP.h:66
constexpr float2 max(const float2 &inA, const float2 &inB)
Definition HLSLToCPP.h:69
float length(const float2 &inV)
Definition HLSLToCPP.h:72
constexpr float2 operator-(const float2 &inA)
Definition HLSLToCPP.h:53
constexpr float dot(const float2 &inA, const float2 &inB)
Definition HLSLToCPP.h:63
float2 normalize(const float2 &inV)
Definition HLSLToCPP.h:75
Definition HLSLToCPP.h:468
float4 & operator[](uint inIndex)
Definition HLSLToCPP.h:474
constexpr Mat44(const float4 &inC0, const float4 &inC1, const float4 &inC2, const float4 &inC3)
Definition HLSLToCPP.h:471
Definition HLSLToCPP.h:23
float x
Definition HLSLToCPP.h:49
constexpr float2 & operator+=(const float2 &inRHS)
Definition HLSLToCPP.h:30
const float2 swizzle_xy() const
Definition HLSLToCPP.h:46
constexpr bool operator!=(const float2 &inRHS) const
Definition HLSLToCPP.h:39
float y
Definition HLSLToCPP.h:49
const float2 swizzle_yx() const
Definition HLSLToCPP.h:47
constexpr bool operator==(const float2 &inRHS) const
Definition HLSLToCPP.h:38
constexpr float2 & operator/=(float inRHS)
Definition HLSLToCPP.h:33
const float & operator[](uint inIndex) const
Definition HLSLToCPP.h:42
constexpr float2 & operator-=(const float2 &inRHS)
Definition HLSLToCPP.h:31
constexpr float2(float inS)
Definition HLSLToCPP.h:27
constexpr float2 & operator*=(float inRHS)
Definition HLSLToCPP.h:32
constexpr float2(float inX, float inY)
Definition HLSLToCPP.h:26
Definition HLSLToCPP.h:87
const float2 swizzle_xy() const
Definition HLSLToCPP.h:112
float z
Definition HLSLToCPP.h:121
constexpr float3 & operator*=(float inRHS)
Definition HLSLToCPP.h:98
constexpr float3(float inX, float inY, float inZ)
Definition HLSLToCPP.h:91
constexpr bool operator==(const float3 &inRHS) const
Definition HLSLToCPP.h:104
constexpr bool operator!=(const float3 &inRHS) const
Definition HLSLToCPP.h:105
constexpr float3 & operator/=(float inRHS)
Definition HLSLToCPP.h:99
const float3 swizzle_zxy() const
Definition HLSLToCPP.h:118
const float2 swizzle_yx() const
Definition HLSLToCPP.h:113
const float3 swizzle_yzx() const
Definition HLSLToCPP.h:117
const float3 swizzle_xzy() const
Definition HLSLToCPP.h:115
float x
Definition HLSLToCPP.h:121
const float & operator[](uint inIndex) const
Definition HLSLToCPP.h:108
const float3 swizzle_zyx() const
Definition HLSLToCPP.h:119
const float3 swizzle_xyz() const
Definition HLSLToCPP.h:114
constexpr float3(const float2 &inV, float inZ)
Definition HLSLToCPP.h:90
constexpr float3 & operator-=(const float3 &inRHS)
Definition HLSLToCPP.h:97
constexpr float3(float inS)
Definition HLSLToCPP.h:92
const float3 swizzle_yxz() const
Definition HLSLToCPP.h:116
constexpr float3 & operator+=(const float3 &inRHS)
Definition HLSLToCPP.h:96
float y
Definition HLSLToCPP.h:121
Definition HLSLToCPP.h:162
constexpr float4(float inX, float inY, float inZ, float inW)
Definition HLSLToCPP.h:166
const float3 swizzle_xzy() const
Definition HLSLToCPP.h:190
const float3 swizzle_yxz() const
Definition HLSLToCPP.h:191
constexpr float4 & operator/=(float inRHS)
Definition HLSLToCPP.h:174
const float & operator[](uint inIndex) const
Definition HLSLToCPP.h:183
float z
Definition HLSLToCPP.h:199
constexpr float4(float inS)
Definition HLSLToCPP.h:167
constexpr bool operator==(const float4 &inRHS) const
Definition HLSLToCPP.h:179
const float4 swizzle_wxyz() const
Definition HLSLToCPP.h:197
const float3 swizzle_zyx() const
Definition HLSLToCPP.h:194
const float4 swizzle_xwyz() const
Definition HLSLToCPP.h:196
float y
Definition HLSLToCPP.h:199
const float3 swizzle_yzx() const
Definition HLSLToCPP.h:192
constexpr float4 & operator-=(const float4 &inRHS)
Definition HLSLToCPP.h:172
const float4 swizzle_xywz() const
Definition HLSLToCPP.h:195
float x
Definition HLSLToCPP.h:199
const float3 swizzle_xyz() const
Definition HLSLToCPP.h:189
constexpr float4 & operator+=(const float4 &inRHS)
Definition HLSLToCPP.h:171
const float2 swizzle_yx() const
Definition HLSLToCPP.h:188
const float2 swizzle_xy() const
Definition HLSLToCPP.h:187
float w
Definition HLSLToCPP.h:199
constexpr float4 & operator*=(float inRHS)
Definition HLSLToCPP.h:173
constexpr float4(const float3 &inV, float inW)
Definition HLSLToCPP.h:165
constexpr bool operator!=(const float4 &inRHS) const
Definition HLSLToCPP.h:180
const float3 swizzle_zxy() const
Definition HLSLToCPP.h:193
Definition HLSLToCPP.h:350
constexpr int3 & operator+=(const int3 &inRHS)
Definition HLSLToCPP.h:356
int y
Definition HLSLToCPP.h:379
const int & operator[](uint inIndex) const
Definition HLSLToCPP.h:368
constexpr bool operator!=(const int3 &inRHS) const
Definition HLSLToCPP.h:365
const int3 swizzle_yxz() const
Definition HLSLToCPP.h:374
int x
Definition HLSLToCPP.h:379
const int3 swizzle_yzx() const
Definition HLSLToCPP.h:375
const int3 swizzle_zyx() const
Definition HLSLToCPP.h:377
constexpr int3 & operator*=(int inRHS)
Definition HLSLToCPP.h:358
int z
Definition HLSLToCPP.h:379
constexpr int3 & operator-=(const int3 &inRHS)
Definition HLSLToCPP.h:357
constexpr int3(const float3 &inV)
Definition HLSLToCPP.h:353
constexpr int3(int inX, int inY, int inZ)
Definition HLSLToCPP.h:352
constexpr int3 & operator/=(int inRHS)
Definition HLSLToCPP.h:359
constexpr bool operator==(const int3 &inRHS) const
Definition HLSLToCPP.h:364
const int3 swizzle_xzy() const
Definition HLSLToCPP.h:373
const int3 swizzle_xyz() const
Definition HLSLToCPP.h:372
const int3 swizzle_zxy() const
Definition HLSLToCPP.h:376
Definition HLSLToCPP.h:406
const int3 swizzle_yxz() const
Definition HLSLToCPP.h:433
constexpr bool operator==(const int4 &inRHS) const
Definition HLSLToCPP.h:423
int w
Definition HLSLToCPP.h:441
int y
Definition HLSLToCPP.h:441
const int3 swizzle_zxy() const
Definition HLSLToCPP.h:435
const int4 swizzle_xwyz() const
Definition HLSLToCPP.h:438
const int3 swizzle_xzy() const
Definition HLSLToCPP.h:432
constexpr int4 & operator/=(int inRHS)
Definition HLSLToCPP.h:418
constexpr int4(int inS)
Definition HLSLToCPP.h:411
constexpr int4 & operator-=(const int4 &inRHS)
Definition HLSLToCPP.h:416
const int3 swizzle_yzx() const
Definition HLSLToCPP.h:434
const int3 swizzle_zyx() const
Definition HLSLToCPP.h:436
constexpr int4(const int3 &inV, int inW)
Definition HLSLToCPP.h:409
constexpr int4 & operator*=(int inRHS)
Definition HLSLToCPP.h:417
int x
Definition HLSLToCPP.h:441
constexpr int4(int inX, int inY, int inZ, int inW)
Definition HLSLToCPP.h:410
int z
Definition HLSLToCPP.h:441
constexpr int4 & operator+=(const int4 &inRHS)
Definition HLSLToCPP.h:415
const int4 swizzle_wxyz() const
Definition HLSLToCPP.h:439
const int & operator[](uint inIndex) const
Definition HLSLToCPP.h:427
constexpr bool operator!=(const int4 &inRHS) const
Definition HLSLToCPP.h:424
constexpr int4(const float4 &inV)
Definition HLSLToCPP.h:412
const int4 swizzle_xywz() const
Definition HLSLToCPP.h:437
const int3 swizzle_xyz() const
Definition HLSLToCPP.h:431
Definition HLSLToCPP.h:235
const uint3 swizzle_yzx() const
Definition HLSLToCPP.h:260
const uint3 swizzle_xzy() const
Definition HLSLToCPP.h:258
constexpr uint3 & operator*=(uint32 inRHS)
Definition HLSLToCPP.h:243
const uint3 swizzle_zxy() const
Definition HLSLToCPP.h:261
const uint3 swizzle_yxz() const
Definition HLSLToCPP.h:259
const uint32 & operator[](uint inIndex) const
Definition HLSLToCPP.h:253
uint32 x
Definition HLSLToCPP.h:264
constexpr uint3 & operator+=(const uint3 &inRHS)
Definition HLSLToCPP.h:241
constexpr uint3 & operator-=(const uint3 &inRHS)
Definition HLSLToCPP.h:242
const uint3 swizzle_zyx() const
Definition HLSLToCPP.h:262
uint32 y
Definition HLSLToCPP.h:264
constexpr uint3(const float3 &inV)
Definition HLSLToCPP.h:238
constexpr bool operator!=(const uint3 &inRHS) const
Definition HLSLToCPP.h:250
const uint3 swizzle_xyz() const
Definition HLSLToCPP.h:257
constexpr uint3 & operator/=(uint32 inRHS)
Definition HLSLToCPP.h:244
constexpr bool operator==(const uint3 &inRHS) const
Definition HLSLToCPP.h:249
uint32 z
Definition HLSLToCPP.h:264
constexpr uint3(uint32 inX, uint32 inY, uint32 inZ)
Definition HLSLToCPP.h:237
Definition HLSLToCPP.h:290
constexpr uint4(uint32 inX, uint32 inY, uint32 inZ, uint32 inW)
Definition HLSLToCPP.h:294
constexpr bool operator!=(const uint4 &inRHS) const
Definition HLSLToCPP.h:307
constexpr uint4 & operator*=(uint32 inRHS)
Definition HLSLToCPP.h:300
const uint3 swizzle_yzx() const
Definition HLSLToCPP.h:317
constexpr uint4 & operator+=(const uint4 &inRHS)
Definition HLSLToCPP.h:298
constexpr uint4(const uint3 &inV, uint32 inW)
Definition HLSLToCPP.h:293
const uint3 swizzle_zxy() const
Definition HLSLToCPP.h:318
const uint3 swizzle_zyx() const
Definition HLSLToCPP.h:319
const uint3 swizzle_yxz() const
Definition HLSLToCPP.h:316
const uint4 swizzle_xwyz() const
Definition HLSLToCPP.h:321
const uint32 & operator[](uint inIndex) const
Definition HLSLToCPP.h:310
constexpr bool operator==(const uint4 &inRHS) const
Definition HLSLToCPP.h:306
uint32 z
Definition HLSLToCPP.h:324
const uint3 swizzle_xyz() const
Definition HLSLToCPP.h:314
constexpr uint4(uint32 inS)
Definition HLSLToCPP.h:295
uint32 x
Definition HLSLToCPP.h:324
constexpr uint4 & operator-=(const uint4 &inRHS)
Definition HLSLToCPP.h:299
uint32 y
Definition HLSLToCPP.h:324
constexpr uint4 & operator/=(uint32 inRHS)
Definition HLSLToCPP.h:301
const uint3 swizzle_xzy() const
Definition HLSLToCPP.h:315
uint32 w
Definition HLSLToCPP.h:324
const uint4 swizzle_xywz() const
Definition HLSLToCPP.h:320
const uint4 swizzle_wxyz() const
Definition HLSLToCPP.h:322