#include <TreeIntVectSet.H>
Collaboration diagram for TreeIntVectSet:

Public Methods | |
| TreeIntVectSet () | |
| TreeIntVectSet (const Box &) | |
| TreeIntVectSet (const TreeIntVectSet &a_sivs) | |
| ~TreeIntVectSet () | |
| void | define (const Box &) |
| void | define (const TreeIntVectSet &a_sivs) |
| TreeIntVectSet & | operator= (const TreeIntVectSet &a_sivs) |
| TreeIntVectSet & | operator|= (const TreeIntVectSet &a_sivs) |
| or | |
| TreeIntVectSet & | operator|= (const IntVect &a_iv) |
| TreeIntVectSet & | operator|= (const Box &a_box) |
| TreeIntVectSet & | operator &= (const TreeIntVectSet &s_sivs) |
| and | |
| TreeIntVectSet & | operator &= (const Box &a_box) |
| and | |
| TreeIntVectSet & | operator &= (const ProblemDomain &a_domain) |
| and | |
| TreeIntVectSet & | operator-= (const TreeIntVectSet &a_sivs) |
| not | |
| TreeIntVectSet & | operator-= (const IntVect &a_iv) |
| not | |
| TreeIntVectSet & | operator-= (const Box &a_box) |
| not | |
| bool | operator== (const TreeIntVectSet &lhs) const |
| returns true if | |
| Vector< Box > | createBoxes () const |
| Returns Vector<Box> representation of this IntVectSet. | |
| void | createBoxes (Vector< Box > &boxes, int &size) const |
| Returns Vector<Box> representation of this IntVectSet. | |
| bool | contains (const IntVect &iv) const |
| bool | contains (const Box &box) const |
| TreeIntVectSet | chop (int idir, int chop_pnt) |
| void | grow (int igrow) |
| |
| void | grow (int idir, int igrow) |
| void | refine (int iref=2) |
| fast if iref is power of 2 | |
| void | coarsen (int iref=2) |
| fast if iref is power of 2 | |
| void | shift (const IntVect &iv) |
| slow operation | |
| void | clear () |
| void | nestingRegion (int a_radius, const Box &a_domain, int granularity) |
| void | nestingRegion (int a_radius, const ProblemDomain &a_domain, int granularity) |
| const Box & | minBox () const |
| bool | isEmpty () const |
| int | numPts () const |
| void | compact () const |
| void | recalcMinBox () const |
Linearization routines | |
| int | linearSize () const |
| void | linearIn (const void *const inBuf) |
| void | linearOut (void *const a_outBuf) const |
Friends | |
| class | TreeIntVectSetIterator |
| struct | Flag |
| class | IntVectSet |
| void | dumpTree (const TreeIntVectSet *set) |
For explanations of these functions please look at IntVectSet class when the documentation doesn't appear here.
Further details of how non-recursive TreeNode design works:
(for a 2D tree)
(m_tree)
+ -- 0
(a)+ - 0
1
1 +
1 <------you are here
+ - + - 0
0 1
0 1
0 0
for the node indicated, the 'index' vector would contain
index=[ 0 1 3 ...............]
parents=[&m_tree &a ..................]
or directly refered to as m_tree.nodes[1].nodes[3]
the tree indicates a covering of an index space in either
1 or 0. 1 is stored in the tree by pointing at the static
'full' data member, 0 is stored as a 0.
every 'nodes' member of a TreeNode object can be either
0, &full, or a pointer .
The interpretation of the tree depends on what m_spanBox is.
nodes[i] indicates whether the i'th quadrant of the parent
Box is full, empty, or needs to be parsed deeper.
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
somewhat expensive, but shouldn't be ;-)
|
|
|
|
|
|
fast if iref is power of 2 fast if iref is power of 2 |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
Returns Vector<Box> representation of this IntVectSet. Returns Vector<Box> representation of this IntVectSet. |
|
|
Returns Vector<Box> representation of this IntVectSet. Returns Vector<Box> representation of this IntVectSet. |
|
|
|
|
|
|
|
||||||||||||
|
expensive |
|
|
expensive |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
and
|
|
|
and
|
|
|
and
|
|
|
not
|
|
|
not
|
|
|
not
|
|
|
|
|
|
returns true if
|
|
|
|
|
|
|
|
|
or
|
|
|
|
|
|
fast if iref is power of 2 fast if iref is power of 2 |
|
|
slow operation
|
|
|
|
|
|
|
|
|
|
|
|
|
1.2.16