UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FGeometryCollection Class Reference

#include <GeometryCollection.h>

+ Inheritance diagram for FGeometryCollection:

Public Types

enum  ESimulationTypes : uint8 { FST_None = 0 , FST_Rigid = 1 , FST_Clustered = 2 , FST_Max = 3 }
 
enum  ENodeFlags : uint32 { FS_None = 0 , FS_RemoveOnFracture = 0x00000004 , FS_IgnoreCollisionInParentCluster = 0x00000008 }
 
typedef FTransformCollection Super
 
- Public Types inherited from FTransformCollection
typedef FManagedArrayCollection Super
 
- Public Types inherited from FManagedArrayCollection
typedef EManagedArrayType EArrayType
 
- Public Types inherited from FGeometryCollectionConvexPropertiesInterface
typedef FManagedArrayInterface Super
 
- Public Types inherited from FGeometryCollectionProximityPropertiesInterface
typedef FManagedArrayInterface Super
 

Public Member Functions

CHAOS_API FGeometryCollection (FGeometryCollectionDefaults InDefaults=FGeometryCollectionDefaults())
 
CHAOS_API ~FGeometryCollection ()
 
 FGeometryCollection (FGeometryCollection &)=delete
 
FGeometryCollectionoperator= (const FGeometryCollection &)=delete
 
 FGeometryCollection (FGeometryCollection &&)=default
 
FGeometryCollectionoperator= (FGeometryCollection &&)=default
 
 MANAGED_ARRAY_COLLECTION_INTERNAL (FGeometryCollection)
 
CHAOS_API void AppendCollection (const FGeometryCollection &InCollection)
 
CHAOS_API int32 AppendGeometry (const FGeometryCollection &GeometryCollection, int32 MaterialIDOffset=0, bool ReindexAllMaterials=true, const FTransform &TransformRoot=FTransform::Identity)
 
CHAOS_API bool AppendEmbeddedInstance (int32 InExemplarIndex, int32 InParentIndex, const FTransform &InTransform=FTransform::Identity)
 
CHAOS_API void ReindexExemplarIndices (TArray< int32 > &SortedRemovedIndices)
 
virtual CHAOS_API void RemoveElements (const FName &Group, const TArray< int32 > &SortedDeletionList, FProcessingParameters Params=FProcessingParameters()) override
 
CHAOS_API void Empty ()
 
virtual CHAOS_API void Reset () override
 
virtual CHAOS_API void ReorderElements (FName Group, const TArray< int32 > &NewOrder) override
 
virtual CHAOS_API void InitializeInterfaces ()
 
CHAOS_API void UpdateBoundingBox ()
 
CHAOS_API FBoxSphereBounds GetBoundingBox () const
 
CHAOS_API void UpdateGeometryVisibility (const TArray< int32 > &NodeList, bool VisibilityState)
 
CHAOS_API void ReindexMaterials ()
 
CHAOS_API TArray< FGeometryCollectionSectionBuildMeshSections (const TArray< FIntVector > &Indices, const TArray< int32 > &BaseMeshOriginalIndicesIndex, TArray< FIntVector > &RetIndices) const
 
CHAOS_API bool HasVisibleGeometry () const
 
CHAOS_API bool HasContiguousVertices () const
 
CHAOS_API bool HasContiguousFaces () const
 
CHAOS_API bool HasContiguousRenderFaces () const
 
CHAOS_API int32 NumUVLayers () const
 
CHAOS_API bool SetNumUVLayers (int32 NumLayers)
 
FORCEINLINE bool IsGeometry (int32 Element) const
 
FORCEINLINE bool IsClustered (int32 Element) const
 
FORCEINLINE bool IsRigid (int32 Element) const
 
FORCEINLINE bool IsTransform (int32 Element) const
 
FORCEINLINE void SetFlags (int32 Element, int32 InFlags)
 
FORCEINLINE void ClearFlags (int32 Element, int32 InFlags)
 
FORCEINLINE bool HasFlags (int32 Element, int32 InFlags) const
 
CHAOS_API bool IsVisible (int32 Element) const
 
CHAOS_API TArray< TArray< int32 > > ConnectionGraph ()
 
CHAOS_API void Serialize (Chaos::FChaosArchive &Ar)
 
CHAOS_API void WriteDataToHeaderFile (const FString &Name, const FString &Path)
 
CHAOS_API void WriteDataToOBJFile (const FString &Name, const FString &Path, const bool WriteTopology=true, const bool WriteAuxStructures=true)
 
virtual CHAOS_API void SetDefaults (FName Group, uint32 StartSize, uint32 NumElements) override
 
FVector2fModifyUV (int32 VertexIndex, int32 UVLayer)
 
const FVector2fGetUV (int32 VertexIndex, int32 UVLayer) const
 
TManagedArray< FVector2f > * FindUVLayer (int32 UVLayer)
 
const TManagedArray< FVector2f > * FindUVLayer (int32 UVLayer) const
 
CHAOS_API void UpdateOldAttributeNames ()
 
CHAOS_API TArray< int32TransformSelectionToGeometryIndices (const TArray< int32 > &Transforms)
 
