|
| FTransform (glm::vec3 rotation, glm::vec3 translation, glm::vec3 scale3D) |
|
const glm::vec3 & | GetLocation () |
|
const TRotator & | GetRotation () const |
|
const glm::vec3 & | GetTranslation () const |
|
const glm::vec3 & | GetScale3D () const |
|
void | SetScale3D (const glm::vec3 &newScale) |
|
void | SetRotation (const TRotator &newRotation) |
|
void | SetTranslation (const glm::vec3 &newTranslation) |
|
FTransform | GetRelativeTransform (const FTransform &RelativeToWhat) const |
|
FTransform | operator* (const FTransform &Other) const |
|
bool | AnyHasNegativeScale (const glm::vec3 &InScale3D, const glm::vec3 &InOtherScale3D) const |
|
glm::vec3 | GetSafeScaleReciprocal (const glm::vec3 &InScale, float Tolerance) const |
|
FORCEINLINE void | CopyTranslation (const FTransform &Other) |
|
FORCEINLINE void | CopyRotation (const FTransform &Other) |
|
FORCEINLINE void | CopyScale3D (const FTransform Other) |
|
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 (TQuat<T>) 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.