|
template<uint BVH_N, typename ITEM_BOX , typename NODE_BOX > |
SYS_FORCE_INLINE void | 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 | createBVHInterleavedBoxes (const UT::BVH< BVH_N > &bvh, const ITEM_BOX *item_boxes, NODE_BOX *node_boxes, float expand_factor=0.0f) noexcept |
|
template<uint NAXES, typename T , typename ITEM_BOX , typename NODE_BOX , typename INT_TYPE0 = uint> |
SYS_FORCE_INLINE void | 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 | 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 | 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 | 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 | 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 |
|
void | 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 T > |
constexpr bool | allRadiiZero (const T &array) noexcept |
|
constexpr bool | allRadiiZero (const ZeroRadiiWrapper &array) noexcept |
|
template<typename T > |
constexpr bool | allRadiiZero (const T *const array) 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 | 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 |
|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE bool | utBoxExclude (const UT::Box< T, NAXES > &box) noexcept |
|
template<uint NAXES> |
SYS_FORCE_INLINE bool | utBoxExclude (const UT::Box< fpreal32, NAXES > &box) noexcept |
|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE T | utBoxCenter (const UT::Box< T, NAXES > &box, uint axis) noexcept |
|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE T | utBoxExclude (const UT_FixedVector< T, NAXES > &position) noexcept |
|
template<uint NAXES> |
SYS_FORCE_INLINE bool | utBoxExclude (const UT_FixedVector< fpreal32, NAXES > &position) noexcept |
|
template<typename T , uint NAXES> |
SYS_FORCE_INLINE T | utBoxCenter (const UT_FixedVector< T, NAXES > &position, uint axis) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE bool | utBoxExclude (const UT_Vector2T< T > &position) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE bool | utBoxExclude (const UT_Vector3T< T > &position) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE bool | utBoxExclude (const UT_Vector4T< T > &position) noexcept |
|
template<> |
SYS_FORCE_INLINE bool | utBoxExclude (const UT_Vector2T< fpreal32 > &position) noexcept |
|
template<> |
SYS_FORCE_INLINE bool | utBoxExclude (const UT_Vector3T< fpreal32 > &position) noexcept |
|
template<> |
SYS_FORCE_INLINE bool | utBoxExclude (const UT_Vector4T< fpreal32 > &position) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE T | utBoxCenter (const UT_Vector2T< T > &position, uint axis) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE T | utBoxCenter (const UT_Vector3T< T > &position, uint axis) noexcept |
|
template<typename T > |
SYS_FORCE_INLINE T | utBoxCenter (const UT_Vector4T< T > &position, uint axis) noexcept |
|
template<typename BOX_TYPE , typename SRC_INT_TYPE , typename INT_TYPE > |
INT_TYPE | utExcludeNaNInfBoxIndices (const BOX_TYPE *boxes, SRC_INT_TYPE *indices, INT_TYPE &nboxes) noexcept |
|
template<typename T , uint NAXES, bool PARALLEL, typename INT_TYPE0 , typename DATA , typename INT_TYPE > |
void | utCreateBVHInterleavedBoxesHelper (INT_TYPE nodei, INT_TYPE next_node_id, const DATA &data, UT::Box< T, NAXES > *data_for_parent) noexcept |
|
template<bool PARALLEL, typename DATA > |
void | utComputeNodeNItemsHelper (uint nodei, uint next_node_id, uint next_item_id, const DATA &data) noexcept |
|
template<typename RADIUS_ARRAY > |
SYS_FORCE_INLINE void | 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 | 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<typename ITEM_INDEX , int MAX_ORDER, typename FT > |
RTreeT< ITEM_INDEX, MAX_ORDER > | constructRTree (const UT_BoxT< FT > item_box[], const ITEM_INDEX num_items) |
|
template<typename ITEM_INDEX , int MAX_ORDER, typename FT > |
RTreeT< ITEM_INDEX, MAX_ORDER > | constructRTree (const UT_Array< UT_BoxT< FT > > &item_box) |
|
template<typename ITEM_INDEX , int MAX_ORDER, typename FT > |
RTreeConfigurationT< FT > | constructRTreeConfiguration (const UT::RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_BoxT< FT > item_box[], const ITEM_INDEX num_items) |
|
template<typename ITEM_INDEX , int MAX_ORDER, typename FT > |
RTreeConfigurationT< FT > | constructRTreeConfiguration (const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_Array< UT_BoxT< FT > > &item_box) |
|
template<typename ITEM_INDEX , int MAX_ORDER, typename FT , typename QUERY_SHAPE , typename ACCEPT_ITEM > |
void | forEachIntersecting (ACCEPT_ITEM &&accept_item, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const RTreeConfigurationT< FT > &configuration, const QUERY_SHAPE &query_shape) |
|
template<typename ITEM_INDEX , int MAX_ORDER, typename FT > |
void | updateConfiguration (RTreeConfigurationT< FT > &configuration, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_BoxT< FT > item_box[], const ITEM_INDEX num_items) |
|
template<typename FT > |
exint | heapMemoryUsage (const RTreeConfigurationT< FT > &configuration) |
|
template<typename ITEM_INDEX , int MAX_ORDER, typename FT > |
void | updateConfiguration (RTreeConfigurationT< FT > &configuration, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_Array< UT_BoxT< FT > > &item_box) |
|
template<typename QUERY_SHAPE , typename ITEM_INDEX , int MAX_ORDER, typename FT > |
void | getIntersecting (UT_Array< ITEM_INDEX > &results, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const RTreeConfigurationT< FT > &configuration, const QUERY_SHAPE &query_shape) |
|
template<typename QUERY_SHAPE , typename ITEM_INDEX , int MAX_ORDER, typename FT > |
ITEM_INDEX * | getIntersectingRaw (const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const RTreeConfigurationT< FT > &configuration, const QUERY_SHAPE &query_shape, ITEM_INDEX *const items_begin) |
|
size_t | subtreeDetermineNumNodes (const int MAX_ORDER, const size_t size) |
|
template<typename BOX , typename ITEM_INDEX_REP , int MAX_ORDER> |
RNodeT< ITEM_INDEX_REP,
MAX_ORDER > * | subtreeCreate (BOX &bounding_box, BOX shared_boxes[], UT_BoxedItemT< BOX, ITEM_INDEX_REP > *const begin, UT_BoxedItemT< BOX, ITEM_INDEX_REP > *const end, RNodeT< ITEM_INDEX_REP, MAX_ORDER > shared_nodes[], RNodeT< ITEM_INDEX_REP, MAX_ORDER > *&shared_nodes_end) |
|
template<typename ITEM_INDEX_REP , int MAX_ORDER, typename ITEM_BOX , typename FT > |
void | subtreeAssignItemBoxArray (UT_BoxT< FT > &bounding_box, UT_BoxT< FT > shared_boxes[], const RNodeT< ITEM_INDEX_REP, MAX_ORDER > shared_nodes[], const RNodeT< ITEM_INDEX_REP, MAX_ORDER > *const node, ITEM_BOX &&item_box) |
|
template<typename ITEM_INDEX_REP , int MAX_ORDER> |
exint | subtreeComputeMaxDepth (const RNodeT< ITEM_INDEX_REP, MAX_ORDER > shared_nodes[], const RNodeT< ITEM_INDEX_REP, MAX_ORDER > *const node) |
|
UT_API const UT_ErrorCategory & | GetSqliteErrorCategory () |
|
UT_API const UT_ErrorCategory & | GetSqlErrorCategory () |
|
UT_ErrorCode | make_error_code (UT::SqlError e) |
|
A user-defined string literal to construct UT_StringHolder objects. E.g:
auto lit = "This is my UT_StringHolder literal"_sh;