mesh3d< C, V > Class Template Reference

#include <mesh3d.hpp>

List of all members.

Public Types

Public Member Functions

Public Attributes


Detailed Description

template<class C, class V = default_env>
class mmx::shape::mesh3d< C, V >

Definition at line 30 of file mesh3d.hpp.


Member Typedef Documentation

typedef use<mesh3d_def,C,V>::Edge Edge

Definition at line 34 of file mesh3d.hpp.

typedef use<mesh3d_def,C,V>::Face Face

Definition at line 35 of file mesh3d.hpp.

typedef use<mesh3d_def,C,V>::Point Point

Definition at line 33 of file mesh3d.hpp.


Constructor & Destructor Documentation

mesh3d ( void   )  [inline]

Definition at line 77 of file mesh3d.hpp.

00077                       : m_nbv(0) {
00078 
00079 }

~mesh3d ( void   )  [inline]

Definition at line 81 of file mesh3d.hpp.

00081                        {
00082 }


Member Function Documentation

void clear ( void   )  [inline, virtual]

Remove all vertices, edges and faces.

Definition at line 140 of file mesh3d.hpp.

References mesh3d< C, V >::m_edges, mesh3d< C, V >::m_faces, mesh3d< C, V >::m_vertices, and Seq< C, R >::resize().

00140             {
00141     // Should we clean up these points?
00142     m_faces.resize( 0 );
00143     m_edges.resize( 0 );
00144     m_vertices.resize( 0 );
00145 }

virtual Edge* edge ( int  i  )  [inline, virtual]

Definition at line 65 of file mesh3d.hpp.

References mesh3d< C, V >::m_edges.

00065 { return m_edges[i] ; }

Seq<Edge *> edges ( void   )  const [inline]

Definition at line 61 of file mesh3d.hpp.

References mesh3d< C, V >::m_edges.

00061 { return m_edges ; }

virtual Face* face ( int  i  )  [inline, virtual]

Definition at line 66 of file mesh3d.hpp.

References mesh3d< C, V >::m_faces.

00066 { return m_faces[i] ; }

Seq<Face *> faces ( void   )  const [inline]

Definition at line 62 of file mesh3d.hpp.

References mesh3d< C, V >::m_faces.

00062 { return m_faces ; }

void insert_edge ( Edge e  )  [inline, virtual]

Definition at line 104 of file mesh3d.hpp.

References mesh3d< C, V >::m_edges.

00104                          {
00105     m_edges<<e;
00106 }

void insert_edge ( Point p1,
Point p2 
) [inline, virtual]

Definition at line 96 of file mesh3d.hpp.

References mesh3d< C, V >::insert_vertex(), and mesh3d< C, V >::m_edges.

Referenced by mesh3d< C, V >::push_back_edge().

00096                                         {
00097     if (p1->index()<0) this->insert_vertex(p1);
00098     if (p2->index()<0) this->insert_vertex(p2);
00099     m_edges<< new Edge(p1,p2);
00100 }

void insert_face ( Point p1,
Point p2,
Point p3,
Point p4 
) [inline, virtual]

Definition at line 126 of file mesh3d.hpp.

References mesh3d< C, V >::insert_vertex(), and mesh3d< C, V >::m_faces.

00126                                                              {
00127     Face* f= new Face;
00128     if (p1->index()<0) this->insert_vertex(p1);
00129     if (p2->index()<0) this->insert_vertex(p2);
00130     if (p3->index()<0) this->insert_vertex(p3);
00131     if (p4->index()<0) this->insert_vertex(p4);
00132     f->insert(p1);
00133     f->insert(p2);
00134     f->insert(p3);
00135     f->insert(p4);
00136     m_faces<<f;
00137 }

void insert_face ( Point p1,
Point p2,
Point p3 
) [inline, virtual]

Definition at line 114 of file mesh3d.hpp.

References mesh3d< C, V >::insert_vertex(), and mesh3d< C, V >::m_faces.

00114                                                   {
00115     Face* f= new Face;
00116     if (p1->index()<0) this->insert_vertex(p1);
00117     if (p2->index()<0) this->insert_vertex(p2);
00118     if (p3->index()<0) this->insert_vertex(p3);
00119     f->insert(p1);
00120     f->insert(p2);
00121     f->insert(p3);
00122     m_faces<<f;
00123 }

void insert_face ( Face f  )  [inline, virtual]

Definition at line 109 of file mesh3d.hpp.

References mesh3d< C, V >::m_faces.

00109                           {
00110     m_faces<<f;
00111 }

void insert_vertex ( Point p  )  [inline, virtual]

Definition at line 85 of file mesh3d.hpp.

References mesh3d< C, V >::m_nbv, and mesh3d< C, V >::m_vertices.

Referenced by mesh3d< C, V >::insert_edge(), mesh3d< C, V >::insert_face(), and mesh3d< C, V >::push_back_vertex().

00085                              {
00086     //use<point_def,C,V>::point_insertor(m_vertices, p);
00087     if (p->index()<0) {
00088         p->set_index(m_nbv);
00089         m_vertices << p;
00090         m_nbv++;
00091     }
00092 }

unsigned nbe ( void   )  const [inline]

Number of edges.

Definition at line 56 of file mesh3d.hpp.

References mesh3d< C, V >::m_edges, and Seq< C, R >::size().

00056 { return m_edges.size(); }

unsigned nbf (  )  const [inline]

Number of faces.

Definition at line 58 of file mesh3d.hpp.

References mesh3d< C, V >::m_faces, and Seq< C, R >::size().

00058 { return m_faces.size(); }

unsigned nbv (  )  const [inline]

Number of vertices.

Definition at line 54 of file mesh3d.hpp.

References mesh3d< C, V >::m_vertices, and Seq< C, R >::size().

00054 { return m_vertices.size(); }

void push_back_edge ( int  b,
int  e 
) [inline]

Definition at line 51 of file mesh3d.hpp.

References mesh3d< C, V >::insert_edge(), and mesh3d< C, V >::vertex().

00051 {this->insert_edge(this->vertex(b), this->vertex(e));}

void push_back_vertex ( Point p  )  [inline]

Definition at line 50 of file mesh3d.hpp.

References mesh3d< C, V >::insert_vertex().

00050 {this->insert_vertex(p);}

virtual Point* vertex ( int  i  )  [inline, virtual]

Definition at line 64 of file mesh3d.hpp.

References mesh3d< C, V >::m_vertices.

Referenced by mesh3d< C, V >::push_back_edge().

00064 { return m_vertices[i] ; }

Seq<Point *> vertices ( void   )  const [inline]

Definition at line 60 of file mesh3d.hpp.

References mesh3d< C, V >::m_vertices.

00060 { return m_vertices ; }


Member Data Documentation

int m_nbv

Definition at line 74 of file mesh3d.hpp.

Referenced by mesh3d< C, V >::insert_vertex().


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

Generated on 6 Dec 2012 for shape by  doxygen 1.6.1