MeshOfTriangles Class Reference

#include <MeshOfTriangles.hpp>

Inheritance diagram for MeshOfTriangles:

Inheritance graph
[legend]
Collaboration diagram for MeshOfTriangles:

Collaboration graph
[legend]

List of all members.

Public Types

enum  { family = Mesh::plane }
typedef Triangle CellType
typedef Edge FaceType
typedef Mesh::T_iterator
< MeshOfTriangles, Triangle
iterator
typedef Mesh::T_iterator
< const MeshOfTriangles, const
Triangle
const_iterator
enum  Type {
  cartesianHexahedraMesh, hexahedraMesh, octreeMesh, tetrahedraMesh,
  trianglesMesh, spectralMesh, surfaceMeshTriangles, surfaceMeshQuadrangles
}
enum  Family { volume, surface, plane }
 Family. More...

Public Member Functions

bool hasBorderMesh () const
ConstReferenceCounting< MeshborderBaseMesh () const
std::string typeName () const
void buildLocalizationTools ()
void buildFaces ()
void buildEdges ()
const Connectivity
< MeshOfTriangles > & 
connectivity () const
Connectivity< MeshOfTriangles > & connectivity ()
bool inside (const real_t &x, const real_t &y, const real_t &z) const
 Returns true if the point p is inside the mesh.
bool inside (const TinyVector< 3 > &p) const
 Returns true if the point p is inside the mesh.
MeshOfTriangles::const_iterator find (const TinyVector< 3, real_t > &P) const
MeshOfTriangles::const_iterator find (const double &x, const double &y, const double &z) const
Trianglecell (const size_t &i)
const Trianglecell (const size_t &i) const
void setNumberOfCells (const int n)
const size_t & numberOfCells () const
size_t cellNumber (const Triangle &t) const
bool hasFaces () const
const size_t & numberOfFaces () const
const FaceTypeface (const size_t &i) const
size_t faceNumber (const FaceType &f) const
 MeshOfTriangles (const size_t &theNumberOfCells)
 MeshOfTriangles (ReferenceCounting< VerticesSet > vertices, ReferenceCounting< VerticesCorrespondance > correspondances, ReferenceCounting< Vector< Triangle > > triangles)
 MeshOfTriangles ()
 ~MeshOfTriangles ()
virtual bool isPeriodic () const
virtual bool inside (const TinyVector< 3, real_t > &p) const =0
const Mesh::Typetype () const
const Mesh::Familyfamily () const
const size_t & id () const
size_t vertexNumber (const Vertex &v) const
bool hasEdges () const
size_t edgeNumber (const Edge &e) const
const size_t & numberOfVertices () const
void setNumberOfVertices (const size_t &size)
size_t numberOfEdges () const
ReferenceCounting< VerticesSetverticesSet ()
ConstReferenceCounting
< VerticesSet
verticesSet () const
ReferenceCounting
< VerticesCorrespondance
verticesCorrespondance ()
ConstReferenceCounting
< VerticesCorrespondance
verticesCorrespondance () const
const Vertexvertex (const size_t &i) const
Vertexvertex (const size_t &i)
const size_t & correspondance (const size_t &i) const
const Edgeedge (const size_t &i) const
Edgeedge (const size_t &i)

Protected Attributes

ReferenceCounting< VerticesSet__verticesSet
ReferenceCounting
< VerticesCorrespondance
__verticesCorrespondance
ReferenceCounting< EdgesSet__edgesSet

Private Attributes

ReferenceCounting< Vector
< Triangle > > 
__cells
ReferenceCounting< Octree
< size_t, 2 > > 
__octree
TinyVector< 2, real_t > __a
TinyVector< 2, real_t > __b
Connectivity< MeshOfTriangles__connectivity

Classes

struct  BorderMeshType


Detailed Description

Definition at line 44 of file MeshOfTriangles.hpp.


Member Typedef Documentation

Definition at line 52 of file MeshOfTriangles.hpp.

