![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <kDOP.h>
Public Attributes | ||
| FFourBox | BoundingVolumes | |
| bool | bIsLeaf | |
| uint8 | Occupancy | |
| union { | ||
| struct { | ||
| KDOP_IDX_TYPE LeftNode | ||
| KDOP_IDX_TYPE RightNode | ||
| } n | ||
| struct { | ||
| KDOP_IDX_TYPE NumTriangles | ||
| KDOP_IDX_TYPE StartIndex | ||
| } t | ||
| }; | ||
| union { | ||
| struct { | ||
| KDOP_IDX_TYPE LeftNode | ||
| KDOP_IDX_TYPE RightNode | ||
| } n | ||
| struct { | ||
| KDOP_IDX_TYPE NumTriangles | ||
| KDOP_IDX_TYPE StartIndex | ||
| } t | ||
| }; | ||
A node in the kDOP tree. The node contains the kDOP volume that encompasses it's children and/or triangles
| typedef COLL_DATA_PROVIDER TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::DataProviderType |
Exposes data provider type to clients.
| typedef COLL_DATA_PROVIDER TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::DataProviderType |
Exposes data provider type to clients.
| typedef TkDOPNode<DataProviderType,KDOP_IDX_TYPE> TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::NodeType |
Exposes node type to clients.
| typedef TkDOPNode<DataProviderType,KDOP_IDX_TYPE> TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::NodeType |
Exposes node type to clients.
|
inline |
Inits the data to no child nodes and an inverted volume
|
inline |
Inits the data to no child nodes and an inverted volume
|
inline |
Determines the line in the FkDOPLineCollisionCheck intersects this node. It also will check the child nodes if it is not a leaf, otherwise it will check against the triangle data.
| Check | – The aggregated line check data |
|
inline |
Determines the line in the FkDOPLineCollisionCheck intersects this node. It also will check the child nodes if it is not a leaf, otherwise it will check against the triangle data.
| Check | – The aggregated line check data |
|
inline |
The slab testing algorithm is based on the following papers. We chose to use the faster final hit determination, which means we'll get some false positives.
"A Cross-Platform Framework for Interactive Ray Tracing" Markus Geimer, Stefan Mueller http://www.uni-koblenz.de/~cg/publikationen/cp_raytrace.pdf
"Efficiency Issues for Ray Tracing" Brian Smits http://www.cs.utah.edu/~bes/papers/fastRT/paper-node10.html
We don't need to handle +/- INF, but we have permission to use Thierry Berger-Perrin trick available below.
http://www.flipcode.com/archives/SSE_RayBox_Intersection_Test.shtml
| Check | Information about the ray to trace |
| HitTime | [out] Time of hit |
|
inline |
The slab testing algorithm is based on the following papers. We chose to use the faster final hit determination, which means we'll get some false positives.
"A Cross-Platform Framework for Interactive Ray Tracing" Markus Geimer, Stefan Mueller http://www.uni-koblenz.de/~cg/publikationen/cp_raytrace.pdf
"Efficiency Issues for Ray Tracing" Brian Smits http://www.cs.utah.edu/~bes/papers/fastRT/paper-node10.html
We don't need to handle +/- INF, but we have permission to use Thierry Berger-Perrin trick available below.
http://www.flipcode.com/archives/SSE_RayBox_Intersection_Test.shtml
| Check | Information about the ray to trace |
| HitTime | [out] Time of hit |
|
inline |
Determines the line in the FkDOPLineCollisionCheck intersects this node. It also will check the child nodes if it is not a leaf, otherwise it will check against the triangle data.
| Check | – The aggregated line check data |
|
inline |
Determines the line in the FkDOPLineCollisionCheck intersects this node. It also will check the child nodes if it is not a leaf, otherwise it will check against the triangle data.
| Check | – The aggregated line check data |
|
inline |
Works through the list of triangles in this node checking each one for a collision.
| Check | – The aggregated line check data |
|
inline |
Works through the list of triangles in this node checking each one for a collision.
| Check | – The aggregated line check data |
|
inline |
Determines if the node is a leaf or not. If it is not a leaf, it subdivides the list of triangles again adding two child nodes and splitting them on the mean (splatter method). Otherwise it sets up the triangle information.
| Start | – The triangle index to start processing with |
| NumTris | – The number of triangles to process |
| BuildTriangles | – The list of triangles to use for the build process |
| Nodes | – The list of nodes in this tree |
|
inline |
Determines if the node is a leaf or not. If it is not a leaf, it subdivides the list of triangles again adding two child nodes and splitting them on the mean (splatter method). Otherwise it sets up the triangle information.
| Start | – The triangle index to start processing with |
| NumTris | – The number of triangles to process |
| BuildTriangles | – The list of triangles to use for the build process |
| Nodes | – The list of nodes in this tree |
| union { ... } TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE > |
| union { ... } TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE > |
| bool TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::bIsLeaf |
| FFourBox TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::BoundingVolumes |
Set of bounding volumes for child nodes.
| KDOP_IDX_TYPE TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::LeftNode |
| struct { ... } TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::n |
| struct { ... } TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::n |
| KDOP_IDX_TYPE TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::NumTriangles |
| uint8 TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::Occupancy |
| KDOP_IDX_TYPE TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::RightNode |
| KDOP_IDX_TYPE TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::StartIndex |
| struct { ... } TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::t |
| struct { ... } TkDOPNode< COLL_DATA_PROVIDER, KDOP_IDX_TYPE >::t |