sofa::component::topology::TriangleSetTopologyModifier Class Reference

A class that modifies the topology by adding and removing triangles. More...

#include <TriangleSetTopologyModifier.h>

Inheritance diagram for sofa::component::topology::TriangleSetTopologyModifier:

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

Collaboration graph
[legend]

Public Member Functions

 TriangleSetTopologyModifier ()
virtual ~TriangleSetTopologyModifier ()
virtual void init ()
 Initialization method called at graph modification, during bottom-up traversal.
void addTrianglesWarning (const unsigned int nTriangles, const sofa::helper::vector< Triangle > &trianglesList, const sofa::helper::vector< unsigned int > &trianglesIndexList)
 Sends a message to warn that some triangles were added in this topology.
void addTrianglesWarning (const unsigned int nTriangles, const sofa::helper::vector< Triangle > &trianglesList, const sofa::helper::vector< unsigned int > &trianglesIndexList, const sofa::helper::vector< sofa::helper::vector< unsigned int > > &ancestors, const sofa::helper::vector< sofa::helper::vector< double > > &baryCoefs)
 Sends a message to warn that some triangles were added in this topology.
void addTriangleProcess (Triangle e)
 Add a triangle.
virtual void addTrianglesProcess (const sofa::helper::vector< Triangle > &triangles)
 Actually Add some triangles to this topology.
virtual void removeTrianglesWarning (sofa::helper::vector< unsigned int > &triangles)
 Sends a message to warn that some triangles are about to be deleted.
virtual void removeTrianglesProcess (const sofa::helper::vector< unsigned int > &indices, const bool removeIsolatedEdges=false, const bool removeIsolatedPoints=false)
 Remove a subset of triangles.
void addEdgesWarning (const unsigned int nEdges, const sofa::helper::vector< Edge > &edgesList, const sofa::helper::vector< unsigned int > &edgesIndexList)
 Sends a message to warn that some edges were added in this topology.
void addEdgesWarning (const unsigned int nEdges, const sofa::helper::vector< Edge > &edgesList, const sofa::helper::vector< unsigned int > &edgesIndexList, const sofa::helper::vector< sofa::helper::vector< unsigned int > > &ancestors, const sofa::helper::vector< sofa::helper::vector< double > > &baryCoefs)
 Sends a message to warn that some edges were added in this topology.
void addEdgesProcess (const sofa::helper::vector< Edge > &edges)
 Add some edges to this topology.
virtual void removeEdgesProcess (const sofa::helper::vector< unsigned int > &indices, const bool removeIsolatedItems=false)
 Remove a subset of edges.
virtual void addPointsProcess (const unsigned int nPoints)
 Add some points to this topology.
virtual void removePointsProcess (sofa::helper::vector< unsigned int > &indices, const bool removeDOF=true)
 Remove a subset of points.
virtual void renumberPointsProcess (const sofa::helper::vector< unsigned int > &index, const sofa::helper::vector< unsigned int > &inv_index, const bool renumberDOF=true)
 Reorder this topology.
virtual void removeTriangles (sofa::helper::vector< unsigned int > &triangles, const bool removeIsolatedEdges, const bool removeIsolatedPoints)
 Remove a set of triangles.
virtual void removeItems (sofa::helper::vector< unsigned int > &items)
 Generic method to remove a list of items.
virtual void renumberPoints (const sofa::helper::vector< unsigned int > &index, const sofa::helper::vector< unsigned int > &inv_index)
 Generic method for points renumbering.

Private Attributes

TriangleSetTopologyContainer * m_container

Detailed Description

A class that modifies the topology by adding and removing triangles.

Definition at line 49 of file TriangleSetTopologyModifier.h.


Constructor & Destructor Documentation

sofa::component::topology::TriangleSetTopologyModifier::TriangleSetTopologyModifier (  )  [inline]

Definition at line 52 of file TriangleSetTopologyModifier.h.

virtual sofa::component::topology::TriangleSetTopologyModifier::~TriangleSetTopologyModifier (  )  [inline, virtual]

Definition at line 56 of file TriangleSetTopologyModifier.h.


