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

#include <MeshVertexSelection.h>

Public Member Functions

 FMeshVertexSelection (const FDynamicMesh3 *mesh)
 
GEOMETRYCORE_API FMeshVertexSelection (const FDynamicMesh3 *mesh, const FMeshFaceSelection &convertT)
 
GEOMETRYCORE_API FMeshVertexSelection (const FDynamicMesh3 *mesh, const FMeshEdgeSelection &convertE)
 
TSet< int > AsSet () const
 
TArray< int > AsArray () const
 
TBitArray< FDefaultBitArrayAllocatorAsBitArray () const
 
TSet< int >::TRangedForIterator begin ()
 
TSet< int >::TRangedForConstIterator begin () const
 
TSet< int >::TRangedForIterator end ()
 
TSet< int >::TRangedForConstIterator end () const
 
int Num () const
 
bool IsSelected (int vID) const
 
void Select (int vID)
 
void Select (TArrayView< const int > Vertices)
 
template<typename PredicateFuncType >
void SelectByVertexID (PredicateFuncType PredicateFunc, bool bSelectTrue=true)
 
template<typename PredicateFuncType >
void SelectByPosition (PredicateFuncType PredicateFunc, bool bSelectTrue=true)
 
void SelectTriangleVertices (TArrayView< const int > Triangles)
 
GEOMETRYCORE_API void SelectTriangleVertices (const FMeshFaceSelection &Triangles)
 
GEOMETRYCORE_API void SelectInteriorVertices (const FMeshFaceSelection &triangles)
 
void SelectConnectedBoundaryV (int vSeed)
 
void SelectEdgeVertices (TArrayView< const int > Edges)
 
void Deselect (int vID)
 
void Deselect (TArrayView< const int > Vertices)
 
void DeselectEdge (int eid)
 
void DeselectEdges (TArrayView< const int > Edges)
 
void ExpandToOneRingNeighbours (const TUniqueFunction< bool(int)> &FilterF=nullptr)
 
void ExpandToOneRingNeighbours (int nRings, const TUniqueFunction< bool(int)> &FilterF=nullptr)
 
void ContractByBorderVertices (int32 nRings=1)
 
void FloodFill (int vSeed, const TUniqueFunction< bool(int)> &VertIncludedF=nullptr)
 
void FloodFill (const TArray< int > &Seeds, const TUniqueFunction< bool(int)> &VertIncludedF=nullptr)
 

Constructor & Destructor Documentation

◆ FMeshVertexSelection() [1/3]

UE::Geometry::FMeshVertexSelection::FMeshVertexSelection ( const FDynamicMesh3 mesh)
inline

◆ FMeshVertexSelection() [2/3]

FMeshVertexSelection::FMeshVertexSelection ( const FDynamicMesh3 mesh,
const FMeshFaceSelection convertT 
)

◆ FMeshVertexSelection() [3/3]

FMeshVertexSelection::FMeshVertexSelection ( const FDynamicMesh3 mesh,
const FMeshEdgeSelection convertE 
)

Member Function Documentation

◆ AsArray()

TArray< int > UE::Geometry::FMeshVertexSelection::AsArray ( ) const
inline

◆ AsBitArray()

TBitArray< FDefaultBitArrayAllocator > UE::Geometry::FMeshVertexSelection::AsBitArray ( ) const
inline

◆ AsSet()

TSet< int > UE::Geometry::FMeshVertexSelection::AsSet ( ) const
inline

◆ begin() [1/2]

TSet< int >::TRangedForIterator UE::Geometry::FMeshVertexSelection::begin ( )
inline

DO NOT USE DIRECTLY STL-like iterators to enable range-based for loop support.

◆ begin() [2/2]

TSet< int >::TRangedForConstIterator UE::Geometry::FMeshVertexSelection::begin ( ) const
inline

◆ ContractByBorderVertices()

void UE::Geometry::FMeshVertexSelection::ContractByBorderVertices ( int32  nRings = 1)
inline

Remove all vertices in current selection set that have at least one neighbour vertex that is not selected (ie vertices are on border of selection)

◆ Deselect() [1/2]

