UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::TDynamicPointSet3< RealType > Class Template Reference

#include <DynamicPointSet3.h>

Public Member Functions

void SetExternallyManagedAttributes (TDynamicAttributeSetBase< TDynamicPointSet3< RealType > > *AttributeSet)
 
TDynamicAttributeSetBase< TDynamicPointSet3< RealType > > * GetBaseAttributeSet () const
 
int VertexCount () const
 
int MaxVertexID () const
 
bool IsVertex (int VertexID) const
 
void Clear ()
 
int AppendVertex (const TVector< RealType > &Position)
 
void BeginUnsafeVerticesInsert ()
 
void EndUnsafeVerticesInsert ()
 
EMeshResult InsertVertex (int VertexID, const TVector< RealType > &Position, bool bUnsafe=false)
 
TVector< RealType > GetVertex (int VertexID) const
 
void SetVertex (int VertexID, const TVector< RealType > &vNewPos)
 
FRefCountVector::IndexEnumerable VertexIndicesItr () const
 
FRefCountVector::MappedEnumerable< TVector< RealType > > VerticesItr () const
 
bool IsCompact () const
 
RealType CompactMetric () const
 
TAxisAlignedBox3< RealType > GetBounds () const
 
const TDynamicVector< double > & GetVerticesBuffer ()
 
const FRefCountVectorGetVerticesRefCounts ()
 
EMeshResult RemoveVertex (int VertexID)
 

Protected Attributes

FRefCountVector VertexRefCounts
 
TDynamicVector< RealType > Vertices
 
TDynamicAttributeSetBase< TDynamicPointSet3< RealType > > * BaseAttributeSet = nullptr
 

Detailed Description

template<typename RealType>
class UE::Geometry::TDynamicPointSet3< RealType >

TDynamicPointSet3 implements a dynamic 3D point set, templated on real-value type (float or double). The points are indexed and the class allows for gaps in the index space.

The points are referred to as "Vertices" for consistency with higher-level Mesh and Graph classes. This class can be used interchangeably with the Vertices of those classes in some cases (for example in spatial data structures like TDynamicVerticesOctree3)

The point data is stored in via TDynamicVector<RealType>, which internally uses chunked storage and so is relatively efficient to grow/shrink/etc

Reference counts for the points are stored via a FRefCountVector instance

A per-point attribute set can optionally be attached. Currently the client is responsible for managing the memory for this attribute set. The attribute set will be automatically updated when points are added or removed.

Member Function Documentation

◆ AppendVertex()

template<typename RealType >
int UE::Geometry::TDynamicPointSet3< RealType >::AppendVertex ( const TVector< RealType > &  Position)
inline

Append vertex at position, returns vid

◆ BeginUnsafeVerticesInsert()

template<typename RealType >
void UE::Geometry::TDynamicPointSet3< RealType >::BeginUnsafeVerticesInsert ( )
inline

Call this before a set of unsafe InsertVertex() calls

◆ Clear()

template<typename RealType >
void UE::Geometry::TDynamicPointSet3< RealType >::Clear ( )
inline

Discard all data

◆ CompactMetric()

template<typename RealType >
RealType UE::Geometry::TDynamicPointSet3< RealType >::CompactMetric ( ) const
inline

returns measure of compactness in range [0,1], where 1 is fully compacted

◆ EndUnsafeVerticesInsert()

template<typename RealType >
void UE::Geometry::TDynamicPointSet3< RealType >::EndUnsafeVerticesInsert ( )
inline

Call after a set of unsafe InsertVertex() calls to rebuild free list

◆ GetBaseAttributeSet()

template<typename RealType >
TDynamicAttributeSetBase< TDynamicPointSet3< RealType > > * UE::Geometry::TDynamicPointSet3< RealType >::GetBaseAttributeSet ( ) const
inline

◆ GetBounds()

template<typename RealType >
TAxisAlignedBox3< RealType > UE::Geometry::TDynamicPointSet3< RealType >::GetBounds ( ) const
inline

