#include <EdgeSetTopologyModifier.h>


Public Member Functions | |
| EdgeSetTopologyModifier () | |
| virtual | ~EdgeSetTopologyModifier () |
| virtual void | init () |
| Initialization method called at graph modification, during bottom-up traversal. | |
| virtual void | addEdgesWarning (const unsigned int nEdges) |
| Sends a message to warn that some edges were added in this topology. | |
| virtual 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. | |
| virtual 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) |
| Sends a message to warn that some edges were added in this topology. | |
| virtual 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 | addEdgeProcess (Edge e) |
| Add an edge. | |
| virtual void | addEdgesProcess (const sofa::helper::vector< Edge > &edges) |
| Add some edges to this topology. | |
| virtual void | removeEdgesWarning (sofa::helper::vector< unsigned int > &edges) |
| Sends a message to warn that some edges are about to be deleted. | |
| virtual void | removeEdgesProcess (const sofa::helper::vector< unsigned int > &indices, const bool removeIsolatedItems=false) |
| Effectively Remove a subset of edges. | |
| virtual void | swapEdgesProcess (const sofa::helper::vector< sofa::helper::vector< unsigned int > > &edgesPairs) |
| Swap the edges. | |
| virtual void | fuseEdgesProcess (const sofa::helper::vector< sofa::helper::vector< unsigned int > > &edgesPairs, const bool removeIsolatedPoints=true) |
| Fuse the edges. | |
| virtual void | splitEdgesProcess (sofa::helper::vector< unsigned int > &indices, const bool removeIsolatedPoints=true) |
| Split the edges. | |
| virtual void | splitEdgesProcess (sofa::helper::vector< unsigned int > &indices, const sofa::helper::vector< sofa::helper::vector< double > > &baryCoefs, const bool removeIsolatedPoints=true) |
| Split the 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 | removeEdges (sofa::helper::vector< unsigned int > &edges, const bool removeIsolatedPoints=true) |
| Remove a set of edges. | |
| 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. | |
| virtual void | addEdges (const sofa::helper::vector< Edge > &edges) |
| add a set of edges | |
| virtual void | addEdges (const sofa::helper::vector< Edge > &edges, const sofa::helper::vector< sofa::helper::vector< unsigned int > > &ancestors, const sofa::helper::vector< sofa::helper::vector< double > > &baryCoefs) |
| add a set of edges | |
| virtual void | swapEdges (const sofa::helper::vector< sofa::helper::vector< unsigned int > > &edgesPairs) |
| Swap a list of pair edges, replacing each edge pair ((p11, p12), (p21, p22)) by the edge pair ((p11, p21), (p12, p22)). | |
| virtual void | fuseEdges (const sofa::helper::vector< sofa::helper::vector< unsigned int > > &edgesPairs, const bool removeIsolatedPoints=true) |
| Fuse a list of pair edges, replacing each edge pair ((p11, p12), (p21, p22)) by one edge (p11, p22). | |
| virtual void | splitEdges (sofa::helper::vector< unsigned int > &indices, const bool removeIsolatedPoints=true) |
| Split an array of edges, replacing each edge (p1, p2) by two edges (p1, p3) and (p3, p2) where p3 is the new vertex On each edge, a vertex is created based on its barycentric coordinates. | |
| virtual void | splitEdges (sofa::helper::vector< unsigned int > &indices, const sofa::helper::vector< sofa::helper::vector< double > > &baryCoefs, const bool removeIsolatedPoints=true) |
| Split an array of edges, replacing each edge (p1, p2) by two edges (p1, p3) and (p3, p2) where p3 is the new vertex On each edge, a vertex is created based on its barycentric coordinates. | |
| virtual void | resortCuthillMckee (sofa::helper::vector< int > &inverse_permutation) |
| Gives the optimal vertex permutation according to the Reverse CuthillMckee algorithm (use BOOST GRAPH LIBRAIRY). | |
Private Attributes | |
| EdgeSetTopologyContainer * | m_container |
Definition at line 49 of file EdgeSetTopologyModifier.h.
| sofa::component::topology::EdgeSetTopologyModifier::EdgeSetTopologyModifier | ( | ) | [inline] |
Definition at line 52 of file EdgeSetTopologyModifier.h.
| virtual sofa::component::topology::EdgeSetTopologyModifier::~EdgeSetTopologyModifier | ( | ) | [inline, virtual] |
Definition at line 56 of file EdgeSetTopologyModifier.h.
| void sofa::component::topology::EdgeSetTopologyModifier::addEdgeProcess | ( | Edge | e | ) |
Add an edge.
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 70 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::getEdgeIndex(), sofa::component::topology::EdgeSetTopologyContainer::getEdgeVertexShellForModification(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdgeVertexShell(), m_container, and sofa::component::topology::EdgeSetTopologyContainer::m_edge.
Referenced by addEdgesProcess(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::init().
| void sofa::component::topology::EdgeSetTopologyModifier::addEdges | ( | const sofa::helper::vector< Edge > & | edges, | |
| const sofa::helper::vector< sofa::helper::vector< unsigned int > > & | ancestors, | |||
| const sofa::helper::vector< sofa::helper::vector< double > > & | baryCoefs | |||
| ) | [virtual] |
add a set of edges
| edges | an array of pair of vertex indices describing the edge to be created | |
| ancestors | for each edge to be created provides an array of edge ancestors (optional) | |
| baryCoefs | for each edge provides the barycentric coordinates (sum to 1) associated with each ancestor (optional) |
actually add edges in the topology container
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 621 of file EdgeSetTopologyModifier.cpp.
References addEdgesProcess(), addEdgesWarning(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), m_container, and sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges().
| void sofa::component::topology::EdgeSetTopologyModifier::addEdges | ( | const sofa::helper::vector< Edge > & | edges | ) | [virtual] |
add a set of edges
| edges | an array of pair of vertex indices describing the edge to be created |
actually add edges in the topology container
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 599 of file EdgeSetTopologyModifier.cpp.
References addEdgesProcess(), addEdgesWarning(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), m_container, and sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges().
| void sofa::component::topology::EdgeSetTopologyModifier::addEdgesProcess | ( | const sofa::helper::vector< Edge > & | edges | ) | [virtual] |
Add some edges to this topology.
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::ManifoldEdgeSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 109 of file EdgeSetTopologyModifier.cpp.
References addEdgeProcess().
Referenced by addEdges(), fuseEdgesProcess(), splitEdgesProcess(), swapEdgesProcess(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping().
| void sofa::component::topology::EdgeSetTopologyModifier::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 | |||
| ) | [virtual] |
Sends a message to warn that some edges were added in this topology.
Reimplemented in sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 147 of file EdgeSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
| void sofa::component::topology::EdgeSetTopologyModifier::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 | |||
| ) | [virtual] |
Sends a message to warn that some edges were added in this topology.
Definition at line 136 of file EdgeSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
| void sofa::component::topology::EdgeSetTopologyModifier::addEdgesWarning | ( | const unsigned int | nEdges, | |
| const sofa::helper::vector< Edge > & | edgesList, | |||
| const sofa::helper::vector< unsigned int > & | edgesIndexList | |||
| ) | [virtual] |
Sends a message to warn that some edges were added in this topology.
Reimplemented in sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 126 of file EdgeSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
| void sofa::component::topology::EdgeSetTopologyModifier::addEdgesWarning | ( | const unsigned int | nEdges | ) | [virtual] |
Sends a message to warn that some edges were added in this topology.
Definition at line 118 of file EdgeSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
Referenced by sofa::component::topology::ManifoldEdgeSetTopologyModifier::addEdges(), addEdges(), sofa::component::topology::QuadSetTopologyModifier::addQuadProcess(), fuseEdgesProcess(), splitEdgesProcess(), swapEdgesProcess(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping().
| void sofa::component::topology::EdgeSetTopologyModifier::addPointsProcess | ( | const unsigned int | nPoints | ) | [virtual] |
Add some points to this topology.
Reimplemented from sofa::component::topology::PointSetTopologyModifier.
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 237 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::PointSetTopologyContainer::getNbPoints(), sofa::component::topology::EdgeSetTopologyContainer::hasEdgeVertexShell(), m_container, and sofa::component::topology::EdgeSetTopologyContainer::m_edgeVertexShell.
Referenced by splitEdgesProcess(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping().
| void sofa::component::topology::EdgeSetTopologyModifier::fuseEdges | ( | const sofa::helper::vector< sofa::helper::vector< unsigned int > > & | edgesPairs, | |
| const bool | removeIsolatedPoints = true | |||
| ) | [virtual] |
Fuse a list of pair edges, replacing each edge pair ((p11, p12), (p21, p22)) by one edge (p11, p22).
| removeIsolatedPoints | if true isolated vertices are also removed |
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 651 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::checkTopology(), fuseEdgesProcess(), and m_container.
Referenced by sofa::component::controller::EdgeSetController< DataTypes >::modifyTopology().
| void sofa::component::topology::EdgeSetTopologyModifier::fuseEdgesProcess | ( | const sofa::helper::vector< sofa::helper::vector< unsigned int > > & | edgesPairs, | |
| const bool | removeIsolatedPoints = true | |||
| ) | [virtual] |
Fuse the edges.
| removeIsolatedItems | if true isolated vertices are also removed |
Definition at line 388 of file EdgeSetTopologyModifier.cpp.
References addEdgesProcess(), addEdgesWarning(), sofa::core::componentmodel::topology::BaseMeshTopology::getEdge(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeEdgesProcess(), and removeEdgesWarning().
Referenced by sofa::component::topology::ManifoldEdgeSetTopologyModifier::fuseEdges(), and fuseEdges().
| void sofa::component::topology::EdgeSetTopologyModifier::init | ( | void | ) | [virtual] |
Initialization method called at graph modification, during bottom-up traversal.
Reimplemented from sofa::component::topology::PointSetTopologyModifier.
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::ManifoldEdgeSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 64 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::PointSetTopologyModifier::init().
Referenced by sofa::component::topology::TriangleSetTopologyModifier::init(), sofa::component::topology::QuadSetTopologyModifier::init(), and sofa::component::topology::ManifoldEdgeSetTopologyModifier::init().
| void sofa::component::topology::EdgeSetTopologyModifier::removeEdges | ( | sofa::helper::vector< unsigned int > & | edges, | |
| const bool | removeIsolatedPoints = true | |||
| ) | [virtual] |
Remove a set of edges.
| edges | an array of edge indices to be removed (note that the array is not const since it needs to be sorted) |
add the topological changes in the queue
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 568 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::checkTopology(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeEdgesProcess(), and removeEdgesWarning().
Referenced by sofa::component::forcefield::VectorSpringForceField< DataTypes >::handleEvent(), removeItems(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping().
| void sofa::component::topology::EdgeSetTopologyModifier::removeEdgesProcess | ( | const sofa::helper::vector< unsigned int > & | indices, | |
| const bool | removeIsolatedItems = false | |||
| ) | [virtual] |
Effectively Remove a subset of edges.
Eventually remove isolated vertices
Elements corresponding to these edges are removed form the mechanical object's state vectors.
Important : some structures might need to be warned BEFORE the edges are actually deleted, so always use method removeEdgesWarning before calling removeEdgesProcess.
| removeIsolatedItems | if true isolated vertices are also removed |
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::ManifoldEdgeSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 170 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::createEdgeVertexShellArray(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdgeVertexShell(), m_container, sofa::component::topology::EdgeSetTopologyContainer::m_edge, sofa::component::topology::EdgeSetTopologyContainer::m_edgeVertexShell, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), sofa::helper::remove(), removePointsProcess(), and sofa::component::topology::PointSetTopologyModifier::removePointsWarning().
Referenced by fuseEdgesProcess(), removeEdges(), splitEdgesProcess(), and swapEdgesProcess().
| void sofa::component::topology::EdgeSetTopologyModifier::removeEdgesWarning | ( | sofa::helper::vector< unsigned int > & | edges | ) | [virtual] |
Sends a message to warn that some edges are about to be deleted.
Definition at line 159 of file EdgeSetTopologyModifier.cpp.
References sofa::core::componentmodel::topology::TopologyModifier::addTopologyChange().
Referenced by fuseEdgesProcess(), sofa::component::topology::ManifoldEdgeSetTopologyModifier::removeEdges(), removeEdges(), sofa::component::topology::HexahedronSetTopologyModifier::removeHexahedraProcess(), sofa::component::topology::QuadSetTopologyModifier::removeQuadsProcess(), sofa::component::topology::TetrahedronSetTopologyModifier::removeTetrahedraProcess(), sofa::component::topology::TriangleSetTopologyModifier::removeTrianglesProcess(), splitEdgesProcess(), and swapEdgesProcess().
| void sofa::component::topology::EdgeSetTopologyModifier::removeItems | ( | sofa::helper::vector< unsigned int > & | items | ) | [virtual] |
Generic method to remove a list of items.
Reimplemented from sofa::component::topology::PointSetTopologyModifier.
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::ManifoldEdgeSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 581 of file EdgeSetTopologyModifier.cpp.
References removeEdges().
| void sofa::component::topology::EdgeSetTopologyModifier::removePointsProcess | ( | sofa::helper::vector< unsigned int > & | indices, | |
| const bool | removeDOF = true | |||
| ) | [virtual] |
Remove a subset of points.
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 in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 246 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::createEdgeVertexShellArray(), sofa::component::topology::PointSetTopologyContainer::getNbPoints(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdgeVertexShell(), m_container, sofa::component::topology::EdgeSetTopologyContainer::m_edge, and sofa::component::topology::EdgeSetTopologyContainer::m_edgeVertexShell.
Referenced by removeEdgesProcess(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping().
| void sofa::component::topology::EdgeSetTopologyModifier::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::PointSetTopologyModifier.
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::ManifoldEdgeSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 586 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::checkTopology(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), renumberPointsProcess(), and sofa::component::topology::PointSetTopologyModifier::renumberPointsWarning().
Referenced by sofa::component::controller::EdgeSetController< DataTypes >::modifyTopology().
| void sofa::component::topology::EdgeSetTopologyModifier::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::PointSetTopologyModifier.
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 284 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::getEdgeVertexShellArray(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdgeVertexShell(), m_container, sofa::component::topology::EdgeSetTopologyContainer::m_edge, and sofa::component::topology::EdgeSetTopologyContainer::m_edgeVertexShell.
Referenced by sofa::component::topology::ManifoldEdgeSetTopologyModifier::renumberPoints(), renumberPoints(), and sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping().
| void sofa::component::topology::EdgeSetTopologyModifier::resortCuthillMckee | ( | sofa::helper::vector< int > & | inverse_permutation | ) | [virtual] |
Gives the optimal vertex permutation according to the Reverse CuthillMckee algorithm (use BOOST GRAPH LIBRAIRY).
Definition at line 673 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::getEdgeArray(), and m_container.
| void sofa::component::topology::EdgeSetTopologyModifier::splitEdges | ( | sofa::helper::vector< unsigned int > & | indices, | |
| const sofa::helper::vector< sofa::helper::vector< double > > & | baryCoefs, | |||
| const bool | removeIsolatedPoints = true | |||
| ) | [virtual] |
Split an array of edges, replacing each edge (p1, p2) by two edges (p1, p3) and (p3, p2) where p3 is the new vertex On each edge, a vertex is created based on its barycentric coordinates.
| removeIsolatedPoints | if true isolated vertices are also removed |
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 664 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::checkTopology(), m_container, and splitEdgesProcess().
| void sofa::component::topology::EdgeSetTopologyModifier::splitEdges | ( | sofa::helper::vector< unsigned int > & | indices, | |
| const bool | removeIsolatedPoints = true | |||
| ) | [virtual] |
Split an array of edges, replacing each edge (p1, p2) by two edges (p1, p3) and (p3, p2) where p3 is the new vertex On each edge, a vertex is created based on its barycentric coordinates.
| removeIsolatedPoints | if true isolated vertices are also removed |
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 657 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::checkTopology(), m_container, and splitEdgesProcess().
Referenced by sofa::component::controller::EdgeSetController< DataTypes >::modifyTopology().
| void sofa::component::topology::EdgeSetTopologyModifier::splitEdgesProcess | ( | sofa::helper::vector< unsigned int > & | indices, | |
| const sofa::helper::vector< sofa::helper::vector< double > > & | baryCoefs, | |||
| const bool | removeIsolatedPoints = true | |||
| ) | [virtual] |
Split the edges.
| removeIsolatedItems | if true isolated vertices are also removed |
Definition at line 514 of file EdgeSetTopologyModifier.cpp.
References addEdgesProcess(), addEdgesWarning(), addPointsProcess(), sofa::component::topology::PointSetTopologyModifier::addPointsWarning(), sofa::core::componentmodel::topology::BaseMeshTopology::getEdge(), sofa::component::topology::PointSetTopologyContainer::getNbPoints(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeEdgesProcess(), and removeEdgesWarning().
| void sofa::component::topology::EdgeSetTopologyModifier::splitEdgesProcess | ( | sofa::helper::vector< unsigned int > & | indices, | |
| const bool | removeIsolatedPoints = true | |||
| ) | [virtual] |
Split the edges.
| removeIsolatedItems | if true isolated vertices are also removed |
Definition at line 456 of file EdgeSetTopologyModifier.cpp.
References addEdgesProcess(), addEdgesWarning(), addPointsProcess(), sofa::component::topology::PointSetTopologyModifier::addPointsWarning(), sofa::core::componentmodel::topology::BaseMeshTopology::getEdge(), sofa::component::topology::PointSetTopologyContainer::getNbPoints(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeEdgesProcess(), and removeEdgesWarning().
Referenced by sofa::component::topology::ManifoldEdgeSetTopologyModifier::splitEdges(), and splitEdges().
| void sofa::component::topology::EdgeSetTopologyModifier::swapEdges | ( | const sofa::helper::vector< sofa::helper::vector< unsigned int > > & | edgesPairs | ) | [virtual] |
Swap a list of pair edges, replacing each edge pair ((p11, p12), (p21, p22)) by the edge pair ((p11, p21), (p12, p22)).
Reimplemented in sofa::component::topology::ManifoldEdgeSetTopologyModifier.
Definition at line 645 of file EdgeSetTopologyModifier.cpp.
References sofa::component::topology::EdgeSetTopologyContainer::checkTopology(), m_container, and swapEdgesProcess().
| void sofa::component::topology::EdgeSetTopologyModifier::swapEdgesProcess | ( | const sofa::helper::vector< sofa::helper::vector< unsigned int > > & | edgesPairs | ) | [virtual] |
Swap the edges.
Definition at line 324 of file EdgeSetTopologyModifier.cpp.
References addEdgesProcess(), addEdgesWarning(), sofa::core::componentmodel::topology::BaseMeshTopology::getEdge(), sofa::component::topology::EdgeSetTopologyContainer::getNumberOfEdges(), sofa::component::topology::EdgeSetTopologyContainer::hasEdges(), m_container, sofa::component::topology::PointSetTopologyModifier::propagateTopologicalChanges(), removeEdgesProcess(), and removeEdgesWarning().
Referenced by sofa::component::topology::ManifoldEdgeSetTopologyModifier::swapEdges(), and swapEdges().
Reimplemented from sofa::component::topology::PointSetTopologyModifier.
Reimplemented in sofa::component::topology::HexahedronSetTopologyModifier, sofa::component::topology::ManifoldEdgeSetTopologyModifier, sofa::component::topology::QuadSetTopologyModifier, sofa::component::topology::TetrahedronSetTopologyModifier, and sofa::component::topology::TriangleSetTopologyModifier.
Definition at line 241 of file EdgeSetTopologyModifier.h.
Referenced by addEdgeProcess(), addEdges(), addPointsProcess(), fuseEdges(), fuseEdgesProcess(), removeEdges(), removeEdgesProcess(), removePointsProcess(), renumberPoints(), renumberPointsProcess(), resortCuthillMckee(), splitEdges(), splitEdgesProcess(), swapEdges(), and swapEdgesProcess().
1.5.7.1