80 int N = Triangles.
Num();
81 for (
int i = 0; i < N; ++i)
97 for (
int TriangleID : Triangles)
126 template<
typename EnumerableType>
129 for (
int TriangleID : Triangles)
143 template<
typename EnumerableType>
146 for (
int TriangleID : Triangles)
168 int32 NumTriangles = Triangles.
Num();
181 for (
int32 k = 0; k < NumTriangles; ++k)
207 template<
typename EnumerableType>
210 for (
int TriangleID : Triangles)
342 if (
CutSet.CutCellIDs.Contains(
Cell.CellID) ==
false)
375 while (Queue.
Num() > 0)
385 for (
int k = 0; k < 8; ++k)
413 while (Queue.
Num() > 0)
427 for (
int k = 0; k < 8; ++k)
#define check(expr)
Definition AssertionMacros.h:314
void ParallelFor(int32 Num, TFunctionRef< void(int32)> Body, bool bForceSingleThread, bool bPumpRenderingThread=false)
Definition ParallelFor.h:481
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
ElementType Pop(EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:1196
Definition AssetRegistryState.h:50
Definition DynamicMesh3.h:108
triangle_iterator TriangleIndicesItr() const
Definition DynamicMesh3.h:568
bool IsTriangle(int TriangleID) const
Definition DynamicMesh3.h:457
GEOMETRYCORE_API FAxisAlignedBox3d GetTriBounds(int TriangleID) const
Definition DynamicMesh3_Queries.cpp:836
Definition DynamicMeshOctree3.h:294
TArray< FCellReference > CutCells
Definition DynamicMeshOctree3.h:296
int FixedCutLevel
Definition DynamicMeshOctree3.h:300
TSet< uint32 > CutCellIDs
Definition DynamicMeshOctree3.h:299
Definition DynamicMeshOctree3.h:28
void InsertTriangles(const TArray< int > &Triangles)
Definition DynamicMeshOctree3.h:78
void InsertTriangle(int32 TriangleID)
Definition DynamicMeshOctree3.h:65
void NotifyPendingModification(const EnumerableType &Triangles)
Definition DynamicMeshOctree3.h:208
void CollectRootTriangles(const FTreeCutSet &CutSet, TFunctionRef< void(int)> TriangleFunc) const
Definition DynamicMeshOctree3.h:401
void CollectTriangles(const FCellReference &CellRef, TFunctionRef< void(int)> TriangleFunc) const
Definition DynamicMeshOctree3.h:367
void InsertTriangles(const TSet< int > &Triangles)
Definition DynamicMeshOctree3.h:95
void CollectSpillTriangles(TFunctionRef< void(int)> TriangleFunc) const
Definition DynamicMeshOctree3.h:441
int32 FindNearestHitObject(const FRay3d &Ray, TFunctionRef< bool(int)> IncludeTriangleIDFunc, double MaxDistance=TNumericLimits< double >::Max()) const
Definition DynamicMeshOctree3.h:242
void ReinsertTrianglesParallel(const TArray< int32 > &Triangles, TArray< uint32 > &TempBuffer, TArray< bool > &TempFlagBuffer)
Definition DynamicMeshOctree3.h:166
void Initialize(const FDynamicMesh3 *MeshIn)
Definition DynamicMeshOctree3.h:44
bool RemoveTriangle(int32 TriangleID)
Definition DynamicMeshOctree3.h:112
void ReinsertTriangles(const EnumerableType &Triangles)
Definition DynamicMeshOctree3.h:144
void ResetModifiedBounds()
Definition DynamicMeshOctree3.h:57
FTreeCutSet BuildLevelCutSet(uint32 CutLevel=5) const
Definition DynamicMeshOctree3.h:309
void CheckValidity(EValidityCheckFailMode FailMode=EValidityCheckFailMode::Check, bool bVerbose=false, bool bFailOnMissingObjects=false) const
Definition DynamicMeshOctree3.h:264
int32 FindNearestHitObject(const FRay3d &Ray, double MaxDistance=TNumericLimits< double >::Max()) const
Definition DynamicMeshOctree3.h:224
void UpdateLevelCutSet(FTreeCutSet &CutSet, TArray< FCellReference > &NewCutCellsOut) const
Definition DynamicMeshOctree3.h:336
const FDynamicMesh3 * Mesh
Definition DynamicMeshOctree3.h:36
bool TestCellIntersection(const FCellReference &CellRef, const FAxisAlignedBox3d &Bounds) const
Definition DynamicMeshOctree3.h:357
FAxisAlignedBox3d ModifiedBounds
Definition DynamicMeshOctree3.h:39
void NotifyPendingModification(int TriangleID)
Definition DynamicMeshOctree3.h:195
void RemoveTriangles(const EnumerableType &Triangles, bool bMarkModifiedBounds=true)
Definition DynamicMeshOctree3.h:127
bool IsValid(int Index) const
Definition RefCountVector.h:66
ValueEnumerable Values(int32 ListIndex) const
Definition SmallListSet.h:571
Definition SparseDynamicOctree3.h:165
GEOMETRYCORE_API void CheckValidity(TFunctionRef< bool(int)> IsValidObjectIDFunc, TFunctionRef< FAxisAlignedBox3d(int)> GetObjectBoundsFunc, EValidityCheckFailMode FailMode=EValidityCheckFailMode::Check, bool bVerbose=false, bool bFailOnMissingObjects=false) const
Definition SparseDynamicOctree3.cpp:806
GEOMETRYCORE_API bool CheckIfObjectNeedsReinsert(int32 ObjectID, const FAxisAlignedBox3d &NewBounds, uint32 &CellIDOut) const
Definition SparseDynamicOctree3.cpp:165
TSet< int32 > SpillObjectSet
Definition SparseDynamicOctree3.h:407
FSmallListSet CellObjectLists
Definition SparseDynamicOctree3.h:406
double MaxExpandFactor
Definition SparseDynamicOctree3.h:192
TDynamicVector< FSparseOctreeCell > Cells
Definition SparseDynamicOctree3.h:403
GEOMETRYCORE_API void InsertObject(int32 ObjectID, const FAxisAlignedBox3d &Bounds)
Definition SparseDynamicOctree3.cpp:24
GEOMETRYCORE_API int32 FindNearestHitObject(const FRay3d &Ray, TFunctionRef< FAxisAlignedBox3d(int)> GetObjectBoundsFunc, TFunctionRef< double(int, const FRay3d &)> HitObjectDistFunc, double MaxDistance=TNumericLimits< double >::Max()) const
Definition SparseDynamicOctree3.cpp:244
FAxisAlignedBox3d GetCellBox(const FSparseOctreeCell &Cell, double ExpandFactor=0) const
Definition SparseDynamicOctree3.h:439
TSparseGrid3< uint32 > RootCells
Definition SparseDynamicOctree3.h:414
FRefCountVector CellRefCounts
Definition SparseDynamicOctree3.h:400
GEOMETRYCORE_API bool ReinsertObject(int32 ObjectID, const FAxisAlignedBox3d &NewBounds, uint32 CellIDHint=InvalidCellID)
Definition SparseDynamicOctree3.cpp:185
Definition IntrRay3Triangle3.h:67
static FIntrRay3Triangle3d TriangleIntersection(const TriangleMeshType &Mesh, int TriIdx, const FRay3d &Ray)
Definition MeshQueries.h:41
void AllocatedIteration(Func ElementFunc) const
Definition SparseGrid3.h:176
EValidityCheckFailMode
Definition GeometryTypes.h:72
Definition AdvancedWidgetsModule.cpp:13
Definition NumericLimits.h:41
Definition DynamicMeshOctree3.h:288
uint32 CellID
Definition DynamicMeshOctree3.h:289
Definition SparseDynamicOctree3.h:83
static TAxisAlignedBox3< double > Empty()
Definition BoxTypes.h:382
void Contain(const TVector< RealType > &V)
Definition BoxTypes.h:438
bool Intersects(TAxisAlignedBox3 Box) const
Definition BoxTypes.h:526