mesher2d_dual< Cell, V > Struct Template Reference

#include <mesher2d_dual.hpp>

List of all members.

Public Types

Public Member Functions


Detailed Description

template<class Cell, class V = default_env>
struct mmx::shape::mesher2d_dual< Cell, V >

Definition at line 38 of file mesher2d_dual.hpp.


Member Typedef Documentation

typedef Cell::BoundingBox BoundingBox

Definition at line 49 of file mesher2d_dual.hpp.

typedef double C

Definition at line 41 of file mesher2d_dual.hpp.

typedef Output::Edge Edge

Definition at line 47 of file mesher2d_dual.hpp.

typedef Output::Face Face

Definition at line 48 of file mesher2d_dual.hpp.

typedef Cell Input

Definition at line 44 of file mesher2d_dual.hpp.

typedef mesh3d<C,V> Output

Definition at line 45 of file mesher2d_dual.hpp.

Definition at line 46 of file mesher2d_dual.hpp.

typedef Cell Shape

Definition at line 42 of file mesher2d_dual.hpp.

typedef subdivision<C,V,Cell> Subdivisor

Definition at line 43 of file mesher2d_dual.hpp.


Constructor & Destructor Documentation

mesher2d_dual ( double  e1 = 0.1,
double  e2 = 0.01 
) [inline]

Definition at line 77 of file mesher2d_dual.hpp.

00077                                             : m_smooth(e1), m_prec(e2)
00078 {
00079     m_output = new Output;
00080 }

~mesher2d_dual ( void   )  [inline]

Definition at line 82 of file mesher2d_dual.hpp.

00082                               {
00083     delete m_output;
00084 }


Member Function Documentation

void clear ( void   )  [inline]

Definition at line 108 of file mesher2d_dual.hpp.

00108                           {
00109     this->get_output()->clear();
00110 }

double get_precision ( void   )  const [inline]

Definition at line 60 of file mesher2d_dual.hpp.

00060 { return m_prec;   }

double get_smoothness ( void   )  const [inline]

Definition at line 59 of file mesher2d_dual.hpp.

00059 { return m_smooth; }

Input* input ( void   )  [inline]

Definition at line 62 of file mesher2d_dual.hpp.

Referenced by mesher2d_dual< Cell, V >::run().

00062 { return m_input; }

Output* output ( void   )  [inline]

Definition at line 63 of file mesher2d_dual.hpp.

00063 { return m_output; }

void run ( void   )  [inline]

Definition at line 86 of file mesher2d_dual.hpp.

References subdivision< C, V, Cell >::get_output(), mesher2d_dual< Cell, V >::input(), mesh3d< C, V >::m_vertices, subdivision< C, V, Cell >::run(), subdivision< C, V, Cell >::set_input(), and Seq< C, R >::size().

00086                         {
00087 
00088     Subdivisor* sbd = new Subdivisor(m_smooth,m_prec);
00089     sbd->set_input(this->input());
00090     sbd->run();
00091 
00092     typedef dualize<C,default_2d,Cell>  Dualize;
00093     Dualize* dl = new Dualize(sbd->get_output());
00094     dl->run();
00095 
00096     std::cout<< "\nCells      = "<< sbd->get_output()->m_leaves.size()<<"\n";
00097     std::cout<< "Cells      = "<< dl->get_output()->m_vertices.size()<<"\n";
00098     std::cout<< "Dual edges = "<< dl->get_output()->m_edges.size()/2<<"\n";
00099     std::cout<< "Dual faces = "<< dl->get_output()->m_faces.size()/4<<"\n";
00100 
00101     typedef polygonizer<C,default_2d,typename Dualize::Output> Polygonizer;
00102     Polygonizer* plg = new Polygonizer(dl->get_output(), m_output);
00103     plg->run();
00104 
00105 }

void set_input ( Cell *  cl  )  [inline]

Definition at line 54 of file mesher2d_dual.hpp.

00054 { m_input= cl; }

void set_precision ( double  e  )  [inline]

Definition at line 57 of file mesher2d_dual.hpp.

00057 { m_prec   = e; }

void set_smoothness ( double  e  )  [inline]

Definition at line 56 of file mesher2d_dual.hpp.

00056 { m_smooth = e; }


The documentation for this struct was generated from the following file:

Generated on 6 Dec 2012 for shape by  doxygen 1.6.1