47 ComputeAveragedNormals();
57 bool HasValidMesh()
const {
return Positions.Num() == Normals.Num() && Indices.Num() % 3 == 0; }
60 bool HasTangents()
const {
return Positions.Num() == Tangents.Num(); }
95 mutable bool bHasValidBVH;
128 const ClothMeshDesc& TargetMesh,
129 const ClothMeshDesc& SourceMesh,
132 bool bUseMultipleInfluences,
208 template<
typename T,
typename Lambda>
213 static_assert(std::is_same_v<T, typename TDecay<decltype(Func(DeclVal<FVector3f>(),
DeclVal<T>(),
DeclVal<T>(),
DeclVal<T>()))>::Type>,
"Invalid Lambda signature passed to Map");
#define check(expr)
Definition AssertionMacros.h:314
#define UE_NONCOPYABLE(TypeName)
Definition CoreMiscDefines.h:457
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define SMALL_NUMBER
Definition UnrealMathUtility.h:66
#define KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:67
Definition AABBTree.h:786
Definition ClothingMeshUtils.h:22
bool HasValidMesh() const
Definition ClothingMeshUtils.h:57
bool HasAveragedNormals() const
Definition ClothingMeshUtils.h:63
void GatherAllSourceTrianglesForTargetVertex(const TArray< FMeshToMeshFilterSet > &FilterSets, int32 TargetVertex) const
Definition ClothingMeshUtils.cpp:58
ClothMeshDesc(TConstArrayView< FVector3f > InPositions, TConstArrayView< FVector3f > InNormals, TConstArrayView< FVector3f > InTangents, TConstArrayView< uint32 > InIndices)
Definition ClothingMeshUtils.h:32
ClothMeshDesc(TConstArrayView< FVector3f > InPositions, TConstArrayView< uint32 > InIndices)
Definition ClothingMeshUtils.h:42
TArray< int32 > & GetFilteredTriangles() const
Definition ClothingMeshUtils.h:69
bool HasTangents() const
Definition ClothingMeshUtils.h:60
const TConstArrayView< FVector3f > & GetNormals() const
Definition ClothingMeshUtils.h:52
const TConstArrayView< FVector3f > & GetPositions() const
Definition ClothingMeshUtils.h:51
CLOTHINGSYSTEMRUNTIMECOMMON_API TArray< int32 > FindCandidateTriangles(const FVector &InPoint, float InTolerance=KINDA_SMALL_NUMBER) const
Definition ClothingMeshUtils.cpp:93
const TConstArrayView< FVector3f > & GetTangents() const
Definition ClothingMeshUtils.h:53
ClothMeshDesc(TConstArrayView< FVector3f > InPositions, TConstArrayView< FVector3f > InNormals, TConstArrayView< uint32 > InIndices)
Definition ClothingMeshUtils.h:24
const TConstArrayView< uint32 > & GetIndices() const
Definition ClothingMeshUtils.h:54
CLOTHINGSYSTEMRUNTIMECOMMON_API TConstArrayView< float > GetMaxEdgeLengths() const
Definition ClothingMeshUtils.cpp:147
CLOTHINGSYSTEMRUNTIMECOMMON_API float DistanceToTriangle(const FVector &Position, int32 TriangleBaseIndex) const
Definition ClothingMeshUtils.cpp:79
Definition ClothingMeshUtils.h:190
void Map(TConstArrayView< T > &SourceData, TArray< T > &DestData, const Lambda &Func)
Definition ClothingMeshUtils.h:209
UE_FORCEINLINE_HINT SizeType AddUninitialized()
Definition Array.h:1664
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
Definition ClothingMeshUtils.cpp:26
FVector4f GetPointBaryAndDist(const FVector3f &A, const FVector3f &B, const FVector3f &C, const FVector3f &Point)
Definition ClothingMeshUtils.cpp:829
void GenerateMeshToMeshVertData(TArray< FMeshToMeshVertData > &OutMeshToMeshVertData, const ClothMeshDesc &TargetMesh, const ClothMeshDesc &SourceMesh, const FPointWeightMap *MaxDistances, bool bUseSmoothTransitions, bool bUseMultipleInfluences, float KernelMaxDistance, const TArray< FMeshToMeshFilterSet > &FilterSets)
Definition ClothingMeshUtils.cpp:678
void ComputeVertexContributions(TArray< FMeshToMeshVertData > &InOutSkinningData, const FPointWeightMap *const InMaxDistances, const bool bInSmoothTransition, const bool bInUseMultipleInfluences)
Definition ClothingMeshUtils.cpp:1150
FVector4f GetPointBaryAndDistWithNormals(const FVector3f &A, const FVector3f &B, const FVector3f &C, const FVector3f &InputNA, const FVector3f &InputNB, const FVector3f &InputNC, const FVector3f &Point)
Definition ClothingMeshUtils.cpp:1035
void SkinPhysicsMesh(const TArray< int32 > &InBoneMap, const FClothPhysicalMeshData &InMesh, const FTransform &PostTransform, const FMatrix44f *InBoneMatrices, const int32 InNumBoneMatrices, TArray< FVector3f > &OutPositions, TArray< FVector3f > &OutNormals)
Definition ClothingMeshUtils.cpp:218
@ false
Definition radaudio_common.h:23
Definition ClothingMeshUtils.h:16
TSet< int32 > TargetVertices
Definition ClothingMeshUtils.h:18
TSet< int32 > SourceTriangles
Definition ClothingMeshUtils.h:17
Definition ClothPhysicalMeshData.h:26
Definition PointWeightMap.h:33
static CORE_API const TVector< double > OneVector
Definition Vector.h:82