|
shape_doc 0.1
|
#include <mesher3d_shape.hpp>
Definition at line 29 of file mesher3d_shape.hpp.
| typedef Cell::BoundingBox BoundingBox |
Reimplemented from subdivision< C, with_tpl3d< V >, SHAPE_OF(V), cell3d< C, V > >.
Definition at line 46 of file mesher3d_shape.hpp.
Definition at line 43 of file mesher3d_shape.hpp.
Definition at line 44 of file mesher3d_shape.hpp.
| typedef cell3d_factory<C,V> Cell3dFactory |
Definition at line 37 of file mesher3d_shape.hpp.
| typedef Topology::Edge Edge |
Definition at line 40 of file mesher3d_shape.hpp.
| typedef Topology::Face Face |
Definition at line 41 of file mesher3d_shape.hpp.
Definition at line 105 of file subdivision.hpp.
Reimplemented from subdivision< C, with_tpl3d< V >, SHAPE_OF(V), cell3d< C, V > >.
Definition at line 48 of file mesher3d_shape.hpp.
typedef kdtree_cell<SHAPE_OF(V) ,cell3d< C, V > > Output [inherited] |
Definition at line 106 of file subdivision.hpp.
| typedef Topology::Point Point |
Definition at line 39 of file mesher3d_shape.hpp.
typedef C Scalar [inherited] |
Definition at line 101 of file subdivision.hpp.
| typedef subdivision<C,with_tpl3d<V>, typename SHAPE_OF(V), cell3d<C,V> > Subdivision |
Definition at line 33 of file mesher3d_shape.hpp.
Definition at line 45 of file mesher3d_shape.hpp.
Definition at line 32 of file mesher3d_shape.hpp.
| typedef use<subdivision_def,V> VRT |
Definition at line 34 of file mesher3d_shape.hpp.
| mesher3d_shape | ( | double | e1 = 0.1, |
| double | e2 = 0.01 |
||
| ) |
Definition at line 69 of file mesher3d_shape.hpp.
: Subdivision(e1, e2) { }
| mesher3d_shape | ( | Shape * | s, |
| const BoundingBox & | bx, | ||
| double | e1 = 0.1, |
||
| double | e2 = 0.01 |
||
| ) |
Definition at line 72 of file mesher3d_shape.hpp.
References cell3d_factory< C, V >::instance(), and mesher3d_shape< C, V >::set_input().
: Subdivision(e1, e2) { this->set_input(Cell3dFactory::instance()->create(s0,bx0)); }
| ~mesher3d_shape | ( | void | ) |
Definition at line 77 of file mesher3d_shape.hpp.
{
// delete m_tree ;
}
| void clear | ( | void | ) | [virtual] |
Remove all vertices, edges and faces from the 3D subdivision.
Reimplemented from subdivision< C, with_tpl3d< V >, SHAPE_OF(V), cell3d< C, V > >.
Definition at line 159 of file mesher3d_shape.hpp.
{
// this->output()->clear();
}
| double get_precision | ( | void | ) | const [inline, inherited] |
Definition at line 122 of file subdivision.hpp.
References subdivision< C, V, Shape, Cell >::m_minprec.
{ return m_minprec ; }
| double get_smoothness | ( | void | ) | const [inline, inherited] |
Definition at line 123 of file subdivision.hpp.
References subdivision< C, V, Shape, Cell >::m_maxprec.
{ return m_maxprec ; }
| Input* input | ( | void | ) | [inline, inherited] |
Definition at line 114 of file subdivision.hpp.
{ return m_input; }
| bool insert_regular | ( | Cell * | cell | ) |
Definition at line 97 of file mesher3d_shape.hpp.
References cell3d< C, V >::insert_regular().
| bool is_regular | ( | Cell * | cell | ) |
Definition at line 92 of file mesher3d_shape.hpp.
References cell3d< C, V >::is_regular().
{
return cl->is_regular();
}
| Output* output | ( | void | ) | [inline, inherited] |
Definition at line 115 of file subdivision.hpp.
{ return m_output; }
| typedef REF_OF | ( | V | ) |
| void run | ( | void | ) |
Reimplemented from subdivision< C, with_tpl3d< V >, SHAPE_OF(V), cell3d< C, V > >.
Definition at line 117 of file mesher3d_shape.hpp.
References node< _Object, _CELL >::get_cell(), cell3d< C, V >::is_active(), cell3d< C, V >::is_regular(), and bounding_box< C, V >::size().
{
//this->Subdivision::run();
double maxsz = this->get_smoothness()*this->output()->root()->get_cell()->size();
double minsz = this->get_precision()*this->output()->root()->get_cell()->size();
std::cout<<maxsz<<" "<<minsz<<std::endl;
while(!this->output()->m_nodes.empty()) {
Node* node = this->output()->m_nodes.front() ;
Cell* cl = node->get_cell() ;
if(cl->is_active()) {
if(cl->size() > maxsz)
{
this->subdivide(cl, node) ;
}
else if(cl->is_regular())
{
this->insert_regular(cl) ;
}
else if(cl->size() > minsz )
{
// std::cout<<"subdivide not regular"<<std::endl;
this->subdivide(cl, node) ;
}
else {
// std::cout<<"insert singular"<<std::endl;
//this->sing_process(cl);
}
}
this->output()->m_nodes.pop_front() ;
}
foreach(Cell * cl, this->output()->m_leaves) {
dynamic_cast<Cell3d*>(cl)->topology_regular(this);
//foreach(Point* p, cl->m_points) this->insert(p);
//foreach(Face* f, cl->m_faces) this->insert(f);
}
std::cout<< "leaves="<< this->output()->m_leaves.size()<<"\n";
}
| void set_input | ( | Shape * | s, |
| const BoundingBox & | bx | ||
| ) |
Definition at line 86 of file mesher3d_shape.hpp.
{
this->set_input(Cell3dFactory::instance()->create(s0,bx0));
}
| void set_input | ( | Cell * | cl | ) |
Definition at line 81 of file mesher3d_shape.hpp.
Referenced by mesher3d_shape< C, V >::mesher3d_shape().
{
this->set_input(cl);
}
| void set_input | ( | cell3d< C, V > * | bx | ) | [inherited] |
| void set_precision | ( | double | ) | [inherited] |
| void set_smoothness | ( | double | ) | [inherited] |
| typedef SHAPE_OF | ( | V | ) |
| bool sing_process | ( | Cell * | cell | ) |
Definition at line 104 of file mesher3d_shape.hpp.
References cell3d< C, V >::insert_singular().
{
return cl->insert_singular(this) ;
}
Definition at line 109 of file mesher3d_shape.hpp.
References mmx::shape_ssi::left(), node< _Object, _CELL >::m_left, node< _Object, _CELL >::m_right, Node, mmx::shape_ssi::right(), and cell3d< C, V >::subdivide().
double m_maxprec [inherited] |
Definition at line 131 of file subdivision.hpp.
double m_minprec [inherited] |
Definition at line 132 of file subdivision.hpp.