Navigation
API > API/Runtime > API/Runtime/GeometryCore > API/Runtime/GeometryCore/DynamicMesh
Inheritance Hierarchy
- TDynamicAttributeSetBase
- FDynamicMeshAttributeSet
References
| Module | GeometryCore |
| Header | /Engine/Source/Runtime/GeometryCore/Public/DynamicMesh/DynamicMeshAttributeSet.h |
| Include | #include "DynamicMesh/DynamicMeshAttributeSet.h" |
Syntax
class FDynamicMeshAttributeSet : public UE::Geometry::TDynamicAttributeSetBase< FDynamicMesh3 >
Remarks
FDynamicMeshAttributeSet manages a set of extended attributes for a FDynamicMesh3. This includes UV and Normal overlays, etc.
Currently the default is to always have one UV layer and one Normal layer, but the number of layers can be requested on construction.
Variables
| Type | Name | Description | |
|---|---|---|---|
| TUniquePtr< FDynamicMeshBoneColorAttribute > | BoneColorAttrib | ||
| TUniquePtr< FDynamicMeshBoneNameAttribute > | BoneNameAttrib | Bone attributes. | |
| TUniquePtr< FDynamicMeshBoneParentIndexAttribute > | BoneParentIndexAttrib | ||
| TUniquePtr< FDynamicMeshBonePoseAttribute > | BonePoseAttrib | ||
| TUniquePtr< FDynamicMeshColorOverlay > | ColorLayer | ||
| GenericAttributesMap | GenericAttributes | ||
| TUniquePtr< FDynamicMeshMaterialAttribute > | MaterialIDAttrib | ||
| TIndirectArray< FDynamicMeshNormalOverlay > | NormalLayers | ||
| FDynamicMesh3 * | ParentMesh | Parent mesh of this attribute set | |
| TIndirectArray< FDynamicMeshPolygroupAttribute > | PolygroupLayers | ||
| SkinWeightAttributesMap | SkinWeightAttributes | ||
| TIndirectArray< FDynamicMeshUVOverlay > | UVLayers | ||
| TIndirectArray< FDynamicMeshWeightAttribute > | WeightLayers |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FDynamicMeshAttributeSet
(
FDynamicMesh3* Mesh |
|||
FDynamicMeshAttributeSet
(
FDynamicMesh3* Mesh, |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | AppendBonesUnique
(
const FDynamicMeshAttributeSet& Other |
Append bone attributes from another set. | |
| void | AttachAttribute
(
FName AttribName, |
Attach a new attribute (and transfer ownership of it to the attribute set) | |
| void | AttachSkinWeightsAttribute
(
FName InProfileName, |
Skin weights Create a new skin weights attribute with a given skin weights profile name. | |
| bool | CheckBoneValidity
(
EValidityCheckFailMode FailMode |
The attribute is valid if either all attributes are empty or if the bone name attribute is not empty then all the other attributes must be either empty or their size is equal to the bone name attribute size. | |
| void | CompactCopy
(
const FCompactMaps& CompactMaps, |
Performs a CompactCopy of the attached overlays/attributes. | |
| void | CompactInPlace
(
const FCompactMaps& CompactMaps |
Compacts the attribute set in place Called by the parent mesh CompactInPlace function | |
| void | Copy
(
const FDynamicMeshAttributeSet& Copy |
||
| void | CopyBoneAttributes
(
const FDynamicMeshAttributeSet& Copy |
Bone Attributes | |
| void | DisableBones () |
Disable all bone attributes. | |
| void | |||
| void | |||
| void | Disable Tangents overlays | ||
| void | EnableBones
(
const int InBonesNum |
Enable all bone attributes and intialize their size to the given bone number. | |
| void | EnableMatchingAttributes
(
const FDynamicMeshAttributeSet& ToMatch, |
Enable the matching attributes and overlay layers as the ToMatch set, but do not copy any data across. | |
| void | EnableMatchingBoneAttributes
(
const FDynamicMeshAttributeSet& ToMatch, |
||
| void | |||
| void | |||
| void | Enable Tangents overlays (Tangent = Normal layer 1, Bitangent = Normal layer 2) | ||
| FDynamicMeshAttributeBase * | GetAttachedAttribute
(
FName AttribName |
||
| const FDynamicMeshAttributeBase * | GetAttachedAttribute
(
FName AttribName |
||
| const TMap< FName, TUniquePtr< FDynamicMeshAttributeBase > > & | |||
| FDynamicMeshBoneColorAttribute * | |||
| const FDynamicMeshBoneColorAttribute * | |||
| const FDynamicMeshBoneNameAttribute * | GetBoneNames () |
||
| FDynamicMeshBoneNameAttribute * | GetBoneNames () |
||
| FDynamicMeshBoneParentIndexAttribute * | |||
| const FDynamicMeshBoneParentIndexAttribute * | |||
| FDynamicMeshBonePoseAttribute * | GetBonePoses () |
||
| const FDynamicMeshBonePoseAttribute * | GetBonePoses () |
||
| FDynamicMeshMaterialAttribute * | |||
| const FDynamicMeshMaterialAttribute * | |||
| FDynamicMeshNormalOverlay * | GetNormalLayer
(
int Index |
||
| const FDynamicMeshNormalOverlay * | GetNormalLayer
(
int Index |
||
| int32 | GetNumBones () |
Get number of bones. | |
| const FDynamicMesh3 * | |||
| FDynamicMesh3 * | |||
| FDynamicMeshPolygroupAttribute * | GetPolygroupLayer
(
int Index |
||
| const FDynamicMeshPolygroupAttribute * | GetPolygroupLayer
(
int Index |
||
| FDynamicMeshVertexSkinWeightsAttribute * | GetSkinWeightsAttribute
(
FName InProfileName |
Returns a pointer to a skin weight attribute of the given profile name. | |
| const TMap< FName, TUniquePtr< FDynamicMeshVertexSkinWeightsAttribute > > & | Returns a map of all skin weight attributes. | ||
| const FDynamicMeshUVOverlay * | GetUVLayer
(
int Index |
||
| FDynamicMeshUVOverlay * | GetUVLayer
(
int Index |
||
| const FDynamicMeshWeightAttribute * | GetWeightLayer
(
int Index |
||
| FDynamicMeshWeightAttribute * | GetWeightLayer
(
int Index |
||
| bool | HasAttachedAttribute
(
FName AttribName |
||
| bool | HasBones () |
||
| bool | Per-Triangle Material ID | ||
| bool | |||
| bool | HasSkinWeightsAttribute
(
FName InProfileName |
Returns true if the list of skin weight attributes includes the given profile name. | |
| bool | |||
| void | Initialize
(
int MaxVertexID, |
Initialize the existing attribute layers with the given vertex and triangle sizes | |
| bool | IsCompact () |
Returns true if the attached overlays/attributes are compact | |
| bool | IsMaterialBoundaryEdge
(
int EdgeID |
||
| bool | IsSameAs
(
const FDynamicMeshAttributeSet& Other, |
Returns true if this AttributeSet is the same as Other. | |
| bool | IsSameBoneAttributesAs
(
const FDynamicMeshAttributeSet& Other |
Only compares bone names and parent indices. | |
| bool | IsSeamEdge
(
int EdgeID, |
||
| bool | IsSeamEdge
(
int EdgeID |
||
| bool | IsSeamEndEdge
(
int EdgeID |
||
| bool | IsSeamVertex
(
int VertexID, |
||
| int | |||
| int | Normal Layers | ||
| int32 | Polygroup layers | ||
| int | NumUVLayers () |
UV Layers | |
| int32 | Weight layers | ||
| const FDynamicMeshNormalOverlay * | |||
| FDynamicMeshNormalOverlay * | |||
| const FDynamicMeshColorOverlay * | |||
| FDynamicMeshColorOverlay * | |||
| const FDynamicMeshNormalOverlay * | |||
| FDynamicMeshNormalOverlay * | |||
| const FDynamicMeshNormalOverlay * | |||
| FDynamicMeshNormalOverlay * | |||
| const FDynamicMeshUVOverlay * | PrimaryUV () |
||
| FDynamicMeshUVOverlay * | PrimaryUV () |
||
| void | RemoveAttribute
(
FName AttribName |
||
| void | RemoveSkinWeightsAttribute
(
FName InProfileName |
Remove a skin weights attribute matching the given profile name. | |
| void | RemoveWeightLayer
(
int32 Index |
Remove a weight layer at the specified index | |
| void | Serialize
(
FArchive& Ar, |
Serialize to and from an archive. | |
| void | SetNumNormalLayers
(
int Num |
Set number of Normals (3-vector float overlay) layers | |
| void | SetNumPolygroupLayers
(
int32 Num |
Set the number of Polygroup layers | |
| void | SetNumUVLayers
(
int Num |
Set number of UV (2-vector float overlay) layers | |
| void | SetNumWeightLayers
(
int32 Num |
Set the number of weight layers | |
| void | SplitAllBowties
(
bool bParallel |
Split all bowtie vertices in all layers |
Overridden from TDynamicAttributeSetBase
| Type | Name | Description | |
|---|---|---|---|
| bool | CheckValidity
(
bool bAllowNonmanifold, |
Check validity of attributes | |
| void | OnCollapseEdge
(
const DynamicMeshInfo::FEdgeCollapseInfo& collapseInfo |
||
| void | OnFlipEdge
(
const DynamicMeshInfo::FEdgeFlipInfo& flipInfo |
||
| void | OnMergeEdges
(
const DynamicMeshInfo::FMergeEdgesInfo& mergeInfo |
||
| void | OnNewTriangle
(
int TriangleID, |
These functions are called by the FDynamicMesh3 to update the various attributes when the parent mesh topology has been modified. | |
| void | OnNewVertex
(
int VertexID, |
||
| void | OnPokeTriangle
(
const DynamicMeshInfo::FPokeTriangleInfo& pokeInfo |
||
| void | OnRemoveTriangle
(
int TriangleID |
||
| void | OnRemoveVertex
(
int VertexID |
||
| void | OnReverseTriOrientation
(
int TriangleID |
||
| void | OnSplitEdge
(
const DynamicMeshInfo::FEdgeSplitInfo& SplitInfo |
Mesh-specific on* functions; may be split out | |
| void | OnSplitVertex
(
const DynamicMeshInfo::FVertexSplitInfo& SplitInfo, |
Typedefs
| Name | Description |
|---|---|
| GenericAttributesMap | |
| SkinWeightAttributesMap |
Deprecated Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | IsSeamEdge
(
int EdgeID, |
Please instead call the 4 argument version of IsSeamEdge, which distinguishes between tangent and normal seam edges. |