DGtal 1.4.0
|
Model of CImageContainer implementing the association key<->Value using a hash tree. This class provides a built-in iterator. More...
#include <DGtal/images/ImageContainerByHashTree.h>
Data Structures | |
class | Iterator |
Built-in iterator on an HashTree. This iterator visits all node in the tree. More... | |
class | Node |
Public Types | |
typedef ImageContainerByHashTree< TDomain, TValue, THashKey > | Self |
typedef THashKey | HashKey |
typedef TDomain | Domain |
typedef Domain::Point | Point |
typedef Domain::Vector | Vector |
typedef Domain::Integer | Integer |
typedef Domain::Size | Size |
typedef Domain::Dimension | Dimension |
typedef Point | Vertex |
typedef POW< 2, dimension > | PowHelper |
typedef TValue | Value |
typedef DefaultConstImageRange< Self > | ConstRange |
typedef DefaultImageRange< Self > | Range |
typedef SetValueIterator< Self > | OutputIterator |
output iterator | |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CDomain< TDomain >)) | |
domain | |
BOOST_STATIC_CONSTANT (Dimension, dimension=Domain::dimension) | |
static constants | |
BOOST_STATIC_CONSTANT (Dimension, dim=Domain::dimension) | |
BOOST_STATIC_CONSTANT (unsigned int, NbChildrenPerNode=PowHelper::VALUE) | |
BOOST_STATIC_CONSTANT (HashKey, ROOT_KEY=static_cast< THashKey >(1)) | |
BOOST_STATIC_ASSERT ((boost::is_same< Domain, HyperRectDomain< typename Domain::Space > >::value)) | |
domain should be rectangular | |
BOOST_CONCEPT_ASSERT ((concepts::CLabel< TValue >)) | |
values range | |
ImageContainerByHashTree (const unsigned int hashKeySize, const unsigned int depth, const Value defaultValue) | |
ImageContainerByHashTree (const unsigned int hashKeySize, const Point &p1, const Point &p2, const Value defaultValue) | |
ImageContainerByHashTree (const Domain &aDomain, const unsigned int hashKeySize=3, const Value defaultValue=NumberTraits< Value >::ZERO) | |
const Domain & | domain () const |
ConstRange | constRange () const |
Range | range () |
const Self & | container () const |
Self & | container () |
const Node **& | data () const noexcept |
Node **& | data () noexcept |
Value | get (const HashKey key) const |
Value | operator() (const HashKey key) const |
Value | operator() (const Point &aPoint) const |
Value | get (const Point &aPoint) const |
Value | upwardGet (const HashKey key) const |
Value | reverseGet (const HashKey key) const |
void | setValue (const HashKey key, const Value object) |
void | setValue (const Point &aPoint, const Value object) |
unsigned int | getSpanSize () const |
unsigned int | getDepth () const |
bool | isKeyValid (HashKey key) const |
bool | checkIntegrity (HashKey key=ROOT_KEY, bool leafAbove=false) const |
HashKey | getKey (const Point &aPoint) const |
unsigned int | getKeyDepth (HashKey key) const |
int * | getCoordinatesFromKey (HashKey key) const |
void | printState (std::ostream &out, bool displayKeys=false) const |
void | printTree (HashKey key, std::ostream &out, bool displayKeys) const |
void | printInternalState (std::ostream &out, unsigned int nbBits=0) const |
void | printInfo (std::ostream &out) const |
unsigned int | getNbEmptyLists () const |
double | getAverageCollisions () const |
unsigned int | getMaxCollisions () const |
unsigned int | getNbNodes (unsigned int intermediateKey) const |
unsigned int | getNbNodes () const |
Iterator | begin () |
Iterator | end () |
void | selfDisplay (std::ostream &out) const |
bool | isValid () const |
std::string | className () const |
Node * | getNode (const HashKey key) const |
Data Fields | |
int | myDebugCounter |
Point | myOrigin |
Morton< HashKey, Point > | myMorton |
The morton code computer. | |
Protected Member Functions | |
template<typename C > | |
void | recursiveDraw (HashKey key, const double p1[2], const double len, Board2D &board, const C &cmap) const |
HashKey | getIntermediateKey (const HashKey key) const |
Node * | addNode (const Value object, const HashKey key) |
bool | removeNode (HashKey key) |
void | recursiveRemoveNode (HashKey key, unsigned int nbRecursions) |
void | setDepth (unsigned int depth) |
Value | blendChildren (HashKey key) const |
BOOST_STATIC_CONSTANT (unsigned int, myN=NbChildrenPerNode) | |
Protected Attributes | |
Domain | myDomain |
Node ** | myData |
unsigned int | myKeySize |
unsigned int | myArraySize |
unsigned int | myTreeDepth |
unsigned int | mySpanSize |
HashKey | myDepthMask |
HashKey | myPreComputedIntermediateMask |
Model of CImageContainer implementing the association key<->Value using a hash tree. This class provides a built-in iterator.
Description of template class 'ImageContainerByHashTree'
The ImageContainerByHashTree relies on a tree model implemented using a hash table based on Morton Codes. A Morton hash key is obtained from coordinates by interleaving the binary representations of the coordinate values. This means the coordinates have to be of integer type for the morton code to be valid.
The data can be accessed using keys, coordinates or Iterators provided by the container.
The parent of a given key can be found by simply shifting to the left the key's bits by it's dimension. exemples: for an octree (N = 3) the parent key of the key 1110100001 is 1110100. for a quadtree (N = 2) the parent key of the key 10010111 is 100101.
It is then easy to determine, for a N-Dimmensionnal container, all the children keys of a given key, by concatenating any combination of N bits at the right side of the key (least important bits). exemple: for a quadtree (N = 2) 1010100, 1010101, 1010110 and 1010111 are the children of 10101.
In order to disgard any ambiguous case, we need to make the assertion that the root of the hash is at key 1. Else we would have to deal with the problem of the key 00000..0 which would have one of it's children equal to 0 and so on... This means that we need to set the key's N*maxDepth bit to 1 after interleaving the corrdinates bit for key generation.
Note that not any combination of bits is valid. We saw the exemple of the key 0, and there are other cases of invalidity. For a key to be valid, the last set bit (most important set bit) must be at a position of the form k*N with N the Dimmension of the Domain and k a positive integer. exemples: for an octree(N = 3) 1, 1000, 1010111 are valid keys, whereas 0, 10, 11101 are not !
Warning ! For performances this container's access method never check for a key's validity. Trying to access an invalid key may destroy the validity of the tree's structure and/or get the program stuck into an infinite loop.
The method isKeyValid(..) is provided to verify the validity of a key. Note that using this security strongly affects performances.
TDomain | type of domains |
TValue | type for image values |
THashKey | type to store Morton keys (default: DGtal::uint64_t) |
Definition at line 128 of file ImageContainerByHashTree.h.
typedef DefaultConstImageRange<Self> DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::ConstRange |
Definition at line 167 of file ImageContainerByHashTree.h.
typedef Domain::Dimension DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Dimension |
Definition at line 148 of file ImageContainerByHashTree.h.
typedef TDomain DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Domain |
Definition at line 143 of file ImageContainerByHashTree.h.
typedef THashKey DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::HashKey |
Definition at line 139 of file ImageContainerByHashTree.h.
typedef Domain::Integer DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Integer |
Definition at line 146 of file ImageContainerByHashTree.h.
typedef SetValueIterator<Self> DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::OutputIterator |
output iterator
Definition at line 171 of file ImageContainerByHashTree.h.
typedef Domain::Point DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Point |
Definition at line 144 of file ImageContainerByHashTree.h.
typedef POW<2, dimension> DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::PowHelper |
Definition at line 154 of file ImageContainerByHashTree.h.
typedef DefaultImageRange<Self> DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Range |
Definition at line 168 of file ImageContainerByHashTree.h.
typedef ImageContainerByHashTree<TDomain, TValue, THashKey> DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Self |
Definition at line 137 of file ImageContainerByHashTree.h.
typedef Domain::Size DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Size |
Definition at line 147 of file ImageContainerByHashTree.h.
typedef TValue DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Value |
Definition at line 165 of file ImageContainerByHashTree.h.
typedef Domain::Vector DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Vector |
Definition at line 145 of file ImageContainerByHashTree.h.
typedef Point DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Vertex |
Definition at line 149 of file ImageContainerByHashTree.h.
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::ImageContainerByHashTree | ( | const unsigned int | hashKeySize, |
const unsigned int | depth, | ||
const Value | defaultValue ) |
The constructor from a hashKeySize, a depth and a defaultValue.
hashKeySize | Number of bit of the hash key. This parameter is important as it influences the amount of collisions in the hash table. A value K creates an array of length 2^K with potential unused cells so a compromise between speed and memory usage is to be done here. |
depth | Determines the maximum depth of the tree and thus qthe "size" of the image. Each span then extends from 0 to 2^depth. |
defaultValue | In order for the tree to be valid it needs a default value at the root (key = 1) |
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::ImageContainerByHashTree | ( | const unsigned int | hashKeySize, |
const Point & | p1, | ||
const Point & | p2, | ||
const Value | defaultValue ) |
The constructor from a hashKeySize, a defaultValue and a pair of points. In this case, the depth of the tree is given by the logarithm of the domain size defined by the two points.
hashKeySize | Number of bit of the hash key. This parameter is important as it influences the amount of collisions in the hash table. A value K creates an array of length 2^K with potential unused cells so a compromise between speed and memory usage is to be done here. |
p1 | First point of the image bounding box. |
p2 | Second point of the image bounding box. |
defaultValue | In order for the tree to be valid it needs a default value at the root (key = 1) |
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::ImageContainerByHashTree | ( | const Domain & | aDomain, |
const unsigned int | hashKeySize = 3, | ||
const Value | defaultValue = NumberTraits< Value >::ZERO ) |
The constructor from a domain, a defaultValue (default value: 0) and a hashKeySize (default value: 3). In this case, the depth of the tree is given by the logarithm of the domain size defined by the two points.
aDomain | the image domain |
hashKeySize | Number of bit of the hash key. This parameter is important as it influences the amount of collisions in the hash table. A value K creates an array of length 2^K with potential unused cells so a compromise between speed and memory usage is to be done here (default: 3). |
defaultValue | In order for the tree to be valid it needs a default value at the root (key = 1) |
|
inlineprotected |
Add a Node to the tree. This method is very used when writing in the tree (set method). As detailed in the inner class Node, nodes are pairs (value,key)
object | a object (value) |
key | a hashtree key |
Definition at line 700 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getIntermediateKey(), DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getNode(), and DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myData.
|
inline |
Returns an iterator to the first value as stored in the container.
Definition at line 571 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myArraySize, and DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myData.
|
protected |
Recursively get the value of all the leafs below and blend it to get the value of a parent node. This is called in the get() method when it has been determined that the leafs are deeper than the requested key.
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDomain< TDomain >) | ) |
domain
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLabel< TValue >) | ) |
values range
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::BOOST_STATIC_ASSERT | ( | (boost::is_same< Domain, HyperRectDomain< typename Domain::Space > >::value) | ) |
domain should be rectangular
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::BOOST_STATIC_CONSTANT | ( | Dimension | , |
dim | = Domain::dimension ) |
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::BOOST_STATIC_CONSTANT | ( | Dimension | , |
dimension | = Domain::dimension ) |
static constants
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::BOOST_STATIC_CONSTANT | ( | HashKey | , |
ROOT_KEY | = static_cast< THashKey >(1) ) |
|
protected |
DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::BOOST_STATIC_CONSTANT | ( | unsigned int | , |
NbChildrenPerNode | = PowHelper::VALUE ) |
bool DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::checkIntegrity | ( | HashKey | key = ROOT_KEY, |
bool | leafAbove = false ) const |
Checks recursively that the sub-tree starting with key is valid. A tree is valid if there's one (and only one) leaf for each position at maximal depth.
key | the key |
leafAbove | leafAbove ( |
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::isValid(), and test_setVal().
std::string DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::className | ( | ) | const |
Default drawing style object.
ConstRange DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::constRange | ( | ) | const |
|
inline |
Give access to the underlying container.
Definition at line 288 of file ImageContainerByHashTree.h.
|
inline |
Give access to the underlying container.
Definition at line 283 of file ImageContainerByHashTree.h.
|
inlinenoexcept |
Give access to the underlying data.
Definition at line 294 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myData.
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Iterator::Iterator().
|
inlinenoexcept |
Give access to the underlying data.
Definition at line 299 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myData.
const Domain & DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::domain | ( | ) | const |
|
inline |
Returns an iterator to the last value as stored in the container.
Definition at line 579 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myArraySize, and DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myData.
Value DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::get | ( | const HashKey | key | ) | const |
Returns the value corresponding to a key.
This is the generic method working with any valid key. For efficiency no check is performed on the key so be careful when calling this method. If the leafs are deeper than the requested key, this method will recursively browse through the children nodes and compute a average of each child's value using blendChildren(..) which is very slow. Thus performances are much better when accessing a leaf from a deeper key (needs no blending).
key | the haskkey |
Referenced by main(), and test_get().
Value DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::get | ( | const Point & | aPoint | ) | const |
Returns the value at a given coordinate using upwardGet().
aPoint | The point |
double DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getAverageCollisions | ( | ) | const |
Returns The average number of collisions in the hash table, without counting the empty places.
int * DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getCoordinatesFromKey | ( | HashKey | key | ) | const |
|
inline |
Returns the tree's depth.
Definition at line 400 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myTreeDepth.
|
inlineprotected |
This is part of the hash function. It is called whenever a key is accessed. The mask used to compute the result is precomputed in the constructor for efficiency.
key | a node in the hashtree. |
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::addNode(), and DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getNode().
HashKey DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getKey | ( | const Point & | aPoint | ) | const |
unsigned int DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getKeyDepth | ( | HashKey | key | ) | const |
unsigned int DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getMaxCollisions | ( | ) | const |
Returns the highest number of collisions in the hash table.
unsigned int DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getNbEmptyLists | ( | ) | const |
Returns the number of empty places in the hash table.
unsigned int DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getNbNodes | ( | ) | const |
Returns the total amount of elements in the container.
unsigned int DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getNbNodes | ( | unsigned int | intermediateKey | ) | const |
Returns the number of elements for a given key of the hash table.
intermediateKey | a hashtree key. |
|
inline |
Returns a pointer to the node corresponding to the key. If it does'nt exist, returns 0. This method is called VERY often, and thus should operate as fast as possible.
key | The key. |
Definition at line 724 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getIntermediateKey(), DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Node::getKey(), DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::Node::getNext(), and DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myData.
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::addNode().
|
inline |
Returns the size of a dimension (the container represents a line, a square, a cube, etc. depending on the dimmension so no need for distinctions between width, height, ect.)
Definition at line 391 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::mySpanSize.
bool DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::isKeyValid | ( | HashKey | key | ) | const |
Returns true if the key is valid. A key is valid if the the most important bit that is equal to 1 is at a position of the type dim*k with dim the dimmension of the container (template parameter) and k a strictly positive integer.
key | the key |
Referenced by test_get(), and test_setVal().
|
inline |
Definition at line 586 of file ImageContainerByHashTree.h.
References DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::checkIntegrity().
Value DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::operator() | ( | const HashKey | key | ) | const |
Returns the value at a given key.
key | the hash key used as an index. |
Value DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::operator() | ( | const Point & | aPoint | ) | const |
Returns the value at a given point.
aPoint | The point |
void DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::printInfo | ( | std::ostream & | out | ) | const |
Prints informations about the state of the container without displaying the data:
- Nunber of elements in the tree. - Amount of unused disk space due to blanks in the hash table. - The dimmension. - The number of bits of the HashKey. - The size of the image. - The average and the maximum amount of collisions. - The total memory usage.
out | output stream. |
void DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::printInternalState | ( | std::ostream & | out, |
unsigned int | nbBits = 0 ) const |
Prints the state of the container in a way that displays the hash table and every node as it is stored in memory instead of the usual tree representation.
out | output stream. |
nbBits | number of bits |
void DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::printState | ( | std::ostream & | out, |
bool | displayKeys = false ) const |
Prints in the state of the container as a tree. (Calls printTree)
out | output stream. |
displayKeys | boolean to decide if keys are displayed . |
void DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::printTree | ( | HashKey | key, |
std::ostream & | out, | ||
bool | displayKeys ) const |
Prints the sub-tree starting with the node corresponding to key.
key | root of the subtree to display |
out | output stream. |
displayKeys | boolean to decide if keys are displayed . |
Range DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::range | ( | ) |
|
protected |
|
protected |
Recusrively calls RemoveNode on the key and its children.
key | The key. |
nbRecursions | the number of recursions performed. |
|
protected |
Remove the node corresponding to a key. Returns false if the node doesn't exist.
key | The key |
Value DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::reverseGet | ( | const HashKey | key | ) | const |
A attempt to do the same thing as get(HashKey) but looking for deeper leafs in the first place instead of doing this in the second place. It hasn't show better results so far.
key | The key. |
void DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::selfDisplay | ( | std::ostream & | out | ) | const |
|
protected |
Set the (maximum) depth of the tree and precompute a mask used for some calculations. The depth of the tree must be known because accessing the data from coordinates depends on it.
depth | the maxumum depth. |
void DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::setValue | ( | const HashKey | key, |
const Value | object ) |
Sets the value of an element in the container, creating it if necessary. In order to keep the tree's coherence this method may add and remove several other nodes in the tree so performances strongly depend on wether or not and how much the tree's structure needs to be modified. For efficiency no check is performed on the key
key | The key |
object | The associated object |
Referenced by test_get(), and test_setVal().
void DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::setValue | ( | const Point & | aPoint, |
const Value | object ) |
Sets the value of an element in the container, creating it if necessary. In order to keep the tree's coherence this method may add and remove several other nodes in the tree so performances strongly depend on wether or not and how much the tree's structure needs to be modified. For efficiency no check is performed on the coordinates
aPoint | The point |
object | the associated object |
Value DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::upwardGet | ( | const HashKey | key | ) | const |
Returns the value corresponding to a key making the assumption that the key is at same depth or deeper than the leaf we are looking for.
key | The key. |
|
protected |
Definition at line 789 of file ImageContainerByHashTree.h.
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::begin(), and DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::end().
|
protected |
The array of linked lists containing all the data
Definition at line 780 of file ImageContainerByHashTree.h.
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::addNode(), DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::begin(), DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::data(), DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::data(), DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::end(), and DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getNode().
int DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myDebugCounter |
Definition at line 424 of file ImageContainerByHashTree.h.
|
protected |
Precoputed masks to avoid recalculating it all the time
Definition at line 810 of file ImageContainerByHashTree.h.
|
protected |
The image domain
Definition at line 775 of file ImageContainerByHashTree.h.
|
protected |
The size of the intermediate hashkey. The bigger the less collisions, but at the same time the more chances to have unused memory allocated.
Definition at line 787 of file ImageContainerByHashTree.h.
Morton<HashKey, Point> DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myMorton |
The morton code computer.
Definition at line 815 of file ImageContainerByHashTree.h.
Point DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::myOrigin |
Definition at line 804 of file ImageContainerByHashTree.h.
|
protected |
Definition at line 811 of file ImageContainerByHashTree.h.
|
protected |
Definition at line 796 of file ImageContainerByHashTree.h.
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getSpanSize().
|
protected |
The depth of the tree
Definition at line 794 of file ImageContainerByHashTree.h.
Referenced by DGtal::experimental::ImageContainerByHashTree< TDomain, TValue, THashKey >::getDepth().