HDK
|
#include <UT_BVHImpl.h>
Public Types | |
using | BoxType = UT::Box< v4uf, NAXES > |
Public Member Functions | |
SYS_FORCE_INLINE | BVHQueryTetrahedron (const UT_FixedVector< float, NAXES > &a, const UT_FixedVector< float, NAXES > &b, const UT_FixedVector< float, NAXES > &c, const UT_FixedVector< float, NAXES > &d) |
SYS_FORCE_INLINE bool | isValid (uint tree_point_index) const |
template<typename RADIUS_ARRAY > | |
SYS_FORCE_INLINE float | queryDistance2 (const UT_FixedVector< float, NAXES > &tree_point, const RADIUS_ARRAY &radii, uint index) const |
This must be the exact distance squared. More... | |
template<bool farthest> | |
SYS_FORCE_INLINE uint | boxHitAndDist2 (const BoxType &boxes, const float max_dist_squared, const uint internal_node_num, v4uf &dist2) const |
Public Attributes | |
UT_FixedVector< float, NAXES > | myDirs [4] |
UT_FixedVector< float, NAXES > | myIncentre |
float | myDist |
UT_FixedVector< v4uf, NAXES > | myVDirs [4] |
UT_FixedVector< v4uf, NAXES > | myVIncentre |
v4uf | myVDist |
Static Public Attributes | |
static constexpr uint | NAXES = 3 |
static constexpr bool | theAllPointsValid = true |
isValid() doesn't need to be called, because theAllPointsValid is true. More... | |
This replaces UT_KDTetQuery. Lookup information for 3D-tree tetrahedron queries NOTE: Distance squared here is not Euclidean distance squared, but edge-perpendicular distance squared, i.e. distance is from the incentre out, perpendicular to one of the edges, minus the insphere's radius. This avoids the need to have special cases for what would be the spherical sections around each vertex. It basically indicates how far the tetrahedron would have to be expanded (or contracted) relative to the incentre in order to hit the query point.
Definition at line 3744 of file UT_BVHImpl.h.
using UT::BVHQueryTetrahedron::BoxType = UT::Box<v4uf,NAXES> |
Definition at line 3756 of file UT_BVHImpl.h.
|
inline |
Definition at line 3759 of file UT_BVHImpl.h.
|
inline |
The distance squared can be an underestimate, but not an overestimate, of the true distance squared. The reverse is the case if farthest is true. Also, if farthest is true, max_dist_squared is actually min_dist_squared.
Definition at line 3844 of file UT_BVHImpl.h.
|
inline |
NOTE: This doesn't necessarily need to be const, for subclasses that have a limit on the number of invalid points hit before giving up, for example.
Definition at line 3818 of file UT_BVHImpl.h.
|
inline |
This must be the exact distance squared.
Definition at line 3825 of file UT_BVHImpl.h.
UT_FixedVector<float, NAXES> UT::BVHQueryTetrahedron::myDirs[4] |
Definition at line 3747 of file UT_BVHImpl.h.
float UT::BVHQueryTetrahedron::myDist |
Definition at line 3749 of file UT_BVHImpl.h.
UT_FixedVector<float, NAXES> UT::BVHQueryTetrahedron::myIncentre |
Definition at line 3748 of file UT_BVHImpl.h.
UT_FixedVector<v4uf, NAXES> UT::BVHQueryTetrahedron::myVDirs[4] |
Definition at line 3750 of file UT_BVHImpl.h.
v4uf UT::BVHQueryTetrahedron::myVDist |
Definition at line 3752 of file UT_BVHImpl.h.
UT_FixedVector<v4uf, NAXES> UT::BVHQueryTetrahedron::myVIncentre |
Definition at line 3751 of file UT_BVHImpl.h.
|
static |
Definition at line 3745 of file UT_BVHImpl.h.
|
static |
isValid() doesn't need to be called, because theAllPointsValid is true.
Definition at line 3755 of file UT_BVHImpl.h.