- Public Member Functions inherited from FTransformCollection
CHAOS_API FTransformCollection ()
 
CHAOS_API ~FTransformCollection ()
 
 FTransformCollection (FTransformCollection &)=delete
 
FTransformCollectionoperator= (const FTransformCollection &)=delete
 
 FTransformCollection (FTransformCollection &&)=default
 
FTransformCollectionoperator= (FTransformCollection &&)=default
 
 MANAGED_ARRAY_COLLECTION_INTERNAL (FTransformCollection)
 
CHAOS_API void AppendCollection (const FTransformCollection &Collection)
 
CHAOS_API int32 AppendTransform (const FTransformCollection &GeometryCollection, const FTransform &TransformRoot=FTransform::Identity)
 
CHAOS_API void ParentTransforms (const int32 TransformIndex, const int32 ChildIndex)
 
CHAOS_API void ParentTransforms (const int32 TransformIndex, const TArray< int32 > &SelectedBones)
 
CHAOS_API void UnparentTransform (const int32 ChildIndex)
 
CHAOS_API void RelativeTransformation (const int32 &Index, const FTransform &LocalOffset)
 
virtual CHAOS_API void MergeElements (const FName &Group, const TArray< int32 > &SortedMergeList, const TArray< int32 > &MergeRemapIndex, FProcessingParameters Params=FProcessingParameters()) override
 
- Public Member Functions inherited from FManagedArrayCollection
CHAOS_API FManagedArrayCollection ()
 
virtual CHAOS_API ~FManagedArrayCollection ()
 
CHAOS_API FManagedArrayCollection (const FManagedArrayCollection &In)
 
CHAOS_API FManagedArrayCollectionoperator= (const FManagedArrayCollection &In)
 
CHAOS_API FManagedArrayCollection (FManagedArrayCollection &&)
 
CHAOS_API FManagedArrayCollectionoperator= (FManagedArrayCollection &&)
 
CHAOS_API bool operator== (const FManagedArrayCollection &Other) const
 
virtual bool IsAType (FName InTypeName) const
 
template<typename T >
bool IsA ()
 
template<class T >
T * Cast ()
 
template<class T >
const T * Cast () const
 
template<typename T >
TManagedArray< T > & AddAttribute (FName Name, FName Group, FConstructionParameters Parameters=FConstructionParameters())
 
template<typename T >
TManagedArray< T > * FindOrAddAttributeTyped (FName Name, FName Group, FConstructionParameters Parameters=FConstructionParameters())
 
template<class T = FManagedArrayCollection>
T * NewCopy () const
 
void CopyTo (FManagedArrayCollection *Collection, const TArray< FName > &GroupsToSkip=TArray< FName >(), TArray< TTuple< FName, FName > > AttributesToSkip=TArray< TTuple< FName, FName > >()) const
 
template<typename T >
void AddExternalAttribute (FName Name, FName Group, TManagedArray< T > &ValueIn, FConstructionParameters Parameters=FConstructionParameters())
 
CHAOS_API void AddGroup (FName Group)
 
CHAOS_API int32 NumAttributes (FName Group) const
 
CHAOS_API TArray< FNameAttributeNames (FName Group) const
 
CHAOS_API int32 AddElements (int32 NumberElements, FName Group)
 
CHAOS_API int32 InsertElements (int32 NumberElements, int32 Position, FName Group)
 
template<typename T >
TManagedArray< T > * FindAttribute (FName Name, FName Group)
 
template<typename T >
const TManagedArray< T > * FindAttribute (FName Name, FName Group) const
 
template<typename T >
TManagedArray< T > * FindAttributeTyped (FName Name, FName Group)
 
template<typename T >
const TManagedArray< T > * FindAttributeTyped (FName Name, FName Group) const
 
template<typename T >
TManagedArray< T > & ModifyAttribute (FName Name, FName Group)
 
template<typename T >
TManagedArray< T > * ModifyAttributeTyped (FName Name, FName Group)
 
template<typename T >
const TManagedArray< T > & GetAttribute (FName Name, FName Group) const
 
virtual CHAOS_API void RemoveElements (const FName &Group, int32 NumberElements, int32 Position)
 
CHAOS_API void RemoveAttribute (FName Name, FName Group)
 
CHAOS_API void RemoveGroup (FName Group)
 
CHAOS_API TArray< FNameGroupNames () const
 
bool IsEmpty () const
 
CHAOS_API bool HasAttribute (FName Name, FName Group) const
 
CHAOS_API bool HasAttributes (const TArray< FManagedType > &Types) const
 
FORCEINLINE bool HasGroup (FName Group) const
 
CHAOS_API EArrayType GetAttributeType (FName Name, FName Group) const
 
CHAOS_API bool IsAttributeDirty (FName Name, FName Group) const
 
CHAOS_API bool IsAttributePersistent (FName Name, FName Group) const
 
CHAOS_API void SetDependency (FName Name, FName Group, FName DependencyGroup, bool bAllowCircularDependency=false)
 
CHAOS_API FName GetDependency (FName Name, FName Group) const
 
CHAOS_API void RemoveDependencyFor (FName Group)
 
CHAOS_API void CopyAttribute (const FManagedArrayCollection &InCollection, FName Name, FName Group)
 
CHAOS_API void CopyAttribute (const FManagedArrayCollection &InCollection, FName SrcName, FName DestName, FName Group)
 
CHAOS_API void CopyAttribute (const FManagedArrayCollection &InCollection, FName SrcName, FName DestName, FName SrcGroup, FName DstGroup)
 
CHAOS_API void CopyMatchingAttributesFrom (const FManagedArrayCollection &InCollection, const TMap< FName, TSet< FName > > *SkipList=nullptr)
 
CHAOS_API void CopyMatchingAttributesFrom (const FManagedArrayCollection &FromCollection, const TArrayView< const FAttributeAndGroupId > SkipList)
 
CHAOS_API int32 NumElements (FName Group) const
 
CHAOS_API void Resize (int32 Size, FName Group)
 
CHAOS_API void Reserve (int32 Size, FName Group)
 
CHAOS_API void EmptyGroup (FName Group)
 
void MakeDirty ()
 
void MakeClean ()
 
bool IsDirty () const
 
CHAOS_API bool Serialize (FArchive &Ar)
 
CHAOS_API bool IsConnected (FName StartingNode, FName TargetNode)
 
CHAOS_API FString ToString () const
 
CHAOS_API SIZE_T GetAllocatedSize () const
 
CHAOS_API void GetElementSizeInfoForGroups (TArray< TPair< FName, SIZE_T > > &OutSizeInfo) const
 
- Public Member Functions inherited from FGeometryCollectionConvexPropertiesInterface
CHAOS_API FGeometryCollectionConvexPropertiesInterface (FManagedArrayCollection *InGeometryCollection)
 
CHAOS_API void InitializeInterface () override
 
CHAOS_API void CleanInterfaceForCook () override
 
CHAOS_API void RemoveInterfaceAttributes () override
 
CHAOS_API FConvexCreationProperties GetConvexProperties (int TransformGroupIndex=INDEX_NONE) const
 
CHAOS_API void SetConvexProperties (const FConvexCreationProperties &, int TransformGroupIndex=INDEX_NONE)
 
- Public Member Functions inherited from FManagedArrayInterface
 FManagedArrayInterface ()
 
 FManagedArrayInterface (FManagedArrayCollection *InManagedArray)
 
- Public Member Functions inherited from FGeometryCollectionProximityPropertiesInterface
CHAOS_API FGeometryCollectionProximityPropertiesInterface (FGeometryCollection *InGeometryCollection)
 
CHAOS_API void InitializeInterface () override
 
CHAOS_API void CleanInterfaceForCook () override
 
CHAOS_API void RemoveInterfaceAttributes () override
 
CHAOS_API FProximityProperties GetProximityProperties () const
 
CHAOS_API void SetProximityProperties (const FProximityProperties &)
 

Static Public Member Functions

static CHAOS_API bool AreCollisionParticlesEnabled ()
 
static CHAOS_API FGeometryCollectionNewGeometryCollection (const TArray< float > &RawVertexArray, const TArray< int32 > &RawIndicesArray, bool ReverseVertexOrder=true, FGeometryCollectionDefaults InDefaults=FGeometryCollectionDefaults())
 
static CHAOS_API void Init (FGeometryCollection *Collection, const TArray< float > &RawVertexArray, const TArray< int32 > &RawIndicesArray, bool ReverseVertexOrder=true)
 
static CHAOS_API void DefineGeometrySchema (FManagedArrayCollection &)
 
static CHAOS_API FGeometryCollectionNewGeometryCollection (const TArray< float > &RawVertexArray, const TArray< int32 > &RawIndicesArray, const TArray< int32 > &RawBoneMapArray, const TArray< FTransform > &RawTransformArray, const TManagedArray< int32 > &RawLevelArray, const TManagedArray< int32 > &RawParentArray, const TManagedArray< TSet< int32 > > &RawChildrenArray, const TManagedArray< int32 > &RawSimulationTypeArray, const TManagedArray< int32 > &RawStatusFlagsArray, FGeometryCollectionDefaults InDefaults=FGeometryCollectionDefaults())
 
static CHAOS_API void UpdateBoundingBox (FManagedArrayCollection &, bool bSkipCheck=false)
 
static CHAOS_API void ReindexMaterials (FManagedArrayCollection &)
 
- Static Public Member Functions inherited from FTransformCollection
static CHAOS_API void DefineTransformSchema (FManagedArrayCollection &)
 
static CHAOS_API FTransformCollection SingleTransform (const FTransform &TransformRoot=FTransform::Identity)
 
- Static Public Member Functions inherited from FManagedArrayCollection
static FName StaticType ()
 

Public Attributes

FGeometryCollectionDefaults Defaults
 
TManagedArray< int32TransformToGeometryIndex
 
TManagedArray< int32SimulationType
 
TManagedArray< int32StatusFlags
 
TManagedArray< int32InitialDynamicState
 
TManagedArray< int32ExemplarIndex
 
TManagedArray< FVector3fVertex
 
TManagedArray< FLinearColorColor
 
TManagedArray< FVector3fTangentU
 
TManagedArray< FVector3fTangentV
 
TManagedArray< FVector3fNormal
 
TManagedArray< int32BoneMap
 
TManagedArray< FIntVectorIndices
 
TManagedArray< boolVisible
 
TManagedArray< int32MaterialIndex
 
TManagedArray< int32MaterialID
 
TManagedArray< boolInternal
 
TManagedArray< int32TransformIndex
 
TManagedArray< FBoxBoundingBox
 
TManagedArray< floatInnerRadius
 
TManagedArray< floatOuterRadius
 
TManagedArray< int32VertexStart
 
TManagedArray< int32VertexCount
 
TManagedArray< int32FaceStart
 
TManagedArray< int32FaceCount
 
TManagedArray< FGeometryCollectionSectionSections
 
- Public Attributes inherited from FTransformCollection
TManagedArray< FTransform3fTransform
 
TManagedArray< FString > BoneName
 
TManagedArray< FLinearColorBoneColor
 
TManagedArray< int32Parent
 
TManagedArray< TSet< int32 > > Children
 
- Public Attributes inherited from FManagedArrayCollection
friend FSimulationProperties
 
- Public Attributes inherited from FGeometryCollectionConvexPropertiesInterface
FManagedArrayCollectionManagedCollection
 
- Public Attributes inherited from FGeometryCollectionProximityPropertiesInterface
FManagedArrayCollectionManagedCollection
 

Static Public Attributes

static CHAOS_API const FName VerticesGroup = "Vertices"
 
static CHAOS_API const FName FacesGroup = "Faces"
 
static CHAOS_API const FName GeometryGroup = "Geometry"
 
static CHAOS_API const FName BreakingGroup = "Breaking"
 
static CHAOS_API const FName MaterialGroup = "Material"
 
static CHAOS_API const FName SimulatableParticlesAttribute
 
static CHAOS_API const FName SimulationTypeAttribute
 
static CHAOS_API const FName StatusFlagsAttribute
 
static CHAOS_API const FName ExternalCollisionsAttribute
 
static CHAOS_API const FName ColorAttribute
 
static CHAOS_API const FName BoneColorAttribute
 
static CHAOS_API const FName TransformToGeometryIndexAttribute
 
static CHAOS_API const FName BoundingBoxAttribute
 
static CHAOS_API const FName TransformIndexAttribute
 
static CHAOS_API const FName VertexStartAttribute
 
static CHAOS_API const FName VertexCountAttribute
 
static CHAOS_API const FName InnerRadiusAttribute
 
static CHAOS_API const FName OuterRadiusAttribute
 
static CHAOS_API const FName FaceStartAttribute
 
static CHAOS_API const FName FaceCountAttribute
 
static CHAOS_API const FName FaceIndicesAttribute
 
static CHAOS_API const FName FaceVisibleAttribute
 
static CHAOS_API const FName MaterialIndexAttribute
 
static CHAOS_API const FName MaterialIDAttribute
 
static CHAOS_API const FName VertexPositionAttribute
 
static CHAOS_API const FName VertexNormalAttribute
 
static CHAOS_API const FName VertexTangentUAttribute
 
static CHAOS_API const FName VertexTangentVAttribute
 
static CHAOS_API const FName VertexBoneMapAttribute
 
- Static Public Attributes inherited from FTransformCollection
static CHAOS_API const FName TransformGroup = "Transform"
 
static CHAOS_API const FName TransformAttribute = "Transform"
 
static CHAOS_API const FName ParentAttribute = "Parent"
 
static CHAOS_API const FName ChildrenAttribute = "Children"
 
static CHAOS_API const FName ParticlesAttribute = "Particles"
 
static CHAOS_API const FName LevelAttribute = "Level"
 
static CHAOS_API const FName ConvexGroup = "Convex"
 
static CHAOS_API const FName ConvexHullAttribute = "ConvexHull"
 
static CHAOS_API const FName BoneNameAttribute = "BoneName"
 
static CHAOS_API const FName BoneColorAttribute = "BoneColor"
 
static CHAOS_API const FName BoneHierarchyAttribute = "BoneHierarchy"
 
static CHAOS_API const FName GeometryIndexAttribute = "TransformToGeometryIndex"
 
- Static Public Attributes inherited from FManagedArrayCollection
static CHAOS_API int8 Invalid = INDEX_NONE
 
- Static Public Attributes inherited from FGeometryCollectionConvexPropertiesInterface
static CHAOS_API const FName ConvexPropertiesGroup = "ConvexProperties"
 
static CHAOS_API const FName ConvexIndexAttribute = "TransformGroupIndex"
 
static CHAOS_API const FName ConvexEnable = "Enable"
 
static CHAOS_API const FName ConvexFractionRemoveAttribute = "FractionRemove"
 
static CHAOS_API const FName ConvexSimplificationThresholdAttribute = "SimplificationThreshold"
 
static CHAOS_API const FName ConvexCanExceedFractionAttribute = "CanExceedFraction"
 
static CHAOS_API const FName ConvexRemoveOverlapsMethodAttribute = "RemoveOverlapsMethod"
 
static CHAOS_API const FName ConvexRemoveOverlapsShrinkAttribute = "RemoveOverlapsShrinkPercent"
 
- Static Public Attributes inherited from FGeometryCollectionProximityPropertiesInterface
static CHAOS_API const FName ProximityPropertiesGroup = "ProximityProperties"
 
static CHAOS_API const FName ProximityDetectionMethod = "DetectionMethod"
 
static CHAOS_API const FName ProximityDistanceThreshold = "DistanceThreshold"
 
static CHAOS_API const FName ProximityAsConnectionGraph = "AsConnectionGraph"
 
static CHAOS_API const FName ProximityConnectionGraphContactAreaMethod = "ConnectionGraphContactAmount"
 
static CHAOS_API const FName ProximityRequireContactAmount = "RequireContactAmount"
 
static CHAOS_API const FName ProximityContactMethod = "ContactMethod"
 

Protected Member Functions

virtual void MatchOptionalDefaultAttributes (const FManagedArrayCollection &InCollection) override
 
CHAOS_API void Construct ()
 
CHAOS_API void RemoveGeometryElements (const TArray< int32 > &SortedGeometryIndicesToDelete)
 
CHAOS_API bool BuildFaceToGeometryMapping (bool InSaved=false)
 
CHAOS_API void UpdateFaceGroupElements ()
 
CHAOS_API bool BuildVertexToGeometryMapping (bool InSaved=false)
 
CHAOS_API void UpdateVerticesGroupElements ()
 
CHAOS_API void ReorderGeometryElements (const TArray< int32 > &NewOrder)
 
CHAOS_API void ReorderTransformElements (const TArray< int32 > &NewOrder)
 
constexpr int32 GetLatestVersionNumber () const
 
virtual CHAOS_API void Append (const FManagedArrayCollection &InCollection) override
 
- Protected Member Functions inherited from FTransformCollection
CHAOS_API void Construct ()
 
- Protected Member Functions inherited from FManagedArrayCollection
CHAOS_API void SyncGroupSizeFrom (const FManagedArrayCollection &InCollection, FName Group)
 
CHAOS_API void SyncGroupSizeFrom (const FManagedArrayCollection &InCollection, FName SrcGroup, FName DstGroup)
 

Additional Inherited Members

- Protected Attributes inherited from FManagedArrayCollection
int32 Version
 
- Protected Attributes inherited from FManagedArrayInterface
FManagedArrayCollectionManagedCollection
 

Detailed Description

Member Typedef Documentation

◆ Super

Member Enumeration Documentation

◆ ENodeFlags

Enumerator
FS_None 
FS_RemoveOnFracture 
FS_IgnoreCollisionInParentCluster 

◆ ESimulationTypes

Enumerator
FST_None 
FST_Rigid 
FST_Clustered 
FST_Max 

Constructor & Destructor Documentation

◆ FGeometryCollection() [1/3]

FGeometryCollection::FGeometryCollection ( FGeometryCollectionDefaults  InDefaults = FGeometryCollectionDefaults())

◆ ~FGeometryCollection()

FGeometryCollection::~FGeometryCollection ( )
default

◆ FGeometryCollection() [2/3]

FGeometryCollection::FGeometryCollection ( FGeometryCollection )
delete

◆ FGeometryCollection() [3/3]

FGeometryCollection::FGeometryCollection ( FGeometryCollection &&  )
default

Member Function Documentation

◆ Append()

void FGeometryCollection::Append ( const FManagedArrayCollection Collection)
overrideprotectedvirtual

Append Collection and reindex dependencies on this collection.

Parameters
InCollection: FManagedArrayCollection to add.

Reimplemented from FTransformCollection.

◆ AppendCollection()

void FGeometryCollection::AppendCollection ( const FGeometryCollection InCollection)

◆ AppendEmbeddedInstance()

bool FGeometryCollection::AppendEmbeddedInstance ( int32  InExemplarIndex,
int32  InParentIndex,
const FTransform InTransform = FTransform::Identity 
)

Append single embedded geometry. Returns true if the operation succeeds.

◆ AppendGeometry()

int32 FGeometryCollection::AppendGeometry ( const FGeometryCollection GeometryCollection,
int32  MaterialIDOffset = 0,
bool  ReindexAllMaterials = true,
const FTransform TransformRoot = FTransform::Identity 
)

Append a single geometric object to a FGeometryCollection

◆ AreCollisionParticlesEnabled()

bool FGeometryCollection::AreCollisionParticlesEnabled ( )
static

◆ BuildFaceToGeometryMapping()

bool FGeometryCollection::BuildFaceToGeometryMapping ( bool  InSaved = false)
protected

Update Face Attributes based on changes in the group.

◆ BuildMeshSections()

TArray< FGeometryCollectionSection > FGeometryCollection::BuildMeshSections ( const TArray< FIntVector > &  Indices,
const TArray< int32 > &  BaseMeshOriginalIndicesIndex,
TArray< FIntVector > &  RetIndices 
) const

Builds mesh sections for a given index buffer that could be a subset. Currently, this call assumes that the indices are ordered by MaterialID #todo(dmp): Refactor this and ReindexMaterials to share code

◆ BuildVertexToGeometryMapping()

bool FGeometryCollection::BuildVertexToGeometryMapping ( bool  InSaved = false)
protected

Build and Update Vertex Attributes based on changes in the group.

◆ ClearFlags()

FORCEINLINE void FGeometryCollection::ClearFlags ( int32  Element,
int32  InFlags 
)
inline

◆ ConnectionGraph()

TArray< TArray< int32 > > FGeometryCollection::ConnectionGraph ( )

Connection of leaf geometry

◆ Construct()

void FGeometryCollection::Construct ( )
protected

◆ DefineGeometrySchema()

void FGeometryCollection::DefineGeometrySchema ( FManagedArrayCollection InCollection)
static

◆ Empty()

void FGeometryCollection::Empty ( )

Empty each managed array in each group in order to reset the collection to an initial (empty) state.

◆ FindUVLayer() [1/2]

TManagedArray< FVector2f > * FGeometryCollection::FindUVLayer ( int32  UVLayer)
inline

◆ FindUVLayer() [2/2]

const TManagedArray< FVector2f > * FGeometryCollection::FindUVLayer ( int32  UVLayer) const
inline

◆ GetBoundingBox()

FBoxSphereBounds FGeometryCollection::GetBoundingBox ( ) const

GetBoundingBox

◆ GetLatestVersionNumber()

constexpr int32 FGeometryCollection::GetLatestVersionNumber ( ) const
inlineconstexprprotected
Returns
the latest Version number used in serialization

◆ GetUV()

const FVector2f & FGeometryCollection::GetUV ( int32  VertexIndex,
int32  UVLayer 
) const
inline

◆ HasContiguousFaces()

bool FGeometryCollection::HasContiguousFaces ( ) const

Returns true if the faces are contiguous

◆ HasContiguousRenderFaces()

bool FGeometryCollection::HasContiguousRenderFaces ( ) const

Returns true if the render faces are contiguous

◆ HasContiguousVertices()

bool FGeometryCollection::HasContiguousVertices ( ) const

Returns true if the vertices are contiguous

◆ HasFlags()

FORCEINLINE bool FGeometryCollection::HasFlags ( int32  Element,
int32  InFlags 
) const
inline

◆ HasVisibleGeometry()

bool FGeometryCollection::HasVisibleGeometry ( ) const

Returns true if there is anything to render

◆ Init()

void FGeometryCollection::Init ( FGeometryCollection Collection,
const TArray< float > &  RawVertexArray,
const TArray< int32 > &  RawIndicesArray,
bool  ReverseVertexOrder = true 
)
static

◆ InitializeInterfaces()

void FGeometryCollection::InitializeInterfaces ( )
virtual

◆ IsClustered()

FORCEINLINE bool FGeometryCollection::IsClustered ( int32  Element) const
inline

◆ IsGeometry()

FORCEINLINE bool FGeometryCollection::IsGeometry ( int32  Element) const
inline

◆ IsRigid()

FORCEINLINE bool FGeometryCollection::IsRigid ( int32  Element) const
inline

◆ IsTransform()

FORCEINLINE bool FGeometryCollection::IsTransform ( int32  Element) const
inline

◆ IsVisible()

bool FGeometryCollection::IsVisible ( int32  Element) const

Return true if the Element contains any visible faces.

◆ MANAGED_ARRAY_COLLECTION_INTERNAL()

FGeometryCollection::MANAGED_ARRAY_COLLECTION_INTERNAL ( FGeometryCollection  )

◆ MatchOptionalDefaultAttributes()

virtual void FGeometryCollection::MatchOptionalDefaultAttributes ( const FManagedArrayCollection InCollection)
inlineoverrideprotectedvirtual

Virtual helper function called by CopyMatchingAttributesFrom; adds attributes 'default, but optional' attributes that are present in InCollection This is used by FGeometryCollection to make sure all UV layers are copied over by CopyMatchingAttributesFrom()

Reimplemented from FManagedArrayCollection.

◆ ModifyUV()

FVector2f & FGeometryCollection::ModifyUV ( int32  VertexIndex,
int32  UVLayer 
)
inline

◆ NewGeometryCollection() [1/2]

FGeometryCollection * FGeometryCollection::NewGeometryCollection ( const TArray< float > &  RawVertexArray,
const TArray< int32 > &  RawIndicesArray,
bool  ReverseVertexOrder = true,
FGeometryCollectionDefaults  InDefaults = FGeometryCollectionDefaults() 
)
static

Create a GeometryCollection from Vertex and Indices arrays

◆ NewGeometryCollection() [2/2]

FGeometryCollection * FGeometryCollection::NewGeometryCollection ( const TArray< float > &  RawVertexArray,
const TArray< int32 > &  RawIndicesArray,
const TArray< int32 > &  RawBoneMapArray,
const TArray< FTransform > &  RawTransformArray,
const TManagedArray< int32 > &  RawLevelArray,
const TManagedArray< int32 > &  RawParentArray,
const TManagedArray< TSet< int32 > > &  RawChildrenArray,
const TManagedArray< int32 > &  RawSimulationTypeArray,
const TManagedArray< int32 > &  RawStatusFlagsArray,
FGeometryCollectionDefaults  InDefaults = FGeometryCollectionDefaults() 
)
static

Create a GeometryCollection from Vertex, Indices, BoneMap, Transform, BoneHierarchy arrays

◆ NumUVLayers()

int32 FGeometryCollection::NumUVLayers ( ) const

Returns number of UV layers represented by UV array. A Valid Geometry Collection has the same count for every vertex

◆ operator=() [1/2]

FGeometryCollection & FGeometryCollection::operator= ( const FGeometryCollection )
delete

◆ operator=() [2/2]

FGeometryCollection & FGeometryCollection::operator= ( FGeometryCollection &&  )
default

◆ ReindexExemplarIndices()

void FGeometryCollection::ReindexExemplarIndices ( TArray< int32 > &  SortedRemovedIndices)

Reindex exemplar indices to reflect removed exemplars.

◆ ReindexMaterials() [1/2]

void FGeometryCollection::ReindexMaterials ( )

Reindex sections to keep polys with same materials together to reduce the number of draw calls

◆ ReindexMaterials() [2/2]

void FGeometryCollection::ReindexMaterials ( FManagedArrayCollection InCollection)
static

◆ RemoveElements()

void FGeometryCollection::RemoveElements ( const FName Group,
const TArray< int32 > &  SortedDeletionList,
FProcessingParameters  Params = FProcessingParameters() 
)
overridevirtual

Remove Geometry and update dependent elements

Reimplemented from FTransformCollection.

◆ RemoveGeometryElements()

void FGeometryCollection::RemoveGeometryElements ( const TArray< int32 > &  SortedGeometryIndicesToDelete)
protected

Remove Geometry elements i.e. verts, faces, etc, leaving the transform nodes intact

◆ ReorderElements()

void FGeometryCollection::ReorderElements ( FName  Group,
const TArray< int32 > &  NewOrder 
)
overridevirtual

Reorders elements in a group. NewOrder must be the same length as the group.

Reimplemented from FManagedArrayCollection.

◆ ReorderGeometryElements()

void FGeometryCollection::ReorderGeometryElements ( const TArray< int32 > &  NewOrder)
protected

Reorder geometry elements. i.e. verts faces etc are reordered so we can get contiguous memory access

◆ ReorderTransformElements()

void FGeometryCollection::ReorderTransformElements ( const TArray< int32 > &  NewOrder)
protected

Reorder geometry elements based on the new transform order. i.e. verts faces etc are reordered so we can get contiguous memory access

◆ Reset()

void FGeometryCollection::Reset ( )
overridevirtual

reset internal state

Reimplemented from FTransformCollection.

◆ Serialize()

void FGeometryCollection::Serialize ( Chaos::FChaosArchive Ar)
virtual

Serialize

Reimplemented from FTransformCollection.

◆ SetDefaults()

void FGeometryCollection::SetDefaults ( FName  Group,
uint32  StartSize,
uint32  NumElements 
)
overridevirtual

Reimplemented from FManagedArrayCollection.

◆ SetFlags()

FORCEINLINE void FGeometryCollection::SetFlags ( int32  Element,
int32  InFlags 
)
inline

◆ SetNumUVLayers()

bool FGeometryCollection::SetNumUVLayers ( int32  NumLayers)

Update a geometry collection to have the target number of UV layers (must be in the range [1, MAX_UV_LAYERS))

◆ TransformSelectionToGeometryIndices()

TArray< int32 > FGeometryCollection::TransformSelectionToGeometryIndices ( const TArray< int32 > &  Transforms)

◆ UpdateBoundingBox() [1/2]

void FGeometryCollection::UpdateBoundingBox ( )

Update bounding box entries for the geometry

◆ UpdateBoundingBox() [2/2]

void FGeometryCollection::UpdateBoundingBox ( FManagedArrayCollection InCollection,
bool  bSkipCheck = false 
)
static

◆ UpdateFaceGroupElements()

void FGeometryCollection::UpdateFaceGroupElements ( )
protected

◆ UpdateGeometryVisibility()

void FGeometryCollection::UpdateGeometryVisibility ( const TArray< int32 > &  NodeList,
bool  VisibilityState 
)

Update the visibility of specified geometry nodes

◆ UpdateOldAttributeNames()

void FGeometryCollection::UpdateOldAttributeNames ( )

◆ UpdateVerticesGroupElements()

void FGeometryCollection::UpdateVerticesGroupElements ( )
protected

◆ WriteDataToHeaderFile()

void FGeometryCollection::WriteDataToHeaderFile ( const FString &  Name,
const FString &  Path 
)

◆ WriteDataToOBJFile()

void FGeometryCollection::WriteDataToOBJFile ( const FString &  Name,
const FString &  Path,
const bool  WriteTopology = true,
const bool  WriteAuxStructures = true 
)

Member Data Documentation

◆ BoneColorAttribute

const FName FGeometryCollection::BoneColorAttribute
static

◆ BoneMap