Definition at line 53 of file MeshOfTriangles.hpp.

Definition at line 57 of file MeshOfTriangles.hpp.

Definition at line 58 of file MeshOfTriangles.hpp.


Member Enumeration Documentation

anonymous enum

Enumerator:
family 

Definition at line 48 of file MeshOfTriangles.hpp.

00048        {
00049     family = Mesh::plane
00050   };

enum Mesh::Type [inherited]

Enumerator:
cartesianHexahedraMesh 
hexahedraMesh 
octreeMesh 
tetrahedraMesh 
trianglesMesh 
spectralMesh 
surfaceMeshTriangles 
surfaceMeshQuadrangles 

Definition at line 43 of file Mesh.hpp.

enum Mesh::Family [inherited]

Family.

Enumerator:
volume 
surface 
plane 

Definition at line 55 of file Mesh.hpp.

00055                {
00056     volume,
00057     surface,
00058     plane
00059   } Family;


Constructor & Destructor Documentation

MeshOfTriangles::MeshOfTriangles ( const size_t &  theNumberOfCells  )  [inline]

Definition at line 276 of file MeshOfTriangles.hpp.

00277     : Mesh(Mesh::trianglesMesh,
00278            Mesh::plane,
00279            0),
00280       __cells(new Vector<Triangle>(theNumberOfCells)),
00281       __connectivity(*this)
00282   {
00283     ;
00284   }

MeshOfTriangles::MeshOfTriangles ( ReferenceCounting< VerticesSet vertices,
ReferenceCounting< VerticesCorrespondance correspondances,
ReferenceCounting< Vector< Triangle > >  triangles 
)

Definition at line 36 of file MeshOfTriangles.cpp.

00039     : Mesh(Mesh::trianglesMesh,
00040            Mesh::plane,
00041            vertices,
00042            correspondances),
00043       __cells(triangles),
00044       __octree(0),
00045       __connectivity(*this)
00046 {
00047   ;
00048 }

MeshOfTriangles::MeshOfTriangles (  )  [inline]

Default constructor

Definition at line 294 of file MeshOfTriangles.hpp.

00295     : Mesh(Mesh::trianglesMesh,
00296            Mesh::plane,
00297            0),
00298       __connectivity(*this)
00299   {
00300     ;
00301   }

MeshOfTriangles::~MeshOfTriangles (  )  [inline]

Destructor

Definition at line 307 of file MeshOfTriangles.hpp.

00308   {
00309     ;
00310   }


Member Function Documentation

bool MeshOfTriangles::hasBorderMesh (  )  const [inline, virtual]

Implements Mesh.

Definition at line 70 of file MeshOfTriangles.hpp.

00071   {
00072     return false;
00073   }

ConstReferenceCounting<Mesh> MeshOfTriangles::borderBaseMesh (  )  const [inline, virtual]

Implements Mesh.

Definition at line 75 of file MeshOfTriangles.hpp.

References ErrorHandler::unexpected.

00076   {
00077     throw ErrorHandler(__FILE__,__LINE__,
00078                        "not implemented yet",
00079                        ErrorHandler::unexpected);
00080 
00081     return 0;
00082   }

std::string MeshOfTriangles::typeName (  )  const [inline, virtual]

Returns the typename of the mesh

Returns:
type name of the mesh

Implements Mesh.

Definition at line 84 of file MeshOfTriangles.hpp.

00085   {
00086     return "mesh of triangles";
00087   }

void MeshOfTriangles::buildLocalizationTools (  ) 

Definition at line 50 of file MeshOfTriangles.cpp.

References __a, __b, __octree, cell(), ffout(), ConnectivityBuilder< MeshType >::generates(), P1Triangle3DFiniteElement::massCenter(), ErrorHandler::normal, numberOfCells(), Mesh::numberOfVertices(), ConformTransformationP1Triangle::value(), and Mesh::vertex().

Referenced by find().

