Choose your operating system:
Windows
macOS
Linux
Module |
|
Header |
/Engine/Plugins/Runtime/GeometryProcessing/Source/DynamicMesh/Public/GroupTopology.h |
Include |
#include "GroupTopology.h" |
class FGroupTopology
Given a per-triangle integer ("group"), FGroupTopology extracts a group-level topological graph from an input Mesh. The graph consists of three elements: Corners: there is a corner at each vertex where 3 or more groups meet (ie 3 or more groups in one-ring) Edges: a group edge is a list of one or more connected edges that have the same pair of different groups on either side Group: a group is a set of connected faces with the same GroupID
By default, the triangle group attribute of the input Mesh is used. You can override GetGroupID to provide your own grouping.
Various query functions are provided to allow group topology to be interrogated.
that these functions refer to "GroupID", "CornerID", and "GroupEdgeID", these are simply indices into the internal .Groups, .Corners, and .Edges arrays
Name | Description | ||
---|---|---|---|
|
Corners |
List of Corners in the topology graph (ie these are the nodes/vertices of the graph) |
|
|
CornerVerticesFlags |
||
|
Edges |
List of Edges in the topology graph (each edge connects two corners/nodes) |
|
|
TArray< int > |
EmptyArray |
|
|
TArray< int > |
GroupIDToGroupIndexMap |
|
|
const FDynamicM... |
GroupLayer |
|
|
Groups |
List of Groups in the topology graph (ie faces) |
|
|
const FDynamicM... |
Mesh |
|
|
VertexIDToCornerIDMap |
Name | Description | |
---|---|---|
|
FGroupTopology() |
|
|
FGroupTopology ( |
|
|
FGroupTopology ( |
Name | Description | |
---|---|---|
|
~FGroupTopology() |
Name | Description | ||
---|---|---|---|
|
CollectGroupBoundaryVertices ( |
Add all the group boundary vertices of the given GroupID to the Vertices set |
|
|
CollectGroupVertices ( |
Add all the vertices of the given GroupID to the Vertices set |
|
|
ExtractGroupEdges ( |
Return false if we had a problem finding group boundaries |
|
|
FindCornerNbrGroups ( |
Add all the groups connected to the given Corner to the GroupsOut list |
|
|
FindCornerNbrGroups |
Add all the groups connected to the given Corners to the GroupsOut list |
|
|
FindEdgeNbrGroups ( |
Add the groups connected to the given GroupEdgeID to the GroupsOut list. |
|
|
FindEdgeNbrGroups |
Add the groups connected to all the GroupEdgeIDs to the GroupsOut list. |
|
|
int |
FindExistingGroupEdge ( |
|
|
const FGroup... |
FindGroupByID ( |
|
|
int |
FindGroupEdgeID ( |
|
|
FindVertexNbrGroups |
Add all the groups connected to the given Mesh Vertices to the GroupsOut list |
|
|
FindVertexNbrGroups ( |
Add all the groups connected to the given Mesh Vertex to the GroupsOut list |
|
|
ForGroupEdges ( |
Call EdgeFunc for each boundary edge of the given Group (no order defined). |
|
|
ForGroupSetEdges ( |
Call EdgeFunc for each boundary edge of each of the given Groups (no order defined). |
|
|
GetAllVertexGroups |
||
|
GetCornerIDFromVertexID ( |
||
|
int |
GetCornerVertexID ( |
|
|
double |
GetEdgeArcLength |
|
|
GetEdgeMidpoint |
||
|
const TArray... |
GetGroupEdgeEdges ( |
|
|
GetGroupEdgeTangent ( |
Calculate tangent of group edge, as direction from start to end endpoints |
|
|
const TArray... |
GetGroupEdgeVertices ( |
|
|
const TArray... |
GetGroupFaces ( |
|
|
GetGroupFrame ( |
||
|
int |
GetGroupID ( |
Adjacency of Per-Triangle integers are what define the triangle groups. |
|
const TArray... |
GetGroupNbrGroups ( |
|
|
const TArray... |
GetGroupTriangles ( |
|
|
const FDynam... |
GetMesh() |
|
|
GetSelectedTriangles ( |
Get the set of selected triangles for a given GroupTopologySelection |
|
|
FAxisAligned... |
GetSelectionBounds ( |
|
|
GetSelectionFrame ( |
||
|
IsBoundaryEdge ( |
||
|
IsCornerVertex ( |
||
|
IsIsolatedLoop ( |
||
|
IsSimpleGroupEdge ( |
||
|
MakeEdgeID ( |
||
|
MakeEdgeID ( |
||
|
RebuildTopology() |
Build the group topology graph. |
|
|
RetargetOnClonedMesh ( |
Keeps the structures of topology in place but points the mesh pointers to a new cloned mesh. |
Name |
Description |
|
---|---|---|
|
FCorner |
FCorner is a "corner" in the group topology, IE a vertex where 3+ groups meet. |
|
FGroup |
FGroup is a set of connected triangles with the same GroupID |
|
FGroupBoundary |
A Group is bounded by closed loops of FGroupEdge elements. |
|
FGroupEdge |
FGroupEdge is a sequence of group-boundary-edges where the two groups on either side of each edge are the same. |