20 class FHeightfieldRaycastVisitor;
26 class FMeshContactGenerator;
76 CHAOS_API bool SweepGeom(
const FSphere& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
77 CHAOS_API bool SweepGeom(
const TBox<FReal, 3>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
78 CHAOS_API bool SweepGeom(
const FCapsule& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
79 CHAOS_API bool SweepGeom(
const FConvex& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
80 CHAOS_API bool SweepGeom(
const TImplicitObjectScaled<FSphere>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
81 CHAOS_API bool SweepGeom(
const TImplicitObjectScaled<
TBox<FReal, 3>>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
82 CHAOS_API bool SweepGeom(
const TImplicitObjectScaled<FCapsule>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
83 CHAOS_API bool SweepGeom(
const TImplicitObjectScaled<FConvex>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
FReal& OutTime,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal,
const FReal Thickness = 0,
bool bComputeMTD =
false)
const;
86 CHAOS_API bool SweepGeomCCD(
const FSphere& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
87 CHAOS_API bool SweepGeomCCD(
const TBox<FReal, 3>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
88 CHAOS_API bool SweepGeomCCD(
const FCapsule& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
89 CHAOS_API bool SweepGeomCCD(
const FConvex& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
90 CHAOS_API bool SweepGeomCCD(
const TImplicitObjectScaled<FSphere>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
91 CHAOS_API bool SweepGeomCCD(
const TImplicitObjectScaled<
TBox<FReal, 3>>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
92 CHAOS_API bool SweepGeomCCD(
const TImplicitObjectScaled<FCapsule>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
93 CHAOS_API bool SweepGeomCCD(
const TImplicitObjectScaled<FConvex>& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex,
FVec3& OutFaceNormal)
const;
116 const int32 CellIndex = TriangleIndex / 2;
180 template<
typename TriangleVisitor>
232 Triangles[0] =
FTriangle(Points[0], Points[1], Points[3]);
233 Triangles[1] =
FTriangle(Points[0], Points[3], Points[2]);
239 Triangles[0] =
FTriangle(Points[0], Points[3], Points[1]);
240 Triangles[1] =
FTriangle(Points[0], Points[2], Points[3]);
254 const int32 RootObjectIndex,
374 Ar << FlattenedBounds.Min;
375 Ar << FlattenedBounds.Max;
397 template<
typename InStorageType>
405 static_assert(std::is_same_v<StorageType, uint8> ||
406 std::is_same_v<StorageType, uint16> ||
407 std::is_same_v<StorageType, uint32> ||
408 std::is_same_v<StorageType, uint64>,
409 "Expected unsigned integer type for heightfield data storage");
527 const FReal MinZ = FMath::Min<FReal>(
H0, FMath::Min<FReal>(
H1, FMath::Min<FReal>(
H2,
H3)));
528 const FReal MaxZ = FMath::Max<FReal>(
H0, FMath::Max<FReal>(
H1, FMath::Max<FReal>(
H2,
H3)));
548 const FRealSingle MinZ = FMath::Min<FRealSingle>(
H0, FMath::Min<FRealSingle>(
H1, FMath::Min<FRealSingle>(
H2,
H3)));
549 const FRealSingle MaxZ = FMath::Max<FRealSingle>(
H0, FMath::Max<FRealSingle>(
H1, FMath::Max<FRealSingle>(
H2,
H3)));
565 const FRealSingle MinZ = FMath::Min<FRealSingle>(
H0, FMath::Min<FRealSingle>(
H1, FMath::Min<FRealSingle>(
H2,
H3)));
566 const FRealSingle MaxZ = FMath::Max<FRealSingle>(
H0, FMath::Max<FRealSingle>(
H1, FMath::Max<FRealSingle>(
H2,
H3)));
599 MinHeight = FMath::Min<FRealSingle>(
CurrHeight, MinHeight);
860 template<
typename... Points>
861 static FBounds2D FromPoints(
const FVec2& P0,
const Points&...
InPoints)
863 static_assert(
sizeof...(InPoints) > 0);
864 static_assert(std::is_same_v<std::common_type_t<Points...>,
FVec2>);
866 FBounds2D Result(P0, P0);
867 (Result.GrowToInclude(
InPoints), ...);
882 FVec2 GetExtent()
const
894 Min = { FMath::Min(Min.X,
InPoint.X), FMath::Min(Min.Y,
InPoint.Y) };
895 Max = { FMath::Max(Max.X,
InPoint.X), FMath::Max(Max.Y,
InPoint.Y) };
928 const FVec2 Extent = GetExtent();
969 if(Dir.SizeSquared() < 1e-4)
1021 else if(Dir[
Axis] < 0)
1053 if(InvDir[
Axis] > 0)
1057 else if(InvDir[
Axis] < 0)
1063 const FReal MinTime = FMath::Min(FMath::Abs(Times[0]),FMath::Abs(Times[1]));
1076 template<
typename SQVisitor>
1079 struct FWalkingData {
1084 FReal CurrentLength;
1094 FHeightfieldRaycastVisitor&
Visitor;
1109 CHAOS_API FBounds2D GetFlatBounds()
const;
1112 TUniformGrid<FReal, 2> FlatGrid;
1114 FBounds2D FlattenedBounds;
1118 mutable FAABB3 CachedBounds;
1125 friend FImplicitObject;
1127 template <
typename QueryGeomType>
1130 template <
typename QueryGeomType>
1133 template <
typename QueryGeomType>
1134 bool SweepGeomCCDImp(
const QueryGeomType& QueryGeom,
const FRigidTransform3& StartTM,
const FVec3& Dir,
const FReal Length,
const FReal IgnorePenetration,
const FReal TargetPenetration,
FReal&
OutTOI,
FReal& OutPhi,
FVec3& OutPosition,
FVec3& OutNormal,
int32& OutFaceIndex)
const;
1136 template <
typename GeomType>
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FORCEINLINE VectorRegister4Float VectorMin(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1686
FORCEINLINE VectorRegister4Float VectorMultiply(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:758
FORCEINLINE VectorRegister4Float VectorMax(const VectorRegister4Float &Vec1, const VectorRegister4Float &Vec2)
Definition UnrealMathFPU.h:1713
FORCEINLINE VectorRegister4Double MakeVectorRegisterDouble(uint64 X, uint64 Y, uint64 Z, uint64 W)
Definition UnrealMathFPU.h:185
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloat(uint32 X, uint32 Y, uint32 Z, uint32 W)
Definition UnrealMathFPU.h:175
FORCEINLINE VectorRegister4Float MakeVectorRegisterFloatFromDouble(const VectorRegister4Double &Vec4d)
Definition UnrealMathFPU.h:262
#define UE_BIG_NUMBER
Definition UnrealMathUtility.h:132
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
Definition AABBVectorized.h:15
Definition ChaosArchive.h:364
Definition ChaosArchive.h:167
Definition HeightField.h:32
CHAOS_API FClosestFaceData FindClosestFace(const FVec3 &Position, FReal SearchDist) const
Definition HeightField.cpp:2356
CHAOS_API FReal GetHeightAt(const FVec2 &InGridLocationLocal) const
Definition HeightField.cpp:981
virtual bool IsOverlappingBoundsImpl(const FAABB3 &QueryBounds) const override final
Definition HeightField.h:267
virtual uint16 GetMaterialIndex(uint32 HintIndex) const override
Definition HeightField.h:312
void SetScale(const FVec3 &InScale)
Definition HeightField.h:391
CHAOS_API uint8 GetMaterialIndexAt(const FVec2 &InGridLocationLocal) const
Definition HeightField.cpp:882
CHAOS_API bool GJKContactPoint(const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &ContactLocation, FVec3 &ContactNormal, FReal &ContactPhi, int32 &ContactFaceIndex) const
Definition HeightField.cpp:1876
CHAOS_API uint8 GetMaterialIndex(int32 InIndex) const
Definition HeightField.cpp:872
virtual void VisitOverlappingLeafObjectsImpl(const FAABB3 &QueryBounds, const FRigidTransform3 &ObjectTransform, const int32 RootObjectIndex, int32 &ObjectIndex, int32 &LeafObjectIndex, const FImplicitHierarchyVisitor &VisitorFunc) const override final
Definition HeightField.h:251
virtual void Serialize(FChaosArchive &Ar) override
Definition HeightField.h:363
virtual ~FHeightField()
Definition HeightField.h:43
FHeightField(const FHeightField &Other)=delete
virtual CHAOS_API int32 FindMostOpposingFace(const FVec3 &Position, const FVec3 &UnitDir, int32 HintFaceIndex, FReal SearchDist) const override
Definition HeightField.cpp:2298
CHAOS_API FVec3 GetPointScaled(int32 InIndex) const
Definition HeightField.cpp:855
void GetTransformedTriangle(const int32 TriangleIndex, const FRigidTransform3 &Transform, FTriangle &OutTriangle, int32 &OutVertexIndex0, int32 &OutVertexIndex1, int32 &OutVertexIndex2) const
Generate the triangle at the specified index with the specified transform (including scale)
Definition HeightField.h:112
CHAOS_API bool OverlapGeom(const FSphere &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const
Definition HeightField.cpp:2112
virtual const FAABB3 BoundingBox() const
Definition HeightField.h:337
virtual uint32 GetTypeHash() const override
Definition HeightField.h:345
int32 GetNumRows() const
Definition HeightField.h:59
virtual FName GetTypeName() const
Definition ImplicitObject.h:414
static constexpr EImplicitObjectType StaticType()
Definition HeightField.h:358
void VisitTriangles(const FAABB3 &QueryBounds, const FRigidTransform3 &QueryTransform, const TriangleVisitor &Visitor) const
Definition HeightField.h:181
void CollectTriangles(const FAABB3 &QueryBounds, const FRigidTransform3 &QueryTransform, const FAABB3 &ObjectBounds, Private::FMeshContactGenerator &Collector) const
Definition HeightField.cpp:2531
int32 GetNumCols() const
Definition HeightField.h:60
CHAOS_API bool SweepGeomCCD(const FSphere &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal) const
Definition HeightField.cpp:2258
FDataType GeomData
Definition HeightField.h:835
CHAOS_API FReal GetHeight(int32 InIndex) const
Definition HeightField.cpp:844
CHAOS_API void EditHeights(TArrayView< FReal > InHeights, int32 InBeginRow, int32 InBeginCol, int32 InNumRows, int32 InNumCols)
Definition HeightField.cpp:809
virtual CHAOS_API FVec3 FindGeometryOpposingNormal(const FVec3 &DenormDir, int32 FaceIndex, const FVec3 &OriginalNormal) const override
Definition HeightField.cpp:2421
CHAOS_API bool IsHole(int32 InIndex) const
Definition HeightField.cpp:897
virtual CHAOS_API FReal PhiWithNormal(const FVec3 &x, FVec3 &Normal) const
Definition HeightField.cpp:2488
CHAOS_API bool SweepGeom(const FSphere &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, bool bComputeMTD=false) const
Definition HeightField.cpp:2180
bool IsOverlappingAnyCells(const FAABB3 &QueryBounds) const
Definition HeightField.h:275
CHAOS_API FVec3 GetNormalAt(const FVec2 &InGridLocationLocal) const
Definition HeightField.cpp:975
Definition ImplicitObject.h:111
bool HasBoundingBox() const
Definition ImplicitObject.h:275
virtual FName GetTypeName() const
Definition ImplicitObject.h:414
CHAOS_API void SerializeImp(FArchive &Ar)
Definition ImplicitObject.cpp:337
static TAABB< FReal, d > FromPoints(const TVector< FReal, d > &P0, const Points &... InPoints)
Definition AABB.h:699
FORCEINLINE const TVector< T, d > & Max() const
Definition AABB.h:596
FORCEINLINE bool Intersects(const TAABB< TReal, d > &Other) const
Definition AABB.h:112
FORCEINLINE const TVector< T, d > & Min() const
Definition AABB.h:595
static void SerializeAsAABB(FArchive &Ar, TAABB< T, d > &AABB)
Definition Box.h:467
Definition ImplicitObjectScaled.h:447
virtual void Serialize(void *V, int64 Length) override
Definition ArchiveProxy.h:97
virtual CORE_API void UsingCustomVersion(const struct FGuid &Guid)
Definition Archive.cpp:590
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
CORE_API int32 CustomVer(const struct FGuid &Key) const
Definition Archive.cpp:602
Definition MemoryWriter.h:101
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
Definition AssetRegistryState.h:50
@ HeightField
Definition ImplicitObjectType.h:25
Definition BodyInstance.h:90
bool IntersectLineSegments2D(const TVec2< T > &InStartA, const TVec2< T > &InEndA, const TVec2< T > &InStartB, const TVec2< T > &InEndB, T &OutTA, T &OutTB)
Definition Utilities.h:383
Definition SkeletalMeshComponent.h:307
TRigidTransform< FReal, 3 > FRigidTransform3
Definition Core.h:22
uint8 EImplicitObjectType
Definition ImplicitObjectType.h:41
TTriangle< FReal > FTriangle
Definition ImplicitFwd.h:31
@ Y
Definition SimulationModuleBase.h:153
@ X
Definition SimulationModuleBase.h:152
FChaosArchive & operator<<(FChaosArchive &Ar, FRigidParticleControlFlags &Flags)
Definition RigidParticleControlFlags.cpp:15
FRealDouble FReal
Definition Real.h:22
float FRealSingle
Definition Real.h:14
@ Raycast
Definition SimulationModuleBase.h:145
TVector< FReal, 3 > FVec3
Definition Core.h:17
TAABB< FReal, 3 > FAABB3
Definition ImplicitObject.h:34
TVector< FReal, 2 > FVec2
Definition Core.h:16
@ Visitor
Definition XmppMultiUserChat.h:94
U16 Index
Definition radfft.cpp:71
Definition HeightField.h:304
int32 FaceIndex
Definition HeightField.h:305
bool bWasSampleBehind
Definition HeightField.h:307
FReal DistanceToFaceSq
Definition HeightField.h:306
Definition HeightField.h:427
void Serialize(FChaosArchive &Ar)
Definition HeightField.h:431
StorageType Max
Definition HeightField.h:429
StorageType Min
Definition HeightField.h:428
Definition HeightField.h:399
FORCEINLINE void GetPointsScaled(int32 Index, FVec3 OutPts[4]) const
Definition HeightField.h:634
TArray< uint8 > MaterialIndices
Definition HeightField.h:438
FORCEINLINE FReal GetMaxHeight() const
Definition HeightField.h:726
FORCEINLINE void GetPoints(int32 Index, FVec3 OutPts[4]) const
Definition HeightField.h:496
void BuildLowResolutionData()
Definition HeightField.h:804
FORCEINLINE void GetBoundsScaled(TVec2< int32 > CellIdx, FAABBVectorized &OutBounds) const
Definition HeightField.h:697
FORCEINLINE void GetBoundsSimd(int32 Index, FAABBVectorized &OutBounds) const
Definition HeightField.h:555
FORCEINLINE FVec3 GetPoint(int32 Index) const
Definition HeightField.h:481
FORCEINLINE void GetBoundsScaledSimd(int32 Index, FAABBVectorized &OutBounds) const
Definition HeightField.h:673
FORCEINLINE int32 CellIndexToVertexIndex(const int32 CellIndex) const
Convert a Cell Index to a Vertex Index. Returns the vertex index of the first corner in the cell....
Definition HeightField.h:474
constexpr FReal GetCellHeight() const
Definition HeightField.h:454
uint16 NumRows
Definition HeightField.h:443
static constexpr int32 RealSize
Definition HeightField.h:412
FVec3 Scale
Definition HeightField.h:439
FORCEINLINE void GetPointsAndBoundsSimd(int32 Index, VectorRegister4Float OutPts[4], FAABBVectorized &OutBounds) const
Definition HeightField.h:533
FORCEINLINE FVec3 GetPointScaled(int32 Index) const
Definition HeightField.h:491
uint16 NumColsLowRes
Definition HeightField.h:447
TArray< StorageType > Heights
Definition HeightField.h:424
FReal MaxValue
Definition HeightField.h:442
void Serialize(FChaosArchive &Ar)
Definition HeightField.h:731
FORCEINLINE void GetLowResBoundsScaled(TVec2< int32 > CellIdx, FAABBVectorized &OutBounds) const
Definition HeightField.h:709
FORCEINLINE void GetPointsAndBounds(int32 Index, FVec3 OutPts[4], FAABB3 &OutBounds) const
Definition HeightField.h:512
FReal HeightPerUnit
Definition HeightField.h:446
FORCEINLINE void GetBoundsScaled(TVec2< int32 > CellIdx, TVec2< int32 > Area, FAABBVectorized &OutBounds) const
Definition HeightField.h:685
FORCEINLINE void GetLowResBounds(TVec2< int32 > CellIdx, FAABBVectorized &OutBounds) const
Definition HeightField.h:614
static constexpr int32 LowResInc
Definition HeightField.h:418
FORCEINLINE void GetPointsAndBoundsScaledSimd(int32 Index, VectorRegister4Float OutPts[4], FAABBVectorized &OutBounds) const
Definition HeightField.h:656
constexpr FReal GetCellWidth() const
Definition HeightField.h:449
static constexpr int32 StorageRange
Definition HeightField.h:416
InStorageType StorageType
Definition HeightField.h:401
FORCEINLINE FReal GetMinHeight() const
Definition HeightField.h:721
FORCEINLINE void GetBounds(TVec2< int32 > CellIdx, TVec2< int32 > Area, FAABBVectorized &OutBounds) const
Definition HeightField.h:572
static constexpr int32 StorageSize
Definition HeightField.h:413
uint16 NumCols
Definition HeightField.h:444
VectorRegister4Float ScaleSimd
Definition HeightField.h:440
FReal Range
Definition HeightField.h:445
FReal MinValue
Definition HeightField.h:441
TArray< MinMaxHeights > LowResolutionHeights
Definition HeightField.h:437
FORCEINLINE void GetPointsAndBoundsScaled(int32 Index, FVec3 OutPts[4], FAABB3 &OutBounds) const
Definition HeightField.h:644
Definition GeometryQueries.h:27
static UE_FORCEINLINE_HINT uint32 MemCrc32(const void *Data, int32 Length, uint32 CRC=0)
Definition Crc.h:31
CORE_API static const FGuid GUID
Definition ExternalPhysicsCustomObjectVersion.h:144
@ HeightfieldData
Definition ExternalPhysicsCustomObjectVersion.h:34
@ HeightfieldImplicitBounds
Definition ExternalPhysicsCustomObjectVersion.h:82
@ HeightfieldUsesHeightsDirectly
Definition ExternalPhysicsCustomObjectVersion.h:109
@ AddedMaterialManager
Definition ExternalPhysicsCustomObjectVersion.h:67
CORE_API static const FGuid GUID
Definition UE5MainStreamObjectVersion.h:22
Definition NumericLimits.h:41
Definition UnrealMathFPU.h:20