sofa::component::topology::MeshTopology Class Reference

#include <MeshTopology.h>

Inheritance diagram for sofa::component::topology::MeshTopology:

Inheritance graph
[legend]
Collaboration diagram for sofa::component::topology::MeshTopology:

Collaboration graph
[legend]

Public Member Functions

 MeshTopology ()
virtual void init ()
 Initialization method called at graph modification, during bottom-up traversal.
virtual int getNbPoints () const
virtual void setNbPoints (int n)
virtual const SeqEdges & getEdges ()
 Complete sequence accessors.
virtual const SeqTriangles & getTriangles ()
virtual const SeqQuads & getQuads ()
virtual const SeqTetras & getTetras ()
virtual const SeqHexas & getHexas ()
virtual int getNbEdges ()
 Random accessors.
virtual int getNbTriangles ()
virtual int getNbQuads ()
virtual int getNbTetras ()
virtual int getNbHexas ()
virtual Edge getEdge (EdgeID i)
virtual Triangle getTriangle (TriangleID i)
virtual Quad getQuad (QuadID i)
virtual Tetra getTetra (TetraID i)
virtual Hexa getHexa (HexaID i)
virtual bool hasPos () const
virtual double getPX (int i) const
virtual double getPY (int i) const
virtual double getPZ (int i) const
virtual void clear ()
 Procedural creation methods.
void addPoint (double px, double py, double pz)
void addEdge (int a, int b)
void addTriangle (int a, int b, int c)
void addQuad (int a, int b, int c, int d)
void addTetra (int a, int b, int c, int d)
void addHexa (int a, int b, int c, int d, int e, int f, int g, int h)
int getRevision () const
 get the current revision of this mesh (use to detect changes)
virtual bool isCubeActive (int)
 return true if the given cube is active, i.e.
void draw ()
 Render internal data of this object, for debugging purposes.
neighbors queries
Returns the set of edges adjacent to a given vertex.

virtual const VertexEdges & getEdgeVertexShell (PointID i)
virtual const TriangleEdges & getEdgeTriangleShell (TriangleID i)
 Returns the set of edges adjacent to a given triangle.
virtual const QuadEdges & getEdgeQuadShell (QuadID i)
 Returns the set of edges adjacent to a given quad.
virtual const TetraEdges & getEdgeTetraShell (TetraID i)
 Returns the set of edges adjacent to a given tetrahedron.
virtual const HexaEdges & getEdgeHexaShell (HexaID i)
 Returns the set of edges adjacent to a given hexahedron.
virtual const VertexTriangles & getTriangleVertexShell (PointID i)
 Returns the set of triangle adjacent to a given vertex.
virtual const EdgeTriangles & getTriangleEdgeShell (EdgeID i)
 Returns the set of triangle adjacent to a given edge.
virtual const TetraTriangles & getTriangleTetraShell (TetraID i)
 Returns the set of triangles adjacent to a given tetrahedron.
virtual const VertexQuads & getQuadVertexShell (PointID i)
 Returns the set of quad adjacent to a given vertex.
virtual const EdgeQuads & getQuadEdgeShell (EdgeID i)
 Returns the set of quad adjacent to a given edge.
virtual const HexaQuads & getQuadHexaShell (HexaID i)
 Returns the set of quads adjacent to a given hexahedron.
virtual const VertexTetras & getTetraVertexShell (PointID i)
 Returns the set of tetrahedra adjacent to a given vertex.
virtual const EdgeTetras & getTetraEdgeShell (EdgeID i)
 Returns the set of tetrahedra adjacent to a given edge.
virtual const TriangleTetras & getTetraTriangleShell (TriangleID i)
 Returns the set of tetrahedra adjacent to a given triangle.
virtual const VertexHexas & getHexaVertexShell (PointID i)
 Returns the set of hexahedra adjacent to a given vertex.
virtual const EdgeHexas & getHexaEdgeShell (EdgeID i)
 Returns the set of hexahedra adjacent to a given edge.
virtual const QuadHexas & getHexaQuadShell (QuadID i)
 Returns the set of hexahedra adjacent to a given quad.

Protected Member Functions

void createEdgeVertexShellArray ()
 Creates the EdgeSetIndex.
void createEdgeTriangleShellArray ()
 Creates the array of edge indices for each triangle.
void createEdgeQuadShellArray ()
 Creates the array of edge indices for each quad.
void createEdgeTetraShellArray ()
 Creates the array of edge indices for each tetrahedron.
void createEdgeHexaShellArray ()
 Creates the array of edge indices for each hexahedrom.
void createTriangleVertexShellArray ()
 Creates the Triangle Vertex Shell Array.
void createTriangleEdgeShellArray ()
 Creates the Triangle Edge Shell Array.
void createTriangleTetraShellArray ()
 Creates the array of triangle indices for each tetrahedron.
void createQuadVertexShellArray ()
 Creates the Quad Vertex Shell Array.
void createQuadEdgeShellArray ()
 Creates the Quad Edge Shell Array.
void createQuadHexaShellArray ()
 Creates the array of quad indices for each hexahedrom.
void createTetraVertexShellArray ()
 Creates the array of tetrahedron indices for each vertex.
void createTetraEdgeShellArray ()
 Creates the array of tetrahedron indices for each edge.
void createTetraTriangleShellArray ()
 Creates the array of tetrahedron indices adjacent to each triangle.
void createHexaVertexShellArray ()
 Creates the array of hexahedron indices for each vertex.
void createHexaEdgeShellArray ()
 Creates the array of hexahedron indices for each edge.
void createHexaQuadShellArray ()
 Creates the array of hexahedron indices adjacent to each quad.
const vector< VertexTriangles > & getTriangleVertexShellArray ()
 Returns the Triangle Vertex Shells array.
const vector< VertexQuads > & getQuadVertexShellArray ()
 Returns the Quad Vertex Shells array.
int getEdgeIndex (PointID v1, PointID v2)
 Returns the index of the edge joining vertex v1 and vertex v2; returns -1 if no edge exists.
int getTriangleIndex (PointID v1, PointID v2, PointID v3)
 Returns the indices of a triangle given three vertex indices : returns -1 if none.
int getQuadIndex (PointID v1, PointID v2, PointID v3, PointID v4)
 Returns the index of the quad joining vertex v1, v2, v3 and v4; returns -1 if no edge exists.
int getTetrahedronIndex (PointID v1, PointID v2, PointID v3, PointID v4)
 Returns the index of the tetrahedron given four vertex indices; returns -1 if no edge exists.
int getHexahedronIndex (PointID v1, PointID v2, PointID v3, PointID v4, PointID v5, PointID v6, PointID v7, PointID v8)
 Returns the index of the hexahedron given eight vertex indices; returns -1 if no edge exists.
int getVertexIndexInTriangle (const Triangle &t, PointID vertexIndex) const
 Returns the index (either 0, 1 ,2 or 3) of the vertex whose global index is vertexIndex.
int getEdgeIndexInTriangle (const TriangleEdges &t, EdgeID edgeIndex) const
 Returns the index (either 0, 1 ,2) of the edge whose global index is edgeIndex.
int getVertexIndexInQuad (Quad &t, PointID vertexIndex) const
 Returns the index (either 0, 1 ,2 or 3) of the vertex whose global index is vertexIndex.
int getEdgeIndexInQuad (QuadEdges &t, EdgeID edgeIndex) const
 Returns the index (either 0, 1 ,2, 3) of the edge whose global index is edgeIndex.
int getVertexIndexInTetrahedron (const Tetra &t, PointID vertexIndex) const
 Returns the index (either 0, 1 ,2 or 3) of the vertex whose global index is vertexIndex.
int getEdgeIndexInTetrahedron (const TetraEdges &t, EdgeID edgeIndex) const
 Returns the index (either 0, 1 ,2 ,3, 4, 5) of the edge whose global index is edgeIndex.
int getTriangleIndexInTetrahedron (const TetraTriangles &t, TriangleID triangleIndex) const
 Returns the index (either 0, 1 ,2 ,3) of the triangle whose global index is triangleIndex.
int getVertexIndexInHexahedron (Hexa &t, PointID vertexIndex) const
 Returns the index (either 0, 1 ,2, 3, 4, 5, 6, or 7) of the vertex whose global index is vertexIndex.
int getEdgeIndexInHexahedron (const HexaEdges &t, EdgeID edgeIndex) const
 Returns the index (either 0, 1 ,2 ,3, 4, 5, 6, 7, 8, 9, 10, 11) of the edge whose global index is edgeIndex.
int getQuadIndexInHexahedron (const HexaQuads &t, QuadID quadIndex) const
 Returns the index (either 0, 1 ,2 ,3, 4, 5) of the quad whose global index is quadIndex.
Edge getLocalTetrahedronEdges (const unsigned int i) const
 Returns for each index (between 0 and 5) the two vertex indices that are adjacent to that edge.
void invalidate ()
virtual void updateEdges ()
virtual void updateTriangles ()
virtual void updateQuads ()
virtual void updateTetras ()
virtual void updateHexas ()
virtual void loadFromMeshLoader (sofa::component::MeshLoader *loader)

Protected Attributes

int nbPoints
vector< fixed_array< SReal, 3 > > seqPoints
Data< SeqEdges > seqEdges
bool validEdges
Data< SeqTriangles > seqTriangles
bool validTriangles
Data< SeqQuads > seqQuads
bool validQuads
Data< SeqTetras > seqTetras
bool validTetras
Data< SeqCubes > seqHexas
bool validHexas
vector< VertexEdges > m_edgeVertexShell
 the array that stores the set of edge-vertex shells, ie for each vertex gives the set of adjacent edges
vector< TriangleEdges > m_edgeTriangleShell
 the array that stores the set of edge-triangle shells, ie for each triangle gives the 3 adjacent edges
vector< QuadEdges > m_edgeQuadShell
 provides the 4 edges in each quad
vector< TetraEdges > m_edgeTetraShell
 provides the set of edges for each tetrahedron
vector< HexaEdges > m_edgeHexaShell
 provides the set of edges for each hexahedron
vector< VertexTriangles > m_triangleVertexShell
 for each vertex provides the set of triangles adjacent to that vertex
vector< EdgeTriangles > m_triangleEdgeShell
 for each edge provides the set of triangles adjacent to that edge
vector< TetraTriangles > m_triangleTetraShell
 provides the set of triangles adjacent to each tetrahedron
vector< VertexQuads > m_quadVertexShell
 for each vertex provides the set of quads adjacent to that vertex
vector< EdgeQuads > m_quadEdgeShell
 for each edge provides the set of quads adjacent to that edge
vector< HexaQuads > m_quadHexaShell
 provides the set of quads adjacents to each hexahedron
vector< VertexTetras > m_tetraVertexShell
 provides the set of tetrahedrons adjacents to each vertex
vector< EdgeTetras > m_tetraEdgeShell
 for each edge provides the set of tetras adjacent to that edge
vector< TriangleTetras > m_tetraTriangleShell
 for each triangle provides the set of tetrahedrons adjacent to that triangle
vector< VertexHexas > m_hexaVertexShell
 provides the set of hexahedrons for each vertex
vector< EdgeHexas > m_hexaEdgeShell
 for each edge provides the set of tetras adjacent to that edge
vector< QuadHexas > m_hexaQuadShell
 for each quad provides the set of hexahedrons adjacent to that quad
int revision
Data< bool > _draw

Detailed Description

Definition at line 53 of file MeshTopology.h.


Constructor & Destructor Documentation

sofa::component::topology::MeshTopology::MeshTopology (  ) 

Definition at line 56 of file MeshTopology.cpp.


Member Function Documentation

void sofa::component::topology::MeshTopology::addEdge ( int  a,
int  b 
) [virtual]

Reimplemented from sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 157 of file MeshTopology.cpp.

References nbPoints, and seqEdges.

void sofa::component::topology::MeshTopology::addHexa ( int  a,
int  b,
int  c,
int  d,
int  e,
int  f,
int  g,
int  h 
) [virtual]

void sofa::component::topology::MeshTopology::addPoint ( double  px,
double  py,
double  pz 
) [virtual]

void sofa::component::topology::MeshTopology::addQuad ( int  a,
int  b,
int  c,
int  d 
) [virtual]

Reimplemented from sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 174 of file MeshTopology.cpp.

References nbPoints, and seqQuads.

void sofa::component::topology::MeshTopology::addTetra ( int  a,
int  b,
int  c,
int  d 
) [virtual]

Reimplemented from sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 184 of file MeshTopology.cpp.

References nbPoints, and seqTetras.

Referenced by main().

void sofa::component::topology::MeshTopology::addTriangle ( int  a,
int  b,
int  c 
) [virtual]

Reimplemented from sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 165 of file MeshTopology.cpp.

References nbPoints, and seqTriangles.

void sofa::component::topology::MeshTopology::clear (  )  [virtual]

void sofa::component::topology::MeshTopology::createEdgeHexaShellArray (  )  [protected]

Creates the array of edge indices for each hexahedrom.

This function is only called if the EdgeHexaShell array is required. m_edgeHexaShell[i] contains the indices of the edges to the ith hexahedrom

create the m_edge array at the same time than it fills the m_hexahedronEdge array

Definition at line 496 of file MeshTopology.cpp.

References getEdgeIndex(), getNbHexas(), sofa::core::objectmodel::Data< T >::getValue(), m_edgeHexaShell, seqEdges, and seqHexas.

Referenced by createHexaEdgeShellArray(), and getEdgeHexaShell().

void sofa::component::topology::MeshTopology::createEdgeQuadShellArray (  )  [protected]

Creates the array of edge indices for each quad.

This function is only called if the EdgeQuadShell array is required. m_edgeQuadShell[i] contains the 4 indices of the 4 edges opposite to the ith Quad

create the m_edge array at the same time than it fills the m_edgeQuadShell array

Definition at line 388 of file MeshTopology.cpp.

References getEdgeIndex(), getNbQuads(), m_edgeQuadShell, seqEdges, and seqQuads.

Referenced by createQuadEdgeShellArray(), and getEdgeQuadShell().

void sofa::component::topology::MeshTopology::createEdgeTetraShellArray (  )  [protected]

Creates the array of edge indices for each tetrahedron.

This function is only called if the EdgeTetraShell array is required. m_edgeTetraShell[i] contains the indices of the edges to the ith tetrahedron

create the m_edge array at the same time than it fills the m_edgeTetraShell array

Definition at line 441 of file MeshTopology.cpp.

References getEdgeIndex(), getNbTetras(), m_edgeTetraShell, seqEdges, seqTetras, and sofa::component::topology::tetrahedronEdgeArray.

Referenced by createTetraEdgeShellArray(), and getEdgeTetraShell().

void sofa::component::topology::MeshTopology::createEdgeTriangleShellArray (  )  [protected]

Creates the array of edge indices for each triangle.

This function is only called if the EdgeTriangleShell array is required. m_edgeTriangleShell[i] contains the 3 indices of the 3 edges opposite to the ith triangle

create the m_edge array at the same time than it fills the m_edgeTriangleShell array

Definition at line 334 of file MeshTopology.cpp.

References getEdgeIndex(), getNbTriangles(), m_edgeTriangleShell, seqEdges, and seqTriangles.

Referenced by createTriangleEdgeShellArray(), and getEdgeTriangleShell().

void sofa::component::topology::MeshTopology::createEdgeVertexShellArray (  )  [protected]

Creates the EdgeSetIndex.

This function is only called if the EdgeVertexShell member is required. m_edgeVertexShell[i] contains the indices of all edges having the ith DOF as one of their ends.

Definition at line 322 of file MeshTopology.cpp.

References m_edgeVertexShell, nbPoints, and seqEdges.

Referenced by getEdgeVertexShell().

void sofa::component::topology::MeshTopology::createHexaEdgeShellArray (  )  [protected]

Creates the array of hexahedron indices for each edge.

This function is only called if the HexaEdgeShell array is required. m_hexaEdgeShell[i] contains the indices of the hexahedrons to the ith edge

Definition at line 934 of file MeshTopology.cpp.

References createEdgeHexaShellArray(), getNbEdges(), sofa::core::objectmodel::Data< T >::getValue(), m_edgeHexaShell, m_hexaEdgeShell, and seqHexas.

Referenced by getHexaEdgeShell().

void sofa::component::topology::MeshTopology::createHexaQuadShellArray (  )  [protected]

Creates the array of hexahedron indices adjacent to each quad.

This function is only called if the HexaQuadShell array is required. m_hexaQuadShell[i] contains the indices of the hexahedrons adjacent to the ith quad

Definition at line 952 of file MeshTopology.cpp.

References createQuadHexaShellArray(), getNbQuads(), sofa::core::objectmodel::Data< T >::getValue(), m_hexaQuadShell, m_quadHexaShell, and seqHexas.

Referenced by getHexaQuadShell().

void sofa::component::topology::MeshTopology::createHexaVertexShellArray (  )  [protected]

Creates the array of hexahedron indices for each vertex.

This function is only called if the HexaVertexShell array is required. m_hexaVertexShell[i] contains the indices of the hexas to the ith vertex

Definition at line 921 of file MeshTopology.cpp.

References sofa::core::objectmodel::Data< T >::getValue(), m_hexaVertexShell, nbPoints, and seqHexas.

Referenced by getHexaVertexShell().

void sofa::component::topology::MeshTopology::createQuadEdgeShellArray (  )  [protected]

Creates the Quad Edge Shell Array.

This function is only called if the QuadEdgeShell array is required. m_quadEdgeShell[i] contains the indices of all quads adjacent to the ith edge

Definition at line 657 of file MeshTopology.cpp.

References createEdgeQuadShellArray(), getNbEdges(), m_edgeQuadShell, m_quadEdgeShell, and seqQuads.

Referenced by getQuadEdgeShell().

void sofa::component::topology::MeshTopology::createQuadHexaShellArray (  )  [protected]

Creates the array of quad indices for each hexahedrom.

This function is only called if the QuadHexaShell array is required. m_quadHexaShell[i] contains the indices of the quads to the ith hexahedrom

create the m_edge array at the same time than it fills the m_hexahedronEdge array

Definition at line 672 of file MeshTopology.cpp.

References getNbHexas(), getQuadIndex(), sofa::core::objectmodel::Data< T >::getValue(), m_quadHexaShell, seqHexas, and seqQuads.

Referenced by createHexaQuadShellArray(), and getQuadHexaShell().

void sofa::component::topology::MeshTopology::createQuadVertexShellArray (  )  [protected]

Creates the Quad Vertex Shell Array.

This function is only called if the QuadVertexShell array is required. m_quadVertexShell[i] contains the indices of all quads adjacent to the ith vertex

Definition at line 644 of file MeshTopology.cpp.

References m_quadVertexShell, nbPoints, and seqQuads.

Referenced by getQuadVertexShell(), and getQuadVertexShellArray().

void sofa::component::topology::MeshTopology::createTetraEdgeShellArray (  )  [protected]

Creates the array of tetrahedron indices for each edge.

This function is only called if the TetraEdgeShell array is required. m_tetraEdgeShell[i] contains the indices of the tetrahedrons to the ith edge

Definition at line 886 of file MeshTopology.cpp.

References createEdgeTetraShellArray(), getNbEdges(), m_edgeTetraShell, m_tetraEdgeShell, and seqTetras.

Referenced by getTetraEdgeShell().

void sofa::component::topology::MeshTopology::createTetraTriangleShellArray (  )  [protected]

Creates the array of tetrahedron indices adjacent to each triangle.

This function is only called if the TetraTriangleShell array is required. m_tetraTriangleShell[i] contains the indices of the tetrahedrons adjacent to the ith triangle

Definition at line 903 of file MeshTopology.cpp.

References createTriangleTetraShellArray(), getNbTriangles(), m_tetraTriangleShell, m_triangleTetraShell, and seqTetras.

Referenced by getTetraTriangleShell().

void sofa::component::topology::MeshTopology::createTetraVertexShellArray (  )  [protected]

Creates the array of tetrahedron indices for each vertex.

This function is only called if the TetraVertexShell array is required. m_tetraVertexShell[i] contains the indices of the tetras to the ith vertex

Definition at line 873 of file MeshTopology.cpp.

References m_tetraVertexShell, nbPoints, and seqTetras.

Referenced by getTetraVertexShell().

void sofa::component::topology::MeshTopology::createTriangleEdgeShellArray (  )  [protected]

Creates the Triangle Edge Shell Array.

This function is only called if the TriangleEdgeShell array is required. m_triangleEdgeShell[i] contains the indices of all triangles adjacent to the ith edge

Definition at line 564 of file MeshTopology.cpp.

References createEdgeTriangleShellArray(), getNbEdges(), m_edgeTriangleShell, m_triangleEdgeShell, seqEdges, and seqTriangles.

Referenced by getTriangleEdgeShell().

void sofa::component::topology::MeshTopology::createTriangleTetraShellArray (  )  [protected]

Creates the array of triangle indices for each tetrahedron.

This function is only called if the TriangleTetraShell array is required. m_triangleTetraShell[i] contains the indices of the triangles to the ith tetrahedron

create the m_edge array at the same time than it fills the m_triangleTetraShell array

Definition at line 585 of file MeshTopology.cpp.

References getNbTetras(), getTriangleIndex(), m_triangleTetraShell, seqTetras, and seqTriangles.

Referenced by createTetraTriangleShellArray(), and getTriangleTetraShell().

void sofa::component::topology::MeshTopology::createTriangleVertexShellArray (  )  [protected]

Creates the Triangle Vertex Shell Array.

This function is only called if the TriangleVertexShell array is required. m_triangleVertexShell[i] contains the indices of all triangles adjacent to the ith vertex

Definition at line 551 of file MeshTopology.cpp.

References m_triangleVertexShell, nbPoints, and seqTriangles.

Referenced by getTriangleVertexShell(), and getTriangleVertexShellArray().

void sofa::component::topology::MeshTopology::draw (  )  [virtual]

Render internal data of this object, for debugging purposes.

Reimplemented from sofa::core::objectmodel::BaseObject.

Reimplemented in sofa::component::mapping::SPHFluidSurfaceMapping< In, Out >.

Definition at line 1469 of file MeshTopology.cpp.

References _draw, getHexa(), getNbHexas(), getPX(), getPY(), getPZ(), and sofa::core::objectmodel::Data< T >::getValue().

virtual Edge sofa::component::topology::MeshTopology::getEdge ( EdgeID  i  )  [virtual]

const MeshTopology::HexaEdges & sofa::component::topology::MeshTopology::getEdgeHexaShell ( HexaID  i  )  [virtual]

Returns the set of edges adjacent to a given hexahedron.

Definition at line 998 of file MeshTopology.cpp.

References createEdgeHexaShellArray(), and m_edgeHexaShell.

int sofa::component::topology::MeshTopology::getEdgeIndex ( PointID  v1,
PointID  v2 
) [protected]

Returns the index of the edge joining vertex v1 and vertex v2; returns -1 if no edge exists.

Definition at line 1103 of file MeshTopology.cpp.

References getEdges(), and getEdgeVertexShell().

Referenced by createEdgeHexaShellArray(), createEdgeQuadShellArray(), createEdgeTetraShellArray(), and createEdgeTriangleShellArray().

int sofa::component::topology::MeshTopology::getEdgeIndexInHexahedron ( const HexaEdges &  t,
EdgeID  edgeIndex 
) const [protected]

Returns the index (either 0, 1 ,2 ,3, 4, 5, 6, 7, 8, 9, 10, 11) of the edge whose global index is edgeIndex.

Returns -1 if none

Definition at line 1383 of file MeshTopology.cpp.

int sofa::component::topology::MeshTopology::getEdgeIndexInQuad ( QuadEdges &  t,
EdgeID  edgeIndex 
) const [protected]

Returns the index (either 0, 1 ,2, 3) of the edge whose global index is edgeIndex.

Returns -1 if none

Definition at line 1301 of file MeshTopology.cpp.

int sofa::component::topology::MeshTopology::getEdgeIndexInTetrahedron ( const TetraEdges &  t,
EdgeID  edgeIndex 
) const [protected]

Returns the index (either 0, 1 ,2 ,3, 4, 5) of the edge whose global index is edgeIndex.

Returns -1 if none

Definition at line 1329 of file MeshTopology.cpp.

int sofa::component::topology::MeshTopology::getEdgeIndexInTriangle ( const TriangleEdges &  t,
EdgeID  edgeIndex 
) const [protected]

Returns the index (either 0, 1 ,2) of the edge whose global index is edgeIndex.

Returns -1 if none

Definition at line 1275 of file MeshTopology.cpp.

const MeshTopology::QuadEdges & sofa::component::topology::MeshTopology::getEdgeQuadShell ( QuadID  i  )  [virtual]

Returns the set of edges adjacent to a given quad.

Definition at line 984 of file MeshTopology.cpp.

References createEdgeQuadShellArray(), and m_edgeQuadShell.

const MeshTopology::SeqEdges & sofa::component::topology::MeshTopology::getEdges (  )  [virtual]

Complete sequence accessors.

Implements sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 212 of file MeshTopology.cpp.

References seqEdges, updateEdges(), and validEdges.

Referenced by getEdgeIndex(), and getNbEdges().

const MeshTopology::TetraEdges & sofa::component::topology::MeshTopology::getEdgeTetraShell ( TetraID  i  )  [virtual]

Returns the set of edges adjacent to a given tetrahedron.

Definition at line 991 of file MeshTopology.cpp.

References createEdgeTetraShellArray(), and m_edgeTetraShell.

const MeshTopology::TriangleEdges & sofa::component::topology::MeshTopology::getEdgeTriangleShell ( TriangleID  i  )  [virtual]

Returns the set of edges adjacent to a given triangle.

Definition at line 977 of file MeshTopology.cpp.

References createEdgeTriangleShellArray(), and m_edgeTriangleShell.

const MeshTopology::VertexEdges & sofa::component::topology::MeshTopology::getEdgeVertexShell ( PointID  i  )  [virtual]

Definition at line 970 of file MeshTopology.cpp.

References createEdgeVertexShellArray(), and m_edgeVertexShell.

Referenced by getEdgeIndex().

virtual Hexa sofa::component::topology::MeshTopology::getHexa ( HexaID  i  )  [virtual]

const MeshTopology::EdgeHexas & sofa::component::topology::MeshTopology::getHexaEdgeShell ( EdgeID  i  )  [virtual]

Returns the set of hexahedra adjacent to a given edge.

Definition at line 1075 of file MeshTopology.cpp.

References createHexaEdgeShellArray(), and m_hexaEdgeShell.

int sofa::component::topology::MeshTopology::getHexahedronIndex ( PointID  v1,
PointID  v2,
PointID  v3,
PointID  v4,
PointID  v5,
PointID  v6,
PointID  v7,
PointID  v8 
) [protected]

Returns the index of the hexahedron given eight vertex indices; returns -1 if no edge exists.

Definition at line 1208 of file MeshTopology.cpp.

References getTetraVertexShell().

const MeshTopology::QuadHexas & sofa::component::topology::MeshTopology::getHexaQuadShell ( QuadID  i  )  [virtual]

Returns the set of hexahedra adjacent to a given quad.

Definition at line 1082 of file MeshTopology.cpp.

References createHexaQuadShellArray(), and m_hexaQuadShell.

const MeshTopology::SeqHexas & sofa::component::topology::MeshTopology::getHexas (  )  [virtual]

const MeshTopology::VertexHexas & sofa::component::topology::MeshTopology::getHexaVertexShell ( PointID  i  )  [virtual]

Returns the set of hexahedra adjacent to a given vertex.

Definition at line 1068 of file MeshTopology.cpp.

References createHexaVertexShellArray(), and m_hexaVertexShell.

MeshTopology::Edge sofa::component::topology::MeshTopology::getLocalTetrahedronEdges ( const unsigned int  i  )  const [protected, virtual]

Returns for each index (between 0 and 5) the two vertex indices that are adjacent to that edge.

Reimplemented from sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 1431 of file MeshTopology.cpp.

References sofa::component::topology::tetrahedronEdgeArray.

int sofa::component::topology::MeshTopology::getNbEdges (  )  [virtual]

int sofa::component::topology::MeshTopology::getNbHexas (  )  [virtual]

int sofa::component::topology::MeshTopology::getNbPoints (  )  const [virtual]

Reimplemented from sofa::core::componentmodel::topology::Topology.

Reimplemented in sofa::component::topology::SparseGridTopology.

Definition at line 262 of file MeshTopology.cpp.

References nbPoints.

int sofa::component::topology::MeshTopology::getNbQuads (  )  [virtual]

int sofa::component::topology::MeshTopology::getNbTetras (  )  [virtual]

int sofa::component::topology::MeshTopology::getNbTriangles (  )  [virtual]

double sofa::component::topology::MeshTopology::getPX ( int  i  )  const [virtual]

double sofa::component::topology::MeshTopology::getPY ( int  i  )  const [virtual]

double sofa::component::topology::MeshTopology::getPZ ( int  i  )  const [virtual]

virtual Quad sofa::component::topology::MeshTopology::getQuad ( QuadID  i  )  [virtual]

const vector< MeshTopology::QuadID > & sofa::component::topology::MeshTopology::getQuadEdgeShell ( EdgeID  i  )  [virtual]

Returns the set of quad adjacent to a given edge.

Definition at line 1033 of file MeshTopology.cpp.

References createQuadEdgeShellArray(), and m_quadEdgeShell.

const MeshTopology::HexaQuads & sofa::component::topology::MeshTopology::getQuadHexaShell ( HexaID  i  )  [virtual]

Returns the set of quads adjacent to a given hexahedron.

Definition at line 1040 of file MeshTopology.cpp.

References createQuadHexaShellArray(), and m_quadHexaShell.

int sofa::component::topology::MeshTopology::getQuadIndex ( PointID  v1,
PointID  v2,
PointID  v3,
PointID  v4 
) [protected]

Returns the index of the quad joining vertex v1, v2, v3 and v4; returns -1 if no edge exists.

Definition at line 1145 of file MeshTopology.cpp.

References getQuadVertexShell().

Referenced by createQuadHexaShellArray().

int sofa::component::topology::MeshTopology::getQuadIndexInHexahedron ( const HexaQuads &  t,
QuadID  quadIndex 
) const [protected]

Returns the index (either 0, 1 ,2 ,3, 4, 5) of the quad whose global index is quadIndex.

Returns -1 if none

Definition at line 1413 of file MeshTopology.cpp.

const MeshTopology::SeqQuads & sofa::component::topology::MeshTopology::getQuads (  )  [virtual]

Implements sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 232 of file MeshTopology.cpp.

References seqQuads, updateQuads(), and validQuads.

Referenced by getNbQuads().

const MeshTopology::VertexQuads & sofa::component::topology::MeshTopology::getQuadVertexShell ( PointID  i  )  [virtual]

Returns the set of quad adjacent to a given vertex.

Definition at line 1026 of file MeshTopology.cpp.

References createQuadVertexShellArray(), and m_quadVertexShell.

Referenced by getQuadIndex().

const vector< MeshTopology::VertexQuads > & sofa::component::topology::MeshTopology::getQuadVertexShellArray (  )  [protected]

Returns the Quad Vertex Shells array.

Definition at line 1096 of file MeshTopology.cpp.

References createQuadVertexShellArray(), and m_quadVertexShell.

int sofa::component::topology::MeshTopology::getRevision (  )  const [inline, virtual]

get the current revision of this mesh (use to detect changes)

Reimplemented from sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 142 of file MeshTopology.h.

References revision.

virtual Tetra sofa::component::topology::MeshTopology::getTetra ( TetraID  i  )  [virtual]

const MeshTopology::EdgeTetras & sofa::component::topology::MeshTopology::getTetraEdgeShell ( EdgeID  i  )  [virtual]

Returns the set of tetrahedra adjacent to a given edge.

Definition at line 1054 of file MeshTopology.cpp.

References createTetraEdgeShellArray(), and m_tetraEdgeShell.

int sofa::component::topology::MeshTopology::getTetrahedronIndex ( PointID  v1,
PointID  v2,
PointID  v3,
PointID  v4 
) [protected]

Returns the index of the tetrahedron given four vertex indices; returns -1 if no edge exists.

Definition at line 1177 of file MeshTopology.cpp.

References getTetraVertexShell().

const MeshTopology::SeqTetras & sofa::component::topology::MeshTopology::getTetras (  )  [virtual]

Implements sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 242 of file MeshTopology.cpp.

References seqTetras, updateTetras(), and validTetras.

Referenced by getNbTetras().

const MeshTopology::TriangleTetras & sofa::component::topology::MeshTopology::getTetraTriangleShell ( TriangleID  i  )  [virtual]

Returns the set of tetrahedra adjacent to a given triangle.

Definition at line 1061 of file MeshTopology.cpp.

References createTetraTriangleShellArray(), and m_tetraTriangleShell.

const MeshTopology::VertexTetras & sofa::component::topology::MeshTopology::getTetraVertexShell ( PointID  i  )  [virtual]

Returns the set of tetrahedra adjacent to a given vertex.

Definition at line 1047 of file MeshTopology.cpp.

References createTetraVertexShellArray(), and m_tetraVertexShell.

Referenced by getHexahedronIndex(), and getTetrahedronIndex().

virtual Triangle sofa::component::topology::MeshTopology::getTriangle ( TriangleID  i  )  [virtual]

const MeshTopology::EdgeTriangles & sofa::component::topology::MeshTopology::getTriangleEdgeShell ( EdgeID  i  )  [virtual]

Returns the set of triangle adjacent to a given edge.

Definition at line 1012 of file MeshTopology.cpp.

References createTriangleEdgeShellArray(), and m_triangleEdgeShell.

int sofa::component::topology::MeshTopology::getTriangleIndex ( PointID  v1,
PointID  v2,
PointID  v3 
) [protected]

Returns the indices of a triangle given three vertex indices : returns -1 if none.

Definition at line 1118 of file MeshTopology.cpp.

References getTriangleVertexShell().

Referenced by createTriangleTetraShellArray().

int sofa::component::topology::MeshTopology::getTriangleIndexInTetrahedron ( const TetraTriangles &  t,
TriangleID  triangleIndex 
) const [protected]

Returns the index (either 0, 1 ,2 ,3) of the triangle whose global index is triangleIndex.

Returns -1 if none

Definition at line 1347 of file MeshTopology.cpp.

const MeshTopology::SeqTriangles & sofa::component::topology::MeshTopology::getTriangles (  )  [virtual]

const MeshTopology::TetraTriangles & sofa::component::topology::MeshTopology::getTriangleTetraShell ( TetraID  i  )  [virtual]

Returns the set of triangles adjacent to a given tetrahedron.

Definition at line 1019 of file MeshTopology.cpp.

References createTriangleTetraShellArray(), and m_triangleTetraShell.

const MeshTopology::VertexTriangles & sofa::component::topology::MeshTopology::getTriangleVertexShell ( PointID  i  )  [virtual]

Returns the set of triangle adjacent to a given vertex.

Definition at line 1005 of file MeshTopology.cpp.

References createTriangleVertexShellArray(), and m_triangleVertexShell.

Referenced by getTriangleIndex().

const vector< MeshTopology::VertexTriangles > & sofa::component::topology::MeshTopology::getTriangleVertexShellArray (  )  [protected]

Returns the Triangle Vertex Shells array.

Definition at line 1089 of file MeshTopology.cpp.

References createTriangleVertexShellArray(), and m_triangleVertexShell.

int sofa::component::topology::MeshTopology::getVertexIndexInHexahedron ( Hexa &  t,
PointID  vertexIndex 
) const [protected]

Returns the index (either 0, 1 ,2, 3, 4, 5, 6, or 7) of the vertex whose global index is vertexIndex.

Returns -1 if none

Definition at line 1361 of file MeshTopology.cpp.

int sofa::component::topology::MeshTopology::getVertexIndexInQuad ( Quad &  t,
PointID  vertexIndex 
) const [protected]

Returns the index (either 0, 1 ,2 or 3) of the vertex whose global index is vertexIndex.

Returns -1 if none

Definition at line 1287 of file MeshTopology.cpp.

int sofa::component::topology::MeshTopology::getVertexIndexInTetrahedron ( const Tetra &  t,
PointID  vertexIndex 
) const [protected]

Returns the index (either 0, 1 ,2 or 3) of the vertex whose global index is vertexIndex.

Returns -1 if none

Definition at line 1315 of file MeshTopology.cpp.

int sofa::component::topology::MeshTopology::getVertexIndexInTriangle ( const Triangle &  t,
PointID  vertexIndex 
) const [protected]

Returns the index (either 0, 1 ,2 or 3) of the vertex whose global index is vertexIndex.

Returns -1 if none

Definition at line 1263 of file MeshTopology.cpp.

bool sofa::component::topology::MeshTopology::hasPos (  )  const [virtual]

void sofa::component::topology::MeshTopology::init ( void   )  [virtual]

void sofa::component::topology::MeshTopology::invalidate (  )  [protected]

virtual bool sofa::component::topology::MeshTopology::isCubeActive ( int   )  [inline, virtual]

return true if the given cube is active, i.e.

it contains or is surrounded by mapped points.

Deprecated:

Reimplemented from sofa::core::componentmodel::topology::BaseMeshTopology.

Definition at line 146 of file MeshTopology.h.

void sofa::component::topology::MeshTopology::loadFromMeshLoader ( sofa::component::MeshLoader *  loader  )  [protected, virtual]

void sofa::component::topology::MeshTopology::setNbPoints ( int  n  )  [virtual]

Reimplemented from sofa::core::componentmodel::topology::Topology.

Definition at line 267 of file MeshTopology.cpp.

References nbPoints.

virtual void sofa::component::topology::MeshTopology::updateEdges (  )  [inline, protected, virtual]

virtual void sofa::component::topology::MeshTopology::updateHexas (  )  [inline, protected, virtual]

virtual void sofa::component::topology::MeshTopology::updateQuads (  )  [inline, protected, virtual]

virtual void sofa::component::topology::MeshTopology::updateTetras (  )  [inline, protected, virtual]

Definition at line 450 of file MeshTopology.h.

Referenced by getTetras().

virtual void sofa::component::topology::MeshTopology::updateTriangles (  )  [inline, protected, virtual]

Definition at line 448 of file MeshTopology.h.

Referenced by getTriangles().


Field Documentation

Definition at line 443 of file MeshTopology.h.

Referenced by draw().

provides the set of edges for each hexahedron

Definition at line 191 of file MeshTopology.h.

Referenced by createEdgeHexaShellArray(), createHexaEdgeShellArray(), and getEdgeHexaShell().

provides the 4 edges in each quad

Definition at line 185 of file MeshTopology.h.

Referenced by createEdgeQuadShellArray(), createQuadEdgeShellArray(), and getEdgeQuadShell().

provides the set of edges for each tetrahedron

Definition at line 188 of file MeshTopology.h.

Referenced by createEdgeTetraShellArray(), createTetraEdgeShellArray(), and getEdgeTetraShell().

the array that stores the set of edge-triangle shells, ie for each triangle gives the 3 adjacent edges

Definition at line 182 of file MeshTopology.h.

Referenced by createEdgeTriangleShellArray(), createTriangleEdgeShellArray(), and getEdgeTriangleShell().

the array that stores the set of edge-vertex shells, ie for each vertex gives the set of adjacent edges

Definition at line 179 of file MeshTopology.h.

Referenced by createEdgeVertexShellArray(), and getEdgeVertexShell().

for each edge provides the set of tetras adjacent to that edge

Definition at line 224 of file MeshTopology.h.

Referenced by createHexaEdgeShellArray(), and getHexaEdgeShell().

for each quad provides the set of hexahedrons adjacent to that quad

Definition at line 227 of file MeshTopology.h.

Referenced by createHexaQuadShellArray(), and getHexaQuadShell().

provides the set of hexahedrons for each vertex

Definition at line 221 of file MeshTopology.h.

Referenced by createHexaVertexShellArray(), and getHexaVertexShell().

for each edge provides the set of quads adjacent to that edge

Definition at line 206 of file MeshTopology.h.

Referenced by createQuadEdgeShellArray(), and getQuadEdgeShell().

provides the set of quads adjacents to each hexahedron

Definition at line 209 of file MeshTopology.h.

Referenced by createHexaQuadShellArray(), createQuadHexaShellArray(), and getQuadHexaShell().

for each vertex provides the set of quads adjacent to that vertex

Definition at line 203 of file MeshTopology.h.

Referenced by createQuadVertexShellArray(), getQuadVertexShell(), and getQuadVertexShellArray().

for each edge provides the set of tetras adjacent to that edge

Definition at line 215 of file MeshTopology.h.

Referenced by createTetraEdgeShellArray(), and getTetraEdgeShell().

for each triangle provides the set of tetrahedrons adjacent to that triangle

Definition at line 218 of file MeshTopology.h.

Referenced by createTetraTriangleShellArray(), and getTetraTriangleShell().

provides the set of tetrahedrons adjacents to each vertex

Definition at line 212 of file MeshTopology.h.

Referenced by createTetraVertexShellArray(), and getTetraVertexShell().

for each edge provides the set of triangles adjacent to that edge

Definition at line 197 of file MeshTopology.h.

Referenced by createTriangleEdgeShellArray(), and getTriangleEdgeShell().

provides the set of triangles adjacent to each tetrahedron

Definition at line 200 of file MeshTopology.h.

Referenced by createTetraTriangleShellArray(), createTriangleTetraShellArray(), and getTriangleTetraShell().

for each vertex provides the set of triangles adjacent to that vertex

Definition at line 194 of file MeshTopology.h.

Referenced by createTriangleVertexShellArray(), getTriangleVertexShell(), and getTriangleVertexShellArray().

Definition at line 441 of file MeshTopology.h.

Referenced by getRevision(), and invalidate().

Definition at line 155 of file MeshTopology.h.

Referenced by getEdges(), and invalidate().

Definition at line 175 of file MeshTopology.h.

Referenced by getHexas(), and invalidate().

Definition at line 163 of file MeshTopology.h.

Referenced by getQuads(), and invalidate().

Definition at line 167 of file MeshTopology.h.

Referenced by getTetras(), and invalidate().

Definition at line 159 of file MeshTopology.h.

Referenced by getTriangles(), and invalidate().


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

Generated on Sun Nov 23 04:21:30 2008 for Sofa by  doxygen 1.5.7.1