52 PX_FORCE_INLINE Vec3(PxF32 x_, PxF32 y_, PxF32 z_) : x(PxF64(x_)), y(PxF64(y_)), z(PxF64(z_))
64 return PxVec3(PxF32(x), PxF32(y), PxF32(z));
79 return x * x + y * y + z * z;
84 return PxSqrt(x * x + y * y + z * z);
89 PxF64 s = magnitudeSquared();
93 return Vec3(s * x, s * y, s * z);
98 return x * rhs.x + y * rhs.y + z * rhs.z;
103 return Vec3(y * v.z - z * v.y, z * v.x - x * v.z, x * v.y - y * v.x);
108 return Vec3(x + v.x, y + v.y, z + v.z);
113 return Vec3(x - v.x, y - v.y, z - v.z);
118 return Vec3(x * v, y * v, z * v);
124 return Vec3(x * inv, y * inv, z * inv);
162 PX_ASSERT(index <= 2);
164 return reinterpret_cast<PxF64*
>(
this)[index];
169 PX_ASSERT(index <= 2);
171 return reinterpret_cast<const PxF64*
>(
this)[index];
178 Bounds3(
const Vec3 &min,
const Vec3 &max) : minimum(min), maximum(max) {}
181 minimum =
Vec3(PX_MAX_F64, PX_MAX_F64, PX_MAX_F64);
182 maximum =
Vec3(-PX_MAX_F64, -PX_MAX_F64, -PX_MAX_F64);
185 Vec3 getDimensions()
const {
186 return maximum - minimum;
189 void include(
const Vec3 &p) {
190 minimum = minimum.min(p);
191 maximum = maximum.max(p);
194 void include(
const Bounds3 &b) {
195 minimum = minimum.min(b.minimum);
196 maximum = maximum.max(b.maximum);
198 void expand(
double d) {
199 minimum -=
Vec3(d, d, d);
200 maximum +=
Vec3(d, d, d);
202 Vec3 minimum, maximum;
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
PX_CUDA_CALLABLE PX_FORCE_INLINE T PxMax(T a, T b)
The return value is the greater of the two specified values.
Definition PxMath.h:72
PX_CUDA_CALLABLE PX_FORCE_INLINE T PxMin(T a, T b)
The return value is the lesser of the two specified values.
Definition PxMath.h:88