| 
    shape_doc 0.1 
   | 
 
#include <octree_node.hpp>
Definition at line 24 of file octree_node.hpp.
| enum EDGE_TYPE | 
| enum FACE_TYPE | 
| enum NODE_TYPE | 
| octree_node | ( | void | ) | 
| octree_node | ( | Object | object, | 
| CELL | cl | ||
| ) | 
Definition at line 112 of file octree_node.hpp.
| octree_node | ( | NODE_TYPE | nodeType, | 
| octree_node< Object, CELL > * | parent, | ||
| CELL & | cl | ||
| ) | 
Definition at line 142 of file octree_node.hpp.
{  
    this->m_cell = cl ;
    this->m_type = type ; 
    this->m_parent = parent ;
    F_NEchild = NULL ; F_NWchild = NULL ; 
    F_SEchild = NULL ; F_SWchild = NULL ; 
    B_NEchild = NULL ; B_NWchild = NULL ; 
    B_SEchild = NULL ; B_SWchild = NULL ; 
    depth = parent->depth+1 ;
    switch(type) { 
    case F_NE: parent->setFNEchild(this) ; break ; 
    case F_NW: parent->setFNWchild(this) ; break ; 
    case F_SW: parent->setFSWchild(this) ; break ; 
    case F_SE: parent->setFSEchild(this) ; break ;
    case B_NE: parent->setBNEchild(this) ; break ;  
    case B_NW: parent->setBNWchild(this) ; break ;  
    case B_SW: parent->setBSWchild(this) ; break ;  
    case B_SE: parent->setBSEchild(this) ; break ; 
    default: std::cerr << "Error : the node's type isn't appropriate \n" ; break ;
    }
}
| octree_node | ( | octree_node< Object, CELL > * | left, | 
| octree_node< Object, CELL > * | right, | ||
| CELL | cl | ||
| ) | 
Definition at line 126 of file octree_node.hpp.
References mmx::shape_ssi::left(), and mmx::shape_ssi::right().
{
    this->m_parent = NULL ;
    this->m_cell   = cl ;
    left->type  = F_NW ;  left->parent = this ; F_NWchild =  left ;
    right->type = F_NE ; right->parent = this ; F_NEchild = right ;
    F_NWchild = left  ; F_SWchild = NULL ;
    F_NEchild = right ; F_SEchild = NULL ;
    B_NEchild = NULL  ; B_NWchild = NULL ; 
    B_SEchild = NULL  ; B_SWchild = NULL ;
    depth = left->depth-1 ;
}
| octree_node | ( | octree_node< Object, CELL > & | node | ) |  [protected] | 
        
| octree_node<Object, CELL>* BNEchild | ( | void | ) |  [inline] | 
        
Definition at line 68 of file octree_node.hpp.
References octree_node< Object, CELL >::B_NEchild.
{ return B_NEchild ; } 
| octree_node<Object, CELL>* BNWchild | ( | void | ) |  [inline] | 
        
Definition at line 69 of file octree_node.hpp.
References octree_node< Object, CELL >::B_NWchild.
{ return B_NWchild ; } 
| octree_node<Object, CELL>* BSEchild | ( | void | ) |  [inline] | 
        
Definition at line 70 of file octree_node.hpp.
References octree_node< Object, CELL >::B_SEchild.
{ return B_SEchild ; } 
| octree_node<Object, CELL>* BSWchild | ( | void | ) |  [inline] | 
        
Definition at line 71 of file octree_node.hpp.
References octree_node< Object, CELL >::B_SWchild.
{ return B_SWchild ; }
| octree_node<Object, CELL>* FNEchild | ( | void | ) |  [inline] | 
        
Definition at line 63 of file octree_node.hpp.
References octree_node< Object, CELL >::F_NEchild.
{ return F_NEchild ; }
| octree_node<Object, CELL>* FNWchild | ( | void | ) |  [inline] | 
        
Definition at line 64 of file octree_node.hpp.
References octree_node< Object, CELL >::F_NWchild.
{ return F_NWchild ; }
| octree_node<Object, CELL>* FSEchild | ( | void | ) |  [inline] | 
        
Definition at line 65 of file octree_node.hpp.
References octree_node< Object, CELL >::F_SEchild.
{ return F_SEchild ; }
| octree_node<Object, CELL>* FSWchild | ( | void | ) |  [inline] | 
        
Definition at line 66 of file octree_node.hpp.
References octree_node< Object, CELL >::F_SWchild.
{ return F_SWchild ; } 
| const CELL& get_cell | ( | void | ) |  const [inline] | 
        
Definition at line 55 of file octree_node.hpp.
References octree_node< Object, CELL >::m_cell.
{ return m_cell; } 
| CELL& get_cell | ( | void | ) |  [inline] | 
        
Definition at line 56 of file octree_node.hpp.
References octree_node< Object, CELL >::m_cell.
{ return m_cell ; }
| bool isLeaf | ( | void | ) | const | 
| size_t leafDistance | ( | void | ) | const | 
Definition at line 178 of file octree_node.hpp.
References mmx::min(), and Node.
{
        if ( this->isLeaf() )
                return 0;
        struct inner {
                size_t operator()( const Node* node ) {
                        if ( node == 0 )
                                return 0;
                        else
                                return node->leafDistance();
                }
        } I;
        size_t d = 0;
        d = std::min( d, I(B_NEchild) );
        d = std::min( d, I(B_NWchild) );
        d = std::min( d, I(B_SEchild) );
        d = std::min( d, I(B_SWchild) );
        d = std::min( d, I(F_NEchild) );
        d = std::min( d, I(F_NWchild) );
        d = std::min( d, I(F_SEchild) );
        d = std::min( d, I(F_SWchild) );
        return d+1;
}
| octree_node<Object, CELL>* left | ( | void | ) |  [inline] | 
        
Definition at line 73 of file octree_node.hpp.
References octree_node< Object, CELL >::F_NWchild.
{ return F_NWchild ; }
| Object object | ( | void | ) |  [inline] | 
        
Definition at line 59 of file octree_node.hpp.
References octree_node< Object, CELL >::m_objects.
{ return m_objects.front() ; }
| octree_node<Object, CELL>* right | ( | void | ) |  [inline] | 
        
Definition at line 74 of file octree_node.hpp.
References octree_node< Object, CELL >::F_NEchild.
{ return F_NEchild ; }
| void setBNEchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 50 of file octree_node.hpp.
References octree_node< Object, CELL >::B_NEchild.
{ B_NEchild = n ; } 
| void setBNWchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 51 of file octree_node.hpp.
References octree_node< Object, CELL >::B_NWchild.
{ B_NWchild = n ; } 
| void setBSEchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 52 of file octree_node.hpp.
References octree_node< Object, CELL >::B_SEchild.
{ B_SEchild = n ; } 
| void setBSWchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 53 of file octree_node.hpp.
References octree_node< Object, CELL >::B_SWchild.
{ B_SWchild = n ; } 
| void setCell | ( | const CELL & | c | ) |  [inline] | 
        
Definition at line 41 of file octree_node.hpp.
References octree_node< Object, CELL >::m_cell.
{ m_cell = c ; }
| void setFNEchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 45 of file octree_node.hpp.
References octree_node< Object, CELL >::F_NEchild.
{ F_NEchild = n ; }
| void setFNWchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 46 of file octree_node.hpp.
References octree_node< Object, CELL >::F_NWchild.
{ F_NWchild = n ; }
| void setFSEchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 47 of file octree_node.hpp.
References octree_node< Object, CELL >::F_SEchild.
{ F_SEchild = n ; }
| void setFSWchild | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 48 of file octree_node.hpp.
References octree_node< Object, CELL >::F_SWchild.
{ F_SWchild = n ; } 
| void setParent | ( | octree_node< Object, CELL > * | n | ) |  [inline] | 
        
Definition at line 43 of file octree_node.hpp.
References octree_node< Object, CELL >::m_parent.
Referenced by quadtree< Object, CELL >::quadtree().
{ m_parent = n ; }
| NODE_TYPE type | ( | void | ) |  [inline] | 
        
Definition at line 61 of file octree_node.hpp.
References octree_node< Object, CELL >::m_type.
{ return m_type ; }
| octree_node<Object, CELL>* B_NEchild | 
Definition at line 89 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::BNEchild(), and octree_node< Object, CELL >::setBNEchild().
| octree_node<Object, CELL>* B_NWchild | 
Definition at line 90 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::BNWchild(), and octree_node< Object, CELL >::setBNWchild().
| octree_node<Object, CELL>* B_SEchild | 
Definition at line 91 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::BSEchild(), and octree_node< Object, CELL >::setBSEchild().
| octree_node<Object, CELL>* B_SWchild | 
Definition at line 92 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::BSWchild(), and octree_node< Object, CELL >::setBSWchild().
| int depth | 
Definition at line 94 of file octree_node.hpp.
| octree_node<Object, CELL>* F_NEchild | 
Definition at line 85 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::FNEchild(), octree_node< Object, CELL >::right(), and octree_node< Object, CELL >::setFNEchild().
| octree_node<Object, CELL>* F_NWchild | 
Definition at line 86 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::FNWchild(), octree_node< Object, CELL >::left(), and octree_node< Object, CELL >::setFNWchild().
| octree_node<Object, CELL>* F_SEchild | 
Definition at line 87 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::FSEchild(), and octree_node< Object, CELL >::setFSEchild().
| octree_node<Object, CELL>* F_SWchild | 
Definition at line 88 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::FSWchild(), and octree_node< Object, CELL >::setFSWchild().
| int index | 
Definition at line 95 of file octree_node.hpp.
| CELL m_cell | 
Definition at line 80 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::get_cell(), and octree_node< Object, CELL >::setCell().
| std::list<Object> m_objects | 
Definition at line 81 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::object().
| octree_node<Object, CELL>* m_parent | 
Definition at line 84 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::setParent().
Definition at line 82 of file octree_node.hpp.
Referenced by octree_node< Object, CELL >::type().