TManagedArray<int32> FGeometryCollection::BoneMap

◆ BoundingBox

TManagedArray<FBox> FGeometryCollection::BoundingBox

◆ BoundingBoxAttribute

const FName FGeometryCollection::BoundingBoxAttribute
static

◆ BreakingGroup

const FName FGeometryCollection::BreakingGroup = "Breaking"
static

◆ Color

TManagedArray<FLinearColor> FGeometryCollection::Color

◆ ColorAttribute

const FName FGeometryCollection::ColorAttribute
static

◆ Defaults

FGeometryCollectionDefaults FGeometryCollection::Defaults

◆ ExemplarIndex

TManagedArray<int32> FGeometryCollection::ExemplarIndex

◆ ExternalCollisionsAttribute

const FName FGeometryCollection::ExternalCollisionsAttribute
static

◆ FaceCount

TManagedArray<int32> FGeometryCollection::FaceCount

◆ FaceCountAttribute

const FName FGeometryCollection::FaceCountAttribute
static

◆ FaceIndicesAttribute

const FName FGeometryCollection::FaceIndicesAttribute
static

◆ FacesGroup

const FName FGeometryCollection::FacesGroup = "Faces"
static

◆ FaceStart

TManagedArray<int32> FGeometryCollection::FaceStart

◆ FaceStartAttribute

const FName FGeometryCollection::FaceStartAttribute
static

◆ FaceVisibleAttribute

const FName FGeometryCollection::FaceVisibleAttribute
static

◆ GeometryGroup

const FName FGeometryCollection::GeometryGroup = "Geometry"
static

◆ Indices

TManagedArray<FIntVector> FGeometryCollection::Indices

◆ InitialDynamicState

TManagedArray<int32> FGeometryCollection::InitialDynamicState

◆ InnerRadius

TManagedArray<float> FGeometryCollection::InnerRadius

◆ InnerRadiusAttribute

const FName FGeometryCollection::InnerRadiusAttribute
static

◆ Internal

TManagedArray<bool> FGeometryCollection::Internal

◆ MaterialGroup

const FName FGeometryCollection::MaterialGroup = "Material"
static

◆ MaterialID

TManagedArray<int32> FGeometryCollection::MaterialID

◆ MaterialIDAttribute

const FName FGeometryCollection::MaterialIDAttribute
static

◆ MaterialIndex

TManagedArray<int32> FGeometryCollection::MaterialIndex

◆ MaterialIndexAttribute

const FName FGeometryCollection::MaterialIndexAttribute
static

◆ Normal

TManagedArray<FVector3f> FGeometryCollection::Normal

◆ OuterRadius

TManagedArray<float> FGeometryCollection::OuterRadius

◆ OuterRadiusAttribute

const FName FGeometryCollection::OuterRadiusAttribute
static

◆ Sections

TManagedArray<FGeometryCollectionSection> FGeometryCollection::Sections

◆ SimulatableParticlesAttribute

const FName FGeometryCollection::SimulatableParticlesAttribute
static

◆ SimulationType

TManagedArray<int32> FGeometryCollection::SimulationType

◆ SimulationTypeAttribute

const FName FGeometryCollection::SimulationTypeAttribute
static

◆ StatusFlags

TManagedArray<int32> FGeometryCollection::StatusFlags

◆ StatusFlagsAttribute

const FName FGeometryCollection::StatusFlagsAttribute
static

◆ TangentU

TManagedArray<FVector3f> FGeometryCollection::TangentU

◆ TangentV

TManagedArray<FVector3f> FGeometryCollection::TangentV

◆ TransformIndex

TManagedArray<int32> FGeometryCollection::TransformIndex

◆ TransformIndexAttribute

const FName FGeometryCollection::TransformIndexAttribute
static

◆ TransformToGeometryIndex

TManagedArray<int32> FGeometryCollection::TransformToGeometryIndex

◆ TransformToGeometryIndexAttribute

const FName FGeometryCollection::TransformToGeometryIndexAttribute
static

◆ Vertex

TManagedArray<FVector3f> FGeometryCollection::Vertex

◆ VertexBoneMapAttribute

const FName FGeometryCollection::VertexBoneMapAttribute
static

◆ VertexCount

TManagedArray<int32> FGeometryCollection::VertexCount

◆ VertexCountAttribute

const FName FGeometryCollection::VertexCountAttribute
static

◆ VertexNormalAttribute

const FName FGeometryCollection::VertexNormalAttribute
static

◆ VertexPositionAttribute

const FName FGeometryCollection::VertexPositionAttribute
static

◆ VertexStart

TManagedArray<int32> FGeometryCollection::VertexStart

◆ VertexStartAttribute

const FName FGeometryCollection::VertexStartAttribute
static

◆ VertexTangentUAttribute

const FName FGeometryCollection::VertexTangentUAttribute
static

◆ VertexTangentVAttribute

const FName FGeometryCollection::VertexTangentVAttribute
static

◆ VerticesGroup

const FName FGeometryCollection::VerticesGroup = "Vertices"
static

◆ Visible

TManagedArray<bool> FGeometryCollection::Visible

The documentation for this class was generated from the following files: