11namespace Chaos {
class FErrorReporter; }
22template<
class T,
int D>
36#if COMPILE_WITHOUT_UNREAL_SUPPORT
47#if COMPILE_WITHOUT_UNREAL_SUPPORT
66 for (
int32 i = 0; i < MGrid.
Counts().Product(); ++i)
109 for (
int32 Idx = 0; Idx < MPhi.
Num(); ++Idx)
111 const FReal Phi = MPhi[Idx];
159 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,
const FReal Thickness = 0,
const bool bComputeMTD =
false)
const;
164 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,
const FReal Thickness = 0,
const bool bComputeMTD =
false)
const;
168 template<
typename QueryGeomType>
181 template<
typename QueryGeomType>
185 CHAOS_API bool ComputeDistancesNearZeroIsocontour(
FErrorReporter&
ErrorReporter,
const FParticles&
InParticles,
const TArray<FVec3> &
Normals,
const FTriangleMesh&
Mesh,
TArrayND<bool, 3>&
BlockedFaceX,
TArrayND<bool, 3>&
BlockedFaceY,
TArrayND<bool, 3>&
BlockedFaceZ,
TArray<
TVec3<int32>>&
InterfaceIndices);
202 FAABB3 MOriginalLocalBoundingBox;
206 friend FImplicitObject;
207 friend ::FKLevelSetElem;
210template <
typename T,
int d>
211using TLevelSet
UE_DEPRECATED(4.27,
"Deprecated. this class is to be deleted, use FLevelSet instead") = FLevelSet;
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
Definition ChaosArchive.h:167
Definition ErrorReporter.h:9
Definition ImplicitObject.h:111
CHAOS_API FReal SignedDistance(const FVec3 &x) const
Definition ImplicitObject.cpp:105
bool HasBoundingBox() const
Definition ImplicitObject.h:275
CHAOS_API void SerializeImp(FArchive &Ar)
Definition ImplicitObject.cpp:337
CHAOS_API bool SweepGeom(const FSphere &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, const FReal Thickness=0, const bool bComputeMTD=false) const
Definition Levelset.cpp:1663
FORCEINLINE void Shrink(const FReal Value)
Definition Levelset.h:64
FReal ApproximateNegativeMaterial() const
Definition Levelset.h:103
CHAOS_API void GetInteriorCells(TArray< TVec3< int32 > > &InteriorCells, const FReal InteriorThreshold) const
Definition Levelset.cpp:695
CHAOS_API bool CheckData(FErrorReporter &ErrorReporter, const FParticles &InParticles, const FTriangleMesh &Mesh, const TArray< FVec3 > &Normals)
Definition Levelset.cpp:531
const TArrayND< FReal, 3 > & GetPhiArray() const
Definition Levelset.h:56
virtual CHAOS_API Chaos::FImplicitObjectPtr CopyGeometryWithScale(const FVec3 &Scale) const override
Definition Levelset.cpp:208
virtual const FAABB3 BoundingBox() const override
Definition Levelset.h:53
bool OverlapGeomImp(const QueryGeomType &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const
Definition Levelset.cpp:1743
virtual CHAOS_API Chaos::FImplicitObjectPtr CopyGeometry() const override
Definition Levelset.cpp:196
virtual CHAOS_API ~FLevelSet()
Definition Levelset.cpp:193
const TArrayND< FVec3, 3 > & GetNormalsArray() const
Definition Levelset.h:59
FLevelSet(const FLevelSet &Other)=delete
virtual uint32 GetTypeHash() const override
Definition Levelset.h:143
const TUniformGrid< FReal, 3 > & GetGrid() const
Definition Levelset.h:62
CHAOS_API FReal ComputeLevelSetError(const FParticles &InParticles, const TArray< FVec3 > &Normals, const FTriangleMesh &Mesh, FReal &AngleError, FReal &MaxDistError)
Definition Levelset.cpp:271
bool SweepGeomImp(const QueryGeomType &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, const FReal Thickness, const bool bComputeMTD) const
Definition Levelset.cpp:1632
FORCEINLINE void SerializeImp(FArchive &Ar)
Definition Levelset.h:77
virtual void Serialize(FChaosArchive &Ar) override
Definition Levelset.h:88
CHAOS_API FReal SignedDistance(const FVec3 &x) const
Definition Levelset.cpp:1511
CHAOS_API void OutputDebugData(FErrorReporter &ErrorReporter, const FParticles &InParticles, const TArray< FVec3 > &Normals, const FTriangleMesh &Mesh, const FString FileName)
Definition Levelset.cpp:424
CHAOS_API bool OverlapGeom(const FSphere &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const
Definition Levelset.cpp:1788
virtual CHAOS_API FReal PhiWithNormal(const FVec3 &x, FVec3 &Normal) const override
Definition Levelset.cpp:1519
CHAOS_API bool ComputeMassProperties(FReal &OutVolume, FVec3 &OutCOM, FMatrix33 &OutInertia, FRotation3 &OutRotationOfMass) const
Definition Levelset.cpp:220
static FORCEINLINE constexpr EImplicitObjectType StaticType()
Definition Levelset.h:72
virtual void Serialize(FArchive &Ar) override
Definition Levelset.h:93
CHAOS_API void GetZeroIsosurfaceGridCellFaces(TArray< FVector3f > &Vertices, TArray< FIntVector > &Tris) const
Definition Levelset.cpp:615
Definition TriangleMesh.h:24
FORCEINLINE int32 Num() const
Definition ArrayND.h:161
static void SerializeAsAABB(FArchive &Ar, TAABB< T, d > &AABB)
Definition Box.h:467
Definition ImplicitObjectScaled.h:447
Definition Particles.h:32
Definition Archive.h:1208
@ LevelSet
Definition ImplicitObjectType.h:19
Definition SkeletalMeshComponent.h:307
uint8 EImplicitObjectType
Definition ImplicitObjectType.h:41
FRealDouble FReal
Definition Real.h:22
U16 Index
Definition radfft.cpp:71
Definition GeometryQueries.h:27
Definition LevelSetElem.h:17