|
| void | Initialize (const SourceType *VertexSourceIn, bool bDynamicExpand) |
| |
| void | ResetModifiedBounds () |
| |
| void | InsertVertex (int32 VertexID) |
| |
| void | InsertVertices (const TArray< int > &Vertices) |
| |
| void | InsertVertices (const TSet< int > &Vertices) |
| |
| bool | RemovePoint (int32 VertexID) |
| |
| void | RemoveVertices (const TArray< int > &Vertices) |
| |
| void | RemoveVertices (const TSet< int > &Vertices) |
| |
| void | ReinsertVertices (const TSet< int > &Vertices) |
| |
| void | NotifyPendingModification (int VertexID) |
| |
| void | NotifyPendingModification (const TSet< int > &Vertices) |
| |
| int32 | FindNearestHitVertex (const FRay3d &Ray, double MaxDistance=TNumericLimits< double >::Max()) const |
| |
| void | CheckValidity (EValidityCheckFailMode FailMode=EValidityCheckFailMode::Check, bool bVerbose=false, bool bFailOnMissingPoints=false) const |
| |
| void | ConfigureFromPointCountEstimate (double MaxBoundsDimension, int CountEstimate) |
| |
| bool | ContainsPoint (int32 PointID) const |
| |
| void | InsertPoint (int32 PointID, const FVector3d &Position) |
| |
| void | InsertPoint_DynamicExpand (int32 PointID, TFunctionRef< FVector3d(int)> GetPositionFunc) |
| |
| void | ParallelInsertDensePointSet (int32 MaxPointID, TFunctionRef< FVector3d(int)> GetPositionFunc) |
| |
| bool | RemovePoint (int32 PointID) |
| |
| void | RemovePointUnsafe (int32 PointID) |
| |
| void | ReinsertPoint (int32 PointID, const FVector3d &NewPosition) |
| |
| int32 | FindNearestHitPoint (const FRay3d &Ray, TFunctionRef< double(int, const FRay3d &)> HitPointDistFunc, double MaxDistance=TNumericLimits< double >::Max()) const |
| |
| GEOMETRYCORE_API int32 | FindClosestPoint (FVector3d QueryPt, double DistanceThreshold, TFunctionRef< bool(int32)> PredicateFunc, TFunctionRef< double(int32)> DistSqFunc, TArray< const FSparsePointOctreeCell * > *TempBuffer=nullptr) const |
| |
| void | FindKClosestPoints (FVector3d QueryPt, double DistanceThreshold, int32 NumToFind, TArray< TPair< int32, double > > &FoundPoints, TFunctionRef< bool(int32)> PredicateFunc, TFunctionRef< double(int32)> DistSqFunc, TArray< const FSparsePointOctreeCell * > *TempBuffer=nullptr) const |
| |
| void | RangeQuery (const FAxisAlignedBox3d &Bounds, TFunctionRef< bool(int)> PredicateFunc, TArray< int > &PointIDsOut, TArray< const FSparsePointOctreeCell * > *TempBuffer=nullptr) const |
| |
| void | ParallelRangeQuery (const FAxisAlignedBox3d &Bounds, TFunctionRef< bool(int)> PredicateFunc, TArray< int > &PointIDsOut, TArray< const FSparsePointOctreeCell * > *TempBuffer=nullptr) const |
| |
| void | CheckValidity (TFunctionRef< bool(int)> IsValidPointIDFunc, TFunctionRef< FVector3d(int)> GetPointFunc, EValidityCheckFailMode FailMode=EValidityCheckFailMode::Check, bool bVerbose=false, bool bFailOnMissingPoints=false) const |
| |
| void | ComputeStatistics (FStatistics &StatsOut) const |
| |
template<
typename SourceType>
class UE::Geometry::TDynamicVerticesOctree3< SourceType >
TDynamicVerticesOctree3 is an extension of FSparseDynamicPointOctree3 for the vertices of a FDynamicXYZ3 instance (eg FDynamicMesh3, TDynamicPointSet3, FDynamicGraph, etc) This extension does several things: 1) provides a simplified API based on vertex IDs to various Octree functions 2) tracks ModifiedBounds box of modified areas
The template expansion requires that FDynamicXYZ3 has the following API: 1) a function int MaxVertexID() that returns the maximum vertex ID/index 2) a function bool IsVertex(int) that returns true if the index is valid 3) a function FVector3d GetVertex(int index) that returns the position of a vertex 4) a function FAxisAlignedBox3d GetBounds() that returns a bounding-box of the point set