Spatial C++ Library
Generic Multi-Dimensional Containers and Spatial Operations
spatial::details::Relaxed_kdtree_link< Key, Value > Struct Template Reference

Define a weighted link type for the relaxed k-d tree. More...

#include <spatial_node.hpp>

Inherits spatial::details::Node< Relaxed_kdtree_link< Key, Value > >.

Public Types

typedef Key key_type
 The link to the key type. More...
 
typedef Value value_type
 The link to the value type. More...
 
typedef Relaxed_kdtree_link< Key, Value > link_type
 The link type, which is also itself, since mode are also contained in this type. More...
 
typedef link_typelink_ptr
 The link pointer which is often used, has a dedicated type. More...
 
typedef const link_typeconst_link_ptr
 The constant link pointer which is often used, has a dedicated type. More...
 
typedef Node< link_type > * node_ptr
 The node pointer type deduced from the mode. More...
 
typedef const Node< link_type > * const_node_ptr
 The constant node pointer deduced from the mode. More...
 
typedef relaxed_invariant_tag invariant_category
 The category of invariant with associated with this mode. More...
 
- Public Types inherited from spatial::details::Node< Relaxed_kdtree_link< Key, Value > >
typedef Relaxed_kdtree_link< Key, Value > link_type
 The link type that indicate how to reach the key and/or the value from the node. More...
 

Public Member Functions

 Relaxed_kdtree_link ()
 Constructs an empty, uninitialized object. More...
 

Public Attributes

Value value
 The value of the node, required by the Link Mode concept. More...
 
weight_type weight
 The weight is equal to 1 plus the amount of child nodes below the current node. More...
 
- Public Attributes inherited from spatial::details::Node< Relaxed_kdtree_link< Key, Value > >
Nodeparent
 A pointer to the parent of the current node. More...
 
Nodeleft
 A pointer to the left child node of the current node. More...
 
Noderight
 A pointer to the right child node of the current node. More...
 

Private Member Functions

Relaxed_kdtree_link< Key, Value > & operator= (const Relaxed_kdtree_link< Key, Value > &)
 The link_type is a non-assignable type, because the key it contains is a constant type. More...
 

Detailed Description

template<typename Key, typename Value>
struct spatial::details::Relaxed_kdtree_link< Key, Value >

Define a weighted link type for the relaxed k-d tree.

This type also contains the linking information, so it is a model of the Link Mode concept.

Template Parameters
KeyThe key type that is held by the Kdtree_link.
ValueThe value type that is held by the Kdtree_link.

Definition at line 300 of file spatial_node.hpp.

Member Typedef Documentation

template<typename Key, typename Value>
typedef const link_type* spatial::details::Relaxed_kdtree_link< Key, Value >::const_link_ptr

The constant link pointer which is often used, has a dedicated type.

Definition at line 312 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef const Node<link_type>* spatial::details::Relaxed_kdtree_link< Key, Value >::const_node_ptr

The constant node pointer deduced from the mode.

Definition at line 316 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef relaxed_invariant_tag spatial::details::Relaxed_kdtree_link< Key, Value >::invariant_category

The category of invariant with associated with this mode.

Definition at line 318 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Key spatial::details::Relaxed_kdtree_link< Key, Value >::key_type

The link to the key type.

Definition at line 303 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef link_type* spatial::details::Relaxed_kdtree_link< Key, Value >::link_ptr

The link pointer which is often used, has a dedicated type.

Definition at line 310 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Relaxed_kdtree_link<Key, Value> spatial::details::Relaxed_kdtree_link< Key, Value >::link_type

The link type, which is also itself, since mode are also contained in this type.

Definition at line 308 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Node<link_type>* spatial::details::Relaxed_kdtree_link< Key, Value >::node_ptr

The node pointer type deduced from the mode.

Definition at line 314 of file spatial_node.hpp.

template<typename Key, typename Value>
typedef Value spatial::details::Relaxed_kdtree_link< Key, Value >::value_type

The link to the value type.

Definition at line 305 of file spatial_node.hpp.

Constructor & Destructor Documentation

template<typename Key, typename Value>
spatial::details::Relaxed_kdtree_link< Key, Value >::Relaxed_kdtree_link ( )

Constructs an empty, uninitialized object.

Definition at line 321 of file spatial_node.hpp.

Member Function Documentation

template<typename Key, typename Value>
Relaxed_kdtree_link<Key, Value>& spatial::details::Relaxed_kdtree_link< Key, Value >::operator= ( const Relaxed_kdtree_link< Key, Value > &  )
private

The link_type is a non-assignable type, because the key it contains is a constant type.

Most algorthims manipulate a pointer to this element rather than this element directly. Note that copy-construction is permitted.

Member Data Documentation

template<typename Key, typename Value>
Value spatial::details::Relaxed_kdtree_link< Key, Value >::value

The value of the node, required by the Link Mode concept.

In *-map containers, the value is necessarily a pair, with the first member being a key, and the second member being the mapped type. In *-set containers, the value and the key are one and the same thing.

In any case the value is always constant for keys, and therefore this type cannot be used in assignment operations, since keys cannot be changed. Most algorithm only use a pointer to the link_type.

Definition at line 334 of file spatial_node.hpp.

template<typename Key, typename Value>
weight_type spatial::details::Relaxed_kdtree_link< Key, Value >::weight

The weight is equal to 1 plus the amount of child nodes below the current node.

It is always equal to 1 at least.

Definition at line 338 of file spatial_node.hpp.


The documentation for this struct was generated from the following file: