|
| | TMeshAABBTree3 () |
| |
| | TMeshAABBTree3 (const TriangleMeshType *SourceMesh, bool bAutoBuild=true) |
| |
| void | SetMesh (const TriangleMeshType *SourceMesh, bool bAutoBuild=true) |
| |
| const TriangleMeshType * | GetMesh () const |
| |
| bool | IsValid (bool bAllowUnsafeModifiedMeshQueries) const |
| |
| void | SetBuildOptions (int32 MaxBoxTriCount, GetSplitAxisFunc &&GetSplitAxisIn=MakeDefaultSplitAxisFunc()) |
| |
| void | Build () |
| |
| void | Build (const TArray< int32 > &TriangleList) |
| |
| virtual bool | SupportsNearestTriangle () const override |
| |
| virtual int | FindNearestTriangle (const FVector3d &P, double &NearestDistSqr, const FQueryOptions &Options=FQueryOptions()) const override |
| |
| FAxisAlignedBox3d | GetBoundingBox () const |
| |
| virtual FVector3d | FindNearestPoint (const FVector3d &Point, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual bool | IsWithinDistanceSquared (const FVector3d &Point, double ThresholdDistanceSqr, int &OutTriangleID, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual int | FindNearestVertex (const FVector3d &P, double &NearestDistSqr, double MaxDist=TNumericLimits< double >::Max(), const FQueryOptions &Options=FQueryOptions()) |
| |
| virtual bool | SupportsTriangleRayIntersection () const override |
| |
| virtual int | FindNearestHitTriangle (const FRay3d &Ray, const FQueryOptions &Options=FQueryOptions()) const override |
| |
| virtual bool | FindNearestHitTriangle (const FRay3d &Ray, double &NearestT, int &TID, const FQueryOptions &Options=FQueryOptions()) const override |
| |
| virtual bool | FindNearestHitTriangle (const FRay3d &Ray, double &NearestT, int &TID, FVector3d &BaryCoords, const FQueryOptions &Options=FQueryOptions()) const override |
| |
| bool | FindNearestHitTriangle (const FWatertightRay3d &Ray, double &NearestT, int &TID, FVector3d &BaryCoords, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual bool | FindAllHitTriangles (const FRay3d &Ray, TArray< MeshIntersection::FHitIntersectionResult > &OutHits, const FQueryOptions &Options=FQueryOptions()) const override |
| |
| bool | FindAllHitTriangles (const FWatertightRay3d &Ray, TArray< MeshIntersection::FHitIntersectionResult > &OutHits, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual bool | TestAnyHitTriangle (const FRay3d &Ray, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual FIndex2i | FindNearestTriangles (TMeshAABBTree3 &OtherTree, const TFunction< FVector3d(const FVector3d &)> &TransformF, double &Distance, const FQueryOptions &Options=FQueryOptions(), const FQueryOptions &OtherTreeOptions=FQueryOptions()) |
| |
| virtual bool | SupportsPointContainment () const override |
| |
| virtual bool | IsInside (const FVector3d &P) const override |
| |
| virtual void | DoTraversal (FTreeTraversal &Traversal, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual bool | TestIntersection (const TriangleMeshType *TestMesh, FAxisAlignedBox3d TestMeshBounds=FAxisAlignedBox3d::Empty(), const TFunction< FVector3d(const FVector3d &)> &TransformF=nullptr, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual bool | TestIntersection (const TMeshAABBTree3 &OtherTree, const TFunction< FVector3d(const FVector3d &)> &TransformF=nullptr, const FQueryOptions &Options=FQueryOptions(), const FQueryOptions &OtherTreeOptions=FQueryOptions()) const |
| |
| virtual bool | TestIntersection (const FTriangle3d &Triangle, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual MeshIntersection::FIntersectionsQueryResult | FindAllIntersections (const TMeshAABBTree3 &OtherTree, const TFunction< FVector3d(const FVector3d &)> &TransformF=nullptr, const FQueryOptions &Options=FQueryOptions(), const FQueryOptions &OtherTreeOptions=FQueryOptions(), TFunction< bool(FIntrTriangle3Triangle3d &)> IntersectionFn=nullptr) const |
| |
| virtual MeshIntersection::FIntersectionsQueryResult | FindAllSelfIntersections (bool bIgnoreTopoConnected=true, const FQueryOptions &Options=FQueryOptions(), TFunction< bool(FIntrTriangle3Triangle3d &)> IntersectionFn=nullptr) const |
| |
| virtual bool | TestSelfIntersection (bool bIgnoreTopoConnected=true, const FQueryOptions &Options=FQueryOptions()) const |
| |
| void | SetTolerance (double Tolerance) |
| |
| double | BoxDistanceSqr (int IBox, const FVector3d &V) const |
| |
| bool | box_contains (int IBox, const FVector3d &P) const |
| |
| template<typename RayType > |
| double | box_ray_intersect_t (int IBox, const RayType &Ray) const |
| |
| bool | box_box_intersect (int IBox, const FAxisAlignedBox3d &TestBox) const |
| |
| SIZE_T | GetByteCount () const |
| |
| void | BuildTopDown (bool bSorted) |
| |
| template<typename TriIndexEnumerable > |
| void | BuildTopDown (bool bSorted, TriIndexEnumerable TriangleList, int32 NumTriangles) |
| |
| void | BuildTopDown (TArray< int > &Triangles, TArray< FVector3d > &Centers, int32 NumTriangles) |
| |
| int | SplitTriSetMidpoint (TArray< int > &Triangles, TArray< FVector3d > &Centers, int IStart, int ICount, int Depth, int MinTriCount, FBoxesSet &Tris, FBoxesSet &Nodes, FAxisAlignedBox3d &Box) |
| |
| void | find_nearest_triangles (int iBox, TMeshAABBTree3 &OtherTree, const TFunction< FVector3d(const FVector3d &)> &TransformF, int oBox, int depth, double &nearest_sqr, FIndex2i &nearest_pair, const FQueryOptions &Options, const FQueryOptions &OtherTreeOptions) const |
| |
| double | box_box_distsqr (int iBox, const FAxisAlignedBox3d &testBox) const |
| |
| int | find_any_intersection (int iBox, const FTriangle3d &Triangle, const FAxisAlignedBox3d &triBounds, TFunctionRef< bool(const FTriangle3d &A, const FTriangle3d &B)> TriangleIntersectionTest, const FQueryOptions &Options) const |
| |
| bool | find_any_intersection (int iBox, const TMeshAABBTree3 &OtherTree, const TFunction< FVector3d(const FVector3d &)> &TransformF, int oBox, int depth, TFunctionRef< bool(const FTriangle3d &A, const FTriangle3d &B)> TriangleIntersectionTest, const FQueryOptions &Options, const FQueryOptions &OtherTreeOptions) const |
| |
| bool | find_self_intersections_acrossboxes (int Box1, int Box2, MeshIntersection::FIntersectionsQueryResult *Result, bool bIgnoreTopoConnected, int depth, TFunctionRef< bool(FIntrTriangle3Triangle3d &)> IntersectFn, const FQueryOptions &Options) const |
| |
| bool | find_tri_tri_intersections (int TID_A, int IdxRangeStart, int IdxRangeEnd, MeshIntersection::FIntersectionsQueryResult *Result, bool bIgnoreTopoConnected, TFunctionRef< bool(FIntrTriangle3Triangle3d &)> IntersectFn, const FQueryOptions &Options) const |
| |
| bool | find_self_intersections (MeshIntersection::FIntersectionsQueryResult *Result, bool bIgnoreTopoConnected, TFunctionRef< bool(FIntrTriangle3Triangle3d &)> IntersectFn, const FQueryOptions &Options) const |
| |
| void | find_intersections (int iBox, const TMeshAABBTree3 &OtherTree, const TFunction< FVector3d(const FVector3d &)> &TransformF, int oBox, int depth, MeshIntersection::FIntersectionsQueryResult &result, TFunctionRef< bool(FIntrTriangle3Triangle3d &)> IntersectFn, const FQueryOptions &Options, const FQueryOptions &OtherTreeOptions) const |
| |
| void | TestCoverage () |
| |
| double | TotalVolume () |
| |
| virtual | ~IMeshSpatial ()=default |
| |
| virtual | ~ISpatial ()=default |
| |
|
| template<bool bEarlyStop = false> |
| bool | find_nearest_tri (int IBox, const FVector3d &P, double &NearestDistSqr, int &TID, const FQueryOptions &Options) const |
| |
| void | find_nearest_vertex (int IBox, const FVector3d &P, double &NearestDistSqr, int &NearestVertexID, const FQueryOptions &Options) |
| |
| template<typename RayType = FRay3d> |
| void | FindHitTriangle (int IBox, const RayType &Ray, double &NearestT, int &TID, FVector3d &BaryCoords, const FQueryOptions &Options=FQueryOptions()) const |
| |
| template<typename RayType = FRay3d> |
| void | FindHitTriangles (int IBox, const RayType &Ray, TArray< MeshIntersection::FHitIntersectionResult > &Intersections, const FQueryOptions &Options=FQueryOptions()) const |
| |
| bool | TestAnyHitTriangle (int IBox, const FRay3d &Ray, int32 &HitTIDOut, double MaxDistance, const FQueryOptions &Options=FQueryOptions()) const |
| |
| virtual void | TreeTraversalImpl (int IBox, int Depth, FTreeTraversal &Traversal, const FQueryOptions &Options) const |
| |
| FAxisAlignedBox3d | GetBox (int IBox) const |
| |
| FAxisAlignedBox3d | GetBox (int iBox, const TFunction< FVector3d(const FVector3d &)> &TransformF) const |
| |
| FAxisAlignedBox3d | GetBoxEps (int IBox, double Epsilon=FMathd::ZeroTolerance) const |
| |