UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::TPlane3< RealType > Struct Template Reference

#include <PlaneTypes.h>

Public Types

enum  EClipSegmentType { FullyClipped , FirstClipped , SecondClipped , NotClipped }
 

Public Member Functions

 TPlane3 ()
 
 TPlane3 (const UE::Math::TVector< RealType > &Normal, double Constant)
 
 TPlane3 (const UE::Math::TVector< RealType > &Normal, const UE::Math::TVector< RealType > &Point)
 
 TPlane3 (const UE::Math::TVector< RealType > &P0, const UE::Math::TVector< RealType > &P1, const UE::Math::TVector< RealType > &P2)
 
 TPlane3 (const FPlane &Plane)
 
 operator FPlane () const
 
void Transform (const TTransform< RealType > &Tr)
 
void InverseTransform (const TTransform< RealType > &Tr)
 
double DistanceTo (const UE::Math::TVector< RealType > &P) const
 
int WhichSide (const UE::Math::TVector< RealType > &P) const
 
bool FindLineIntersection (const UE::Math::TVector< RealType > &LineOrigin, const UE::Math::TVector< RealType > &LineDirection, UE::Math::TVector< RealType > &IntersectionPointOut) const
 
EClipSegmentType ClipSegment (UE::Math::TVector< RealType > &Point0, UE::Math::TVector< RealType > &Point1) const
 

Public Attributes

TVector< RealType > Normal
 
RealType Constant
 

Member Enumeration Documentation

◆ EClipSegmentType

Enumerator
FullyClipped 
FirstClipped 
SecondClipped 
NotClipped 

Constructor & Destructor Documentation

◆ TPlane3() [1/5]

template<typename RealType >
UE::Geometry::TPlane3< RealType >::TPlane3 ( )
inline

◆ TPlane3() [2/5]

template<typename RealType >
UE::Geometry::TPlane3< RealType >::TPlane3 ( const UE::Math::TVector< RealType > &  Normal,
double  Constant 
)
inline

◆ TPlane3() [3/5]

template<typename RealType >
UE::Geometry::TPlane3< RealType >::TPlane3 ( const UE::Math::TVector< RealType > &  Normal,
const UE::Math::TVector< RealType > &  Point 
)
inline

N is specified, c = Dot(N,P) where P is a point on the plane.

◆ TPlane3() [4/5]

template<typename RealType >
UE::Geometry::TPlane3< RealType >::TPlane3 ( const UE::Math::TVector< RealType > &  P0,
const UE::Math::TVector< RealType > &  P1,
const UE::Math::TVector< RealType > &  P2 
)
inline

N = Cross(P1-P0,P2-P0)/Length(Cross(P1-P0,P2-P0)), c = Dot(N,P0) where P0, P1, P2 are points on the plane.

◆ TPlane3() [5/5]

template<typename RealType >
UE::Geometry::TPlane3< RealType >::TPlane3 ( const FPlane Plane)
inlineexplicit

Member Function Documentation

◆ ClipSegment()

template<typename RealType >
EClipSegmentType UE::Geometry::TPlane3< RealType >::ClipSegment ( UE::Math::TVector< RealType > &  Point0,
UE::Math::TVector< RealType > &  Point1 
) const
inline

Clip line segment defined by two points against plane. Region of Segment on positive side of Plane is kept.

Parameters
Point0first point of segment
Point1second point of segment
Returns
FullyClipped if the segment lies fully behind or exactly in the plane FirstClipped if Point0 became the intersection point on the plane SecondClipped if Point1 became the intersection point on the plane NotClipped if the segment lies fully in front of the plane

◆ DistanceTo()

template<typename RealType >
double UE::Geometry::TPlane3< RealType >::DistanceTo ( const UE::Math::TVector< RealType > &  P) const
inline

Compute d = Dot(N,P)-c where N is the plane normal and c is the plane constant. This is a signed distance. The sign of the return value is positive if the point is on the positive side of the plane, negative if the point is on the negative side, and zero if the point is on the plane.

◆ FindLineIntersection()

template<typename RealType >
bool UE::Geometry::TPlane3< RealType >::FindLineIntersection ( const UE::Math::TVector< RealType > &  LineOrigin,
const UE::Math::TVector< RealType > &  LineDirection,
UE::Math::TVector< RealType > &  IntersectionPointOut 
) const
inline

Compute intersection of Line with Plane

Parameters
LineOriginorigin of line
LineDirectiondirection of line
HitPointOutintersection point, or invalid point if line is parallel to plane
Returns
true if Line intersects Plane and IntersectionPointOut is valid

◆ InverseTransform()

template<typename RealType >
void UE::Geometry::TPlane3< RealType >::InverseTransform ( const TTransform< RealType > &  Tr)
inline

Transform the plane by the inverse of the given transform

◆ operator FPlane()

template<typename RealType >
UE::Geometry::TPlane3< RealType >::operator FPlane ( ) const
inlineexplicit

◆ Transform()

template<typename RealType >
void UE::Geometry::TPlane3< RealType >::Transform ( const TTransform< RealType > &  Tr)
inline

Transform the plane by the given transform

◆ WhichSide()

template<typename RealType >
int UE::Geometry::TPlane3< RealType >::WhichSide ( const UE::Math::TVector< RealType > &  P) const
inline

The "positive side" of the plane is the half space to which the plane normal points. The "negative side" is the other half space. The function returns +1 when P is on the positive side, -1 when P is on the the negative side, or 0 when P is on the plane.

Member Data Documentation

◆ Constant

template<typename RealType >
RealType UE::Geometry::TPlane3< RealType >::Constant

◆ Normal

template<typename RealType >
TVector<RealType> UE::Geometry::TPlane3< RealType >::Normal

The documentation for this struct was generated from the following file: