81 Ar << ActiveBoneNames;
82 Ar << ActiveBonesRelativeTransforms;
83 Ar << SignedDistanceModelWeights;
84 Ar << SignedDistanceModelWeightsShapes;
85 Ar << IncorrectZoneModelWeights;
86 Ar << IncorrectZoneModelWeightsShapes;
87 Ar << bUseIncorrectZoneModel;
88 Ar << SignedDistanceScaling;
89 Ar << TrainingGridMin;
90 Ar << TrainingGridUnitAxesXYZ;
91 Ar << TrainingGridAxesLengthsXYZ;
92 Ar << TotalNumberOfRotationComponents;
93 Ar << ActiveBonesRotationComponents;
94 Ar << ActiveBonesReferenceRotations;
95 Ar << ActiveBonesReferenceTranslations;
101 SignedDistanceNeuralInferences.Empty();
103 if (bUseIncorrectZoneModel)
105 IncorrectZoneNeuralInferences.Empty();
150 void ProcessTrainingGridAxesVectors();
181 bool bUseIncorrectZoneModel;
185 float SignedDistanceScaling;
189 int32 TotalNumberOfRotationComponents;
195 TUniformGrid<FReal, 3> DebugGrid;
196 TArrayND<FReal, 3> DebugPhi;
199 FMLLevelSet() : FImplicitObject(EImplicitObject::
HasBoundingBox, ImplicitObjectType::MLLevelSet) {}
202 friend FImplicitObject;
203 friend ::FKMLLevelSetElem;
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 ImplicitObject.h:111
bool HasBoundingBox() const
Definition ImplicitObject.h:275
CHAOS_API void SerializeImp(FArchive &Ar)
Definition ImplicitObject.cpp:337
Definition MLLevelSetNeuralInference.h:14
Definition MLLevelset.h:38
const FVector3f GetTrainingGridMin() const
Definition MLLevelset.h:63
const int32 GetNumberOfActiveBones() const
Definition MLLevelset.h:59
virtual void Serialize(FArchive &Ar) override
Definition MLLevelset.h:116
virtual uint32 GetTypeHash() const override
Definition MLLevelset.h:126
const TUniformGrid< FReal, 3 > & GetGrid() const
Definition MLLevelset.h:67
FORCEINLINE void SerializeImp(FArchive &Ar)
Definition MLLevelset.h:77
const TArrayND< FReal, 3 > & GetPhiArray() const
Definition MLLevelset.h:70
virtual CHAOS_API Chaos::FImplicitObjectPtr CopyGeometry() const override
Definition MLLevelset.cpp:98
virtual CHAOS_API ~FMLLevelSet()
Definition MLLevelset.cpp:94
CHAOS_API FReal SignedDistance(const FVec3 &x) const
Definition MLLevelset.cpp:271
static FORCEINLINE constexpr EImplicitObjectType StaticType()
Definition MLLevelset.h:72
CHAOS_API void GetZeroIsosurfaceGridCellFaces(TArray< FVector3f > &Vertices, TArray< FIntVector > &Tris) const
Definition MLLevelset.cpp:167
CHAOS_API void GetInteriorCells(TArray< TVec3< int32 > > &InteriorCells, const FReal InteriorThreshold) const
Definition MLLevelset.cpp:248
virtual CHAOS_API Chaos::FImplicitObjectPtr CopyGeometryWithScale(const FVec3 &Scale) const override
Definition MLLevelset.cpp:132
const FVector3f GetTrainingGridVector(int32 Index) const
Definition MLLevelset.h:64
virtual CHAOS_API FReal PhiWithNormal(const FVec3 &x, FVec3 &Normal) const override
Definition MLLevelset.cpp:495
CHAOS_API void CreatePhiFromMLModel()
Definition MLLevelset.cpp:277
CHAOS_API void UpdateActiveBonesRelativeTransforms(TArray< FTransform > &InActiveBonesRelativeTransforms)
Definition MLLevelset.cpp:339
FMLLevelSet(const FMLLevelSet &Other)=delete
virtual const FAABB3 BoundingBox() const override
Definition MLLevelset.h:62
CHAOS_API void BatchPhiWithNormal(const TConstArrayView< Softs::FPAndInvM > PAndInvMArray, const Softs::FSolverRigidTransform3 &SolverToThis, TArray< Softs::FSolverReal > &OutBatchPhis, TArray< Softs::FSolverVec3 > &OutBatchNormals, const Chaos::Softs::FSolverReal CollisionThickness, const int32 MLLevelsetThread, const int32 BatchBegin, const int32 BatchEnd) const
Definition MLLevelset.cpp:569
virtual void Serialize(FChaosArchive &Ar) override
Definition MLLevelset.h:111
CHAOS_API void UpdateNeuralInferencesNumber(const int32 InNeuralInferencesNumber)
Definition MLLevelset.cpp:368
const TArray< FName > & GetActiveBoneNames() const
Definition MLLevelset.h:61
CHAOS_API void UpdateActiveBonesRelativeTransformsAndUpdateDebugPhi(TArray< FTransform > &InActiveBonesRelativeTransforms)
Definition MLLevelset.cpp:355
static void SerializeAsAABB(FArchive &Ar, TAABB< T, d > &AABB)
Definition Box.h:467
Definition Archive.h:1208
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
Definition ContainerAllocationPolicies.h:447
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition SharedPointer.h:692
@ MLLevelSet
Definition ImplicitObjectType.h:30
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
Definition SkeletalMeshComponent.h:307
uint8 EImplicitObjectType
Definition ImplicitObjectType.h:41
FRealDouble FReal
Definition Real.h:22
TAABB< FReal, 3 > FAABB3
Definition ImplicitObject.h:34
U16 Index
Definition radfft.cpp:71
Definition MLLevelset.h:25
TArray< FName > ActiveBoneNames
Definition MLLevelset.h:26
TArray< FVector3f > TrainingGridAxesXYZ
Definition MLLevelset.h:33
const FVector3f TrainingGridMin
Definition MLLevelset.h:32
FIntVector DebugGridResolution
Definition MLLevelset.h:34
TArray< TArray< int32 > > ActiveBonesRotationComponents
Definition MLLevelset.h:31
const float SignedDistanceScaling
Definition MLLevelset.h:30
TArray< FMLLevelSetNNEModelData > NNEModelDataArr
Definition MLLevelset.h:27
TArray< FVector3f > ActiveBonesReferenceTranslations
Definition MLLevelset.h:29
TArray< FVector3f > ActiveBonesReferenceRotations
Definition MLLevelset.h:28
Definition MLLevelset.h:17
const FString NNEModelPath
Definition MLLevelset.h:20
const FString MLModelWeightsString
Definition MLLevelset.h:19
TArray< int32 > ModelArchitectureActivationNodeSizes
Definition MLLevelset.h:18
TObjectPtr< UNNEModelData > NNEModelData
Definition MLLevelset.h:21
Definition MLLevelSetElem.h:17
Definition ObjectPtr.h:488