23 template<
typename ITEM_INDEX,
int MAX_ORDER >
class RTreeT;
41 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
45 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
48 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
52 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
61 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename FT,
typename QUERY_SHAPE,
typename ACCEPT_ITEM >
63 ACCEPT_ITEM&& accept_item,
66 const QUERY_SHAPE& query_shape
83 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
91 template<
typename ITEM_INDEX_REP,
int MAX_ORDER >
103 template<
typename ITEM_INDEX >
106 constexpr
auto operator()(
const ITEM_INDEX i )
const noexcept
112 template<
typename ITEM_INDEX >
115 template<
typename ITEM_INDEX >
126 template<
typename ITEM_INDEX,
int MAX_ORDER >
154 ItemIndexRep myNumItems;
156 template<
typename FT >
160 template<
typename FT >
163 template<
typename ALT_ITEM_INDEX,
int ALT_MAX_ORDER,
typename FT >
166 template<
typename ALT_ITEM_INDEX,
int ALT_MAX_ORDER,
typename FT >
169 template<
typename ALT_ITEM_INDEX,
int ALT_MAX_ORDER,
typename FT,
typename QUERY_SHAPE,
typename ACCEPT_ITEM >
171 ACCEPT_ITEM&& accept_item,
174 const QUERY_SHAPE& query_shape
177 template<
typename ALT_ITEM_INDEX,
int ALT_MAX_ORDER,
typename FT >
185 template<
typename ALT_ITEM_INDEX,
int ALT_MAX_ORDER >
189 template<
typename FT >
197 template<
typename FT >
208 exint myNodeSlotBoxSize;
213 const exint node_slot_box_size,
222 template<
typename ITEM_INDEX,
int MAX_ORDER >
friend class RTreeT;
225 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename ALT_FT >
228 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename ALT_FT,
typename QUERY_SHAPE,
typename ACCEPT_ITEM >
230 ACCEPT_ITEM&& accept_item,
233 const QUERY_SHAPE& query_shape
236 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename ALT_FT >
250 template<
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
265 template<
typename QUERY_SHAPE,
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
270 const QUERY_SHAPE& query_shape
278 template<
typename QUERY_SHAPE,
typename ITEM_INDEX,
int MAX_ORDER,
typename FT >
282 const QUERY_SHAPE& query_shape,
283 ITEM_INDEX*
const items_begin
339 template<
typename FT >
342 template<
typename FT >
345 template<
typename FT >
348 template<
typename FT >
351 template<
typename FT >
354 template<
typename FT >
357 template<
typename FT >
360 template<
typename FT >
363 template<
typename FT >
366 template<
typename FT >
369 template<
typename FT >
372 template<
typename FT >
375 template<
typename FT >
378 template<
typename FT >
381 template<
typename FT >
384 template<
typename FT >
387 template<
typename FT >
390 template<
typename FT >
393 template<
typename FT >
398 #endif // __RTree_H__
auto UTmakeUniqueRTree16IntConfiguration(const UT_RTree16Int &tree, const UT_Array< UT_BoxT< FT > > &item_box)
UT_BoxT< fpreal64 > RTreeBoxD
RTreeT< int, 2 > RTreeInt
UT_BoxT< fpreal32 > RTreeBoxF
static constexpr int max_order
auto UTmakeUniqueRTreeInt(const UT_Array< UT_BoxT< FT > > &item_box)
GLboolean GLboolean GLboolean GLboolean a
auto UTmakeUniqueRTreeIntConfiguration(const UT_RTreeInt &tree, const UT_Array< UT_BoxT< FT > > &item_box)
friend RTreeConfigurationT< ALT_FT > constructRTreeConfiguration(const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_BoxT< ALT_FT > item_box[], const ITEM_INDEX num_items)
exint heapMemoryUsage(const RTreeConfigurationT< FT > &configuration)
RTreeConfigurationT< fpreal64 > RTreeConfigurationD
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
friend RTreeT< ALT_ITEM_INDEX, ALT_MAX_ORDER > constructRTree(const UT_BoxT< FT > item_box[], const ALT_ITEM_INDEX num_items)
friend RTreeConfigurationT< FT > constructRTreeConfiguration(const RTreeT< ALT_ITEM_INDEX, ALT_MAX_ORDER > &tree, const UT_BoxT< FT > item_box[], const ALT_ITEM_INDEX num_items)
UT_RTree2IntConfigurationT< FT > UTconstructRTree2IntConfiguration(const UT_RTree2Int &tree, const UT_Array< UT_BoxT< FT > > &item_box)
friend void forEachIntersecting(ACCEPT_ITEM &&accept_item, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const RTreeConfigurationT< ALT_FT > &configuration, const QUERY_SHAPE &query_shape)
auto UTmakeUniqueRTree16Int(const UT_Array< UT_BoxT< FT > > &item_box)
RTreeT< ITEM_INDEX, MAX_ORDER > constructRTree(const UT_BoxT< FT > item_box[], const ITEM_INDEX num_items)
RTreeConfigurationT< FT > constructRTreeConfiguration(const UT::RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_BoxT< FT > item_box[], const ITEM_INDEX num_items)
auto UTmakeUniqueRTree2Int(const UT_Array< UT_BoxT< FT > > &item_box)
SYS_RemoveCVRef_t< decltype(ItemIndexUnderlyingInteger< ITEM_INDEX >{}(std::declval< ITEM_INDEX >())) > type
friend void updateConfiguration(RTreeConfigurationT< FT > &configuration, const RTreeT< ALT_ITEM_INDEX, ALT_MAX_ORDER > &tree, const UT_BoxT< FT > item_box[], const ALT_ITEM_INDEX num_items)
UT_BoxT< fpreal64 > RTreeBox
UT_RTree16Int UTconstructRTree16Int(const UT_Array< UT_BoxT< FT > > &item_box)
void forEachIntersecting(ACCEPT_ITEM &&accept_item, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const RTreeConfigurationT< FT > &configuration, const QUERY_SHAPE &query_shape)
auto UTmakeUniqueRTree2IntConfiguration(const UT_RTree2Int &tree, const UT_Array< UT_BoxT< FT > > &item_box)
UT_RTree16IntConfigurationT< FT > UTconstructRTree16IntConfiguration(const UT_RTree16Int &tree, const UT_Array< UT_BoxT< FT > > &item_box)
void updateConfiguration(RTreeConfigurationT< FT > &configuration, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_BoxT< FT > item_box[], const ITEM_INDEX num_items)
RTreeT & operator=(const RTreeT &)=delete
typename ItemIndex_UnderlyingIntegerType< ITEM_INDEX >::type ItemIndex_UnderlyingIntegerType_t
friend void updateConfiguration(RTreeConfigurationT< ALT_FT > &configuration, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const UT_BoxT< ALT_FT > item_box[], const ITEM_INDEX num_items)
RTreeT< int, 2 > RTree2Int
UT_RTreeInt UTconstructRTreeInt(const UT_BoxT< FT > item_box[], const UT_RTreeInt::ItemIndex num_items)
RTreeConfigurationT< fpreal32 > RTreeConfigurationF
UT_RTree2Int UTconstructRTree2Int(const UT_Array< UT_BoxT< FT > > &item_box)
friend void forEachIntersecting(ACCEPT_ITEM &&accept_item, const RTreeT< ALT_ITEM_INDEX, ALT_MAX_ORDER > &tree, const RTreeConfigurationT< FT > &configuration, const QUERY_SHAPE &query_shape)
RTreeConfigurationT< fpreal64 > RTreeConfiguration
UT_RTreeConfigurationT< FT > UTconstructRTreeConfiguration(const UT_RTree &tree, const UT_Array< UT_BoxT< FT > > &item_box)
constexpr auto operator()(const ITEM_INDEX i) const noexcept
UT_RTreeIntConfigurationT< FT > UTconstructRTreeIntConfiguration(const UT_RTreeInt &tree, const UT_Array< UT_BoxT< FT > > &item_box)
RTreeT< int, 16 > RTree16Int
void getIntersecting(UT_Array< ITEM_INDEX > &results, const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const RTreeConfigurationT< FT > &configuration, const QUERY_SHAPE &query_shape)
UT_RTree UTconstructRTree(const UT_BoxT< FT > item_box[], const UT_RTree::ItemIndex num_items)
ITEM_INDEX * getIntersectingRaw(const RTreeT< ITEM_INDEX, MAX_ORDER > &tree, const RTreeConfigurationT< FT > &configuration, const QUERY_SHAPE &query_shape, ITEM_INDEX *const items_begin)
friend exint heapMemoryUsage(const RTreeT< ALT_ITEM_INDEX, ALT_MAX_ORDER > &tree)