|
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| auto | ancestor (NodeType node, depth_type depth) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| auto | ancestorChecked (NodeType node, depth_type depth) const |
| |
| const_iterator | begin (bool only_leaves=true, bool only_exists=true) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| const_iterator | begin (NodeType node, bool only_leaves=true, bool only_exists=true) const |
| |
| template<class Geometry > |
| const_nearest_iterator_geom< Geometry > | beginNearest (Geometry const &geometry, double epsilon=0.0, bool only_leaves=true, bool only_exists=true) const |
| |
| template<class NodeType , class Geometry , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| const_nearest_iterator_geom< Geometry > | beginNearest (NodeType node, Geometry const &geometry, double epsilon=0.0, bool only_leaves=true, bool only_exists=true) const |
| |
| template<class NodeType , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| const_query_iterator_pred< Predicate > | beginQuery (NodeType node, Predicate const &pred, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| const_query_iterator_pred< Predicate > | beginQuery (Predicate const &pred, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class NodeType , class Predicate , class Geometry , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| const_query_nearest_iterator_pred_geom< Predicate, Geometry > | beginQueryNearest (NodeType node, Predicate const &pred, Geometry const &geometry, double epsilon=0.0, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class Predicate , class Geometry , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| const_query_nearest_iterator_pred_geom< Predicate, Geometry > | beginQueryNearest (Predicate const &pred, Geometry const &geometry, double epsilon=0.0, bool only_exists=true, bool early_stopping=false) const |
| |
| constexpr pos_type | block () const noexcept |
| | Returns the block position of the root node.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| pos_type | block (NodeType node) const |
| | Returns the block position of node.
|
| |
| Bounds | bounds () const |
| | Returns the bounds of the tree (/ root node).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Bounds | bounds (NodeType node) const |
| | Returns the bounds of node.
|
| |
| Coord | center () const |
| | Returns the center of the tree (/ root node).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| constexpr Coord | center (NodeType node) const |
| | Returns the center of node.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| coord_type | centerAxis (NodeType node, std::size_t axis) const |
| | Returns the center of node for the axis specified.
|
| |
| coord_type | centerAxis (std::size_t axis) const |
| | Returns the center of the tree (/ root node) for the axis specified.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| std::optional< coord_type > | centerAxisChecked (NodeType node, std::size_t axis) const |
| | Returns the center of node for the axis specified, if the node is valid (i.e., valid(node)).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| std::optional< Coord > | centerChecked (NodeType node) const |
| | Returns the center of node if the node is valid (i.e., valid(node)).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| constexpr auto | child (NodeType node, offset_type offset) const |
| | Returns the i:th child of node.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| auto | childChecked (NodeType node, offset_type offset) const |
| | Get a child of a node with bounds checking.
|
| |
| pos_type | children (Index node) const |
| |
| std::array< pos_type, BF > const & | children (pos_type block) const |
| |
| void | clear () |
| | Erases all nodes from the tree.
|
| |
| void | clear (Length const &leaf_node_length, depth_type num_depth_levels) |
| |
| void | clear (length_type const &leaf_node_length, depth_type num_depth_levels) |
| |
| Code | code () const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Code | code (NodeType node) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| std::optional< Code > | codeChecked (NodeType node) const |
| |
| template<class ExecutionPolicy , class RandomIt , std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true> |
| std::vector< Index > | create (ExecutionPolicy &&policy, RandomIt first, RandomIt last) |
| |
| template<class ExecutionPolicy , class RandomIt1 , class RandomIt2 , std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true> |
| RandomIt2 | create (ExecutionPolicy &&policy, RandomIt1 first, RandomIt1 last, RandomIt2 d_first) |
| |
| template<class ExecutionPolicy , class Range , std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true, std::enable_if_t<!is_node_type_v< Range >, bool > = true> |
| std::vector< Index > | create (ExecutionPolicy &&policy, Range const &r) |
| |
| template<class ExecutionPolicy , class Range , class RandomIt , std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true, std::enable_if_t<!is_node_type_v< Range >, bool > = true> |
| RandomIt | create (ExecutionPolicy &&policy, Range const &r, RandomIt d_first) |
| |
| template<class InputIt > |
| std::vector< Index > | create (InputIt first, InputIt last) |
| |
| template<class InputIt , class OutputIt > |
| OutputIt | create (InputIt first, InputIt last, OutputIt d_first) |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Index | create (NodeType node) |
| |
| template<class Range , std::enable_if_t<!is_node_type_v< Range >, bool > = true> |
| std::vector< Index > | create (Range const &r) |
| |
| template<class Range , class OutputIt , std::enable_if_t<!is_node_type_v< Range > &&!execution::is_execution_policy_v< Range >, bool > = true> |
| OutputIt | create (Range const &r, OutputIt d_first) |
| |
| depth_type | depth () const |
| | Returns the depth of the root node, i.e. numDepthLevels() - 1.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| constexpr depth_type | depth (NodeType node) const |
| | Returns the depth of the node.
|
| |
| depth_type | depth (pos_type block) const |
| | Returns the depth of the block.
|
| |
| const_iterator | end () const |
| |
| const_nearest_iterator | endNearest () const |
| |
| const_query_iterator | endQuery () const |
| |
| const_query_nearest_iterator | endQueryNearest () const |
| |
| void | eraseChildren () |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| void | eraseChildren (NodeType node) |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| bool | exists (NodeType node) const |
| | Checks if a node exists.
|
| |
| bool | exists (pos_type block) const |
| |
| Length | halfLength () const |
| | Returns the half length of the tree (/ root node), i.e. length() / 2.
|
| |
| Length | halfLength (depth_type depth) const |
| | Returns the half length of nodes at depth, i.e. length(depth) / 2.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| constexpr Length | halfLength (NodeType node) const |
| | Returns the half length of node, i.e. length(node) / 2.
|
| |
| Length | halfLengthReciprocal () const |
| | Returns the reciprocal of the half length of the tree (/ root node), i.e. 1 / (length() / 2) = 2 / length().
|
| |
| Length | halfLengthReciprocal (depth_type depth) const |
| | Returns the reciprocal of the half length of nodes at depth, i.e. 1 / (length(depth) / 2) = 2 / length(depth).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Length | halfLengthReciprocal (NodeType node) const |
| | Returns the reciprocal of the half length of node, i.e. 1 / (length(node) / 2) = 2 / length(node).
|
| |
| constexpr Index | index () const noexcept |
| | Returns the index of the root node.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| constexpr Index | index (NodeType node) const |
| |
| bool | isInside (Point coord) const |
| | Checks if a coordinate is inside the tree bounds, i.e. inside bounds().
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| bool | isLeaf (NodeType node) const |
| | Checks if the node is a leaf (i.e., has no children).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| bool | isParent (NodeType node) const |
| | Checks if the node is a parent (i.e., has children).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| bool | isPureLeaf (NodeType node) const |
| | Checks if the node is a pure leaf (i.e., can never have children).
|
| |
| bool | isPureLeaf (pos_type block) const |
| | Checks if the block is pure leaf (i.e., can never have children).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| constexpr bool | isRoot (NodeType node) const |
| | Checks if the node is the root of the tree.
|
| |
| constexpr bool | isRoot (pos_type block) const |
| |
| Key | key () const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Key | key (NodeType node) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| std::optional< Key > | keyChecked (NodeType node) const |
| |
| Length | length () const |
| | Returns the length of the tree (/ root node), i.e. leaf_node_length * 2^depth().
|
| |
| Length | length (depth_type depth) const |
| | Returns the length of nodes at depth, i.e. leaf_node_length * 2^depth.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Length | length (NodeType node) const |
| | Returns the length of node, i.e. leaf_node_length * 2^depth(node).
|
| |
| Length | lengthReciprocal () const |
| | Returns the reciprocal of the length of the tree (/ root node), i.e. 1 / length().
|
| |
| Length | lengthReciprocal (depth_type depth) const |
| | Returns the reciprocal of the length of nodes at depth, i.e. 1 / length(depth).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Length | lengthReciprocal (NodeType node) const |
| | Returns the reciprocal of the length of node, i.e. 1 / length(node).
|
| |
| Point | max () const |
| | Returns the maximum point of the tree (/ root node).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Point | max (NodeType node) const |
| | Returns the maximum point of node.
|
| |
| Point | min () const |
| | Returns the minimum point of the tree (/ root node).
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Point | min (NodeType node) const |
| | Returns the minimum point of node.
|
| |
| bool | modified () const |
| | Check if the root of the tree is modified.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| bool | modified (NodeType node) const |
| | Check if a node of the tree is in a modified state.
|
| |
| void | modifiedReset () |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| void | modifiedReset (NodeType node) |
| |
| void | modifiedSet () |
| |
| void | modifiedSet (bool value) |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| void | modifiedSet (NodeType node) |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| void | modifiedSet (NodeType node, bool value) |
| |
| template<class Geometry > |
| ConstNearest< Geometry > | nearest (Geometry const &geometry, double epsilon=0.0, bool only_leaves=true, bool only_exists=true) const |
| |
| template<class NodeType , class Geometry , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| ConstNearest< Geometry > | nearest (NodeType node, Geometry const &geometry, double epsilon=0.0, bool only_leaves=true, bool only_exists=true) const |
| |
| Node | node () const |
| | Returns the root node.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Node | node (NodeType node) const |
| | Returns the node corresponding to node.
|
| |
| constexpr depth_type | numDepthLevels () const noexcept |
| | Returns the number of depth levels of the tree, i.e. depth() + 1.
|
| |
| constexpr offset_type | offset () const noexcept |
| | Returns the offset of the root node.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| offset_type | offset (NodeType node) const |
| | Returns the offset of node.
|
| |
| template<class NodeType , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| ConstQuery< Predicate > | operator() (NodeType node, Predicate const &pred, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| ConstQuery< Predicate > | operator() (Predicate const &pred, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Node | operator[] (NodeType node) const |
| | Get the node corresponding to a code.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| auto | parent (NodeType node) const |
| |
| Index | parent (pos_type block) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| auto | parentChecked (NodeType node) const |
| |
| template<class NodeType , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| ConstQuery< Predicate > | query (NodeType node, Predicate const &pred, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| ConstQuery< Predicate > | query (Predicate const &pred, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class NodeType , class Predicate , class Geometry , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| ConstQueryNearest< Predicate, Geometry > | queryNearest (NodeType node, Predicate const &pred, Geometry const &geometry, double epsilon=0.0, bool only_exists=true, bool early_stopping=false) const |
| |
| template<class Predicate , class Geometry , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| ConstQueryNearest< Predicate, Geometry > | queryNearest (Predicate const &pred, Geometry const &geometry, double epsilon=0.0, bool only_exists=true, bool early_stopping=false) const |
| |
| void | reserve (std::size_t num_nodes) |
| | Increase the capacity of the tree to at least hold num_nodes nodes.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| auto | sibling (NodeType node, offset_type offset) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| auto | siblingChecked (NodeType node, offset_type offset) const |
| |
| std::size_t | size () const |
| | Returns the number of nodes in the tree.
|
| |
| template<class ExecutionPolicy , class NodeType , class RandomIt , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true, std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true> |
| std::vector< TraceResult > | trace (ExecutionPolicy &&policy, NodeType node, RandomIt first, RandomIt last, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class ExecutionPolicy , class NodeType , class RandomIt1 , class RandomIt2 , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true, std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true> |
| RandomIt2 | trace (ExecutionPolicy &&policy, NodeType node, RandomIt1 first, RandomIt1 last, RandomIt2 d_first, Predicate pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class ExecutionPolicy , class RandomIt , class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true, std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true> |
| std::vector< TraceResult > | trace (ExecutionPolicy &&policy, RandomIt first, RandomIt last, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class ExecutionPolicy , class RandomIt1 , class RandomIt2 , class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true, std::enable_if_t< execution::is_execution_policy_v< ExecutionPolicy >, bool > = true> |
| RandomIt2 | trace (ExecutionPolicy &&policy, RandomIt1 first, RandomIt1 last, RandomIt2 d_first, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class InputIt , class OutputIt , class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| OutputIt | trace (InputIt first, InputIt last, OutputIt d_first, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class InputIt , class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| std::vector< TraceResult > | trace (InputIt first, InputIt last, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class NodeType , class InputIt , class OutputIt , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| OutputIt | trace (NodeType node, InputIt first, InputIt last, OutputIt d_first, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class NodeType , class InputIt , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| std::vector< TraceResult > | trace (NodeType node, InputIt first, InputIt last, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class NodeType , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| TraceResult | trace (NodeType node, Ray const &ray, Predicate pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| TraceResult | trace (Ray const &ray, Predicate const &pred, float min_dist=0.0f, float max_dist=std::numeric_limits< float >::max(), bool only_exists=true) const |
| |
| template<class NodeType , class UnaryFun , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< std::is_invocable_r_v< bool, UnaryFun, Index >, bool > = true> |
| void | traverse (NodeType node, UnaryFun f) const |
| | Depth first traversal of the tree, starting at node. The function 'f' will be called for each traversed node. If 'f' returns true then the children of the node will also be traverse, otherwise they will not.
|
| |
| template<class NodeType , class UnaryFun , class Predicate , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< std::is_invocable_v< UnaryFun, Node >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| void | traverse (NodeType node, UnaryFun f, Predicate pred, bool only_exists=true) const |
| | Depth first traversal of the tree, starting at node. The function 'f' will be called for each traversed node that fulfills the predicates pred.
|
| |
| template<class UnaryFun , std::enable_if_t< std::is_invocable_r_v< bool, UnaryFun, Index >, bool > = true> |
| void | traverse (UnaryFun f) const |
| | Depth first traversal of the tree, starting at the root node. The function 'f' will be called for each node traverse. If 'f' returns true then the children of the node will also be traverse, otherwise they will not.
|
| |
| template<class UnaryFun , class Predicate , std::enable_if_t< std::is_invocable_r_v< bool, UnaryFun, Node >, bool > = true, std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| void | traverse (UnaryFun f, Predicate const &pred, bool only_exists=true) const |
| | Depth first traversal of the tree, starting at the root node. The function 'f' will be called for each node traverse. If 'f' returns true then the children of the node will also be traverse, otherwise they will not.
|
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| bool | valid (NodeType node) const |
| | Checks if an index is valid.
|
| |
| bool | valid (pos_type block) const |
| | Checks if a block is valid.
|
| |
| bool | exists (pos_type block) const |
| | Checks if a block exists.
|
| |
| WGPUDevice | gpuDevice () const |
| |
| bool | gpuInit (WGPUAdapter adapter) |
| |
| bool | gpuInit (WGPUAdapter adapter, WGPULimits const &required_limits) |
| |
| bool | gpuInit (WGPUDevice device) |
| |
| bool | gpuInit (WGPULimits const &required_limits, WGPUSurface compatible_surface=nullptr, WGPUPowerPreference power_preference=WGPUPowerPreference_HighPerformance, WGPUBackendType backend_type=WGPUBackendType_Undefined) |
| |
| bool | gpuInit (WGPUPowerPreference power_preference=WGPUPowerPreference_HighPerformance, WGPUBackendType backend_type=WGPUBackendType_Undefined) |
| |
| WGPUBuffer | gpuInnerBuffer (std::size_t index) const |
| |
| std::size_t | gpuInnerBufferSize (std::size_t index) const |
| |
| WGPUBuffer | gpuLeafBuffer (std::size_t index) const |
| |
| std::size_t | gpuLeafBufferSize (std::size_t index) const |
| |
| std::size_t | gpuNumBuffers () const |
| |
| std::size_t | gpuNumInnerBuffers () const |
| |
| std::size_t | gpuNumLeafBuffers () const |
| |
| WGPUQueue | gpuQueue () const |
| |
| void | gpuRead () |
| |
| void | gpuRead () |
| |
| void | gpuReadInner () |
| |
| void | gpuReadInner () |
| |
| void | gpuReadLeaf () |
| |
| void | gpuReadLeaf () |
| |
| void | gpuRelease () |
| |
| bool | gpuWrite () |
| |
| bool | gpuWrite () |
| |
| bool | gpuWriteInner () |
| |
| bool | gpuWriteInner () |
| |
| bool | gpuWriteLeaf () |
| |
| bool | gpuWriteLeaf () |
| |
| InnerData & | innerData () |
| |
| InnerData const & | innerData () const |
| |
| bool | innerExists (pos_type block) const |
| |
| LeafData & | leafData () |
| |
| LeafData const & | leafData () const |
| |
| bool | leafExists (pos_type block) const |
| |
|
| | Tree (Length leaf_node_length, depth_type num_depth_levels) |
| |
| | Tree (length_type leaf_node_length, depth_type num_depth_levels) |
| |
|
| Tree (Tree &&)=default |
| |
|
| Tree (Tree const &)=default |
| |
| bool | allLeaf (InnerBlock const &block) const |
| |
| bool | allLeaf (LeafBlock const &block) const |
| |
| bool | allLeaf (pos_type block) const |
| | Checks if all nodes of a block are leaves.
|
| |
| bool | allParent (pos_type block) const |
| | Checks if all nodes of a block are parents.
|
| |
| bool | anyLeaf (InnerBlock const &block) const |
| |
| bool | anyLeaf (LeafBlock const &block) const |
| |
| bool | anyLeaf (pos_type block) const |
| | Checks if any node of a block is a leaf.
|
| |
| bool | anyParent (pos_type block) const |
| | Checks if any node of a block is a parent.
|
| |
| Index | createChild (Index node, offset_type child_offset) |
| |
| pos_type | createChildren (Index node) |
| |
| pos_type | createChildrenThreadSafe (Index node) |
| |
| Index | createChildThreadSafe (Index node, offset_type child_offset) |
| |
| void | createRoot () |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| Index | createThreadSafe (NodeType node) |
| |
| constexpr Derived & | derived () |
| | Returns a reference of the derived class.
|
| |
| constexpr Derived const & | derived () const |
| | Returns a reference of the derived class.
|
| |
| void | init (Length leaf_node_length, depth_type num_depth_levels) |
| |
| void | initInnerChildren (Index node, InnerBlock const &block, pos_type children) |
| |
| void | initLeafChildren (Index node, InnerBlock const &block, pos_type children) |
| |
| template<bool OnlyDistance = false, bool FastAsSonic = false, class ValueFun , class InnerFun > |
| std::conditional_t< OnlyDistance, float, std::pair< float, Index > > | nearest (Index node, NearestSearchAlgorithm search_alg, ValueFun value_f, InnerFun inner_f, float max_dist, float epsilon) const |
| |
| template<class Predicate , class ValueFun , class InnerFun , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| std::pair< float, Index > | nearest (Index node, Predicate pred, NearestSearchAlgorithm search_alg, ValueFun value_f, InnerFun inner_f, float max_dist, float epsilon) const |
| |
| template<bool OnlyDistance, bool FastAsSonic, class ValueFun , class InnerFun > |
| std::conditional_t< OnlyDistance, float, std::pair< float, Index > > | nearestDepthFirst (pos_type block, depth_type depth, float c_dist, float epsilon, ValueFun value_f, InnerFun inner_f) const |
| |
| template<class ValueFun , class InnerFun > |
| std::pair< float, Index > | nearestDepthFirst (pos_type block, depth_type depth, float c_dist, ValueFun value_f, InnerFun inner_f) const |
| |
| bool | noneLeaf (pos_type block) const |
| | Checks if no nodes of a block are leaves.
|
| |
| bool | noneParent (pos_type block) const |
| | Checks if no nodes of a block are parents.
|
| |
|
Tree & | operator= (Tree &&)=default |
| |
|
Tree & | operator= (Tree const &)=default |
| |
| void | pruneChildren (Index node) |
| |
| void | pruneChildren (Index node, pos_type children) |
| |
| template<class UpdateFun , std::enable_if_t< std::is_invocable_r_v< bool, UpdateFun, Index, pos_type >, bool > = true> |
| void | recursDown (Index node, UpdateFun update_f) |
| |
| template<class UpdateFun , std::enable_if_t< std::is_invocable_r_v< bool, UpdateFun, Index, pos_type >, bool > = true> |
| void | recursDown (pos_type block, UpdateFun update_f) |
| |
| template<class NodeType , class NodeFun , class BlockFun , class UpdateFun , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< std::is_invocable_r_v< void, NodeFun, Index >, bool > = true, std::enable_if_t< std::is_invocable_r_v< void, BlockFun, pos_type >, bool > = true, std::enable_if_t< std::is_invocable_r_v< bool, UpdateFun, Index, pos_type >, bool > = true> |
| void | recursLeaves (NodeType node, NodeFun node_f, BlockFun block_f, UpdateFun update_f, bool propagate) |
| |
| template<class NodeFun , class BlockFun , class UpdateFun , std::enable_if_t< std::is_invocable_r_v< void, NodeFun, Index >, bool > = true, std::enable_if_t< std::is_invocable_r_v< void, BlockFun, pos_type >, bool > = true, std::enable_if_t< std::is_invocable_r_v< bool, UpdateFun, Index, pos_type >, bool > = true> |
| void | recursLeaves (pos_type block, NodeFun node_f, BlockFun block_f, UpdateFun update_f) |
| |
| template<class NodeType , class NodeFun , class BlockFun , class UpdateFun , std::enable_if_t< is_node_type_v< NodeType >, bool > = true, std::enable_if_t< std::is_invocable_r_v< void, NodeFun, Index >, bool > = true, std::enable_if_t< std::is_invocable_r_v< void, BlockFun, pos_type >, bool > = true, std::enable_if_t< std::is_invocable_r_v< bool, UpdateFun, Index, pos_type >, bool > = true> |
| void | recursParentFirst (NodeType node, NodeFun node_f, BlockFun block_f, UpdateFun update_f, bool propagate) |
| |
| template<class BlockFun , std::enable_if_t< std::is_invocable_r_v< void, BlockFun, pos_type >, bool > = true> |
| void | recursParentFirst (pos_type block, BlockFun block_f) |
| |
| template<class UpdateFun , std::enable_if_t< std::is_invocable_r_v< bool, UpdateFun, Index, pos_type >, bool > = true> |
| void | recursUp (Index node, UpdateFun update_f) |
| |
| template<class Predicate , std::enable_if_t< pred::is_pred_v< Predicate >, bool > = true> |
| constexpr TraceResult | trace (Node node, TraceParams const ¶ms, Predicate const &pred, float const near_clip, float const far_clip, bool only_exists) const |
| |
| template<class NodeType , std::enable_if_t< is_node_type_v< NodeType >, bool > = true> |
| TraceParams | traceInit (NodeType node, Ray const &ray) const |
| |
| InnerBlock & | treeInnerBlock (pos_type block) |
| |
| InnerBlock const & | treeInnerBlock (pos_type block) const |
| |
| InnerBlock const & | treeInnerBlockConst (pos_type block) const |
| |
| LeafBlock & | treeLeafBlock (pos_type block) |
| |
| LeafBlock const & | treeLeafBlock (pos_type block) const |
| |
| LeafBlock const & | treeLeafBlockConst (pos_type block) const |
| |
| void | clear () |
| |
| pos_type | create (bool leaf) |
| |
| pos_type | createThreadSafe (bool leaf) |
| |
| void | erase (pos_type block) |
| |
| T & | innerBlock (pos_type block) |
| |
| T const & | innerBlock (pos_type block) const |
| |
| void | innerClear () |
| |
| pos_type | innerCreate () |
| |
| pos_type | innerCreateThreadSafe () |
| |
| void | innerErase (pos_type block) |
| |
| void | innerReserve (std::size_t cap) |
| |
| std::size_t | innerSize () const |
| |
| T & | leafBlock (pos_type block) |
| |
| T const & | leafBlock (pos_type block) const |
| |
| void | leafClear () |
| |
| pos_type | leafCreate () |
| |
| pos_type | leafCreateThreadSafe () |
| |
| void | leafErase (pos_type block) |
| |
| void | leafReserve (std::size_t cap) |
| |
| std::size_t | leafSize () const |
| |
| void | reserve (std::size_t cap) |
| |
| std::size_t | size () const |
| |