|
SYS_FORCE_INLINE | BVH () noexcept |
|
SYS_FORCE_INLINE | ~BVH () noexcept |
|
SYS_FORCE_INLINE GA_Offset | primitiveOffset (exint prim_index) const noexcept |
|
void | clear () noexcept |
|
SYS_FORCE_INLINE GA_Size | numItems () const noexcept |
|
GA_DataId | topologyId () const |
|
GA_DataId | primlistId () const |
|
void | init (const GEO_Detail &detail, const GA_ROHandleT< VectorType > &P, const Options &options, const GA_ROHandleF &pscale, const float radscale=1.0f, const bool force_rebalance=false, SecondaryTreeMap *secondary_trees=nullptr, SecondaryDetailMap *secondary_details=nullptr, UT_Lock *secondary_lock=nullptr) noexcept |
|
void | init (const GEO_Detail &detail, const GA_ROHandleT< VectorType > &P, const Options &options, const float radius=0.0f, const bool force_rebalance=false) noexcept |
| NOTE: With this signature, radius is the point radius. More...
|
|
SYS_FORCE_INLINE bool | isNGon (exint index) const noexcept |
|
UT_Vector3 | findNGonUVW (exint index, const UT_Vector3 &position, const GEO_Detail &detail) const noexcept |
|
SYS_FORCE_INLINE bool | isPacked (exint index) const noexcept |
|
| BVHBase () noexcept |
|
| ~BVHBase () noexcept |
|
SYS_FORCE_INLINE bool | isEmpty () const noexcept |
|
template<bool farthest = false, bool rm_backface = false, bool reverse = false, typename HitInfoType > |
void | sendRay (const VectorType &origin, const VectorType &direction, HitInfoType &hit_info, float tmin=0, float tmax=std::numeric_limits< float >::max()) const noexcept |
|
template<bool farthest = false, bool rm_backface = false, bool reverse = false, typename HitInfoType > |
void | sendRayRad (const VectorType &origin, const VectorType &direction, HitInfoType &hit_info, float default_radius, float tmin=0, float tmax=std::numeric_limits< float >::max()) const noexcept |
|
template<bool rm_backface = false, bool reverse = false, bool sort = true, typename HitInfoType > |
void | sendRayAll (const VectorType &origin, const VectorType &direction, UT_Array< HitInfoType > &hit_info, UT_Array< exint > *nesting_temp_array=nullptr, float duplicate_tolerance=0, float tmin=0, float tmax=std::numeric_limits< float >::max()) const noexcept |
|
template<bool rm_backface = false, bool reverse = false, bool sort = true, typename HitInfoType > |
void | sendRayAllRad (const VectorType &origin, const VectorType &direction, UT_Array< HitInfoType > &hit_info, float default_radius, UT_Array< exint > *nesting_temp_array=nullptr, float duplicate_tolerance=0, float tmin=0, float tmax=std::numeric_limits< float >::max()) const noexcept |
|
template<bool farthest, bool rm_backface, bool reverse, typename FUNCTOR > |
void | sendRayGeneric (VectorType origin, VectorType direction, FUNCTOR &hit_info, float tmin=0, float tmax=std::numeric_limits< float >::max()) const noexcept |
|
void | findClosestToLine (VectorType origin, VectorType direction, const exint max_points, const float max_dist_squared, UT::BVHOrderedStack &output_queue) const noexcept |
| Finds the closest points to the infinite line containing origin with direction direction . More...
|
|
void | findClosestToSegment (VectorType p0, VectorType p1, const exint max_points, const float max_dist_squared, UT::BVHOrderedStack &output_queue) const noexcept |
| Finds the closest points to the line segment with endpoints p0 and p1 . More...
|
|
void | findClosestInCone (VectorType origin, VectorType direction, const float angle, const exint max_points, const float max_dist_squared, UT::BVHOrderedStack &output_queue) const noexcept |
|
template<bool farthest> |
void | findClosest (VectorType origin, MinInfo &min_info, float max_dist_squared=std::numeric_limits< float >::max()) const noexcept |
|
void | getIntersectingBoxes (const SingleBoxType &query_box, UT_Array< exint > &box_indices) const noexcept |
|
SYS_FORCE_INLINE exint | numPoints () const noexcept |
|
SYS_FORCE_INLINE GA_Offset | pointOffset (exint item_index) const noexcept |
|
template<bool normalize = true> |
VectorType | getGeometricNormal (const CommonHitInfo &hit_info) const noexcept |
|
void | getDerivs (const CommonHitInfo &hit_info, VectorType &dP_du, VectorType &dP_dv) const noexcept |
| Fills in the values of dP/du and dP/dv for the hit surface. More...
|
|
template<GA_AttributeOwner owner, typename T , typename DEST_T > |
bool | getAttribute (const CommonHitInfo &hit_info, const GA_ROHandleT< T > &attrib, const GEO_Detail &detail, DEST_T &value) const noexcept |
|
SingleBoxType | getBBox () const noexcept |
|
template<bool normalize> |
BVHBase< NAXES, SUBCLASS >
::VectorType | getGeometricNormal (const CommonHitInfo &hit_info) const noexcept |
|
|
template<bool farthest, bool rm_backface, bool reverse, typename FUNCTOR > |
bool | intersectPrim (uint index, const VectorType &origin, const VectorType &direction, const VectorType &inverse_direction, int &max_dir, VectorType &N0, VectorType &N1, float &outer_tmax, float &outer_tmin, FUNCTOR &hit_info) const noexcept |
|
template<bool farthest> |
void | closestPrim (uint index, const VectorType &origin, float &max_dist_squared, exint &hit_index, UT_Vector3 &hit_uvw, VectorType &hit_position, const UT_FixedVector< v4uf, NAXES > &vorigin, UT_Array< exint > *nesting_array, exint nesting_array_base) const noexcept |
|
template<bool normalize> |
VectorType | primGeometricNormal (const CommonHitInfo &hit_info) const noexcept |
|
SYS_FORCE_INLINE void | primDerivs (const CommonHitInfo &hit_info, VectorType &dP_du, VectorType &dP_dv) const noexcept |
|
template<GA_AttributeOwner owner, typename T , typename DEST_T > |
SYS_FORCE_INLINE bool | primAttribute (const CommonHitInfo &hit_info, const GA_ROHandleT< T > &attrib, const GEO_Detail &detail, DEST_T &value) const noexcept |
|
|
void | clearPrimDataAllocations () noexcept |
|
void | clearSecondary () noexcept |
|
void | clear () noexcept |
|
SYS_FORCE_INLINE SUBCLASS * | subclass () noexcept |
|
SYS_FORCE_INLINE const SUBCLASS * | subclass () const noexcept |
|
template<bool farthest, typename QUERY_POINT > |
void | findMaximalPointsCommon (const QUERY_POINT &query_point, UT::BVHOrderedStack &stack, UT::BVHOrderedStack &output_queue, exint max_points, float max_dist_squared) const noexcept |
|
|
template<bool farthest, bool rm_backface, bool reverse, bool bidirectional = false, typename FUNCTOR > |
static SYS_FORCE_INLINE bool | intersectQuad (const UT_Vector3 &origin, const UT_Vector3 &inverse_direction, const UT_Vector3 pos[4], const int max_dir, const UT_Vector3 &N0, const UT_Vector3 &N1, const PrimData &prim_data, float &outer_tmin, float &outer_tmax, const uint index, FUNCTOR &hit_info) |
|
template<bool farthest, bool rm_backface, bool reverse, bool bidirectional = false, typename FUNCTOR > |
static SYS_FORCE_INLINE bool | intersectTet (const UT_Vector3 &origin, const UT_Vector3 &inverse_direction, const UT_Vector3 pos[4], const PrimData &prim_data, float &outer_tmin, float &outer_tmax, const uint index, FUNCTOR &hit_info) |
|
template<bool farthest, bool rm_backface, bool reverse, typename FUNCTOR > |
static SYS_FORCE_INLINE bool | intersectHex (const UT_Vector3 &origin, const UT_Vector3 &direction, const UT_Vector3 &inverse_direction, const UT_Vector3 pos[8], int &max_dir, UT_Vector3 &N0, UT_Vector3 &N1, const PrimData &prim_data, float &outer_tmin, float &outer_tmax, const uint index, FUNCTOR &hit_info) |
|
template<bool farthest> |
static SYS_FORCE_INLINE bool | triClosestPoint (uint index, const VectorType &origin, const VectorType pos[3], const PrimData &prim_data, const UT_Vector3 &normal, float &max_dist_squared, exint &hit_index, UT_Vector3 &hit_uvw, UT_Vector3 &hit_position) |
|
template<bool farthest> |
static SYS_FORCE_INLINE bool | quadClosestPoint (uint index, const VectorType &origin, const UT_FixedVector< v4uf, 3 > &vorigin, const VectorType pos[4], const PrimData &prim_data, float &max_dist_squared, exint &hit_index, UT_Vector3 &hit_uvw, UT_Vector3 &hit_position) |
|
static bool | hexClosestPoint (uint index, const VectorType &origin, const UT_FixedVector< v4uf, 3 > &vorigin, const VectorType pos[8], float &max_dist_squared, exint &hit_index, UT_Vector3 &hit_uvw, UT_Vector3 &hit_position) |
|
template<typename V3_ARRAY > |
static SYS_FORCE_INLINE void | addTriangleData (GA_Offset *&tri_points, const V3_ARRAY &positions, const GA_ROHandleT< VectorType > &posattrib, PrimData *primdata, SingleBoxType *prim_box_start, exint &tri_primnum, GA_Offset primoff, int data_int=-1, float data_float=0) noexcept |
|
template<typename V3_ARRAY > |
static SYS_FORCE_INLINE void | addQuadData (GA_Offset *&quad_points, const V3_ARRAY &positions, const GA_ROHandleT< VectorType > &posattrib, PrimData *primdata, SingleBoxType *prim_box_start, exint &quad_primnum, GA_Offset primoff, int data_int=-1, float data_float=0) noexcept |
|
static SYS_FORCE_INLINE void | addRayPrimInfo (PrimData &primdata, GA_Offset primoff, SingleBoxType &primbox, GU_RayPrimInfo *rayprim, exint &other_primnum, const GEO_Detail &detail, float w=0) noexcept |
|
Definition at line 33 of file GU_BVH.h.