sofa::core::componentmodel::topology::BaseMeshTopology Class Reference

#include <BaseMeshTopology.h>

Inheritance diagram for sofa::core::componentmodel::topology::BaseMeshTopology:

Inheritance graph
[legend]
Collaboration diagram for sofa::core::componentmodel::topology::BaseMeshTopology:

Collaboration graph
[legend]

Public Types

enum  { InvalidID = (unsigned)-1 }
typedef unsigned int index_type
typedef index_type PointID
typedef index_type EdgeID
typedef index_type TriangleID
typedef index_type QuadID
typedef index_type TetraID
typedef index_type HexaID
typedef fixed_array< PointID, 2 > Edge
typedef fixed_array< PointID, 3 > Triangle
typedef fixed_array< PointID, 4 > Quad
typedef fixed_array< PointID, 4 > Tetra
typedef fixed_array< PointID, 8 > Hexa
typedef vector< Edge > SeqEdges
typedef vector< Triangle > SeqTriangles
typedef vector< Quad > SeqQuads
typedef vector< Tetra > SeqTetras
typedef vector< Hexa > SeqHexas
Deprecated types, for backward-compatibility
typedef EdgeID LineID
typedef Edge Line
typedef SeqEdges SeqLines
typedef fixed_array< EdgeID, 3 > TriangleEdges
 fixed-size neighbors arrays
typedef fixed_array< QuadID, 4 > QuadEdges
typedef fixed_array
< TriangleID, 4 > 
TetraTriangles
typedef fixed_array< EdgeID, 6 > TetraEdges
typedef fixed_array< QuadID, 6 > HexaQuads
typedef fixed_array< EdgeID, 12 > HexaEdges
typedef vector< EdgeID > VertexEdges
 dynamic-size neighbors arrays
typedef vector< TriangleID > VertexTriangles
typedef vector< QuadID > VertexQuads
typedef vector< TetraID > VertexTetras
typedef vector< HexaID > VertexHexas
typedef vector< TriangleID > EdgeTriangles
typedef vector< QuadID > EdgeQuads
typedef vector< TetraID > EdgeTetras
typedef vector< HexaID > EdgeHexas
typedef vector< TetraID > TriangleTetras
typedef vector< HexaID > QuadHexas

Public Member Functions

 BaseMeshTopology ()
void parse (core::objectmodel::BaseObjectDescription *arg)
 Parse the given description to assign values to this object's fields and potentially other parameters.
virtual bool load (const char *filename)
 Load the topology from a file.
virtual std::string getFilename () const
virtual int getEdgeIndex (PointID v1, PointID v2)
 Returns the index of the edge joining vertex v1 and vertex v2; returns -1 if no edge exists.
virtual int getTriangleIndex (PointID v1, PointID v2, PointID v3)
 Returns the index of the triangle given three vertex indices; returns -1 if no triangle exists.
virtual int getQuadIndex (PointID v1, PointID v2, PointID v3, PointID v4)
 Returns the index of the quad given four vertex indices; returns -1 if no quad exists.
virtual int getTetrahedronIndex (PointID v1, PointID v2, PointID v3, PointID v4)
 Returns the index of the tetrahedron given four vertex indices; returns -1 if no tetrahedron exists.
virtual 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 hexahedron exists.
virtual 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.
virtual int getEdgeIndexInTriangle (const TriangleEdges &t, EdgeID edgeIndex) const
 returns the index (either 0, 1 ,2) of the edge whose global index is edgeIndex.
virtual int getVertexIndexInQuad (Quad &t, PointID vertexIndex) const
 returns the index (either 0, 1 ,2 or 3) of the vertex whose global index is vertexIndex.
virtual int getEdgeIndexInQuad (QuadEdges &t, EdgeID edgeIndex) const
 returns the index (either 0, 1 ,2, 3) of the edge whose global index is edgeIndex.
virtual 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.
virtual 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.
virtual int getTriangleIndexInTetrahedron (const TetraTriangles &t, TriangleID triangleIndex) const
 returns the index (either 0, 1 ,2 ,3) of the triangle whose global index is triangleIndex.
virtual 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.
virtual 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.
virtual 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.
virtual 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
virtual 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.
virtual const SeqEdges & getEdges ()=0
 Complete sequence accessors.
virtual const SeqTriangles & getTriangles ()=0
virtual const SeqQuads & getQuads ()=0
virtual const SeqTetras & getTetras ()=0
virtual const SeqHexas & getHexas ()=0
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)
neighbors queries
Returns the set of edges adjacent to a given vertex.

virtual const VertexEdges & getEdgeVertexShell (PointID i)
 Returns the set of edges adjacent to a given vertex.
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 triangles adjacent to a given vertex.
virtual const EdgeTriangles & getTriangleEdgeShell (EdgeID i)
 Returns the set of triangles 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 quads adjacent to a given vertex.
virtual const EdgeQuads & getQuadEdgeShell (EdgeID i)
 Returns the set of quads 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.
Deprecated names, for backward-compatibility
const SeqLines & getLines ()
int getNbLines ()
Line getLine (LineID i)
Initial points accessors (only available if the topology was loaded from a file containing this information).
Note that this data is only used for initialization and is not maintained afterwards (i.e.

topological changes may not be applied)