Returns bounding box of all points

◆ GetVertex()

template<typename RealType >
TVector< RealType > UE::Geometry::TDynamicPointSet3< RealType >::GetVertex ( int  VertexID) const
inline
Returns
the vertex position

◆ GetVerticesBuffer()

template<typename RealType >
const TDynamicVector< double > & UE::Geometry::TDynamicPointSet3< RealType >::GetVerticesBuffer ( )
inline

◆ GetVerticesRefCounts()

template<typename RealType >
const FRefCountVector & UE::Geometry::TDynamicPointSet3< RealType >::GetVerticesRefCounts ( )
inline

◆ InsertVertex()

template<typename RealType >
EMeshResult UE::Geometry::TDynamicPointSet3< RealType >::InsertVertex ( int  VertexID,
const TVector< RealType > &  Position,
bool  bUnsafe = false 
)
inline

Insert vertex at given index, assuming it is unused. If bUnsafe, we use fast id allocation that does not update free list. You should only be using this between BeginUnsafeVerticesInsert() / EndUnsafeVerticesInsert() calls

◆ IsCompact()

template<typename RealType >
bool UE::Geometry::TDynamicPointSet3< RealType >::IsCompact ( ) const
inline
Returns
true if vertex count == max vertex id

◆ IsVertex()

template<typename RealType >
bool UE::Geometry::TDynamicPointSet3< RealType >::IsVertex ( int  VertexID) const
inline
Returns
true if VertexID is a valid vertex in this point set

◆ MaxVertexID()

template<typename RealType >
int UE::Geometry::TDynamicPointSet3< RealType >::MaxVertexID ( ) const
inline
Returns
upper bound on vertex IDs used in the point set, ie all vertex IDs in use are < MaxVertexID

◆ RemoveVertex()

template<typename RealType >
EMeshResult UE::Geometry::TDynamicPointSet3< RealType >::RemoveVertex ( int  VertexID)
inline

Remove point

◆ SetExternallyManagedAttributes()

template<typename RealType >
void UE::Geometry::TDynamicPointSet3< RealType >::SetExternallyManagedAttributes ( TDynamicAttributeSetBase< TDynamicPointSet3< RealType > > *  AttributeSet)
inline

◆ SetVertex()

template<typename RealType >
void UE::Geometry::TDynamicPointSet3< RealType >::SetVertex ( int  VertexID,
const TVector< RealType > &  vNewPos 
)
inline

Set vertex position

◆ VertexCount()

template<typename RealType >
int UE::Geometry::TDynamicPointSet3< RealType >::VertexCount ( ) const
inline
Returns
number of vertices in the point set

◆ VertexIndicesItr()

template<typename RealType >
FRefCountVector::IndexEnumerable UE::Geometry::TDynamicPointSet3< RealType >::VertexIndicesItr ( ) const
inline
Returns
enumerable object for valid vertex indices suitable for use with range-based for, ie for ( int i : VertexIndicesItr() )

◆ VerticesItr()

template<typename RealType >
FRefCountVector::MappedEnumerable< TVector< RealType > > UE::Geometry::TDynamicPointSet3< RealType >::VerticesItr ( ) const
inline

Enumerate positions of all points

Member Data Documentation

◆ BaseAttributeSet

template<typename RealType >
TDynamicAttributeSetBase<TDynamicPointSet3<RealType> >* UE::Geometry::TDynamicPointSet3< RealType >::BaseAttributeSet = nullptr
protected

Base attribute set

◆ VertexRefCounts

template<typename RealType >
FRefCountVector UE::Geometry::TDynamicPointSet3< RealType >::VertexRefCounts
protected

Reference counts of vertex indices. Iterate over this to find out which vertex indices are valid.

◆ Vertices

template<typename RealType >
TDynamicVector<RealType> UE::Geometry::TDynamicPointSet3< RealType >::Vertices
protected

List of vertex positions


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