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().