virtual bool hasPos () const
virtual double getPX (int) const
virtual double getPY (int) const
virtual double getPZ (int) const
virtual void clear ()
 Procedural creation methods.
virtual void addPoint (double px, double py, double pz)
virtual void addEdge (int a, int b)
void addLine (int a, int b)
virtual void addTriangle (int a, int b, int c)
virtual void addQuad (int a, int b, int c, int d)
virtual void addTetra (int a, int b, int c, int d)
virtual void addHexa (int a, int b, int c, int d, int e, int f, int g, int h)
virtual std::list< const
TopologyChange * >
::const_iterator 
firstChange () const
 Management of topological changes and state changes.
virtual std::list< const
TopologyChange * >
::const_iterator 
lastChange () const
 Provides an iterator on the last element in the list of TopologyChange objects.
virtual std::list< const
TopologyChange * >
::const_iterator 
firstStateChange () const
 Provides an iterator on the first element in the list of StateChange objects.
virtual std::list< const
TopologyChange * >
::const_iterator 
lastStateChange () const
 Provides an iterator on the last element in the list of StateChange objects.

Protected Attributes

Data< std::string > d_filename

Detailed Description

Definition at line 56 of file BaseMeshTopology.h.


Member Typedef Documentation

Definition at line 69 of file BaseMeshTopology.h.

Definition at line 113 of file BaseMeshTopology.h.

Definition at line 63 of file BaseMeshTopology.h.

Definition at line 111 of file BaseMeshTopology.h.

Definition at line 112 of file BaseMeshTopology.h.

Definition at line 110 of file BaseMeshTopology.h.

Definition at line 73 of file BaseMeshTopology.h.

Definition at line 100 of file BaseMeshTopology.h.

Definition at line 67 of file BaseMeshTopology.h.

Definition at line 99 of file BaseMeshTopology.h.

Definition at line 60 of file BaseMeshTopology.h.

Definition at line 84 of file BaseMeshTopology.h.

Definition at line 83 of file BaseMeshTopology.h.

Definition at line 62 of file BaseMeshTopology.h.

Definition at line 71 of file BaseMeshTopology.h.

Definition at line 96 of file BaseMeshTopology.h.

Definition at line 115 of file BaseMeshTopology.h.

Definition at line 65 of file BaseMeshTopology.h.

Definition at line 75 of file BaseMeshTopology.h.

Definition at line 79 of file BaseMeshTopology.h.

Definition at line 85 of file BaseMeshTopology.h.

Definition at line 77 of file BaseMeshTopology.h.

Definition at line 78 of file BaseMeshTopology.h.

Definition at line 76 of file BaseMeshTopology.h.

Definition at line 72 of file BaseMeshTopology.h.

Definition at line 98 of file BaseMeshTopology.h.

Definition at line 66 of file BaseMeshTopology.h.

Definition at line 97 of file BaseMeshTopology.h.

Definition at line 70 of file BaseMeshTopology.h.

fixed-size neighbors arrays

Definition at line 95 of file BaseMeshTopology.h.

Definition at line 64 of file BaseMeshTopology.h.

Definition at line 114 of file BaseMeshTopology.h.

dynamic-size neighbors arrays

Definition at line 105 of file BaseMeshTopology.h.

Definition at line 109 of file BaseMeshTopology.h.

Definition at line 107 of file BaseMeshTopology.h.

Definition at line 108 of file BaseMeshTopology.h.

Definition at line 106 of file BaseMeshTopology.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
InvalidID 

Definition at line 61 of file BaseMeshTopology.h.


Constructor & Destructor Documentation

sofa::core::componentmodel::topology::BaseMeshTopology::BaseMeshTopology (  ) 

Definition at line 47 of file BaseMeshTopology.cpp.


Member Function Documentation

void sofa::core::componentmodel::topology::BaseMeshTopology::addEdge ( int  a,
int  b 
) [virtual]

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

void sofa::core::componentmodel::topology::BaseMeshTopology::addLine ( int  a,
int  b 
) [inline]

Definition at line 260 of file BaseMeshTopology.h.

References addEdge().

Referenced by SofaFlowVR::FlowVRInputMesh::flowvrBeginIteration().

void sofa::core::componentmodel::topology::BaseMeshTopology::addPoint ( double  px,
double  py,
double  pz 
) [virtual]

void sofa::core::componentmodel::topology::BaseMeshTopology::addQuad ( int  a,
int  b,
int  c,
int  d 
) [virtual]

void sofa::core::componentmodel::topology::BaseMeshTopology::addTetra ( int  a,
int  b,
int  c,
int  d 
) [virtual]

void sofa::core::componentmodel::topology::BaseMeshTopology::addTriangle ( int  a,
int  b,
int  c 
) [virtual]

void sofa::core::componentmodel::topology::BaseMeshTopology::clear (  )  [virtual]

std::list< const TopologyChange * >::const_iterator sofa::core::componentmodel::topology::BaseMeshTopology::firstChange (  )  const [virtual]

Management of topological changes and state changes.

Provides an iterator on the first element in the list of TopologyChange objects.

Reimplemented in sofa::core::componentmodel::topology::TopologyContainer.

