|
| static CHAOS_API int32 | ClusterBonesUnderNewNode (FGeometryCollection *GeometryCollection, const int32 InsertAtIndex, const TArray< int32 > &SelectedBones, bool CalcNewLocalTransform, bool Validate=true) |
| |
| static CHAOS_API int32 | ClusterBonesUnderNewNodeWithParent (FGeometryCollection *GeometryCollection, const int32 ParentOfNewNode, const TArray< int32 > &SelectedBones, bool CalcNewLocalTransform, bool Validate=true) |
| |
| static CHAOS_API void | ClusterAllBonesUnderNewRoot (FGeometryCollection *GeometryCollection, FName RootName=NAME_None, bool bUpdateChildBoneNames=true) |
| |
| static CHAOS_API void | ClusterBonesUnderExistingNode (FGeometryCollection *GeometryCollection, const TArray< int32 > &SourceElements) |
| |
| static CHAOS_API void | ClusterBonesUnderExistingNode (FGeometryCollection *GeometryCollection, int32 MergeNode, const TArray< int32 > &SourceElements) |
| |
| static CHAOS_API void | ClusterBonesByContext (FGeometryCollection *GeometryCollection, int32 MergeNode, const TArray< int32 > &SourceElementsIn) |
| |
| static CHAOS_API bool | ContainsMultipleRootBones (FGeometryCollection *GeometryCollection) |
| |
| static CHAOS_API void | GetRootBones (const FGeometryCollection *GeometryCollection, TArray< int32 > &RootBonesOut) |
| |
| static CHAOS_API bool | IsARootBone (const FGeometryCollection *GeometryCollection, int32 InBone) |
| |
| static CHAOS_API void | GetClusteredBonesWithCommonParent (const FGeometryCollection *GeometryCollection, int32 SourceBone, TArray< int32 > &BonesOut) |
| |
| static CHAOS_API void | GetBonesToLevel (const FGeometryCollection *GeometryCollection, int32 Level, TArray< int32 > &BonesOut, bool bOnlyClusteredOrRigid=true, bool bSkipFiltered=true) |
| |
| static CHAOS_API void | GetChildBonesFromLevel (const FGeometryCollection *GeometryCollection, int32 SourceBone, int32 Level, TArray< int32 > &BonesOut) |
| |
| static CHAOS_API void | GetChildBonesAtLevel (const FGeometryCollection *GeometryCollection, int32 SourceBone, int32 Level, TArray< int32 > &BonesOut) |
| |
| static CHAOS_API void | RecursiveAddAllChildren (const TManagedArray< TSet< int32 > > &Children, int32 SourceBone, TArray< int32 > &BonesOut) |
| |
| static CHAOS_API int32 | GetParentOfBoneAtSpecifiedLevel (const FGeometryCollection *GeometryCollection, int32 SourceBone, int32 Level, bool bSkipFiltered=false) |
| |
| static CHAOS_API void | RecursivelyUpdateChildBoneNames (int32 BoneIndex, const TManagedArray< TSet< int32 > > &Children, TManagedArray< FString > &BoneNames, bool OverrideBoneNames=false) |
| |
| static CHAOS_API void | UpdateHierarchyLevelOfChildren (FGeometryCollection *GeometryCollection, int32 ParentElement) |
| |
| static CHAOS_API void | UpdateHierarchyLevelOfChildren (FManagedArrayCollection &InCollection, int32 ParentElement) |
| |
| static CHAOS_API void | CollapseLevelHierarchy (int8 Level, FGeometryCollection *GeometryCollection) |
| |
| static CHAOS_API void | CollapseSelectedHierarchy (int8 Level, const TArray< int32 > &SelectedBones, FGeometryCollection *GeometryCollection) |
| |
| static CHAOS_API void | ClusterBonesUnderExistingRoot (FGeometryCollection *GeometryCollection, const TArray< int32 > &SourceElements) |
| |
| static CHAOS_API void | CollapseHierarchyOneLevel (FGeometryCollection *GeometryCollection, TArray< int32 > &SourceElements) |
| |
| static CHAOS_API bool | NodeExistsOnThisBranch (const FGeometryCollection *GeometryCollection, int32 TestNode, int32 TreeElement) |
| |
| static CHAOS_API void | RenameBone (FGeometryCollection *GeometryCollection, int32 BoneIndex, const FString &NewName, bool UpdateChildren=true) |
| |
| static CHAOS_API void | GetLeafBones (const FManagedArrayCollection *GeometryCollection, int BoneIndex, bool bOnlyRigids, TArray< int32 > &LeafBonesOut) |
| |
| static CHAOS_API void | MoveUpOneHierarchyLevel (FGeometryCollection *GeometryCollection, const TArray< int32 > &SelectedBones) |
| |
| static CHAOS_API int32 | FindLowestCommonAncestor (const FManagedArrayCollection *GeometryCollection, const TArray< int32 > &SelectedBones) |
| |
| static CHAOS_API bool | RemoveDanglingClusters (FGeometryCollection *GeometryCollection) |
| |
| static CHAOS_API bool | RemoveClustersOfOnlyOneChild (FGeometryCollection *GeometryCollection) |
| |
| static CHAOS_API void | ValidateResults (FGeometryCollection *GeometryCollection) |
| |
| static CHAOS_API int32 | PickBestNodeToMergeTo (const FManagedArrayCollection *Collection, const TArray< int32 > &SourceElements) |
| |
Creates a cluster in the node hierarchy by re-parenting the Selected Bones off a new node in the hierarchy It makes more sense to think that the Selected Bones are all at the same level in the hierarchy however it will re-parent multiple levels at the InsertAtIndex location bone
e.g. if you have a flat chunk hierarchy after performing Voronoi fracturing L0 Root
|
| | | | L1 A B C D
Cluster A & B at insertion point A, results in L0 Root
|
| | | L1 E C D
|
| | L2 A B
Node E has no geometry of its own, only a transform by which to control A & B as a single unit
- Returns
- Index of the New Node