00051 {
00052   ffout(3) << "Generating localization in triangles mesh...\n";
00053   if (this->numberOfVertices()==0) {
00054     throw ErrorHandler(__FILE__,__LINE__,
00055                        "the mesh contains no vertices\n",
00056                        ErrorHandler::normal);
00057   }
00058 
00059   {
00060     // Localization inside a triangles mesh requires the cell to cell
00061     // connectivity
00062     ConnectivityBuilder<MeshOfTriangles> builder(*this);
00063     builder.generates(Connectivity<MeshOfTriangles>::CellToCells);
00064   }
00065 
00066   // getting bounding box size
00067   const TinyVector <3,real_t>& v0 = this->vertex(0);
00068   __a[0] = v0[0];
00069   __a[1] = v0[1];
00070   __b = __a;
00071   for (size_t i=1; i<this->numberOfVertices(); ++i) {
00072     Vertex& x = this->vertex(i);
00073     for (size_t k=0; k<2; ++k) {
00074       __a[k] = (__a[k]<x[k])?__a[k]:x[k];
00075       __b[k] = (__b[k]>x[k])?__b[k]:x[k];
00076     }
00077   }
00078   ffout(3) << "- Bounding box is " << __a << ',' << __b << '\n';
00079 
00080   ffout(3) << "- Building the octree\n";
00081   __octree = new Octree<size_t, 2>(__a,__b);
00082 
00083   for (size_t i = 0; i < this->numberOfCells(); ++i) {
00084     ConformTransformationP1Triangle T(this->cell(i));
00085 
00086     TinyVector<3,real_t> X;
00087     T.value(P1Triangle3DFiniteElement::massCenter(), X);
00088 
00089     TinyVector<2,real_t> x;
00090     x[0]=X[0];
00091     x[1]=X[1];
00092 
00093     __octree->add(i,x);
00094   }
00095   ffout(3) << "Generating localization in triangles mesh: done\n";
00096 }

Here is the call graph for this function:

void MeshOfTriangles::buildFaces (  )  [inline, virtual]

Faces and edges are treated as the same for surfaces meshes

Implements Mesh.

Definition at line 95 of file MeshOfTriangles.hpp.

References buildEdges().

00096   {
00097     this->buildEdges();
00098   }

Here is the call graph for this function:

void MeshOfTriangles::buildEdges (  )  [inline, virtual]

builds the edges of a mesh

Implements Mesh.

Definition at line 100 of file MeshOfTriangles.hpp.

References Mesh::__edgesSet, and EdgesBuilder< MeshType >::edgesSet().

Referenced by buildFaces().

00101   {
00102     EdgesBuilder<MeshOfTriangles> edgesBuilder(*this);
00103     __edgesSet = edgesBuilder.edgesSet();
00104   }

Here is the call graph for this function:

const Connectivity<MeshOfTriangles>& MeshOfTriangles::connectivity (  )  const [inline]

Read only access to the mesh connectivity

Returns:
the connectivity

Definition at line 111 of file MeshOfTriangles.hpp.

References __connectivity.

00112   {
00113     return __connectivity;
00114   }

Connectivity<MeshOfTriangles>& MeshOfTriangles::connectivity (  )  [inline]

Access to the mesh connectivity

Returns:
the connectivity

Definition at line 121 of file MeshOfTriangles.hpp.

References __connectivity.

00122   {
00123     return __connectivity;
00124   }

bool MeshOfTriangles::inside ( const real_t &  x,
const real_t &  y,
const real_t &  z 
) const [inline, virtual]

Returns true if the point p is inside the mesh.

Implements Mesh.

Definition at line 127 of file MeshOfTriangles.hpp.

References find().

Referenced by inside().

00128   {
00129     return not(this->find(x, y, z).end());
00130   }

Here is the call graph for this function:

bool MeshOfTriangles::inside ( const TinyVector< 3 > &  p  )  const [inline]

Returns true if the point p is inside the mesh.

Definition at line 133 of file MeshOfTriangles.hpp.

References inside().

00134   {
00135     return this->inside(p[0], p[1], p[2]);
00136   }

Here is the call graph for this function:

MeshOfTriangles::const_iterator MeshOfTriangles::find ( const TinyVector< 3, real_t > &  P  )  const [inline]

Find the element which contains a point $ P $

Parameters:
P $ P$
Returns:
an iterator on the element if found else returns the end iterator

Definition at line 148 of file MeshOfTriangles.hpp.

Referenced by inside().

00149   {
00150     return find(P[0], P[1], P[2]);
00151   }

MeshOfTriangles::const_iterator MeshOfTriangles::find ( const double &  x,
const double &  y,
const double &  z 
) const

Find the element which contains a point $ P $

Parameters:
x $ P_1$
y $ P_2$
z $ P_3$
Returns:
an iterator on the element if found else returns the end iterator
Bug:
Criteria uses an epsilon that should be relative to the element size

Definition at line 99 of file MeshOfTriangles.cpp.

References __connectivity, __octree, buildLocalizationTools(), cellNumber(), Connectivity< MeshType >::cells(), Mesh::T_iterator< MeshType, CellType >::End, and Triangle::getBarycentricCoordinates().

00102 {
00103   if (__octree == 0) { // Builds the octree "on-demand"
00104     const_cast<MeshOfTriangles*>(this)->buildLocalizationTools();
00105   }
00106 
00107   // starts the search
00108   TinyVector<2,real_t> X;
00109   X[0] = x;
00110   X[1] = y;
00111   Octree<size_t, 2>::iterator i = __octree->fuzzySearch(X);
00112 
00113   size_t guessedCellNumber = (*i).value();
00114   const_iterator t0(*this, guessedCellNumber);
00115 
00116   bool found=false;
00117 
00118   std::set<MeshOfTriangles::const_iterator> visited;
00119   std::set<MeshOfTriangles::const_iterator> toVisitSet;
00120   std::stack<MeshOfTriangles::const_iterator> toVisitStack;
00121 
00122   toVisitSet.insert(t0);
00123   toVisitStack.push(t0);
00124   const_iterator c (*this);
00125 
00126   do {
00127     // treating next cell
00128     c = toVisitStack.top();
00129 
00130     toVisitSet.erase(c);
00131     toVisitStack.pop();
00132     visited.insert(c);
00133 
00134     const Triangle& t = *c;
00135 
00136     TinyVector<3, real_t> lambda;
00137 
00138     t.getBarycentricCoordinates(X, lambda);
00139 
00140     found = true;
00141     for (size_t i=0; i<3; ++i) {
00142 #warning Should use a relevent epsilon here ...
00143       if (lambda[i] < -1E-6) {
00144         found = false;
00145         const Triangle* newT = __connectivity.cells(t)[i];
00146         if (newT != 0) {
00147           const_iterator t1(*this, this->cellNumber(*newT));
00148   
00149           if (visited.find(t1) == visited.end()) {
00150             if (toVisitSet.find(t1) == toVisitSet.end()) {
00151               toVisitSet.insert(t1);
00152               toVisitStack.push(t1);
00153             }
00154           }
00155         }
00156       }
00157     }
00158   } while (not(found) and not(toVisitStack.empty()));
00159 
00160   if (not(found)) {
00161     c = const_iterator(*this,const_iterator::End);
00162   }
00163   return  c;
00164 }

Here is the call graph for this function:

Triangle& MeshOfTriangles::cell ( const size_t &  i  )  [inline]

Computes fictitious cells of the mesh Access to the ith cell

Parameters:
i number if the cell
Returns:
the ith cell

Definition at line 188 of file MeshOfTriangles.hpp.

References __cells.

Referenced by buildLocalizationTools().

00189   {
00190     return (*__cells)[i];
00191   }

const Triangle& MeshOfTriangles::cell ( const size_t &  i  )  const [inline]

RO-Access to the ith cell

Parameters:
i number of the cell
Returns:
the ith cell

Definition at line 200 of file MeshOfTriangles.hpp.

References __cells.

00201   {
00202     return (*__cells)[i];
00203   }

void MeshOfTriangles::setNumberOfCells ( const int  n  )  [inline]

Reserves storage for n surface elements.

Note:
the content is lost!
Parameters:
n number of elements

Definition at line 210 of file MeshOfTriangles.hpp.

References __cells.

00211   {
00212     __cells = new Vector<Triangle>(n);
00213   }

const size_t& MeshOfTriangles::numberOfCells (  )  const [inline, virtual]

Returns the number of cells

Returns:
number of cells

Implements Mesh.

Definition at line 221 of file MeshOfTriangles.hpp.

Referenced by buildLocalizationTools().

00222   {
00223     return (*__cells).size();
00224   }

size_t MeshOfTriangles::cellNumber ( const Triangle t  )  const [inline]

Definition at line 226 of file MeshOfTriangles.hpp.

Referenced by find().

00227   {
00228     return (*__cells).number(t);
00229   }

bool MeshOfTriangles::hasFaces (  )  const [inline, virtual]

Returns true if the faces set has been built

Returns:
true if __edgesSet is not NULL

Implements Mesh.

Definition at line 236 of file MeshOfTriangles.hpp.

References Mesh::__edgesSet.

00237   {
00238     return __edgesSet != 0;
00239   }

const size_t& MeshOfTriangles::numberOfFaces (  )  const [inline]

Returns the number of faces

Returns:
number of faces

Definition at line 247 of file MeshOfTriangles.hpp.

References Mesh::__edgesSet.

00248   {
00249     return __edgesSet->numberOfEdges();
00250   }

const FaceType& MeshOfTriangles::face ( const size_t &  i  )  const [inline]

Read-only access to a face

Parameters:
i the face number
Returns:
the i th face

Definition at line 259 of file MeshOfTriangles.hpp.

References Mesh::__edgesSet.

00260   {
00261     return (*__edgesSet)[i];
00262   }

size_t MeshOfTriangles::faceNumber ( const FaceType f  )  const [inline]

Access to the number of the face

Parameters:
f the face
Returns:
face number

Definition at line 271 of file MeshOfTriangles.hpp.

References Mesh::__edgesSet.

00272   {
00273     return __edgesSet->number(f);
00274   }

virtual bool Mesh::isPeriodic (  )  const [inline, virtual, inherited]

Checks if a mesh has a periodic topology

Returns:
true if the mesh is periodic

Reimplemented in OctreeMesh.

Definition at line 238 of file Mesh.hpp.

References Mesh::__verticesCorrespondance, and Mesh::__verticesSet.

00239   {
00240     return __verticesSet->numberOfVertices() != __verticesCorrespondance->numberOfCorrespondances();
00241   }

virtual bool Mesh::inside ( const TinyVector< 3, real_t > &  p  )  const [pure virtual, inherited]

Checks if a point is inside the mesh

Parameters:
p the point to localize
Returns:
true if the point p is inside the mesh.

const Mesh::Type& Mesh::type (  )  const [inline, inherited]

Read-only access to the type of the mesh

Returns:
__type

Definition at line 277 of file Mesh.hpp.

References Mesh::__type.

Referenced by BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__meshWrapper(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardDirichletBorderLinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardGetDiagonalVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperator(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTimesX(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderBilinearOperatorTransposedTimesX(), BoundaryConditionCommonFEMDiscretization< MeshType, TypeOfDiscretization >::__StandardVariationalBorderLinearOperator(), ScalarDegreeOfFreedomPositionsSet::Builder::build(), FEMFunctionBuilder::build(), DGFunctionBuilder::build(), SpectralFEMPreconditioner::Internal::computes(), SpectralFEMPreconditioner::Internal::computesTransposed(), DegreeOfFreedomSetBuilder::DegreeOfFreedomSetBuilder(), RealExpressionIntegrate::execute(), FunctionExpressionConvection::execute(), BoundaryExpressionSurfaceMesh::execute(), SurfaceMeshGenerator::generateSurfacicMesh(), BoundaryConditionDiscretizationSpectralNonConform::getDiagonal(), MeshSimplifier::MeshSimplifier(), MultiGrid::MultiGrid(), ScalarFunctionIntegrate::operator()(), BoundaryConditionDiscretizationSpectralNonConform::setSecondMember(), BoundaryConditionDiscretizationSpectralNonConform::timesX(), and BoundaryConditionDiscretizationSpectralNonConform::transposedTimesX().

00278   {
00279     return __type;
00280   }

const Mesh::Family& Mesh::family (  )  const [inline, inherited]

Read-only access to the family of the mesh

Returns:
__family

Definition at line 287 of file Mesh.hpp.

References Mesh::__family.

Referenced by RealExpressionIntegrate::execute(), and BoundaryExpressionSurfaceMesh::execute().

00288   {
00289     return __family;
00290   }

const size_t& Mesh::id (  )  const [inline, inherited]

Read-only access to the id of the mesh

Returns:
__meshId

Definition at line 297 of file Mesh.hpp.

References Mesh::__meshId.

00298   {
00299     return __meshId;
00300   }

size_t Mesh::vertexNumber ( const Vertex v  )  const [inline, inherited]

Returns the number of the vertex v in the list

Parameters:
v a vertex
Returns:
the vertex v number
Note:
polymorphism is not used for clarity reason

Definition at line 311 of file Mesh.hpp.

References Mesh::__verticesSet.

Referenced by MeshOfTetrahedra::buildLocalizationTools(), OctreeMeshBuilder::buildMesh(), and MeshDomainTetrahedrizor::run().

00312   {
00313     return __verticesSet->number(v);
00314   }

bool Mesh::hasEdges (  )  const [inline, inherited]

tests if the EdgesSet has been built

Returns:
true if __edgesSet is not NULL

Definition at line 321 of file Mesh.hpp.

References Mesh::__edgesSet.

00322   {
00323     return __edgesSet != 0;
00324   }

size_t Mesh::edgeNumber ( const Edge e  )  const [inline, inherited]

Returns the number of the Edge e in the list

Parameters:
e an Edge
Returns:
the edge E number
Note:
polymorphism is not used for clarity reason

Definition at line 353 of file Mesh.hpp.

References Mesh::__edgesSet, and ASSERT.

00354   {
00355     ASSERT(__edgesSet != 0);
00356     return __edgesSet->number(e);
00357   }

const size_t& Mesh::numberOfVertices (  )  const [inline, inherited]

void Mesh::setNumberOfVertices ( const size_t &  size  )  [inline, inherited]

Changes the size of the vertices container.

Parameters:
size vertices set new size
Bug:
this function should not be allowed!

Definition at line 375 of file Mesh.hpp.

References Mesh::__verticesCorrespondance, and Mesh::__verticesSet.

Referenced by SurfaceMeshGenerator::Internals::__constructionFinalMesh().

00376   {
00377     if (__verticesSet == 0) {
00378       __verticesSet = new VerticesSet(size);
00379       __verticesCorrespondance = new VerticesCorrespondance(size);
00380     } else {
00381       __verticesSet->setNumberOfVertices(size);
00382       __verticesCorrespondance = new VerticesCorrespondance(size);
00383     }
00384   }

size_t Mesh::numberOfEdges (  )  const [inline, inherited]

Read-only access to the number of edges

Returns:
number of edges

Definition at line 398 of file Mesh.hpp.

References Mesh::__edgesSet, and ASSERT.

Referenced by SurfaceMeshGenerator::Internals::__createSurface().

00399   {
00400     ASSERT(__edgesSet != 0);
00401     return __edgesSet->numberOfEdges();
00402   }

ReferenceCounting<VerticesSet> Mesh::verticesSet (  )  [inline, inherited]

Access to the vertices set of the mesh

Returns:
__verticesSet

Definition at line 409 of file Mesh.hpp.

References Mesh::__verticesSet.

00410   {
00411     return __verticesSet;
00412   }

ConstReferenceCounting<VerticesSet> Mesh::verticesSet (  )  const [inline, inherited]

Read only access to the vertices set of the mesh

Returns:
__verticesSet

Definition at line 419 of file Mesh.hpp.

References Mesh::__verticesSet.

00420   {
00421     return __verticesSet;
00422   }

ReferenceCounting<VerticesCorrespondance> Mesh::verticesCorrespondance (  )  [inline, inherited]

Access to the vertices correspondance table

Returns:
__verticesCorrespondance

Definition at line 429 of file Mesh.hpp.

References Mesh::__verticesCorrespondance.

00430   {
00431     return __verticesCorrespondance;
00432   }

ConstReferenceCounting<VerticesCorrespondance> Mesh::verticesCorrespondance (  )  const [inline, inherited]

Read only access to the vertices correspondance table

Returns:
__verticesCorrespondance

Definition at line 439 of file Mesh.hpp.

References Mesh::__verticesCorrespondance.

00440   {
00441     return __verticesCorrespondance;
00442   }

const Vertex& Mesh::vertex ( const size_t &  i  )  const [inline, inherited]

Vertex& Mesh::vertex ( const size_t &  i  )  [inline, inherited]

Access to the ith vertex of the mesh

Parameters:
i the number of the vertex to access
Returns:
the ith vertex

Reimplemented in SpectralMesh, and Structured3DMesh.

Definition at line 463 of file Mesh.hpp.

References Mesh::__verticesSet.

00464   {
00465     return (*__verticesSet)[i];
00466   }

const size_t& Mesh::correspondance ( const size_t &  i  )  const [inline, inherited]

Read only access to the ith vertex "real" number (ie: when dealing with periodic boundaries)

Parameters:
i the number of the vertex
Returns:
the vertex "real" number

Definition at line 476 of file Mesh.hpp.

References Mesh::__verticesCorrespondance.

Referenced by MeshDomainTetrahedrizor::run().

00477   {
00478     return (*__verticesCorrespondance)[i];
00479   }

const Edge& Mesh::edge ( const size_t &  i  )  const [inline, inherited]

read-only access to the ith edge

Parameters:
i the number of the edge
Returns:
ith edge

Definition at line 489 of file Mesh.hpp.

References Mesh::__edgesSet.

Referenced by SurfaceMeshGenerator::Internals::__createSurface().

00490   {
00491     return (*__edgesSet)[i];
00492   }

Edge& Mesh::edge ( const size_t &  i  )  [inline, inherited]

access to the ith edge

Parameters:
i the number of the edge
Returns:
ith edge

Definition at line 501 of file Mesh.hpp.

References Mesh::__edgesSet.

00502   {
00503     return (*__edgesSet)[i];
00504   }


Member Data Documentation

The set of cells

Definition at line 61 of file MeshOfTriangles.hpp.

Referenced by cell(), and setNumberOfCells().

Octree refering to the cells

Definition at line 63 of file MeshOfTriangles.hpp.

Referenced by buildLocalizationTools(), and find().

TinyVector<2,real_t> MeshOfTriangles::__a [private]

bounding box lower corner

Definition at line 64 of file MeshOfTriangles.hpp.

Referenced by buildLocalizationTools().

TinyVector<2,real_t> MeshOfTriangles::__b [private]

bounding box higher corner

Definition at line 65 of file MeshOfTriangles.hpp.

Referenced by buildLocalizationTools().

Connectivity

Definition at line 67 of file MeshOfTriangles.hpp.

Referenced by connectivity(), and find().

ReferenceCounting<EdgesSet> Mesh::__edgesSet [protected, inherited]


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

Generated on Wed Nov 19 00:10:04 2008 for FreeFEM3D (aka ff3d) by  doxygen 1.5.6