Definition at line 292 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::forcefield::VectorSpringForceField< DataTypes >::handleEvent(), sofa::component::visualmodel::VisualModelImpl::handleTopologyChange(), sofa::component::ParticleSource< TDataTypes >::handleTopologyChange(), sofa::component::ParticleSink< TDataTypes >::handleTopologyChange(), sofa::component::mass::DiagonalMass< DataTypes, MassType >::handleTopologyChange(), sofa::component::mapping::BarycentricMapping< BasicMapping >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperHexahedronSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperTetrahedronSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperEdgeSetTopology< In, Out >::handleTopologyChange(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TrianglePressureForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::QuadularBendingSprings< DataTypes >::handleTopologyChange(), sofa::component::forcefield::HexahedralFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::EdgePressureForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::BeamFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::constraint::LinearMovementConstraint< DataTypes >::handleTopologyChange(), sofa::component::constraint::FixedPlaneConstraint< DataTypes >::handleTopologyChange(), sofa::component::constraint::FixedConstraint< DataTypes >::handleTopologyChange(), sofa::component::collision::TriangleModel::handleTopologyChange(), sofa::component::collision::LineModel::handleTopologyChange(), sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping(), sofa::component::topology::Tetra2TriangleTopologicalMapping::updateTopologicalMapping(), sofa::component::topology::Quad2TriangleTopologicalMapping::updateTopologicalMapping(), sofa::component::topology::Hexa2QuadTopologicalMapping::updateTopologicalMapping(), and sofa::component::topology::Edge2QuadTopologicalMapping::updateTopologicalMapping().

std::list< const TopologyChange * >::const_iterator sofa::core::componentmodel::topology::BaseMeshTopology::firstStateChange (  )  const [virtual]

Provides an iterator on the first element in the list of StateChange objects.

Reimplemented in sofa::core::componentmodel::topology::TopologyContainer.

Definition at line 306 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::MechanicalObject< DataTypes >::handleStateChange().

virtual Edge sofa::core::componentmodel::topology::BaseMeshTopology::getEdge ( EdgeID  i  )  [inline, virtual]

Definition at line 149 of file BaseMeshTopology.h.

References getEdges().

Referenced by sofa::component::forcefield::VectorSpringForceField< DataTypes >::addDForce(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::addDForce(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::addDForce(), sofa::component::forcefield::VectorSpringForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::addForce(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::addForce(), sofa::component::forcefield::EdgePressureForceField< DataTypes >::addForce(), sofa::component::topology::ManifoldEdgeSetTopologyContainer::computeConnectedComponent(), sofa::component::topology::EdgeSetGeometryAlgorithms< DataTypes >::computeEdgeLength(), sofa::component::topology::EdgeSetGeometryAlgorithms< DataTypes >::computeRestEdgeLength(), sofa::component::topology::EdgeSetGeometryAlgorithms< DataTypes >::computeRestSquareEdgeLength(), sofa::component::forcefield::VectorSpringForceField< DataTypes >::createDefaultSprings(), sofa::component::mapping::BarycentricMapperEdgeSetTopology< In, Out >::createPointInLine(), sofa::component::forcefield::VectorSpringForceField< DataTypes >::draw(), sofa::component::forcefield::EdgePressureForceField< DataTypes >::draw(), sofa::component::controller::EdgeSetController< DataTypes >::draw(), sofa::component::topology::EdgeSetTopologyModifier::fuseEdgesProcess(), getLine(), sofa::component::topology::ManifoldEdgeSetTopologyContainer::getNextEdge(), sofa::component::topology::ManifoldEdgeSetTopologyContainer::getNextVertex(), sofa::component::topology::ManifoldEdgeSetTopologyContainer::getPreviousEdge(), sofa::component::topology::ManifoldEdgeSetTopologyContainer::getPreviousVertex(), sofa::component::collision::LineModel::handleTopologyChange(), sofa::component::topology::TriangleSetTopologyAlgorithms< DataTypes >::InciseAlongEdge(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::init(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::init(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::init(), sofa::component::forcefield::QuadularBendingSprings< DataTypes >::init(), sofa::component::collision::LineModel::init(), sofa::component::mass::MassEdgeCreationFunction(), sofa::component::mass::MassEdgeDestroyFunction(), sofa::component::mass::DiagonalMass< DataTypes, MassType >::reinit(), sofa::component::forcefield::EdgePressureForceField< DataTypes >::selectEdgesAlongPlane(), sofa::component::topology::EdgeSetTopologyModifier::splitEdgesProcess(), sofa::component::topology::EdgeSetTopologyModifier::swapEdgesProcess(), sofa::component::collision::Point::testLMD(), sofa::component::collision::LocalMinDistance::testValidity(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::TetrahedralTMTetrahedronCreationFunction(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::TetrahedralTMTetrahedronDestructionFunction(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::TriangularTMTriangleCreationFunction(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::TriangularTMTriangleDestructionFunction(), sofa::component::collision::LineModel::updateFromTopology(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping().

const BaseMeshTopology::HexaEdges & sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeHexaShell ( HexaID  i  )  [virtual]

Returns the set of edges adjacent to a given hexahedron.

Definition at line 89 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), getNbEdges(), and InvalidID.

int sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeIndex ( PointID  v1,
PointID  v2 
) [virtual]

int sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeIndexInHexahedron ( const HexaEdges &  t,
EdgeID  edgeIndex 
) const [virtual]

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 398 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

int sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeIndexInQuad ( QuadEdges &  t,
EdgeID  edgeIndex 
) const [virtual]

int sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeIndexInTetrahedron ( const TetraEdges &  t,
EdgeID  edgeIndex 
) const [virtual]

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 380 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

int sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeIndexInTriangle ( const TriangleEdges &  t,
EdgeID  edgeIndex 
) const [virtual]

const BaseMeshTopology::QuadEdges & sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeQuadShell ( QuadID  i  )  [virtual]

virtual const SeqEdges& sofa::core::componentmodel::topology::BaseMeshTopology::getEdges (  )  [pure virtual]

const BaseMeshTopology::TetraEdges & sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeTetraShell ( TetraID  i  )  [virtual]

const BaseMeshTopology::TriangleEdges & sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeTriangleShell ( TriangleID  i  )  [virtual]

const BaseMeshTopology::VertexEdges & sofa::core::componentmodel::topology::BaseMeshTopology::getEdgeVertexShell ( PointID  i  )  [virtual]

virtual std::string sofa::core::componentmodel::topology::BaseMeshTopology::getFilename (  )  const [inline, virtual]

Definition at line 126 of file BaseMeshTopology.h.

References d_filename.

virtual Hexa sofa::core::componentmodel::topology::BaseMeshTopology::getHexa ( HexaID  i  )  [inline, virtual]

const BaseMeshTopology::EdgeHexas & sofa::core::componentmodel::topology::BaseMeshTopology::getHexaEdgeShell ( EdgeID  i  )  [virtual]

Returns the set of hexahedra adjacent to a given edge.

Definition at line 180 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), and getNbHexas().

int sofa::core::componentmodel::topology::BaseMeshTopology::getHexahedronIndex ( PointID  v1,
PointID  v2,
PointID  v3,
PointID  v4,
PointID  v5,
PointID  v6,
PointID  v7,
PointID  v8 
) [virtual]

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

Definition at line 344 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

const BaseMeshTopology::QuadHexas & sofa::core::componentmodel::topology::BaseMeshTopology::getHexaQuadShell ( QuadID  i  )  [virtual]

virtual const SeqHexas& sofa::core::componentmodel::topology::BaseMeshTopology::getHexas (  )  [pure virtual]

const BaseMeshTopology::VertexHexas & sofa::core::componentmodel::topology::BaseMeshTopology::getHexaVertexShell ( PointID  i  )  [virtual]

Returns the set of hexahedra adjacent to a given vertex.

Definition at line 172 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), and getNbHexas().

Line sofa::core::componentmodel::topology::BaseMeshTopology::getLine ( LineID  i  )  [inline]

const SeqLines& sofa::core::componentmodel::topology::BaseMeshTopology::getLines (  )  [inline]

BaseMeshTopology::Edge sofa::core::componentmodel::topology::BaseMeshTopology::getLocalTetrahedronEdges ( const unsigned int  i  )  const [virtual]

virtual int sofa::core::componentmodel::topology::BaseMeshTopology::getNbEdges (  )  [inline, virtual]

Random accessors.

Reimplemented in sofa::component::topology::MeshTopology.

Definition at line 143 of file BaseMeshTopology.h.

References getEdges().

Referenced by sofa::component::forcefield::VectorSpringForceField< DataTypes >::addDForce(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::addDForce(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::addDForce(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::addDForce(), sofa::component::forcefield::QuadularBendingSprings< DataTypes >::addDForce(), sofa::component::forcefield::VectorSpringForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::addForce(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::addForce(), sofa::component::forcefield::QuadularBendingSprings< DataTypes >::addForce(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeIntersectedPointsList(), sofa::component::forcefield::VectorSpringForceField< DataTypes >::createDefaultSprings(), sofa::component::controller::EdgeSetController< DataTypes >::draw(), getEdgeHexaShell(), getEdgeQuadShell(), getEdgeTetraShell(), getEdgeTriangleShell(), getEdgeVertexShell(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::getFracturedEdge(), getNbLines(), sofa::component::forcefield::VectorSpringForceField< DataTypes >::handleEvent(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::handleTopologyChange(), sofa::component::forcefield::QuadularBendingSprings< DataTypes >::handleTopologyChange(), sofa::component::forcefield::EdgePressureForceField< DataTypes >::handleTopologyChange(), sofa::component::collision::LineModel::handleTopologyChange(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::init(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::init(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::init(), sofa::component::forcefield::QuadularBendingSprings< DataTypes >::init(), sofa::component::forcefield::BeamFEMForceField< DataTypes >::init(), sofa::component::controller::EdgeSetController< DataTypes >::init(), sofa::component::collision::LineModel::init(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::Prepare_VertexDuplication(), sofa::component::mass::DiagonalMass< DataTypes, MassType >::reinit(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::reinit(), sofa::component::forcefield::EdgePressureForceField< DataTypes >::selectEdgesAlongPlane(), sofa::component::collision::LineModel::updateFromTopology(), sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping(), and sofa::component::topology::Edge2QuadTopologicalMapping::updateTopologicalMapping().

virtual int sofa::core::componentmodel::topology::BaseMeshTopology::getNbHexas (  )  [inline, virtual]

int sofa::core::componentmodel::topology::BaseMeshTopology::getNbLines (  )  [inline]

virtual int sofa::core::componentmodel::topology::BaseMeshTopology::getNbQuads (  )  [inline, virtual]

virtual int sofa::core::componentmodel::topology::BaseMeshTopology::getNbTetras (  )  [inline, virtual]

virtual int sofa::core::componentmodel::topology::BaseMeshTopology::getNbTriangles (  )  [inline, virtual]

Reimplemented in sofa::component::topology::MeshTopology.

Definition at line 144 of file BaseMeshTopology.h.

References getTriangles().

Referenced by sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::addDForce(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::addDForce(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::addForce(), sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::addPointInQuad(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::addPointInQuad(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::applyStiffnessLarge(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::applyStiffnessSmall(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularAnisotropicFEMForceField< DataTypes >::draw(), sofa::filemanager::pml::PMLStiffSpringForceField::FusionBody(), sofa::filemanager::pml::PMLFemForceField::FusionBody(), sofa::component::visualmodel::OgreVisualModel::getNbTriangles(), getTriangleEdgeShell(), getTriangleTetraShell(), getTriangleVertexShell(), sofa::component::visualmodel::VisualModelImpl::handleTopologyChange(), sofa::component::forcefield::TrianglePressureForceField< DataTypes >::handleTopologyChange(), sofa::component::collision::TriangleModel::handleTopologyChange(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::init(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::init(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::init(), sofa::component::forcefield::MeshSpringForceField< DataTypes >::init(), sofa::component::collision::TriangleModel::init(), sofa::component::mass::DiagonalMass< DataTypes, MassType >::reinit(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::reinit(), sofa::component::forcefield::TrianglePressureForceField< DataTypes >::selectTrianglesAlongPlane(), sofa::component::collision::TriangleModel::updateFromTopology(), sofa::component::collision::PointModel::updateNormals(), sofa::component::topology::Tetra2TriangleTopologicalMapping::updateTopologicalMapping(), and sofa::component::topology::Quad2TriangleTopologicalMapping::updateTopologicalMapping().

virtual double sofa::core::componentmodel::topology::BaseMeshTopology::getPX ( int   )  const [inline, virtual]

virtual double sofa::core::componentmodel::topology::BaseMeshTopology::getPY ( int   )  const [inline, virtual]

virtual double sofa::core::componentmodel::topology::BaseMeshTopology::getPZ ( int   )  const [inline, virtual]

virtual Quad sofa::core::componentmodel::topology::BaseMeshTopology::getQuad ( QuadID  i  )  [inline, virtual]

const BaseMeshTopology::EdgeQuads & sofa::core::componentmodel::topology::BaseMeshTopology::getQuadEdgeShell ( EdgeID  i  )  [virtual]

const BaseMeshTopology::HexaQuads & sofa::core::componentmodel::topology::BaseMeshTopology::getQuadHexaShell ( HexaID  i  )  [virtual]

Returns the set of quads adjacent to a given hexahedron.

Returns the set of quad adjacent to a given hexahedron.

Definition at line 139 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), getNbQuads(), and InvalidID.

Referenced by sofa::component::topology::Hexa2QuadTopologicalMapping::updateTopologicalMapping().

int sofa::core::componentmodel::topology::BaseMeshTopology::getQuadIndex ( PointID  v1,
PointID  v2,
PointID  v3,
PointID  v4 
) [virtual]

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

Definition at line 332 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

int sofa::core::componentmodel::topology::BaseMeshTopology::getQuadIndexInHexahedron ( const HexaQuads &  t,
QuadID  quadIndex 
) const [virtual]

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 404 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::topology::Hexa2QuadTopologicalMapping::updateTopologicalMapping().

virtual const SeqQuads& sofa::core::componentmodel::topology::BaseMeshTopology::getQuads (  )  [pure virtual]

Implemented in sofa::core::componentmodel::topology::TopologyContainer, sofa::component::topology::MeshTopology, and sofa::component::topology::QuadSetTopologyContainer.

Referenced by sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::apply(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::apply(), sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::applyJ(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::applyJ(), sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::applyJT(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::applyJT(), sofa::component::visualmodel::VisualModelImpl::computeMesh(), sofa::component::visualmodel::OgreVisualModel::computeNormals(), sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::draw(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::draw(), getNbQuads(), getQuad(), sofa::component::topology::Quad2TriangleTopologicalMapping::init(), sofa::component::topology::Hexa2QuadTopologicalMapping::init(), sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::init(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::init(), sofa::component::forcefield::TriangleBendingSprings< DataTypes >::init(), sofa::component::forcefield::QuadBendingSprings< DataTypes >::init(), sofa::component::collision::PointModel::updateNormals(), sofa::component::topology::Quad2TriangleTopologicalMapping::updateTopologicalMapping(), sofa::component::visualmodel::CudaVisualModel< TDataTypes >::updateTopology(), sofa::component::visualmodel::OgreVisualModel::uploadIndices(), and sofa::component::topology::QuadSetGeometryAlgorithms< DataTypes >::writeMSHfile().

const BaseMeshTopology::VertexQuads & sofa::core::componentmodel::topology::BaseMeshTopology::getQuadVertexShell ( PointID  i  )  [virtual]

Returns the set of quads adjacent to a given vertex.

Returns the set of quad adjacent to a given vertex.

Definition at line 123 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), and getNbQuads().

Referenced by sofa::component::visualmodel::VisualModelImpl::handleTopologyChange(), and sofa::component::forcefield::QuadularBendingSprings< DataTypes >::handleTopologyChange().

virtual int sofa::core::componentmodel::topology::BaseMeshTopology::getRevision (  )  const [inline, virtual]

virtual Tetra sofa::core::componentmodel::topology::BaseMeshTopology::getTetra ( TetraID  i  )  [inline, virtual]

Definition at line 152 of file BaseMeshTopology.h.

References getTetras().

Referenced by sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::accumulateForceLarge(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::accumulateForcePolar(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::accumulateForceSmall(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::addDForce(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::addKToMatrix(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::CFTetrahedronCreationFunction(), sofa::component::topology::TetrahedronSetGeometryAlgorithms< DataTypes >::computeRestTetrahedronVolume(), sofa::component::topology::TetrahedronSetGeometryAlgorithms< DataTypes >::computeTetrahedronVolume(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::draw(), sofa::filemanager::pml::PMLFemForceField::FusionBody(), sofa::component::topology::TetrahedronSetGeometryAlgorithms< DataTypes >::getTetraInBall(), sofa::component::forcefield::MeshSpringForceField< DataTypes >::init(), sofa::component::mass::MassTetrahedronCreationFunction(), sofa::component::mass::MassTetrahedronDestroyFunction(), sofa::component::mass::DiagonalMass< DataTypes, MassType >::reinit(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::reinit(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::TetrahedralTMTetrahedronCreationFunction(), and sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::TetrahedralTMTetrahedronDestructionFunction().

const BaseMeshTopology::EdgeTetras & sofa::core::componentmodel::topology::BaseMeshTopology::getTetraEdgeShell ( EdgeID  i  )  [virtual]

Returns the set of tetrahedra adjacent to a given edge.

Definition at line 156 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), and getNbTetras().

int sofa::core::componentmodel::topology::BaseMeshTopology::getTetrahedronIndex ( PointID  v1,
PointID  v2,
PointID  v3,
PointID  v4 
) [virtual]

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

Definition at line 338 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

virtual const SeqTetras& sofa::core::componentmodel::topology::BaseMeshTopology::getTetras (  )  [pure virtual]

Implemented in sofa::core::componentmodel::topology::TopologyContainer, sofa::component::topology::MeshTopology, and sofa::component::topology::TetrahedronSetTopologyContainer.

Referenced by sofa::component::visualmodel::OglTetrahedralModel< DataTypes >::addBBox(), sofa::component::mapping::BarycentricMapperTetrahedronSetTopology< In, Out >::apply(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::apply(), sofa::component::mapping::BarycentricMapperTetrahedronSetTopology< In, Out >::applyJ(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::applyJ(), sofa::component::mapping::BarycentricMapperTetrahedronSetTopology< In, Out >::applyJT(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::applyJT(), sofa::component::topology::TetrahedronSetGeometryAlgorithms< DataTypes >::computeTetrahedronVolume(), sofa::component::mapping::BarycentricMapperTetrahedronSetTopology< In, Out >::draw(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::draw(), sofa::component::visualmodel::OglTetrahedralModel< DataTypes >::drawTransparent(), getNbTetras(), getTetra(), sofa::component::mapping::BarycentricMapperTetrahedronSetTopology< In, Out >::init(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::init(), sofa::component::forcefield::TetrahedronFEMForceField< DataTypes >::init(), sofa::component::collision::TetrahedronModel::init(), sofa::component::collision::PointModel::updateNormals(), sofa::component::topology::Tetra2TriangleTopologicalMapping::updateTopologicalMapping(), sofa::component::visualmodel::OglTetrahedralModel< gpu::cuda::CudaVectorTypes< TCoord, TDeriv, TReal > >::updateTopology(), and sofa::component::topology::TetrahedronSetGeometryAlgorithms< DataTypes >::writeMSHfile().

const BaseMeshTopology::TriangleTetras & sofa::core::componentmodel::topology::BaseMeshTopology::getTetraTriangleShell ( TriangleID  i  )  [virtual]

const BaseMeshTopology::VertexTetras & sofa::core::componentmodel::topology::BaseMeshTopology::getTetraVertexShell ( PointID  i  )  [virtual]

Returns the set of tetrahedra adjacent to a given vertex.

Definition at line 148 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), and getNbTetras().

virtual Triangle sofa::core::componentmodel::topology::BaseMeshTopology::getTriangle ( TriangleID  i  )  [inline, virtual]

Definition at line 150 of file BaseMeshTopology.h.

References getTriangles().

Referenced by sofa::component::forcefield::TriangularFEMForceField< DataTypes >::accumulateForceLarge(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::accumulateForceSmall(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::addDForce(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::addDForce(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::addForce(), sofa::component::forcefield::TrianglePressureForceField< DataTypes >::addForce(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::applyStiffnessLarge(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::applyStiffnessSmall(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::closestIndexPair(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeIntersectedPointsList(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeRestTriangleArea(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeSegmentTriangleIntersection(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeTriangleArea(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeTriangleBarycoefs(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeTriangleNormal(), sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::createPointInTriangle(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::createPointInTriangle(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::draw(), sofa::component::forcefield::TriangularAnisotropicFEMForceField< DataTypes >::draw(), sofa::component::forcefield::TrianglePressureForceField< DataTypes >::draw(), sofa::filemanager::pml::PMLStiffSpringForceField::FusionBody(), sofa::filemanager::pml::PMLFemForceField::FusionBody(), sofa::component::visualmodel::VisualModelImpl::handleTopologyChange(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::handleTopologyChange(), sofa::component::topology::TriangleSetTopologyAlgorithms< DataTypes >::InciseAlongEdge(), sofa::component::topology::TriangleSetTopologyAlgorithms< DataTypes >::InciseAlongLinesList(), sofa::component::topology::TriangleSetTopologyAlgorithms< DataTypes >::InciseAlongPointsList(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::init(), sofa::component::forcefield::MeshSpringForceField< DataTypes >::init(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::is_PointinTriangle(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::is_triangle_in_plane(), sofa::component::mass::MassTriangleCreationFunction(), sofa::component::mass::MassTriangleDestroyFunction(), sofa::component::mass::DiagonalMass< DataTypes, MassType >::reinit(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::reinit(), sofa::component::forcefield::TrianglePressureForceField< DataTypes >::selectTrianglesAlongPlane(), sofa::component::collision::Point::testLMD(), sofa::component::collision::LocalMinDistance::testValidity(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::TriangularBSTriangleCreationFunction(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::TriangularBSTriangleDestructionFunction(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::TriangularTMTriangleCreationFunction(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::TriangularTMTriangleDestructionFunction(), sofa::component::forcefield::TriangularAnisotropicFEMForceField< DataTypes >::TRQSTriangleCreationFunction(), and sofa::component::collision::TriangleModel::updateFromTopology().

const BaseMeshTopology::EdgeTriangles & sofa::core::componentmodel::topology::BaseMeshTopology::getTriangleEdgeShell ( EdgeID  i  )  [virtual]

int sofa::core::componentmodel::topology::BaseMeshTopology::getTriangleIndex ( PointID  v1,
PointID  v2,
PointID  v3 
) [virtual]

Returns the index of the triangle given three vertex indices; returns -1 if no triangle exists.

Definition at line 326 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

int sofa::core::componentmodel::topology::BaseMeshTopology::getTriangleIndexInTetrahedron ( const TetraTriangles &  t,
TriangleID  triangleIndex 
) const [virtual]

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

Returns -1 if none

Definition at line 386 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::topology::Tetra2TriangleTopologicalMapping::updateTopologicalMapping().

virtual const SeqTriangles& sofa::core::componentmodel::topology::BaseMeshTopology::getTriangles (  )  [pure virtual]

Implemented in sofa::core::componentmodel::topology::TopologyContainer, sofa::component::topology::MeshTopology, and sofa::component::topology::TriangleSetTopologyContainer.

Referenced by sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::apply(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::apply(), sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::applyJ(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::applyJ(), sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::applyJT(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::applyJT(), sofa::component::visualmodel::VisualModelImpl::computeMesh(), sofa::component::visualmodel::OgreVisualModel::computeNormals(), sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::computeTriangleArea(), sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::draw(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::draw(), getNbTriangles(), getTriangle(), sofa::component::topology::Tetra2TriangleTopologicalMapping::init(), sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::init(), sofa::component::mapping::BarycentricMapperMeshTopology< In, Out >::init(), sofa::component::forcefield::TriangleFEMForceField< DataTypes >::init(), sofa::component::forcefield::TriangleBendingSprings< DataTypes >::init(), sofa::component::collision::TriangleModel::init(), sofa::component::collision::TriangleModel::updateFromTopology(), sofa::component::collision::PointModel::updateNormals(), sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping(), sofa::component::visualmodel::CudaVisualModel< TDataTypes >::updateTopology(), sofa::component::visualmodel::OgreVisualModel::uploadIndices(), and sofa::component::topology::TriangleSetGeometryAlgorithms< DataTypes >::writeMSHfile().

const BaseMeshTopology::TetraTriangles & sofa::core::componentmodel::topology::BaseMeshTopology::getTriangleTetraShell ( TetraID  i  )  [virtual]

Returns the set of triangles adjacent to a given tetrahedron.

Returns the set of triangle adjacent to a given tetrahedron.

Definition at line 114 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName(), getNbTriangles(), and InvalidID.

Referenced by sofa::component::topology::TetrahedronSetGeometryAlgorithms< DataTypes >::getTetraInBall(), and sofa::component::topology::Tetra2TriangleTopologicalMapping::updateTopologicalMapping().

const BaseMeshTopology::VertexTriangles & sofa::core::componentmodel::topology::BaseMeshTopology::getTriangleVertexShell ( PointID  i  )  [virtual]

int sofa::core::componentmodel::topology::BaseMeshTopology::getVertexIndexInHexahedron ( Hexa &  t,
PointID  vertexIndex 
) const [virtual]

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 392 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

int sofa::core::componentmodel::topology::BaseMeshTopology::getVertexIndexInQuad ( Quad &  t,
PointID  vertexIndex 
) const [virtual]

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

Returns -1 if none

Definition at line 362 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::forcefield::QuadularBendingSprings< DataTypes >::handleTopologyChange().

int sofa::core::componentmodel::topology::BaseMeshTopology::getVertexIndexInTetrahedron ( const Tetra &  t,
PointID  vertexIndex 
) const [virtual]

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

Returns -1 if none

Definition at line 374 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

int sofa::core::componentmodel::topology::BaseMeshTopology::getVertexIndexInTriangle ( const Triangle &  t,
PointID  vertexIndex 
) const [virtual]

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

Returns -1 if none

Definition at line 350 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::forcefield::TriangularBendingSprings< DataTypes >::handleTopologyChange().

virtual bool sofa::core::componentmodel::topology::BaseMeshTopology::hasPos (  )  const [inline, virtual]

virtual bool sofa::core::componentmodel::topology::BaseMeshTopology::isCubeActive ( int   )  [inline, virtual]

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

it contains or is surrounded by mapped points.

Deprecated:

Reimplemented in sofa::component::topology::MeshTopology.

Definition at line 273 of file BaseMeshTopology.h.

Referenced by sofa::component::forcefield::MeshSpringForceField< DataTypes >::init().

std::list< const TopologyChange * >::const_iterator sofa::core::componentmodel::topology::BaseMeshTopology::lastChange (  )  const [virtual]

Provides an iterator on the last element in the list of TopologyChange objects.

Reimplemented in sofa::core::componentmodel::topology::TopologyContainer.

Definition at line 299 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::forcefield::VectorSpringForceField< DataTypes >::handleEvent(), sofa::component::visualmodel::VisualModelImpl::handleTopologyChange(), sofa::component::ParticleSource< TDataTypes >::handleTopologyChange(), sofa::component::ParticleSink< TDataTypes >::handleTopologyChange(), sofa::component::mass::DiagonalMass< DataTypes, MassType >::handleTopologyChange(), sofa::component::mapping::BarycentricMapping< BasicMapping >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperHexahedronSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperTetrahedronSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperQuadSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperTriangleSetTopology< In, Out >::handleTopologyChange(), sofa::component::mapping::BarycentricMapperEdgeSetTopology< In, Out >::handleTopologyChange(), sofa::component::forcefield::TriangularTensorMassForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularQuadraticSpringsForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularBiquadraticSpringsForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TriangularBendingSprings< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TrianglePressureForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TetrahedralTensorMassForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::TetrahedralCorotationalFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::QuadularBendingSprings< DataTypes >::handleTopologyChange(), sofa::component::forcefield::HexahedralFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::EdgePressureForceField< DataTypes >::handleTopologyChange(), sofa::component::forcefield::BeamFEMForceField< DataTypes >::handleTopologyChange(), sofa::component::constraint::LinearMovementConstraint< DataTypes >::handleTopologyChange(), sofa::component::constraint::FixedPlaneConstraint< DataTypes >::handleTopologyChange(), sofa::component::constraint::FixedConstraint< DataTypes >::handleTopologyChange(), sofa::component::collision::TriangleModel::handleTopologyChange(), sofa::component::collision::LineModel::handleTopologyChange(), sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping(), sofa::component::topology::Tetra2TriangleTopologicalMapping::updateTopologicalMapping(), sofa::component::topology::Quad2TriangleTopologicalMapping::updateTopologicalMapping(), sofa::component::topology::Hexa2QuadTopologicalMapping::updateTopologicalMapping(), and sofa::component::topology::Edge2QuadTopologicalMapping::updateTopologicalMapping().

std::list< const TopologyChange * >::const_iterator sofa::core::componentmodel::topology::BaseMeshTopology::lastStateChange (  )  const [virtual]

Provides an iterator on the last element in the list of StateChange objects.

Reimplemented in sofa::core::componentmodel::topology::TopologyContainer.

Definition at line 313 of file BaseMeshTopology.cpp.

References sofa::core::objectmodel::Base::getClassName().

Referenced by sofa::component::MechanicalObject< DataTypes >::handleStateChange().

bool sofa::core::componentmodel::topology::BaseMeshTopology::load ( const char *  filename  )  [virtual]

Load the topology from a file.

The default implementation supports the following formats: obj, gmsh, mesh (custom simple text file), xs3 (deprecated description of mass-springs networks).

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

Definition at line 237 of file BaseMeshTopology.cpp.

References clear(), d_filename, sofa::helper::system::DataRepository, sofa::helper::io::MeshTopologyLoader::load(), and sofa::core::objectmodel::BaseObject::logWarning().

Referenced by parse().

void sofa::core::componentmodel::topology::BaseMeshTopology::parse ( core::objectmodel::BaseObjectDescription *  arg  )  [virtual]


Field Documentation


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

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