UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::FDynamicGraph Class Reference

#include <DynamicGraph.h>

+ Inheritance diagram for UE::Geometry::FDynamicGraph:

Classes

struct  FEdge
 
struct  FEdgeCollapseInfo
 
struct  FEdgeSplitInfo
 

Public Types

typedef FRefCountVector::IndexEnumerable vertex_iterator
 
typedef FRefCountVector::IndexEnumerable edge_iterator
 
template<typename T >
using value_iteration = FRefCountVector::MappedEnumerable< T >
 

Public Member Functions

 FDynamicGraph ()
 
virtual ~FDynamicGraph ()
 
int Timestamp () const
 
int ShapeTimestamp () const
 
int VertexCount () const
 
int EdgeCount () const
 
int MaxVertexID () const
 
int MaxEdgeID () const
 
int MaxGroupID () const
 
bool IsVertex (int VID) const
 
bool IsEdge (int EID) const
 
FSmallListSet::MappedValueEnumerable VtxVerticesItr (int VID) const
 
FSmallListSet::ValueEnumerable VtxEdgesItr (int VID) const
 
int GetVtxEdgeCount (int VID) const
 
int GetMaxVtxEdgeCount () const
 
FIndex2i GetEdgeV (int EID) const
 
int GetEdgeGroup (int EID) const
 
void SetEdgeGroup (int EID, int GroupID)
 
int AllocateEdgeGroup ()
 
FEdge GetEdge (int EID) const
 
int AppendEdge (const FEdge &E)
 
int AppendEdge (const FIndex2i &ev, int GID=-1)
 
int AppendEdge (int v0, int v1, int GID=-1)
 
vertex_iterator VertexIndices () const
 
edge_iterator EdgeIndices () const
 
value_iteration< FEdgeEdges () const
 
int FindEdge (int VA, int VB) const
 
EMeshResult RemoveEdge (int EID, bool bRemoveIsolatedVertices)
 
EMeshResult RemoveVertex (int VID, bool bRemoveIsolatedVertices)
 
EMeshResult SplitEdge (int VA, int VB, FEdgeSplitInfo &Split)
 
EMeshResult SplitEdge (int EAB, FEdgeSplitInfo &Split)
 
EMeshResult SplitEdgeWithExistingVertex (int EAB, int ExistingMidVert, FEdgeSplitInfo &Split)
 
EMeshResult CollapseEdge (int VKeep, int VRemove, FEdgeCollapseInfo &Collapse)
 
bool IsCompact () const
 
bool IsCompactV () const
 
bool IsBoundaryVertex (int VID) const
 
bool IsJunctionVertex (int VID) const
 
bool IsRegularVertex (int VID) const
 
virtual bool CheckValidity (EValidityCheckFailMode FailMode=EValidityCheckFailMode::Check) const
 

Static Public Member Functions

static FIndex2i InvalidEdgeV ()
 
static FEdge InvalidEdge3 ()
 

Static Public Attributes

static constexpr int InvalidID = IndexConstants::InvalidID
 
static constexpr int DuplicateEdgeID = -2
 

Protected Member Functions

void updateTimeStamp (bool bShapeChange)
 
int append_vertex_internal ()
 
bool insert_vertex_internal (int32 Vid)
 
int add_edge (int A, int B, int GID)
 
virtual int append_new_split_vertex (int A, int B)
 
bool edge_has_v (int EID, int VID) const
 
int edge_other_v (int EID, int VID) const
 
int replace_edge_vertex (int EID, int VOld, int VNew)
 
virtual void subclass_validity_checks (TFunction< void(bool)> CheckOrFailF) const
 
void debug_check_is_vertex (int V) const
 
void debug_check_is_edge (int E) const
 

Protected Attributes

FRefCountVector vertices_refcount
 
FSmallListSet vertex_edges
 
FRefCountVector edges_refcount
 
TDynamicVector< FEdgeedges
 
int timestamp = 0
 
int shape_timestamp = 0
 
int max_group_id = 0
 

Member Typedef Documentation

◆ edge_iterator

◆ value_iteration

◆ vertex_iterator

Constructor & Destructor Documentation

◆ FDynamicGraph()

UE::Geometry::FDynamicGraph::FDynamicGraph ( )
inline

◆ ~FDynamicGraph()

virtual UE::Geometry::FDynamicGraph::~FDynamicGraph ( )
inlinevirtual

