UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CollectionVertexBoneWeightsFacade.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
5#include "Containers/Array.h"
10
12{
13
32 {
33 public:
34
35 // Attributes
41
45 CHAOS_API FVertexBoneWeightsFacade(FManagedArrayCollection& InSelf, const bool bInternalWeights = true);
46 CHAOS_API FVertexBoneWeightsFacade(const FManagedArrayCollection& InSelf, const bool bInternalWeights = true);
47
50
52 bool IsConst() const { return Collection == nullptr; }
53
55 CHAOS_API bool IsValid() const;
56
59
62
64 CHAOS_API void AddBoneWeight(int32 VertexIndex, int32 BoneIndex, float BoneWeight);
65
67 CHAOS_API void ModifyBoneWeight(int32 VertexIndex, const TArray<int32>& VertexBoneIndices, const TArray<float>& VertexBoneWeights);
68
70 CHAOS_API void ModifyKinematicWeight(int32 VertexIndex, const float KinematicWeight);
71
73 CHAOS_API void SetVertexKinematic(int32 VertexIndex, bool Value = true);
74
76 CHAOS_API void SetVertexArrayKinematic(const TArray<int32>& VertexIndices, bool Value = true);
77
81 CHAOS_API bool IsKinematicVertex(int32 VertexIndex) const;
82
85
88
91
93 int32 NumBones() const { return ConstCollection.NumElements(FGeometryCollection::TransformGroup); };
94
97
101
105
107 const TManagedArray<float>* FindKinematicWeights() const { return KinematicWeightAttribute.Find(); }
108 const TManagedArray<float>& GetKinematicWeights() const { return KinematicWeightAttribute.Get(); }
109
111 const TManagedArray<TObjectPtr<UObject>>* FindSkeletalMeshes() const { return SkeletalMeshAttribute.Find(); }
112 const TManagedArray<TObjectPtr<UObject>>& GetSkeletalMeshes() const { return SkeletalMeshAttribute.Get(); }
113
115 const TManagedArray<int32>* FindGeomketryLODs() const { return GeometryLODAttribute.Find(); }
116 const TManagedArray<int32>& GetGeometryLODs() const { return GeometryLODAttribute.Get(); }
117
119 const FManagedArrayCollection& GetManagedArrayCollection() const {return ConstCollection;}
120
121 private:
122
124 static const FName DeprecatedBoneIndicesAttributeName;
125 static const FName DeprecatedKinematicFlagAttributeName;
126
127 const FManagedArrayCollection& ConstCollection;
128 FManagedArrayCollection* Collection = nullptr;
129
131 TManagedArrayAccessor<TArray<int32>> BoneIndicesAttribute;
132
134 TManagedArrayAccessor<TArray<float>> BoneWeightsAttribute;
135
137 TManagedArrayAccessor<float> KinematicWeightAttribute;
138
140 TManagedArrayAccessor<int32> GeometryLODAttribute;
141
143 TManagedArrayAccessor<TObjectPtr<UObject>> SkeletalMeshAttribute;
144
146 const bool bInternalWeights = true;
147 };
148
149}
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
static CHAOS_API const FName GeometryGroup
Definition GeometryCollection.h:101
static CHAOS_API const FName VerticesGroup
Definition GeometryCollection.h:99
Definition NameTypes.h:617
static CHAOS_API const FName TransformGroup
Definition TransformCollection.h:49
Definition CollectionVertexBoneWeightsFacade.h:32
CHAOS_API const TManagedArray< TArray< float > > & GetBoneWeights() const
Definition CollectionVertexBoneWeightsFacade.cpp:242
CHAOS_API void SetVertexArrayKinematic(const TArray< int32 > &VertexIndices, bool Value=true)
Definition CollectionVertexBoneWeightsFacade.cpp:180
CHAOS_API const TManagedArray< TArray< int32 > > & GetBoneIndices() const
Definition CollectionVertexBoneWeightsFacade.cpp:225
int32 NumVertices() const
Definition CollectionVertexBoneWeightsFacade.h:90
bool IsConst() const
Definition CollectionVertexBoneWeightsFacade.h:52
static CHAOS_API const FName BoneIndicesAttributeName
Definition CollectionVertexBoneWeightsFacade.h:36
const TManagedArray< TObjectPtr< UObject > > * FindSkeletalMeshes() const
Definition CollectionVertexBoneWeightsFacade.h:111
const FManagedArrayCollection & GetManagedArrayCollection() const
Definition CollectionVertexBoneWeightsFacade.h:119
CHAOS_API void AddBoneWeight(int32 VertexIndex, int32 BoneIndex, float BoneWeight)
Definition CollectionVertexBoneWeightsFacade.cpp:116
CHAOS_API bool HasValidBoneIndicesAndWeights() const
Definition CollectionVertexBoneWeightsFacade.cpp:95
const TManagedArray< float > * FindKinematicWeights() const
Definition CollectionVertexBoneWeightsFacade.h:107
CHAOS_API const TManagedArray< TArray< float > > * FindBoneWeights() const
Definition CollectionVertexBoneWeightsFacade.cpp:237
const TManagedArray< TObjectPtr< UObject > > & GetSkeletalMeshes() const
Definition CollectionVertexBoneWeightsFacade.h:112
CHAOS_API void NormalizeBoneWeights()
Definition CollectionVertexBoneWeightsFacade.cpp:251
const TManagedArray< float > & GetKinematicWeights() const
Definition CollectionVertexBoneWeightsFacade.h:108
CHAOS_API void SetVertexKinematic(int32 VertexIndex, bool Value=true)
Definition CollectionVertexBoneWeightsFacade.cpp:172
int32 NumBones() const
Definition CollectionVertexBoneWeightsFacade.h:93
const TManagedArray< int32 > * FindGeomketryLODs() const
Definition CollectionVertexBoneWeightsFacade.h:115
CHAOS_API void ModifyGeometryBinding(const int32 GeometryIndex, const TObjectPtr< UObject > &SkeletalMesh, const int32 GeometryLOD)
Definition CollectionVertexBoneWeightsFacade.cpp:101
CHAOS_API bool IsKinematicVertex(int32 VertexIndex) const
Definition CollectionVertexBoneWeightsFacade.cpp:195
static CHAOS_API const FName GeometryLODAttributeName
Definition CollectionVertexBoneWeightsFacade.h:39
CHAOS_API const TManagedArray< TArray< int32 > > * FindBoneIndices() const
Definition CollectionVertexBoneWeightsFacade.cpp:213
CHAOS_API void AddBoneWeightsFromKinematicBindings()
Definition CollectionVertexBoneWeightsFacade.cpp:274
CHAOS_API void ModifyBoneWeight(int32 VertexIndex, const TArray< int32 > &VertexBoneIndices, const TArray< float > &VertexBoneWeights)
Definition CollectionVertexBoneWeightsFacade.cpp:139
const TManagedArray< int32 > & GetGeometryLODs() const
Definition CollectionVertexBoneWeightsFacade.h:116
CHAOS_API void DefineSchema()
Definition CollectionVertexBoneWeightsFacade.cpp:59
static CHAOS_API const FName SkeletalMeshAttributeName
Definition CollectionVertexBoneWeightsFacade.h:40
static CHAOS_API const FName BoneWeightsAttributeName
Definition CollectionVertexBoneWeightsFacade.h:37
CHAOS_API void ModifyKinematicWeight(int32 VertexIndex, const float KinematicWeight)
Definition CollectionVertexBoneWeightsFacade.cpp:131
int32 NumGeometry() const
Definition CollectionVertexBoneWeightsFacade.h:96
static CHAOS_API const FName KinematicWeightAttributeName
Definition CollectionVertexBoneWeightsFacade.h:38
CHAOS_API bool IsValid() const
Definition CollectionVertexBoneWeightsFacade.cpp:90
Definition Array.h:670
Definition ManagedArray.h:1099
Definition CollectionBoundsFacade.cpp:13
Definition ManagedArrayCollection.h:56
CHAOS_API int32 NumElements(FName Group) const
Definition ManagedArrayCollection.cpp:236
Definition ManagedArrayAccessor.h:20
const TManagedArray< T > & Get() const
Definition ManagedArrayAccessor.h:101
const TManagedArray< T > * Find() const
Definition ManagedArrayAccessor.h:108
Definition ObjectPtr.h:488