26 template<
typename T_SHAPE>
55 return Shape.IsConvex();
60 return FString::Printf(
TEXT(
"TGJKShape: %s"), *
Shape.ToString());
72 template<
typename T_SHAPE>
89 return Transform.InverseTransformPositionNoScale(V);
99 const FVec3 LocalDir =
Transform.InverseTransformVectorNoScale(Dir);
106 return Shape.IsConvex();
111 return FString::Printf(
TEXT(
"TGJKShapeTransformed: %s"), *
Shape.ToString());
129 template<
typename T_SHAPE>
171 return Shape.IsConvex();
176 return FString::Printf(
TEXT(
"TGJKCoreShape: %s, Margin: %f"), *
Shape.ToString(),
GetMargin());
189 template<
typename T_SHAPE>
213 return Transform.InverseTransformPositionNoScale(V);
228 const FVec3 LocalDir =
Transform.InverseTransformVectorNoScale(Dir);
235 return Shape.IsConvex();
240 return FString::Printf(
TEXT(
"TGJKCoreShapeTransformed: %s"), *
Shape.ToString());
288 return FString::Printf(
TEXT(
"FGJKSphere: Center: [%f, %f, %f], Radius: %f"), Center.X, Center.Y, Center.Z, Radius);
382 template<
typename T_SHAPE>
389 template<
typename T_SHAPE>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FORCEINLINE VectorRegister4Float VectorDot3(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:880
FORCEINLINE VectorRegister4Float VectorSelect(const VectorRegister4Float &Mask, const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1105
FORCEINLINE VectorRegister4Float VectorCompareGE(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1000
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat(uint32 X, uint32 Y, uint32 Z, uint32 W)
Definition UnrealMathFPU.h:175
Definition GJKShape.h:336
FRealSingle GetRadiusf() const
Definition GJKShape.h:359
FGJKCapsuleSingleSIMD(const FVec3f &InPointA, const FVec3f &InPointB, const FVec3f &InAxis, const FRealSingle InRadius)
Definition GJKShape.h:338
FRealSingle GetMargin() const
Definition GJKShape.h:364
VectorRegister4Float SupportCoreSimd(const VectorRegister4Float V, FRealSingle InMargin) const
Definition GJKShape.h:346
FRealSingle GetMarginf() const
Definition GJKShape.h:369
FRealSingle GetRadius() const
Definition GJKShape.h:354
Definition GJKShape.h:297
FRealSingle GetMargin() const
Definition GJKShape.h:320
FRealSingle GetRadius() const
Definition GJKShape.h:310
FRealSingle GetRadiusf() const
Definition GJKShape.h:315
FGJKSphereSingleSIMD(const FVec3f &InCenter, FRealSingle InRadius)
Definition GJKShape.h:299
FRealSingle GetMarginf() const
Definition GJKShape.h:325
VectorRegister4Float SupportCoreSimd(const VectorRegister4Float V, const FRealSingle InMargin) const
Definition GJKShape.h:305
Definition GJKShape.h:253
FReal GetRadius() const
Definition GJKShape.h:265
FVec3 InverseTransformPositionNoScale(const FVec3 &V) const
Definition GJKShape.h:270
FString ToString() const
Definition GJKShape.h:286
FReal GetMargin() const
Definition GJKShape.h:281
FGJKSphere(const FVec3 InCenter, const FReal InRadius)
Definition GJKShape.h:255
const FVec3 & GetCenter() const
Definition GJKShape.h:260
const FVec3 & SupportCore(const FVec3 &Direction, const FReal InMargin, FReal *MaxMarginDelta, int32 &VertexIndex) const
Definition GJKShape.h:275
Definition SkeletalMeshComponent.h:307
TGJKShape< T_SHAPE > MakeGJKShape(const T_SHAPE &InShape)
Definition GJKShape.h:383
FRealDouble FReal
Definition Real.h:22
float FRealSingle
Definition Real.h:14
TGJKCoreShape< T_SHAPE > MakeGJKCoreShape(const T_SHAPE &InShape)
Definition GJKShape.h:390
constexpr VectorRegister4Float FloatZero
Definition UnrealMathVectorConstants.h.inl:41
Definition GJKShape.h:131
FVec3 InverseTransformPositionNoScale(const FVec3 &V) const
Definition GJKShape.h:149
TGJKCoreShape(const FShapeType &InShape, const FRealSingle InMargin)
Definition GJKShape.h:144
bool IsConvex() const
Definition GJKShape.h:169
const FRealSingle Margin
Definition GJKShape.h:180
TGJKCoreShape(const FShapeType &InShape, const FReal InMargin)
Definition GJKShape.h:139
FReal GetMargin() const
Definition GJKShape.h:154
const FShapeType & Shape
Definition GJKShape.h:179
T_SHAPE FShapeType
Definition GJKShape.h:132
FRealSingle GetMarginf() const
Definition GJKShape.h:159
TGJKCoreShape(const FShapeType &InShape)
Definition GJKShape.h:134
FString ToString() const
Definition GJKShape.h:174
FVec3 SupportCore(const FVec3 Dir, const FReal InMargin, FReal *OutSupportDelta, int32 &VertexIndex) const
Definition GJKShape.h:164
FVec3 InverseTransformPositionNoScale(const FVec3 &V) const
Definition GJKShape.h:33
TGJKShape(const FShapeType &InShape)
Definition GJKShape.h:31
FRealSingle GetMarginf() const
Definition GJKShape.h:43
FString ToString() const
Definition GJKShape.h:58
const FShapeType & Shape
Definition GJKShape.h:63
bool IsConvex() const
Definition GJKShape.h:53
T_SHAPE FShapeType
Definition GJKShape.h:29
FVec3 SupportCore(const FVec3 Dir, const FReal InMargin, FReal *OutSupportDelta, int32 &VertexIndex) const
Definition GJKShape.h:48
FReal GetMargin() const
Definition GJKShape.h:38
Definition UnrealMathFPU.h:20