|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT::Box< T, NAXES > &box) noexcept |
|
template<uint NAXES> |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT::Box< fpreal32, NAXES > &box) noexcept |
|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE T | UT::utBoxCenter (const UT::Box< T, NAXES > &box, uint axis) noexcept |
|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE T | UT::utBoxExclude (const UT_FixedVector< T, NAXES > &position) noexcept |
|
template<uint NAXES> |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT_FixedVector< fpreal32, NAXES > &position) noexcept |
|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE T | UT::utBoxCenter (const UT_FixedVector< T, NAXES > &position, uint axis) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT_Vector2T< T > &position) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT_Vector3T< T > &position) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT_Vector4T< T > &position) noexcept |
|
template<> |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT_Vector2T< fpreal32 > &position) noexcept |
|
template<> |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT_Vector3T< fpreal32 > &position) noexcept |
|
template<> |
SYS_FORCE_INLINE bool | UT::utBoxExclude (const UT_Vector4T< fpreal32 > &position) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE T | UT::utBoxCenter (const UT_Vector2T< T > &position, uint axis) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE T | UT::utBoxCenter (const UT_Vector3T< T > &position, uint axis) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE T | UT::utBoxCenter (const UT_Vector4T< T > &position, uint axis) noexcept |
|
template<typename BOX_TYPE , typename SRC_INT_TYPE , typename INT_TYPE > |
INT_TYPE | UT::utExcludeNaNInfBoxIndices (const BOX_TYPE *boxes, SRC_INT_TYPE *indices, INT_TYPE &nboxes) noexcept |
|
template<uint BVH_N, typename ITEM_BOX , typename NODE_BOX > |
SYS_FORCE_INLINE void | UT::createBVHNodeBoxes (const UT::BVH< BVH_N > &bvh, const ITEM_BOX *item_boxes, NODE_BOX *node_boxes) noexcept |
|
template<uint NAXES, typename T , uint BVH_N, typename ITEM_BOX , typename NODE_BOX > |
SYS_FORCE_INLINE void | UT::createBVHInterleavedBoxes (const UT::BVH< BVH_N > &bvh, const ITEM_BOX *item_boxes, NODE_BOX *node_boxes, float expand_factor=0.0f) noexcept |
|
template<typename T , uint NAXES, bool PARALLEL, typename INT_TYPE0 , typename DATA , typename INT_TYPE > |
void | UT::utCreateBVHInterleavedBoxesHelper (INT_TYPE nodei, INT_TYPE next_node_id, const DATA &data, UT::Box< T, NAXES > *data_for_parent) noexcept |
|
template<uint NAXES, typename T , typename ITEM_BOX , typename NODE_BOX , typename INT_TYPE0 = uint> |
SYS_FORCE_INLINE void | UT::createBVHInterleavedBoxes (const UT::BVH< 4 > &bvh, const ITEM_BOX *item_boxes, NODE_BOX *node_boxes, const v4uu *node_nitems, const INT_TYPE0 *indices_mapping=nullptr) noexcept |
|
template<uint NAXES, typename INT_TYPE > |
void | UT::getIntersectingBoxes (const UT::BVH< 4 > &bvh, const UT::Box< v4uf, NAXES > *node_boxes, const UT::Box< float, NAXES > &query_box, UT_Array< INT_TYPE > &box_indices, BVHUnorderedStack &stack) noexcept |
|
template<uint NAXES, typename INT_TYPE > |
void | UT::getIntersectingBoxesFromStack (const UT::BVH< 4 > &bvh, const UT::Box< v4uf, NAXES > *node_boxes, const UT::Box< float, NAXES > &query_box, UT_Array< INT_TYPE > &box_indices, BVHUnorderedStack &stack) noexcept |
|
template<uint NAXES, typename INT_TYPE > |
void | UT::getIntersectingNodes (const UT::BVH< 4 > &bvh, const UT::Box< v4uf, NAXES > *node_boxes, const UT::Box< float, NAXES > &query_box, UT_Array< INT_TYPE > &box_indices, BVHUnorderedStack &stack) noexcept |
|
template<uint NAXES, typename INT_TYPE , int BATCH_SIZE> |
void | UT::getIntersectingBoxesBatch (const UT::BVH< 4 > &bvh, const UT::Box< v4uf, NAXES > *node_boxes, const UT::Box< float, NAXES > *query_box, UT_Array< INT_TYPE > *box_indices, BVHUnorderedStack &stack) noexcept |
|
template<bool PARALLEL, typename DATA > |
void | UT::utComputeNodeNItemsHelper (uint nodei, uint next_node_id, uint next_item_id, const DATA &data) noexcept |
|
void | UT::computeNodeNItems (const UT::BVH< 4 > &bvh, v4uu *node_nitems, exint nitems) noexcept |
| Computes the number of items per node entry and fills in node_nitems. More...
|
|
template<typename RADIUS_ARRAY > |
SYS_FORCE_INLINE void | UT::utHandleRadiiLinearly (float &d2, const RADIUS_ARRAY &radii, uint index) |
|
template<bool farthest, bool reordered, bool use_max_points, uint NAXES, typename QUERY_POINT , typename INT_TYPE0 , typename POSITION_ARRAY , typename RADIUS_ARRAY > |
SYS_FORCE_INLINE void | UT::utHandleSingleClosePoint (const uint index, const INT_TYPE0 *indices_mapping, const POSITION_ARRAY &positions, QUERY_POINT &query_point, BVHOrderedStack &output_queue, const RADIUS_ARRAY &radii, exint max_points, float &max_dist_squared) noexcept |
|
template<bool farthest, bool reordered, bool use_max_points, uint NAXES, typename QUERY_POINT , typename INT_TYPE0 , typename POSITION_ARRAY , typename RADIUS_ARRAY > |
void | UT::findClosestPoints (const UT::BVH< 4 > &bvh, const UT::Box< v4uf, NAXES > *node_boxes, const v4uu *node_nitems, const INT_TYPE0 *indices_mapping, const POSITION_ARRAY &positions, QUERY_POINT &query_point, BVHOrderedStack &stack, BVHOrderedStack &output_queue, const RADIUS_ARRAY &radii=ZeroRadiiWrapper(), exint max_points=std::numeric_limits< exint >::max(), float max_dist_squared=std::numeric_limits< float >::max()) noexcept |
|