Module |
|
Header |
/Engine/Source/Runtime/Core/Public/Math/TransformNonVectorized.h |
Include |
#include "Math/TransformNonVectorized.h" |
struct FTransform
Transform composed of Scale, Rotation (as a quaternion), and Translation.
Transforms can be used to convert from one space to another, for example by transforming positions and directions from local space to world space.
Transformation of position vectors is applied in the order: Scale -> Rotate -> Translate. Transformation of direction vectors is applied in the order: Scale -> Rotate.
Order matters when composing transforms: C = A * B will yield a transform C that logically first applies A then B to any subsequent transformation. Note that this is the opposite order of quaternion (FQuat) multiplication.
Example: LocalToWorld = (DeltaRotation * LocalToWorld) will change rotation in local space by DeltaRotation. Example: LocalToWorld = (LocalToWorld * DeltaRotation) will change rotation in world space by DeltaRotation.
Name | Description | |
---|---|---|
|
FTransform() |
Default constructor. |
|
FTransform ( |
Constructor with an initial translation |
|
FTransform ( |
Constructor with leaving uninitialized memory |
|
FTransform ( |
Constructor with an initial rotation |
|
FTransform ( |
Constructor with an initial rotation |
|
FTransform ( |
Constructor for converting a Matrix (including scale) into a FTransform. |
|
FTransform |
Constructor with all components initialized |
|
FTransform |
Constructor with all components initialized, taking a FRotator as the rotation component |
|
FTransform |
Constructor that takes basis axes and translation |
Name | Description | ||
---|---|---|---|
|
Accumulate ( |
: Added template type function for Accumulate The template type isn't much useful yet, but it is with the plan to move forward to unify blending features with just type of additive or full pose Eventually it would be nice to just call blend and it all works depending on full pose or additive, but right now that is a lot more refactoring For now this types only defines the different functionality of accumulate Accumulates another transform with this one |
|
|
Accumulate ( |
Accumulates another transform with this one, with a blending weight |
|
|
AccumulateWithAdditiveScale ( |
Accumulates another transform with this one, with a blending weight |
|
|
AccumulateWithShortestRotation ( |
Accumulates another transform with this one, with an optional blending weight |
|
|
AddToTranslation ( |
Adjusts the translation component of this transformation |
|
|
AddTranslations ( |
Add the translations from two FTransforms and return the result. |
|
|
AnyHasNegativeScale |
||
|
AreRotationsEqual ( |
Test if A's rotation equals B's rotation, within a tolerance. Preferred over "A.GetRotation().Equals(B.GetRotation())" because it is faster on some platforms. |
|
|
AreScale3DsEqual ( |
Test if A's scale equals B's scale, within a tolerance. Preferred over "A.GetScale3D().Equals(B.GetScale3D())" because it is faster on some platforms. |
|
|
AreTranslationsEqual ( |
Test if A's translation equals B's translation, within a tolerance. Preferred over "A.GetTranslation().Equals(B.GetTranslation())" because it is faster on some platforms. |
|
|
Blend ( |
Set this transform to the weighted blend of the supplied two transforms. |
|
|
BlendFromIdentityAndAccumulate ( |
Blends the Identity transform with a weighted source transform and accumulates that into a destination transform |
|
|
BlendWith ( |
Set this Transform to the weighted blend of it and the supplied Transform. |
|
|
ConcatenateRotation ( |
Concatenates another rotation to this transformation |
|
|
ContainsNaN() |
Checks the components for non-finite values (NaN or Inf). |
|
|
CopyRotation ( |
Copy rotation from another FTransform. |
|
|
CopyRotationPart ( |
Sets the Rotation and Scale3D of this transformation from another transform |
|
|
CopyScale3D ( |
Copy scale from another FTransform. |
|
|
CopyTranslation ( |
Copy translation from another FTransform. |
|
|
CopyTranslationAndScale3D ( |
Sets the Translation and Scale3D of this transformation from another transform |
|
|
DebugEqualMatrix ( |
Debug purpose only |
|
|
DebugPrint() |
Does a debugf of the contents of this Transform. Does a debugf of the contents of this BoneAtom. |
|
|
DiagnosticCheck_IsValid() |
||
|
DiagnosticCheckNaN_All() |
||
|
DiagnosticCheckNaN_Rotate() |
||
|
DiagnosticCheckNaN_Scale3D() |
||
|
DiagnosticCheckNaN_Translate() |
||
|
Equals ( |
Test if all components of the transforms are equal, within a tolerance. |
|
|
EqualsNoScale ( |
Test if rotation and translation components of the transforms are equal, within a tolerance. |
|
|
float |
GetDeterminant() |
Calculate the determinant of this transformation |
|
GetLocation() |
Temp function for easy conversion |
|
|
float |
GetMaximumAxisScale() |
Same version of FMatrix::GetMaximumAxisScale function |
|
float |
GetMinimumAxisScale() |
|
|
GetRelativeTransform ( |
||
|
GetRelativeTransformReverse ( |
||
|
GetRotation() |
Returns the rotation component |
|
|
GetSafeScaleReciprocal ( |
Mathematically if you have 0 scale, it should be infinite, however, in practice if you have 0 scale, and relative transform doesn't make much sense anymore because you should be instead of showing gigantic infinite mesh also returning BIG_NUMBER causes sequential NaN issues by multiplying so we hardcode as 0 |
|
|
GetScale3D() |
Returns the Scale3D component |
|
|
GetScaled ( |
Apply Scale to this transform Apply Scale to this transform |
|
|
GetScaled ( |
Apply Scale to this transform |
|
|
GetScaledAxis ( |
X = 0, y = 1, z = 2 Apply Scale to this transform |
|
|
GetTranslation() |
Returns the translation component |
|
|
GetUnitAxis ( |
X = 0, y = 1, z = 2 |
|
|
InitFromString ( |
Acceptable form: "%f,%f,%f|%f,%f,%f|%f,%f,%f" |
|
|
Inverse() |
Convert this Transform to inverse. |
|
|
InverseTransformPosition ( |
Do backward operation when inverse, translation -> rotation -> scale |
|
|
InverseTransformPositionNoScale ( |
Do backward operation when inverse, translation -> rotation -> scale |
|
|
InverseTransformRotation ( |
Inverse transform a rotation. |
|
|
InverseTransformVector ( |
Do backward operation when inverse, translation -> rotation -> scale |
|
|
InverseTransformVectorNoScale ( |
Do backward operation when inverse, translation -> rotation -> scale |
|
|
IsRotationNormalized() |
Checks whether the rotation component is normalized or not |
|
|
IsValid() |
||
|
LerpTranslationScale3D ( |
Set the translation and Scale3D components of this transform to a linearly interpolated combination of two other transforms |
|
|
Mirror ( |
||
|
Multiply ( |
Create a new transform: OutTransform = A * B. |
|
|
MultiplyScale3D ( |
Scales the Scale3D component by a new factor |
|
|
NormalizeRotation() |
Normalize the rotation component of this transformation |
|
|
RemoveScaling ( |
This function is from matrix, and all it does is to normalize rotation portion |
|
|
RotationEquals ( |
Test if this Transform's rotation equals another's rotation, within a tolerance. Preferred over "GetRotation().Equals(Other.GetRotation())" because it is faster on some platforms. |
|
|
Rotator() |
||
|
Scale3DEquals ( |
Test if this Transform's scale equals another's scale, within a tolerance. Preferred over "GetScale3D().Equals(Other.GetScale3D())" because it is faster on some platforms. |
|
|
ScaleTranslation ( |
||
|
ScaleTranslation ( |
Scale the translation part of the Transform by the supplied vector. |
|
|
SetComponents |
Sets the components |
|
|
SetFromMatrix ( |
||
|
SetIdentity() |
Sets the components to the identity transform: Rotation = (0,0,0,1) Translation = (0,0,0) Scale3D = (1,1,1) |
|
|
SetLocation ( |
Set the translation of this transformation |
|
|
SetRotation ( |
Sets the rotation component |
|
|
SetScale3D ( |
Sets the Scale3D component |
|
|
SetToRelativeTransform ( |
Set current transform and the relative to ParentTransform. |
|
|
SetTranslation ( |
Sets the translation component |
|
|
SetTranslationAndScale3D |
Sets both the translation and Scale3D components at the same time |
|
|
SubtractTranslations ( |
Subtract translations from two FTransforms and return the difference. |
|
|
ToHumanReadableString() |
Convert FTransform contents to a string |
|
|
ToInverseMatrixWithScale() |
Convert this Transform to matrix with scaling and compute the inverse of that. |
|
|
ToMatrixNoScale() |
Convert this Transform to a transformation matrix, ignoring its scaling |
|
|
ToMatrixWithScale() |
Convert this Transform to a transformation matrix with scaling. |
|
|
ToString() |
||
|
TransformFVector4 ( |
Transform FVector4 |
|
|
TransformFVector4NoScale ( |
Transform FVector4 |
|
|
TransformPosition ( |
||
|
TransformPositionNoScale ( |
||
|
TransformRotation ( |
Transform a rotation. |
|
|
TransformVector ( |
||
|
TransformVectorNoScale ( |
||
|
TranslationEquals ( |
Test if this Transform's translation equals another's translation, within a tolerance. Preferred over "GetTranslation().Equals(Other.GetTranslation())" because it is faster on some platforms. |
Name | Description | ||
---|---|---|---|
|
operator* ( |
Return a transform that is the result of this multiplied by another transform (made only from a rotation). |
|
|
operator* ( |
Return a transform that is the result of this multiplied by another transform. |
|
|
operator* ( |
||
|
operator*= ( |
Sets this transform to the result of this multiplied by another transform (made only from a rotation). |
|
|
operator*= ( |
Sets this transform to the result of this multiplied by another transform. |
|
|
operator*= ( |
||
|
operator+ ( |
Quaternion addition is wrong here. |
|
|
operator+= ( |
Name |
Description |
---|---|
Identity |
The identity transformation (Rotation = FQuat::Identity, Translation = FVector::ZeroVector, Scale3D = (1,1,1)). |