37 *
this =
TDualQuat<T>(
TQuat<T>(0, 0, 0, 1),
TQuat<T>(V.
X, V.
Y, V.
Z, 0.f)) *
TDualQuat<T>(
Transform.GetRotation(),
TQuat<T>(0, 0, 0, 0));
41 template<
typename FArg UE_REQUIRES(!std::is_same_v<T, FArg>)>
50 return{
R +
B.R,
D +
B.D };
56 return{
R*
B.R,
D*
B.R +
B.D*
R };
68 T MinV = 1.0f / FMath::Sqrt(
R |
R);
69 return{
R*MinV,
D*MinV };
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_DECLARE_LWC_TYPE(...)
Definition LargeWorldCoordinates.h:27
Definition AdvancedWidgetsModule.cpp:13
Definition IsUECoreType.h:19
@ Value
Definition IsUECoreType.h:20
TDualQuat< T > operator+(const TDualQuat< T > &B) const
Definition DualQuat.h:48
TDualQuat(const TQuat< T > &InR, const TQuat< T > &InD)
Definition DualQuat.h:29
TDualQuat(const TTransform< T > &Transform)
Definition DualQuat.h:34
TQuat< T > D
Definition DualQuat.h:26
TTransform< T > AsFTransform(TVector< T > Scale=TVector< T >(1.0f, 1.0f, 1.0f)) const
Definition DualQuat.h:73
T FReal
Definition DualQuat.h:21
TQuat< T > R
Definition DualQuat.h:24
TDualQuat< T > operator*(const TDualQuat< T > &B) const
Definition DualQuat.h:54
TDualQuat< T > operator*(const T S) const
Definition DualQuat.h:60
TDualQuat(const TDualQuat< FArg > &From)
Definition DualQuat.h:42
TDualQuat< T > Normalized() const
Definition DualQuat.h:66
T Z
Definition Vector.h:68
T Y
Definition Vector.h:65
T X
Definition Vector.h:62