Member Function Documentation

◆ add_edge()

int UE::Geometry::FDynamicGraph::add_edge ( int  A,
int  B,
int  GID 
)
inlineprotected

◆ AllocateEdgeGroup()

int UE::Geometry::FDynamicGraph::AllocateEdgeGroup ( )
inline

◆ append_new_split_vertex()

virtual int UE::Geometry::FDynamicGraph::append_new_split_vertex ( int  A,
int  B 
)
inlineprotectedvirtual

◆ append_vertex_internal()

int UE::Geometry::FDynamicGraph::append_vertex_internal ( )
inlineprotected

◆ AppendEdge() [1/3]

int UE::Geometry::FDynamicGraph::AppendEdge ( const FEdge E)
inline

◆ AppendEdge() [2/3]

int UE::Geometry::FDynamicGraph::AppendEdge ( const FIndex2i ev,
int  GID = -1 
)
inline

◆ AppendEdge() [3/3]

int UE::Geometry::FDynamicGraph::AppendEdge ( int  v0,
int  v1,
int  GID = -1 
)
inline

◆ CheckValidity()

virtual bool UE::Geometry::FDynamicGraph::CheckValidity ( EValidityCheckFailMode  FailMode = EValidityCheckFailMode::Check) const
inlinevirtual

This function checks that the graph is well-formed, ie all internal data structures are consistent

◆ CollapseEdge()

EMeshResult UE::Geometry::FDynamicGraph::CollapseEdge ( int  VKeep,
int  VRemove,
FEdgeCollapseInfo Collapse 
)
inline

◆ debug_check_is_edge()

void UE::Geometry::FDynamicGraph::debug_check_is_edge ( int  E) const
inlineprotected

◆ debug_check_is_vertex()

void UE::Geometry::FDynamicGraph::debug_check_is_vertex ( int  V) const
inlineprotected

◆ edge_has_v()

bool UE::Geometry::FDynamicGraph::edge_has_v ( int  EID,
int  VID 
) const
inlineprotected

◆ edge_other_v()

int UE::Geometry::FDynamicGraph::edge_other_v ( int  EID,
int  VID 
) const
inlineprotected

◆ EdgeCount()

int UE::Geometry::FDynamicGraph::EdgeCount ( ) const
inline

◆ EdgeIndices()

edge_iterator UE::Geometry::FDynamicGraph::EdgeIndices ( ) const
inline

◆ Edges()

value_iteration< FEdge > UE::Geometry::FDynamicGraph::Edges ( ) const
inline

Enumerate edges.

◆ FindEdge()

int UE::Geometry::FDynamicGraph::FindEdge ( int  VA,
int  VB 
) const
inline

◆ GetEdge()

FEdge UE::Geometry::FDynamicGraph::GetEdge ( int  EID) const
inline

◆ GetEdgeGroup()

int UE::Geometry::FDynamicGraph::GetEdgeGroup ( int  EID) const
inline

◆ GetEdgeV()

FIndex2i UE::Geometry::FDynamicGraph::GetEdgeV ( int  EID) const
inline

◆ GetMaxVtxEdgeCount()

int UE::Geometry::FDynamicGraph::GetMaxVtxEdgeCount ( ) const
inline

◆ GetVtxEdgeCount()

int UE::Geometry::FDynamicGraph::GetVtxEdgeCount ( int  VID) const
inline

◆ insert_vertex_internal()

bool UE::Geometry::FDynamicGraph::insert_vertex_internal ( int32  Vid)
inlineprotected

◆ InvalidEdge3()

static FEdge UE::Geometry::FDynamicGraph::InvalidEdge3 ( )
inlinestatic

◆ InvalidEdgeV()

static FIndex2i UE::Geometry::FDynamicGraph::InvalidEdgeV ( )
inlinestatic

◆ IsBoundaryVertex()

bool UE::Geometry::FDynamicGraph::IsBoundaryVertex ( int  VID) const
inline

◆ IsCompact()

bool UE::Geometry::FDynamicGraph::IsCompact ( ) const
inline

◆ IsCompactV()

bool UE::Geometry::FDynamicGraph::IsCompactV ( ) const
inline

◆ IsEdge()

bool UE::Geometry::FDynamicGraph::IsEdge ( int  EID) const
inline

◆ IsJunctionVertex()

bool UE::Geometry::FDynamicGraph::IsJunctionVertex ( int  VID) const
inline

◆ IsRegularVertex()

bool UE::Geometry::FDynamicGraph::IsRegularVertex ( int  VID) const
inline

◆ IsVertex()

bool UE::Geometry::FDynamicGraph::IsVertex ( int  VID) const
inline

◆ MaxEdgeID()

int UE::Geometry::FDynamicGraph::MaxEdgeID ( ) const
inline

◆ MaxGroupID()

int UE::Geometry::FDynamicGraph::MaxGroupID ( ) const
inline

◆ MaxVertexID()

int UE::Geometry::FDynamicGraph::MaxVertexID ( ) const
inline

◆ RemoveEdge()

EMeshResult UE::Geometry::FDynamicGraph::RemoveEdge ( int  EID,
bool  bRemoveIsolatedVertices 
)
inline

◆ RemoveVertex()

EMeshResult UE::Geometry::FDynamicGraph::RemoveVertex ( int  VID,
bool  bRemoveIsolatedVertices 
)
inline

◆ replace_edge_vertex()

int UE::Geometry::FDynamicGraph::replace_edge_vertex ( int  EID,
int  VOld,
int  VNew 
)
inlineprotected

◆ SetEdgeGroup()

void UE::Geometry::FDynamicGraph::SetEdgeGroup ( int  EID,
int  GroupID 
)
inline

◆ ShapeTimestamp()

int UE::Geometry::FDynamicGraph::ShapeTimestamp ( ) const
inline

◆ SplitEdge() [1/2]

EMeshResult UE::Geometry::FDynamicGraph::SplitEdge ( int  EAB,
FEdgeSplitInfo Split 
)
inline

◆ SplitEdge() [2/2]

EMeshResult UE::Geometry::FDynamicGraph::SplitEdge ( int  VA,
int  VB,
FEdgeSplitInfo Split 
)
inline

◆ SplitEdgeWithExistingVertex()

EMeshResult UE::Geometry::FDynamicGraph::SplitEdgeWithExistingVertex ( int  EAB,
int  ExistingMidVert,
FEdgeSplitInfo Split 
)
inline

◆ subclass_validity_checks()

virtual void UE::Geometry::FDynamicGraph::subclass_validity_checks ( TFunction< void(bool)>  CheckOrFailF) const
inlineprotectedvirtual

◆ Timestamp()

int UE::Geometry::FDynamicGraph::Timestamp ( ) const
inline

◆ updateTimeStamp()

void UE::Geometry::FDynamicGraph::updateTimeStamp ( bool  bShapeChange)
inlineprotected

◆ VertexCount()

int UE::Geometry::FDynamicGraph::VertexCount ( ) const
inline

◆ VertexIndices()

vertex_iterator UE::Geometry::FDynamicGraph::VertexIndices ( ) const
inline

◆ VtxEdgesItr()

FSmallListSet::ValueEnumerable UE::Geometry::FDynamicGraph::VtxEdgesItr ( int  VID) const
inline

Enumerate edge ids connected to vertex (i.e. edge one-ring)

◆ VtxVerticesItr()

FSmallListSet::MappedValueEnumerable UE::Geometry::FDynamicGraph::VtxVerticesItr ( int  VID) const
inline

Enumerate "other" vertices of edges connected to vertex (i.e. vertex one-ring)

Member Data Documentation

◆ DuplicateEdgeID

constexpr int UE::Geometry::FDynamicGraph::DuplicateEdgeID = -2
staticconstexpr

◆ edges

TDynamicVector<FEdge> UE::Geometry::FDynamicGraph::edges
protected

◆ edges_refcount

FRefCountVector UE::Geometry::FDynamicGraph::edges_refcount
protected

◆ InvalidID

constexpr int UE::Geometry::FDynamicGraph::InvalidID = IndexConstants::InvalidID
staticconstexpr

◆ max_group_id

int UE::Geometry::FDynamicGraph::max_group_id = 0
protected

◆ shape_timestamp

int UE::Geometry::FDynamicGraph::shape_timestamp = 0
protected

◆ timestamp

int UE::Geometry::FDynamicGraph::timestamp = 0
protected

◆ vertex_edges

FSmallListSet UE::Geometry::FDynamicGraph::vertex_edges
protected

◆ vertices_refcount

FRefCountVector UE::Geometry::FDynamicGraph::vertices_refcount
protected

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