void UE::Geometry::FMeshVertexSelection::Deselect ( int  vID)
inline

◆ Deselect() [2/2]

void UE::Geometry::FMeshVertexSelection::Deselect ( TArrayView< const int >  Vertices)
inline

◆ DeselectEdge()

void UE::Geometry::FMeshVertexSelection::DeselectEdge ( int  eid)
inline

◆ DeselectEdges()

void UE::Geometry::FMeshVertexSelection::DeselectEdges ( TArrayView< const int >  Edges)
inline

◆ end() [1/2]

TSet< int >::TRangedForIterator UE::Geometry::FMeshVertexSelection::end ( )
inline

◆ end() [2/2]

TSet< int >::TRangedForConstIterator UE::Geometry::FMeshVertexSelection::end ( ) const
inline

◆ ExpandToOneRingNeighbours() [1/2]

void UE::Geometry::FMeshVertexSelection::ExpandToOneRingNeighbours ( const TUniqueFunction< bool(int)> &  FilterF = nullptr)
inline

Add all one-ring neighbours of current selection to set. On a large selection this is quite expensive as we don't know the boundary, so we have to iterate over all selected vertices.

Return false from FilterF to prevent vertices from being included.

◆ ExpandToOneRingNeighbours() [2/2]

void UE::Geometry::FMeshVertexSelection::ExpandToOneRingNeighbours ( int  nRings,
const TUniqueFunction< bool(int)> &  FilterF = nullptr 
)
inline

◆ FloodFill() [1/2]

void UE::Geometry::FMeshVertexSelection::FloodFill ( const TArray< int > &  Seeds,
const TUniqueFunction< bool(int)> &  VertIncludedF = nullptr 
)
inline

Grow selection outwards from seed vertex, until it hits boundaries defined by vertex filter.

◆ FloodFill() [2/2]

void UE::Geometry::FMeshVertexSelection::FloodFill ( int  vSeed,
const TUniqueFunction< bool(int)> &  VertIncludedF = nullptr 
)
inline

Grow selection outwards from seed vertex, until it hits boundaries defined by vertex filter.

◆ IsSelected()

bool UE::Geometry::FMeshVertexSelection::IsSelected ( int  vID) const
inline

◆ Num()

int UE::Geometry::FMeshVertexSelection::Num ( ) const
inline

◆ Select() [1/2]

void UE::Geometry::FMeshVertexSelection::Select ( int  vID)
inline

◆ Select() [2/2]

void UE::Geometry::FMeshVertexSelection::Select ( TArrayView< const int >  Vertices)
inline

◆ SelectByPosition()

void UE::Geometry::FMeshVertexSelection::SelectByPosition ( PredicateFuncType  PredicateFunc,
bool  bSelectTrue = true 
)
inline

Select vertices where PredicteFunc(VertexPosition) == bSelectTrue

◆ SelectByVertexID()

void UE::Geometry::FMeshVertexSelection::SelectByVertexID ( PredicateFuncType  PredicateFunc,
bool  bSelectTrue = true 
)
inline

Select vertices where PredicteFunc(VertexID) == bSelectTrue

◆ SelectConnectedBoundaryV()

void UE::Geometry::FMeshVertexSelection::SelectConnectedBoundaryV ( int  vSeed)
inline

Select set of boundary vertices connected to vSeed.

◆ SelectEdgeVertices()

void UE::Geometry::FMeshVertexSelection::SelectEdgeVertices ( TArrayView< const int >  Edges)
inline

◆ SelectInteriorVertices()

void FMeshVertexSelection::SelectInteriorVertices ( const FMeshFaceSelection triangles)

for each vertex of input triangle set, select vertex if all one-ring triangles are contained in triangle set (ie vertex is not on boundary of triangle set).

◆ SelectTriangleVertices() [1/2]

void FMeshVertexSelection::SelectTriangleVertices ( const FMeshFaceSelection Triangles)

◆ SelectTriangleVertices() [2/2]

void UE::Geometry::FMeshVertexSelection::SelectTriangleVertices ( TArrayView< const int >  Triangles)
inline

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