| 
    shape_doc 0.1 
   | 
 
#include <subdivision.hpp>
Definition at line 98 of file subdivision.hpp.
| typedef Cell::BoundingBox BoundingBox | 
Reimplemented in mesher3d_shape< C, V >, and subdivision< C, with_tpl3d< V >, SURFACE, CELL >.
Definition at line 102 of file subdivision.hpp.
| typedef Cell Input | 
Definition at line 105 of file subdivision.hpp.
Reimplemented in mesher3d_shape< C, V >, and subdivision< C, with_tpl3d< V >, SURFACE, CELL >.
Definition at line 104 of file subdivision.hpp.
| typedef kdtree_cell<Shape,Cell> Output | 
Definition at line 106 of file subdivision.hpp.
| typedef C Scalar | 
Definition at line 101 of file subdivision.hpp.
| subdivision | ( | double | e1 = 0.1,  | 
        
| double | e2 = 0.01  | 
        ||
| ) | 
Reimplemented in subdivision< C, with_tpl3d< V >, SURFACE, CELL >.
Definition at line 140 of file subdivision.hpp.
| ~subdivision | ( | void | ) | 
Reimplemented in subdivision< C, with_tpl3d< V >, SURFACE, CELL >.
Definition at line 145 of file subdivision.hpp.
                            {
  delete m_output;
}
| void clear | ( | void | ) |  [virtual] | 
        
Remove all vertices, edges and faces from the 3D subdivision.
Reimplemented in mesher3d_shape< C, V >, and subdivision< C, with_tpl3d< V >, SURFACE, CELL >.
Definition at line 164 of file subdivision.hpp.
                      {
}
| double get_precision | ( | void | ) |  const [inline] | 
        
Definition at line 122 of file subdivision.hpp.
{ return m_minprec ; }
| double get_smoothness | ( | void | ) |  const [inline] | 
        
Definition at line 123 of file subdivision.hpp.
{ return m_maxprec ; }
| Input* input | ( | void | ) |  [inline] | 
        
Definition at line 114 of file subdivision.hpp.
{ return m_input; }
| Output* output | ( | void | ) |  [inline] | 
        
Definition at line 115 of file subdivision.hpp.
Referenced by mesher3d_dual< C, V, Shape, Cell >::run(), and mesher3d< C, V, Shape, Cell >::run().
{ return m_output; }
| void run | ( | void | ) | 
Reimplemented in mesher3d_shape< C, V >.
Definition at line 168 of file subdivision.hpp.
References Cell, and node< _Object, _CELL >::get_cell().
Referenced by mesher3d_dual< C, V, Shape, Cell >::run(), and mesher3d< C, V, Shape, Cell >::run().
                    {
 typedef use<subdivision_def,V> ENV;
 double maxsz = this->get_smoothness()*this->output()->root()->get_cell()->size();
 double minsz = this->get_precision()*this->output()->root()->get_cell()->size();
    
 while(!this->output()->m_nodes.empty()) {
   Node* node = this->output()->m_nodes.front() ;
   Cell* cl = node->get_cell() ;
   
   if(ENV::is_active(this,cl)) {
     if(cl->size() > maxsz) 
       { 
         ENV::subdivide_node(this->output(), cl, node) ;
       } 
     else if(ENV::is_regular(this,cl)) 
       { 
         ENV::process_regular(this->output(),cl) ;
       } 
     else if(cl->size() > minsz ) 
       { 
         ENV::subdivide_node(this->output(), cl, node) ;
       } 
     else { 
       ENV::process_singular(this->output(), cl);
     }
   }
   this->output()->m_nodes.pop_front() ;
 }
}
| void set_input | ( | Cell * | bx | ) | 
Definition at line 149 of file subdivision.hpp.
References node< _Object, _CELL >::set_cell().
Referenced by mesher3d_dual< C, V, Shape, Cell >::run(), and mesher3d< C, V, Shape, Cell >::run().
| void set_precision | ( | double | eps | ) | 
Reimplemented in subdivision< C, with_tpl3d< V >, SURFACE, CELL >.
Definition at line 160 of file subdivision.hpp.
Referenced by subdivision< C, with_tpl3d< V >, SURFACE, CELL >::set_precision().
                                        {
  m_minprec = eps;
}
| void set_smoothness | ( | double | eps | ) | 
Reimplemented in subdivision< C, with_tpl3d< V >, SURFACE, CELL >.
Definition at line 156 of file subdivision.hpp.
Referenced by subdivision< C, with_tpl3d< V >, SURFACE, CELL >::set_smoothness().
                                         {
  m_maxprec = eps;
}
| double m_maxprec | 
Definition at line 131 of file subdivision.hpp.
Referenced by subdivision< C, with_tpl3d< V >, SHAPE_OF(V), cell3d< C, V > >::get_smoothness().
| double m_minprec | 
Definition at line 132 of file subdivision.hpp.
Referenced by subdivision< C, with_tpl3d< V >, SHAPE_OF(V), cell3d< C, V > >::get_precision().