Member Function Documentation

void sofa::component::topology::TriangleSetTopologyModifier::addEdgesProcess ( const sofa::helper::vector< Edge > &  edges  )  [virtual]

void sofa::component::topology::TriangleSetTopologyModifier::addEdgesWarning ( const unsigned int  nEdges,
const sofa::helper::vector< Edge > &  edgesList,
const sofa::helper::vector< unsigned int > &  edgesIndexList,
const sofa::helper::vector< sofa::helper::vector< unsigned int > > &  ancestors,
const sofa::helper::vector< sofa::helper::vector< double > > &  baryCoefs 
) [inline, virtual]

Sends a message to warn that some edges were added in this topology.

See also:
addEdgesProcess

Reimplemented from sofa::component::topology::EdgeSetTopologyModifier.

Definition at line 123 of file TriangleSetTopologyModifier.h.

References addEdgesWarning().

void sofa::component::topology::TriangleSetTopologyModifier::addEdgesWarning ( const unsigned int  nEdges,
const sofa::helper::vector< Edge > &  edgesList,
const sofa::helper::vector< unsigned int > &  edgesIndexList 
) [inline, virtual]

Sends a message to warn that some edges were added in this topology.

See also:
addEdgesProcess

Reimplemented from sofa::component::topology::EdgeSetTopologyModifier.

Definition at line 112 of file TriangleSetTopologyModifier.h.

Referenced by addEdgesWarning(), and addTriangleProcess().

void sofa::component::topology::TriangleSetTopologyModifier::addPointsProcess ( const unsigned int  nPoints  )  [virtual]

void sofa::component::topology::TriangleSetTopologyModifier::addTriangleProcess ( Triangle  e  ) 

void sofa::component::topology::TriangleSetTopologyModifier::addTrianglesProcess ( const sofa::helper::vector< Triangle > &  triangles  )  [virtual]

void sofa::component::topology::TriangleSetTopologyModifier::addTrianglesWarning ( const unsigned int  nTriangles,
const sofa::helper::vector< Triangle > &  trianglesList,
const sofa::helper::vector< unsigned int > &  trianglesIndexList,
const sofa::helper::vector< sofa::helper::vector< unsigned int > > &  ancestors,
const sofa::helper::vector< sofa::helper::vector< double > > &  baryCoefs 
)

Sends a message to warn that some triangles were added in this topology.

See also:
addTrianglesProcess

Definition at line 153 of file TriangleSetTopologyModifier.cpp.

References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().

void sofa::component::topology::TriangleSetTopologyModifier::addTrianglesWarning ( const unsigned int  nTriangles,
const sofa::helper::vector< Triangle > &  trianglesList,
const sofa::helper::vector< unsigned int > &  trianglesIndexList 
)

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

Initialization method called at graph modification, during bottom-up traversal.

Reimplemented from sofa::component::topology::EdgeSetTopologyModifier.

Reimplemented in sofa::component::topology::TetrahedronSetTopologyModifier.

Definition at line 50 of file TriangleSetTopologyModifier.cpp.

References sofa::component::topology::EdgeSetTopologyModifier::init().

void sofa::component::topology::TriangleSetTopologyModifier::removeEdgesProcess ( const sofa::helper::vector< unsigned int > &  indices,
const bool  removeIsolatedItems = false 
) [virtual]

Remove a subset of edges.

Important : some structures might need to be warned BEFORE the points are actually deleted, so always use method removeEdgesWarning before calling removeEdgesProcess.

See also:
removeEdgesWarning
Parameters:
removeIsolatedItems if true isolated vertices are also removed Important : parameter indices is not const because it is actually sorted from the highest index to the lowest one.

Reimplemented from sofa::component::topology::EdgeSetTopologyModifier.

Reimplemented in sofa::component::topology::TetrahedronSetTopologyModifier.

Definition at line 346 of file TriangleSetTopologyModifier.cpp.

