17    explicit        Plane(
Vec4Arg inNormalAndConstant)                                      : mNormalAndConstant(inNormalAndConstant) { }
 
   18                    Plane(
Vec3Arg inNormal, 
float inConstant)                               : mNormalAndConstant(inNormal, inConstant) { }
 
   32    float           GetConstant()
 const                                                     { 
return mNormalAndConstant.GetW(); }
 
   33    void            SetConstant(
float inConstant)                                           { mNormalAndConstant.SetW(inConstant); }
 
   48        Vec3 scaled_normal = GetNormal() / inScale;
 
   49        float scaled_normal_length = scaled_normal.
Length();
 
   50        return Plane(scaled_normal / scaled_normal_length, GetConstant() / scaled_normal_length);
 
   71        Vec4 a = inP1.mNormalAndConstant;
 
   72        Vec4 b = inP2.mNormalAndConstant;
 
   73        Vec4 c = inP3.mNormalAndConstant;
 
   77        if (denominator == 0.0f)
 
   85            a.
SplatW() * (b.
Swizzle<
SWIZZLE_Z, 
SWIZZLE_X, 
SWIZZLE_Y, 
SWIZZLE_UNUSED>() * c.
Swizzle<
SWIZZLE_Y, 
SWIZZLE_Z, 
SWIZZLE_X, 
SWIZZLE_UNUSED>() - b.
Swizzle<
SWIZZLE_Y, 
SWIZZLE_Z, 
SWIZZLE_X, 
SWIZZLE_UNUSED>() * c.
Swizzle<
SWIZZLE_Z, 
SWIZZLE_X, 
SWIZZLE_Y, 
SWIZZLE_UNUSED>())
 
   86            + a.
Swizzle<
SWIZZLE_Y, 
SWIZZLE_X, 
SWIZZLE_X, 
SWIZZLE_UNUSED>() * (b.
Swizzle<
SWIZZLE_W, 
SWIZZLE_Z, 
SWIZZLE_W, 
SWIZZLE_UNUSED>() * c.
Swizzle<
SWIZZLE_Z, 
SWIZZLE_W, 
SWIZZLE_Y, 
SWIZZLE_UNUSED>() - b.
Swizzle<
SWIZZLE_Z, 
SWIZZLE_W, 
SWIZZLE_Y, 
SWIZZLE_UNUSED>() * c.
Swizzle<
SWIZZLE_W, 
SWIZZLE_Z, 
SWIZZLE_W, 
SWIZZLE_UNUSED>())
 
   87            + a.
Swizzle<
SWIZZLE_Z, 
SWIZZLE_Z, 
SWIZZLE_Y, 
SWIZZLE_UNUSED>() * (b.
Swizzle<
SWIZZLE_Y, 
SWIZZLE_W, 
SWIZZLE_X, 
SWIZZLE_UNUSED>() * c.
Swizzle<
SWIZZLE_W, 
SWIZZLE_X, 
SWIZZLE_W, 
SWIZZLE_UNUSED>() - b.
Swizzle<
SWIZZLE_W, 
SWIZZLE_X, 
SWIZZLE_W, 
SWIZZLE_UNUSED>() * c.
Swizzle<
SWIZZLE_Y, 
SWIZZLE_W, 
SWIZZLE_X, 
SWIZZLE_UNUSED>());
 
   89        outPoint = 
Vec3(numerator) / denominator;
 
   94#ifdef JPH_OBJECT_STREAM 
   98    Vec4            mNormalAndConstant;                                                 
 
#define JPH_NAMESPACE_END
Definition: Core.h:378
 
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:372
 
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:31
 
@ SWIZZLE_Z
Use the Z component.
Definition: Swizzle.h:14
 
@ SWIZZLE_W
Use the W component.
Definition: Swizzle.h:15
 
@ SWIZZLE_X
Use the X component.
Definition: Swizzle.h:12
 
@ SWIZZLE_UNUSED
We always use the Z component when we don't specifically want to initialize a value,...
Definition: Swizzle.h:16
 
@ SWIZZLE_Y
Use the Y component.
Definition: Swizzle.h:13
 
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition: Mat44.h:13
 
JPH_INLINE Vec3 Multiply3x3(Vec3Arg inV) const
Multiply vector by only 3x3 part of the matrix.
Definition: Mat44.inl:316
 
JPH_INLINE Vec3 GetTranslation() const
Definition: Mat44.h:152
 
An infinite plane described by the formula X . Normal + Constant = 0.
Definition: Plane.h:11
 
Plane(Vec3Arg inNormal, float inConstant)
Definition: Plane.h:18
 
friend void CreateRTTIPlane(class RTTI &)
 
Plane GetTransformed(Mat44Arg inTransform) const
Transform the plane by a matrix.
Definition: Plane.h:39
 
void SetConstant(float inConstant)
Definition: Plane.h:33
 
float GetConstant() const
Definition: Plane.h:32
 
static Plane sFromPointAndNormal(DVec3Arg inPoint, Vec3Arg inNormal)
Create from point and normal, double precision version that more accurately calculates the plane cons...
Definition: Plane.h:24
 
Vec3 GetNormal() const
Definition: Plane.h:30
 
Plane(Vec4Arg inNormalAndConstant)
Definition: Plane.h:17
 
float SignedDistance(Vec3Arg inPoint) const
Distance point to plane.
Definition: Plane.h:54
 
void SetNormal(Vec3Arg inNormal)
Definition: Plane.h:31
 
static Plane sFromPointAndNormal(Vec3Arg inPoint, Vec3Arg inNormal)
Create from point and normal.
Definition: Plane.h:21
 
static bool sIntersectPlanes(const Plane &inP1, const Plane &inP2, const Plane &inP3, Vec3 &outPoint)
Returns intersection point between 3 planes.
Definition: Plane.h:60
 
Plane Scaled(Vec3Arg inScale) const
Scale the plane, can handle non-uniform and negative scaling.
Definition: Plane.h:46
 
JPH_OVERRIDE_NEW_DELETE Plane()=default
Constructor.
 
static Plane sFromPointsCCW(Vec3Arg inV1, Vec3Arg inV2, Vec3Arg inV3)
Create from 3 counter clockwise points.
Definition: Plane.h:27
 
Plane Offset(float inDistance) const
Offset the plane (positive value means move it in the direction of the plane normal)
Definition: Plane.h:36
 
Vec3 ProjectPointOnPlane(Vec3Arg inPoint) const
Project inPoint onto the plane.
Definition: Plane.h:57
 
JPH_INLINE float Dot(Vec3Arg inV2) const
Dot product.
Definition: Vec3.inl:649
 
JPH_INLINE float Length() const
Length of vector.
Definition: Vec3.inl:681
 
static JPH_INLINE Vec3 sZero()
Vector with all zeros.
Definition: Vec3.inl:107
 
JPH_INLINE Vec4 SplatW() const
Replicate the W component to all components.
Definition: Vec4.inl:591
 
JPH_INLINE Vec4 Swizzle() const
Swizzle the elements in inV.