Choose your operating system:
Windows
macOS
Linux
| ISpatial
|
Module |
|
Header |
/Engine/Source/Runtime/GeometryCore/Public/Spatial/MeshAABBTree3.h |
Include |
#include "Spatial/MeshAABBTree3.h" |
template<class TriangleMeshType>
class TMeshAABBTree3 : public UE::Geometry::IMeshSpatial
Name | Description | ||
---|---|---|---|
|
TDynamicVector<... |
BoxCenters |
|
|
double |
BoxEps |
TODO: move BoxEps to IMeshSpatial::FQueryOptions. |
|
TDynamicVector<... |
BoxExtents |
|
|
TDynamicVector<... |
BoxToIndex |
Storage for Box Nodes. |
|
GetSplitAxis |
||
|
TDynamicVector<... |
IndexList |
List of indices for a given Box. |
|
const TriangleM... |
Mesh |
|
|
MeshChangeStamp |
||
|
int |
RootIndex |
BoxToIndex[RootIndex] is the root node of the tree. |
|
int |
TopDownLeafMaxTriCount |
|
|
int |
TrianglesEnd |
IndexList[i] for i < TrianglesEnd is a triangle-index list, otherwise Box-index pair/single. |
Name | Description | |
---|---|---|
|
TMeshAABBTree3() |
|
|
TMeshAABBTree3 ( |
Name | Description | ||
---|---|---|---|
|
AddTriTriIntersectionResult ( |
Helper to add a triangle-triangle intersection result from to a intersection result struct |
|
|
double |
box_box_distsqr ( |
|
|
box_box_intersect ( |
||
|
box_contains ( |
||
|
double |
box_ray_intersect_t ( |
|
|
double |
BoxDistanceSqr ( |
|
|
Build |
||
|
Build() |
||
|
BuildTopDown |
||
|
BuildTopDown ( |
||
|
BuildTopDown |
||
|
DoTraversal ( |
Hierarchically descend through the tree Nodes, calling the FTreeTraversal functions at each level |
|
|
int |
find_any_intersection ( |
|
|
find_any_intersection ( |
||
|
find_intersections ( |
||
|
find_nearest_tri ( |
||
|
find_nearest_triangles ( |
||
|
find_nearest_vertex ( |
||
|
find_self_intersections ( |
||
|
find_self_intersections_acrossboxes ( |
Helper for find_self_intersections that checks intersections between triangles from separate boxes |
|
|
find_tri_tri_intersections ( |
Helper for find_self_intersections that intersects a single triangle vs a range of triangles |
|
|
MeshIntersec... |
FindAllIntersections ( |
Compute all intersections between two meshes. |
|
MeshIntersec... |
FindAllSelfIntersections ( |
Compute self intersections on our mesh. |
|
FindHitTriangle ( |
||
|
FindNearestPoint ( |
Convenience function that calls FindNearestTriangle and then finds nearest point |
|
|
FindNearestTriangles ( |
Find nearest pair of triangles on this tree with OtherTree, within Options.MaxDistance. |
|
|
int |
FindNearestVertex ( |
Find the Vertex closest to P, and distance to it, within distance MaxDist, or return InvalidID |
|
FAxisAligned... |
GetBoundingBox() |
Get the overall bounding box of the whole tree |
|
FAxisAligned... |
GetBox |
|
|
FAxisAligned... |
GetBox ( |
Internals - data structures, construction, etc |
|
FAxisAligned... |
GetBoxEps ( |
|
|
const Triang... |
GetMesh() |
|
|
IsValid ( |
||
|
GetSplitAxis... |
MakeDefaultSplitAxisFunc() |
|
|
SetBuildOptions ( |
||
|
SetMesh ( |
||
|
SetTolerance ( |
Sets the box intersection tolerance TODO: move into the IMeshSpatial::FQueryOptions and delete this function |
|
|
int |
SplitTriSetMidpoint |
|
|
TestAnyHitTriangle ( |
||
|
TestAnyHitTriangle ( |
||
|
TestCoverage() |
1) make sure we can reach every Tri in Mesh through tree (also demo of how to traverse tree...) 2) make sure that Triangles are contained in parent boxes |
|
|
TestIntersection ( |
Returns true if there is any intersection between our mesh and 'other' mesh. |
|
|
TestIntersection ( |
Return true if any triangle of TestMesh intersects with our tree. |
|
|
TestIntersection ( |
Returns true if triangle intersects any triangle of our mesh |
|
|
TestSelfIntersection ( |
||
|
double |
TotalVolume() |
Total sum of volumes of all boxes in the tree. Mainly useful to evaluate tree quality. |
|
TreeTraversalImpl ( |
Traversal implementation. you can override to customize this if necessary. |
|
|
TriangleIntersection ( |
Standard tri tri intersection test (with computing intersection geometry) |
|
|
TriangleIntersectionFilter ( |
Standard tri tri intersection test (without computing intersection geometry) |
Name | Description | ||
---|---|---|---|
|
int |
FindNearestHitTriangle ( |
|
|
FindNearestHitTriangle ( |
Find nearest triangle from the given ray |
|
|
FindNearestHitTriangle ( |
Find nearest triangle from the given ray |
|
|
int |
FindNearestTriangle ( |
Find the triangle closest to P, and distance to it, within distance MaxDist, or return InvalidID Use MeshQueries.TriangleDistance() to get more information |
|
SupportsNearestTriangle() |
||
|
SupportsTriangleRayIntersection() |
Name | Description | ||
---|---|---|---|
|
IsInside ( |
||
|
SupportsPointContainment() |
Name |
Description |
|
---|---|---|
|
FBoxesSet |
|
|
FTreeTraversal |
Name |
Description |
---|---|
GetSplitAxisFunc |
|
MeshType |
Name |
Description |
---|---|
DOUBLE_MAX |