References sofa::component::topology::TriangleSetTopologyContainer::createTriangleEdgeShellArray(), sofa::component::topology::TriangleSetTopologyContainer::getEdgeIndexInTriangle(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangleEdges(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangleEdgeShell(), m_container, sofa::component::topology::TriangleSetTopologyContainer::m_triangleEdge, and sofa::component::topology::TriangleSetTopologyContainer::m_triangleEdgeShell.

Referenced by removeTrianglesProcess().

void sofa::component::topology::TriangleSetTopologyModifier::removeItems ( sofa::helper::vector< unsigned int > &  items  )  [virtual]

Generic method to remove a list of items.

Reimplemented from sofa::component::topology::EdgeSetTopologyModifier.

Reimplemented in sofa::component::topology::TetrahedronSetTopologyModifier.

Definition at line 420 of file TriangleSetTopologyModifier.cpp.

References removeTriangles().

void sofa::component::topology::TriangleSetTopologyModifier::removePointsProcess ( sofa::helper::vector< unsigned int > &  indices,
const bool  removeDOF = true 
) [virtual]

void sofa::component::topology::TriangleSetTopologyModifier::removeTriangles ( sofa::helper::vector< unsigned int > &  triangles,
const bool  removeIsolatedEdges,
const bool  removeIsolatedPoints 
) [virtual]

void sofa::component::topology::TriangleSetTopologyModifier::removeTrianglesProcess ( const sofa::helper::vector< unsigned int > &  indices,
const bool  removeIsolatedEdges = false,
const bool  removeIsolatedPoints = false 
) [virtual]

Remove a subset of triangles.

Eventually remove isolated edges and vertices

Important : some structures might need to be warned BEFORE the points are actually deleted, so always use method removeEdgesWarning before calling removeEdgesProcess.

See also:
removeTrianglesWarning
Parameters:
removeIsolatedEdges if true isolated edges are also removed
removeIsolatedPoints if true isolated vertices are also removed

warn that edges will be deleted

actually remove edges without looking for isolated vertices

propagate to all components

Reimplemented in sofa::component::topology::TetrahedronSetTopologyModifier.

Definition at line 176 of file TriangleSetTopologyModifier.cpp.

References sofa::component::topology::TriangleSetTopologyContainer::createTriangleEdgeArray(), sofa::component::topology::TriangleSetTopologyContainer::createTriangleEdgeShellArray(), sofa::component::topology::TriangleSetTopologyContainer::createTriangleVertexShellArray(), sofa::component::topology::TriangleSetTopologyContainer::getNumberOfTriangles(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangleEdges(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangleEdgeShell(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangles(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangleVertexShell(), m_container, sofa::component::topology::TriangleSetTopologyContainer::m_triangle, sofa::component::topology::TriangleSetTopologyContainer::m_triangleEdge, sofa::component::topology::TriangleSetTopologyContainer::m_triangleEdgeShell, sofa::component::topology::TriangleSetTopologyContainer::m_triangleVertexShell, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeEdgesProcess(), sofa::component::topology::EdgeSetTopologyModifier::removeEdgesWarning(), removePointsProcess(), and sofa::component::topology::PointSetTopologyModifier::removePointsWarning().

Referenced by removeTriangles().

void sofa::component::topology::TriangleSetTopologyModifier::removeTrianglesWarning ( sofa::helper::vector< unsigned int > &  triangles  )  [virtual]

Sends a message to warn that some triangles are about to be deleted.

See also:
removeTrianglesProcess
Important : parameter indices is not const because it is actually sorted from the highest index to the lowest one.

sort vertices to remove in a descendent order

Definition at line 165 of file TriangleSetTopologyModifier.cpp.

References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().

Referenced by sofa::component::topology::TetrahedronSetTopologyModifier::removeTetrahedraProcess(), and removeTriangles().

void sofa::component::topology::TriangleSetTopologyModifier::renumberPoints ( const sofa::helper::vector< unsigned int > &  index,
const sofa::helper::vector< unsigned int > &  inv_index 
) [virtual]

void sofa::component::topology::TriangleSetTopologyModifier::renumberPointsProcess ( const sofa::helper::vector< unsigned int > &  index,
const sofa::helper::vector< unsigned int > &  inv_index,
const bool  renumberDOF = true 
) [virtual]


Field Documentation


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

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