Navigation
API > API/Runtime > API/Runtime/GeometryCore
References
| Module | GeometryCore |
| Header | /Engine/Source/Runtime/GeometryCore/Public/FrameTypes.h |
| Include | #include "FrameTypes.h" |
Syntax
template<typename RealType>
struct TFrame3
Remarks
TFrame3 is an object that represents an oriented 3D coordinate frame, ie orthogonal X/Y/Z axes at a point in space. One can think of this Frame as a local coordinate space measured along these axes. Functions are provided to map geometric objects to/from the Frame coordinate space.
Internally the representation is the same as an FTransform, except a Frame has no Scale.
Variables
| Type | Name | Description | |
|---|---|---|---|
| TVector< RealType > | Origin | Origin of the frame | |
| TQuaternion< RealType > | Rotation | Rotation of the frame. Think of this as the rotation of the unit X/Y/Z axes to the 3D frame axes. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
TFrame3 () |
Construct a frame positioned at (0,0,0) aligned to the unit axes | ||
| Construct a frame at the given Origin aligned to the unit axes | |||
TFrame3
(
const FTransform& Transform |
Construct a Frame from an FTransform | ||
TFrame3
(
const FPlane& Plane |
Construct a Frame from an FPlane | ||
| Convert between TFrame of different types | |||
TFrame3
(
const TVector< RealType >& OriginIn, |
Construct a Frame from the given Origin and Rotation | ||
| Construct a frame with the Z axis aligned to a target axis | |||
TFrame3
(
const FVector& OriginIn, |
Construct a Frame from an FVector and FQuat | ||
| Construct Frame from X/Y/Z axis vectors. Vectors must be mutually orthogonal. |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | Align an axis of this frame with a target direction | ||
| void | ConstrainedAlignAxis
(
int AxisIndex, |
Compute rotation around vector that best-aligns axis of frame with target direction | |
| void | ConstrainedAlignPerpAxes
(
int PerpAxis1, |
Compute rotation around NormalAxis that best-aligns one of the other two frame axes with either given UpAxis or FallbackAxis (FallbackAxis is required if Dot(NormalAxis,UpAxis) > UpDotTolerance, ie if the Normal and Up directions are too closely aligned. Basically this divides direction-sphere into three regions - polar caps with size defined by UpDotTolerance, and a wide equator band covering the rest. When crossing between these regions the alignment has a discontinuity. It is impossible to avoid this discontinuity because it is impossible to comb a sphere. | |
| TFrame3< RealType > | |||
| TRay< RealType > | |||
| TQuaternion< RealType > | FromFrame
(
const TQuaternion< RealType >& Quat |
||
| TVector< RealType > | FromFramePoint
(
const TVector< RealType >& Point |
||
| TVector< RealType > | FromFrameVector
(
const TVector< RealType >& Vector |
||
| TVector< RealType > | FromPlaneUV
(
const TVector2< RealType >& PosUV, |
Map a point from local UV plane coordinates to the corresponding 3D point in one of the planes of the frame | |
| void | |||
| TVector< RealType > | GetAxis
(
int AxisIndex |
||
| TVector< RealType > | PointAt
(
RealType X, |
||
| TVector< RealType > | |||
| bool | RayPlaneIntersection
(
const TVector< RealType >& RayOrigin, |
Compute intersection of ray with plane defined by frame origin and axis as normal | |
| void | Rotate
(
const TQuaternion< RealType >& Quat |
Rotate this frame by given quaternion | |
| FPlane | ToFPlane () |
||
| TRay< RealType > | |||
| TFrame3< RealType > | |||
| TQuaternion< RealType > | ToFrame
(
const TQuaternion< RealType >& Quat |
||
| TVector< RealType > | ToFramePoint
(
const TVector< RealType >& Point |
||
| TVector< RealType > | ToFrameVector
(
const TVector< RealType >& Vector |
||
| FTransform | ToFTransform () |
||
| FTransform | |||
| TTransformSRT3< RealType > | |||
| TVector< RealType > | Project a point onto one of the planes of the frame | ||
| TVector2< RealType > | Project 3D point into plane and convert to UV coordinates in that plane | ||
| TTransformSRT3< RealType > | ToTransform () |
||
| void | Transform
(
const TTransformSRT3< RealType >& XForm |
Transform this frame by the given transform. | |
| void | Transform
(
const FTransform& XForm |
Transform this frame by the given transform. | |
| TVector< RealType > | X () |
||
| TVector< RealType > | Y () |
||
| TVector< RealType > | Z () |