#include <TetrahedronSetTopologyModifier.h>


Public Member Functions | |
| TetrahedronSetTopologyModifier () | |
| virtual | ~TetrahedronSetTopologyModifier () |
| virtual void | init () |
| Initialization method called at graph modification, during bottom-up traversal. | |
| void | addTetrahedraWarning (const unsigned int nTetrahedra, const sofa::helper::vector< Tetrahedron > &tetrahedraList, const sofa::helper::vector< unsigned int > &tetrahedraIndexList) |
| Sends a message to warn that some tetrahedra were added in this topology. | |
| void | addTetrahedraWarning (const unsigned int nTetrahedra, const sofa::helper::vector< Tetrahedron > &tetrahedraList, const sofa::helper::vector< unsigned int > &tetrahedraIndexList, 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 tetrahedra were added in this topology. | |
| void | addTetrahedronProcess (Tetrahedron e) |
| Add a tetrahedron. | |
| virtual void | addTetrahedraProcess (const sofa::helper::vector< Tetrahedron > &tetrahedra) |
| Actually Add some tetrahedra to this topology. | |
| void | removeTetrahedraWarning (sofa::helper::vector< unsigned int > &tetrahedra) |
| Sends a message to warn that some tetrahedra are about to be deleted. | |
| virtual void | removeTetrahedraProcess (const sofa::helper::vector< unsigned int > &indices, const bool removeIsolatedItems=false) |
| Remove a subset of tetrahedra. | |
| virtual void | addTrianglesProcess (const sofa::helper::vector< Triangle > &triangles) |
| Actually Add some triangles to this topology. | |
| virtual void | removeTrianglesProcess (const sofa::helper::vector< unsigned int > &indices, const bool removeIsolatedEdges=false, const bool removeIsolatedPoints=false) |
| Remove a subset of triangles. | |
| virtual 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 > &, const bool renumberDOF=true) |
| Reorder this topology. | |
| virtual void | removeTetrahedra (sofa::helper::vector< unsigned int > &tetrahedra) |
| Remove a set of tetrahedra. | |
| virtual void | removeItems (sofa::helper::vector< unsigned int > &items) |
| Generic method to remove a list of items. | |
| void | RemoveTetraBall (unsigned int ind_ta, unsigned int ind_tb) |
| Removes all tetrahedra in the ball of center "ind_ta" and of radius dist(ind_ta, ind_tb). | |
| virtual void | renumberPoints (const sofa::helper::vector< unsigned int > &, const sofa::helper::vector< unsigned int > &) |
| Generic method for points renumbering. | |
Private Attributes | |
| TetrahedronSetTopologyContainer * | m_container |
Definition at line 57 of file TetrahedronSetTopologyModifier.h.
| sofa::component::topology::TetrahedronSetTopologyModifier::TetrahedronSetTopologyModifier | ( | ) | [inline] |
Definition at line 60 of file TetrahedronSetTopologyModifier.h.
| virtual sofa::component::topology::TetrahedronSetTopologyModifier::~TetrahedronSetTopologyModifier | ( | ) | [inline, virtual] |
Definition at line 64 of file TetrahedronSetTopologyModifier.h.
| void sofa::component::topology::TetrahedronSetTopologyModifier::addEdgesProcess | ( | const sofa::helper::vector< Edge > & | edges | ) | [virtual] |
Add some edges to this topology.
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 357 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronEdgeShell(), m_container, and sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronEdgeShell.
| void sofa::component::topology::TetrahedronSetTopologyModifier::addPointsProcess | ( | const unsigned int | nPoints | ) | [virtual] |
Add some points to this topology.
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 348 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::PointSetTopologyContainer::getNbPoints(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronVertexShell(), m_container, and sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronVertexShell.
| void sofa::component::topology::TetrahedronSetTopologyModifier::addTetrahedraProcess | ( | const sofa::helper::vector< Tetrahedron > & | tetrahedra | ) | [virtual] |
Actually Add some tetrahedra to this topology.
Definition at line 147 of file TetrahedronSetTopologyModifier.cpp.
References addTetrahedronProcess().
| void sofa::component::topology::TetrahedronSetTopologyModifier::addTetrahedraWarning | ( | const unsigned int | nTetrahedra, | |
| const sofa::helper::vector< Tetrahedron > & | tetrahedraList, | |||
| const sofa::helper::vector< unsigned int > & | tetrahedraIndexList, | |||
| 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 tetrahedra were added in this topology.
Definition at line 166 of file TetrahedronSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
| void sofa::component::topology::TetrahedronSetTopologyModifier::addTetrahedraWarning | ( | const unsigned int | nTetrahedra, | |
| const sofa::helper::vector< Tetrahedron > & | tetrahedraList, | |||
| const sofa::helper::vector< unsigned int > & | tetrahedraIndexList | |||
| ) |
Sends a message to warn that some tetrahedra were added in this topology.
Definition at line 156 of file TetrahedronSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
| void sofa::component::topology::TetrahedronSetTopologyModifier::addTetrahedronProcess | ( | Tetrahedron | e | ) |
Add a tetrahedron.
Definition at line 60 of file TetrahedronSetTopologyModifier.cpp.
References addTrianglesProcess(), sofa::component::topology::TriangleSetTopologyModifier::addTrianglesWarning(), sofa::component::topology::EdgeSetTopologyContainer::getEdgeIndex(), sofa::component::topology::TetrahedronSetTopologyContainer::getTetrahedronVertexShellForModification(), sofa::component::topology::TriangleSetTopologyContainer::getTriangleIndex(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronEdges(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronEdgeShell(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronTriangles(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronTriangleShell(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronVertexShell(), m_container, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedron, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronEdge, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronEdgeShell, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronTriangle, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronTriangleShell, and sofa::component::topology::tetrahedronEdgeArray.
Referenced by addTetrahedraProcess().
| void sofa::component::topology::TetrahedronSetTopologyModifier::addTrianglesProcess | ( | const sofa::helper::vector< Triangle > & | triangles | ) | [virtual] |
Actually Add some triangles to this topology.
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 366 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TriangleSetTopologyContainer::getNumberOfTriangles(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronTriangleShell(), m_container, and sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronTriangleShell.
Referenced by addTetrahedronProcess().
| void sofa::component::topology::TetrahedronSetTopologyModifier::init | ( | void | ) | [virtual] |
Initialization method called at graph modification, during bottom-up traversal.
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 52 of file TetrahedronSetTopologyModifier.cpp.
References sofa::core::objectmodel::BaseContext::get(), sofa::core::objectmodel::BaseObject::getContext(), and m_container.
| void sofa::component::topology::TetrahedronSetTopologyModifier::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.
| removeIsolatedItems | if true remove isolated vertices |
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 409 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TetrahedronSetTopologyContainer::createTetrahedronEdgeShellArray(), sofa::component::topology::TetrahedronSetTopologyContainer::getEdgeIndexInTetrahedron(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronEdges(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronEdgeShell(), m_container, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronEdge, and sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronEdgeShell.
Referenced by removeTetrahedraProcess().
| void sofa::component::topology::TetrahedronSetTopologyModifier::removeItems | ( | sofa::helper::vector< unsigned int > & | items | ) | [virtual] |
Generic method to remove a list of items.
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 514 of file TetrahedronSetTopologyModifier.cpp.
References removeTetrahedra().
| void sofa::component::topology::TetrahedronSetTopologyModifier::removePointsProcess | ( | sofa::helper::vector< unsigned int > & | indices, | |
| const bool | removeDOF = true | |||
| ) | [virtual] |
Remove a subset of points.
Elements corresponding to these points are removed form the mechanical object's state vectors.
Important : some structures might need to be warned BEFORE the points are actually deleted, so always use method removePointsWarning before calling removePointsProcess.
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 375 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TetrahedronSetTopologyContainer::createTetrahedronVertexShellArray(), sofa::component::topology::PointSetTopologyContainer::getNbPoints(), sofa::component::topology::TetrahedronSetTopologyContainer::getVertexIndexInTetrahedron(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedra(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronVertexShell(), m_container, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedron, and sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronVertexShell.
Referenced by removeTetrahedraProcess().
| void sofa::component::topology::TetrahedronSetTopologyModifier::RemoveTetraBall | ( | unsigned int | ind_ta, | |
| unsigned int | ind_tb | |||
| ) |
Removes all tetrahedra in the ball of center "ind_ta" and of radius dist(ind_ta, ind_tb).
| void sofa::component::topology::TetrahedronSetTopologyModifier::removeTetrahedra | ( | sofa::helper::vector< unsigned int > & | tetrahedra | ) | [virtual] |
Remove a set of tetrahedra.
| tetrahedra | an array of tetrahedron indices to be removed (note that the array is not const since it needs to be sorted) |
Definition at line 501 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TetrahedronSetTopologyContainer::checkTopology(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeTetrahedraProcess(), and removeTetrahedraWarning().
Referenced by sofa::component::collision::CarvingManager::doCarve(), and removeItems().
| void sofa::component::topology::TetrahedronSetTopologyModifier::removeTetrahedraProcess | ( | const sofa::helper::vector< unsigned int > & | indices, | |
| const bool | removeIsolatedItems = false | |||
| ) | [virtual] |
Remove a subset of tetrahedra.
Elements corresponding to these points are removed form the mechanical object's state vectors.
Important : some structures might need to be warned BEFORE the points are actually deleted, so always use method removeEdgesWarning before calling removeEdgesProcess.
| removeIsolatedItems | if true remove isolated triangles, edges and vertices |
warn that triangles will be deleted
warn that edges will be deleted
actually remove triangles without looking for isolated vertices
actually remove edges without looking for isolated vertices
Definition at line 189 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TetrahedronSetTopologyContainer::createTetrahedronEdgeShellArray(), sofa::component::topology::TetrahedronSetTopologyContainer::createTetrahedronTriangleShellArray(), sofa::component::topology::TetrahedronSetTopologyContainer::createTetrahedronVertexShellArray(), sofa::component::topology::TetrahedronSetTopologyContainer::getNumberOfTetrahedra(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedra(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronEdges(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronEdgeShell(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronTriangles(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronTriangleShell(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronVertexShell(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangles(), m_container, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedron, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronEdge, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronEdgeShell, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronTriangle, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronTriangleShell, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronVertexShell, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeEdgesProcess(), sofa::component::topology::EdgeSetTopologyModifier::removeEdgesWarning(), removePointsProcess(), sofa::component::topology::PointSetTopologyModifier::removePointsWarning(), removeTrianglesProcess(), and sofa::component::topology::TriangleSetTopologyModifier::removeTrianglesWarning().
Referenced by removeTetrahedra().
| void sofa::component::topology::TetrahedronSetTopologyModifier::removeTetrahedraWarning | ( | sofa::helper::vector< unsigned int > & | tetrahedra | ) |
Sends a message to warn that some tetrahedra are about to be deleted.
sort vertices to remove in a descendent order
Definition at line 178 of file TetrahedronSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
Referenced by removeTetrahedra().
| void sofa::component::topology::TetrahedronSetTopologyModifier::removeTrianglesProcess | ( | const sofa::helper::vector< unsigned int > & | indices, | |
| const bool | removeIsolatedEdges = false, |
|||
| const bool | removeIsolatedPoints = false | |||
| ) | [virtual] |
Remove a subset of triangles.
Important : some structures might need to be warned BEFORE the points are actually deleted, so always use method removeEdgesWarning before calling removeEdgesProcess.
| removeIsolatedEdges | if true isolated edges are also removed | |
| removeIsolatedPoints | if true isolated vertices are also removed |
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 441 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TetrahedronSetTopologyContainer::createTetrahedronTriangleShellArray(), sofa::component::topology::TetrahedronSetTopologyContainer::getTriangleIndexInTetrahedron(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronTriangles(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronTriangleShell(), sofa::component::topology::TriangleSetTopologyContainer::hasTriangles(), m_container, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronTriangle, and sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronTriangleShell.
Referenced by removeTetrahedraProcess().
| void sofa::component::topology::TetrahedronSetTopologyModifier::renumberPoints | ( | const sofa::helper::vector< unsigned int > & | index, | |
| const sofa::helper::vector< unsigned int > & | inv_index | |||
| ) | [virtual] |
Generic method for points renumbering.
add the topological changes in the queue
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 519 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TetrahedronSetTopologyContainer::checkTopology(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), renumberPointsProcess(), and sofa::component::topology::PointSetTopologyModifier::renumberPointsWarning().
| void sofa::component::topology::TetrahedronSetTopologyModifier::renumberPointsProcess | ( | const sofa::helper::vector< unsigned int > & | index, | |
| const sofa::helper::vector< unsigned int > & | inv_index, | |||
| const bool | renumberDOF = true | |||
| ) | [virtual] |
Reorder this topology.
Important : the points are actually renumbered in the mechanical object's state vectors iff (renumberDOF == true)
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 473 of file TetrahedronSetTopologyModifier.cpp.
References sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedra(), sofa::component::topology::TetrahedronSetTopologyContainer::hasTetrahedronVertexShell(), m_container, sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedron, and sofa::component::topology::TetrahedronSetTopologyContainer::m_tetrahedronVertexShell.
Referenced by renumberPoints().
TetrahedronSetTopologyContainer* sofa::component::topology::TetrahedronSetTopologyModifier::m_container [private] |
Reimplemented from sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 195 of file TetrahedronSetTopologyModifier.h.
Referenced by addEdgesProcess(), addPointsProcess(), addTetrahedronProcess(), addTrianglesProcess(), init(), removeEdgesProcess(), removePointsProcess(), removeTetrahedra(), removeTetrahedraProcess(), removeTrianglesProcess(), renumberPoints(), and renumberPointsProcess().
1.5.7.1