#include <TopologicalMapping.h>


Public Types | |
| typedef BaseMeshTopology | In |
| Input Topology. | |
| typedef BaseMeshTopology | Out |
| Output Topology. | |
Public Member Functions | |
| TopologicalMapping (In *from, Out *to) | |
| virtual | ~TopologicalMapping () |
| In * | getFrom () |
| Specify the input and output topologies. | |
| Out * | getTo () |
| Accessor to the OUTPUT topology of the TopologicalMapping :. | |
| virtual void | updateTopologicalMapping ()=0 |
| Method called at each topological changes propagation which comes from the INPUT topology to adapt the OUTPUT topology :. | |
| const std::map< unsigned int, unsigned int > & | getGlob2LocMap () |
| Accessor to index maps :. | |
| const sofa::helper::vector < unsigned int > & | getLoc2GlobVec () |
| virtual unsigned int | getGlobIndex (unsigned int ind) |
| virtual unsigned int | getFromIndex (unsigned int) |
| const std::map< unsigned int, sofa::helper::vector< unsigned int > > & | getIn2OutMap () |
Protected Attributes | |
| In * | fromModel |
| Input source BaseTopology. | |
| Out * | toModel |
| Output target BaseTopology. | |
| sofa::helper::vector< unsigned int > | Loc2GlobVec |
| std::map< unsigned int, unsigned int > | Glob2LocMap |
| std::map< unsigned int, sofa::helper::vector< unsigned int > > | In2OutMap |
It first initializes the mesh of the output topology from the mesh of the input topology, and it creates the two Index Maps that maintain the correspondence between the indices of their common elements.
Then, at each propagation of topological changes, it translates the topological change events that are propagated from the INPUT topology into specific actions that call element adding or element removal methods on the OUTPUT topology, and it updates the Index Maps.
So, at each time step, the geometrical and adjacency information are consistent in both topologies.
Definition at line 61 of file TopologicalMapping.h.
| sofa::core::componentmodel::topology::TopologicalMapping::TopologicalMapping | ( | In * | from, | |
| Out * | to | |||
| ) | [inline] |
Definition at line 69 of file TopologicalMapping.h.
| virtual sofa::core::componentmodel::topology::TopologicalMapping::~TopologicalMapping | ( | ) | [inline, virtual] |
Definition at line 73 of file TopologicalMapping.h.
| In* sofa::core::componentmodel::topology::TopologicalMapping::getFrom | ( | ) | [inline] |
Specify the input and output topologies.
Accessor to the INPUT topology of the TopologicalMapping :
Definition at line 83 of file TopologicalMapping.h.
References fromModel.
Referenced by sofa::component::collision::CarvingManager::doCarve(), and sofa::component::collision::TopologicalChangeManager::removeItemsFromTriangleModel().
| virtual unsigned int sofa::core::componentmodel::topology::TopologicalMapping::getFromIndex | ( | unsigned int | ) | [inline, virtual] |
Reimplemented in sofa::component::topology::Edge2QuadTopologicalMapping, sofa::component::topology::Hexa2QuadTopologicalMapping, sofa::component::topology::Quad2TriangleTopologicalMapping, sofa::component::topology::Tetra2TriangleTopologicalMapping, and sofa::component::topology::Triangle2EdgeTopologicalMapping.
Definition at line 104 of file TopologicalMapping.h.
Referenced by sofa::component::collision::TopologicalChangeManager::removeItemsFromTriangleModel().
| const std::map<unsigned int, unsigned int>& sofa::core::componentmodel::topology::TopologicalMapping::getGlob2LocMap | ( | ) | [inline] |
Accessor to index maps :.
Definition at line 92 of file TopologicalMapping.h.
References Glob2LocMap.
| virtual unsigned int sofa::core::componentmodel::topology::TopologicalMapping::getGlobIndex | ( | unsigned int | ind | ) | [inline, virtual] |
Definition at line 95 of file TopologicalMapping.h.
References Loc2GlobVec.
Referenced by sofa::component::collision::CarvingManager::doCarve(), and sofa::component::collision::TopologicalChangeManager::removeItemsFromTriangleModel().
| const std::map<unsigned int, sofa::helper::vector<unsigned int> >& sofa::core::componentmodel::topology::TopologicalMapping::getIn2OutMap | ( | ) | [inline] |
| const sofa::helper::vector<unsigned int>& sofa::core::componentmodel::topology::TopologicalMapping::getLoc2GlobVec | ( | ) | [inline] |
| Out* sofa::core::componentmodel::topology::TopologicalMapping::getTo | ( | ) | [inline] |
Accessor to the OUTPUT topology of the TopologicalMapping :.
Definition at line 86 of file TopologicalMapping.h.
References toModel.
| virtual void sofa::core::componentmodel::topology::TopologicalMapping::updateTopologicalMapping | ( | ) | [pure virtual] |
Method called at each topological changes propagation which comes from the INPUT topology to adapt the OUTPUT topology :.
Implemented in sofa::component::topology::Edge2QuadTopologicalMapping, sofa::component::topology::Hexa2QuadTopologicalMapping, sofa::component::topology::Quad2TriangleTopologicalMapping, sofa::component::topology::Tetra2TriangleTopologicalMapping, and sofa::component::topology::Triangle2EdgeTopologicalMapping.
Referenced by sofa::simulation::TopologyChangeVisitor::processNodeTopDown().
Input source BaseTopology.
Definition at line 115 of file TopologicalMapping.h.
Referenced by getFrom(), sofa::component::topology::Triangle2EdgeTopologicalMapping::getFromIndex(), sofa::component::topology::Tetra2TriangleTopologicalMapping::getFromIndex(), sofa::component::topology::Hexa2QuadTopologicalMapping::getFromIndex(), sofa::component::topology::Triangle2EdgeTopologicalMapping::init(), sofa::component::topology::Tetra2TriangleTopologicalMapping::init(), sofa::component::topology::Quad2TriangleTopologicalMapping::init(), sofa::component::topology::Hexa2QuadTopologicalMapping::init(), 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::map<unsigned int, unsigned int> sofa::core::componentmodel::topology::TopologicalMapping::Glob2LocMap [protected] |
Definition at line 127 of file TopologicalMapping.h.
Referenced by getGlob2LocMap(), sofa::component::topology::Triangle2EdgeTopologicalMapping::init(), sofa::component::topology::Tetra2TriangleTopologicalMapping::init(), sofa::component::topology::Hexa2QuadTopologicalMapping::init(), sofa::component::topology::Triangle2EdgeTopologicalMapping::updateTopologicalMapping(), sofa::component::topology::Tetra2TriangleTopologicalMapping::updateTopologicalMapping(), and sofa::component::topology::Hexa2QuadTopologicalMapping::updateTopologicalMapping().
std::map<unsigned int, sofa::helper::vector<unsigned int> > sofa::core::componentmodel::topology::TopologicalMapping::In2OutMap [protected] |
Definition at line 129 of file TopologicalMapping.h.
Referenced by getIn2OutMap(), sofa::component::topology::Quad2TriangleTopologicalMapping::init(), sofa::component::topology::Quad2TriangleTopologicalMapping::updateTopologicalMapping(), and sofa::component::topology::Edge2QuadTopologicalMapping::updateTopologicalMapping().
sofa::helper::vector<unsigned int> sofa::core::componentmodel::topology::TopologicalMapping::Loc2GlobVec [protected] |
Definition at line 123 of file TopologicalMapping.h.
Referenced by getGlobIndex(), getLoc2GlobVec(), sofa::component::topology::Triangle2EdgeTopologicalMapping::init(), sofa::component::topology::Tetra2TriangleTopologicalMapping::init(), sofa::component::topology::Quad2TriangleTopologicalMapping::init(), sofa::component::topology::Hexa2QuadTopologicalMapping::init(), 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().
Output target BaseTopology.
Definition at line 117 of file TopologicalMapping.h.
Referenced by getTo(), sofa::component::topology::Triangle2EdgeTopologicalMapping::init(), sofa::component::topology::Tetra2TriangleTopologicalMapping::init(), sofa::component::topology::Quad2TriangleTopologicalMapping::init(), sofa::component::topology::Hexa2QuadTopologicalMapping::init(), 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().
1.5.7.1