SOFA API  1c8b807d
Open source framework for multi-physics simuation
sofa::core::topology Namespace Reference

Classes

class  DefaultMeshTopologyLoader
 
class  BaseMeshTopology
 
class  GeometryAlgorithms
 
class  TopologyModifier
 
class  TopologyContainer
 
class  BaseTopologyData
 
class  BaseTopologyObject
 
class  TopologicalMapping
 This Interface is a new kind of Mapping, called TopologicalMapping, which converts an INPUT TOPOLOGY to an OUTPUT TOPOLOGY (both topologies are of type BaseTopology) More...
 
class  Topology
 
struct  TopologyElemID
 Topology identification of a primitive element. More...
 
struct  PointAncestorElem
 Topology change information related to the ancestor topology element of a point. More...
 
struct  ElemAncestorElem
 Topology change information related to the ancestor topology element of an edge. More...
 
struct  TopologyChangeElementInfo
 
struct  TopologyChangeElementInfo< Topology::Point >
 
struct  TopologyChangeElementInfo< Topology::Edge >
 
struct  TopologyChangeElementInfo< Topology::Triangle >
 
struct  TopologyChangeElementInfo< Topology::Quad >
 
struct  TopologyChangeElementInfo< Topology::Tetrahedron >
 
struct  TopologyChangeElementInfo< Topology::Hexahedron >
 
class  TopologyChange
 Base class to indicate a topology change occurred. More...
 
class  EndingEvent
 
class  PointsIndicesSwap
 
class  PointsAdded
 
class  PointsRemoved
 
class  PointsRenumbering
 
class  PointsMoved
 
class  EdgesIndicesSwap
 
class  EdgesAdded
 
class  EdgesRemoved
 
class  EdgesMoved_Removing
 
class  EdgesMoved_Adding
 
class  EdgesRenumbering
 
class  TrianglesIndicesSwap
 
class  TrianglesAdded
 
class  TrianglesRemoved
 
class  TrianglesMoved_Removing
 
class  TrianglesMoved_Adding
 
class  TrianglesRenumbering
 
class  QuadsIndicesSwap
 
class  QuadsAdded
 
class  QuadsRemoved
 
class  QuadsMoved_Removing
 
class  QuadsMoved_Adding
 
class  QuadsRenumbering
 
class  TetrahedraIndicesSwap
 
class  TetrahedraAdded
 
class  TetrahedraRemoved
 
class  TetrahedraMoved_Removing
 
class  TetrahedraMoved_Adding
 
class  TetrahedraRenumbering
 
class  HexahedraIndicesSwap
 
class  HexahedraAdded
 
class  HexahedraRemoved
 
class  HexahedraMoved_Removing
 
class  HexahedraMoved_Adding
 
class  HexahedraRenumbering
 
class  TopologyData
 A class for storing topology related data. Automatically manages topology changes. More...
 
class  TopologyDataHandler
 
class  TopologyHandler
 
class  TopologySubsetData
 A class for storing element related data. Automatically manages topology changes. More...
 
class  TopologySubsetIndices
 A class for storing point indices. Automatically manages topological changes on Point. More...
 

Typedefs

typedef Topology::Point Point
 
typedef Topology::Edge Edge
 
typedef Topology::Triangle Triangle
 
typedef Topology::Quad Quad
 
typedef Topology::Tetrahedron Tetrahedron
 
typedef Topology::Hexahedron Hexahedron
 
typedef ElemAncestorElem< 2 > EdgeAncestorElem
 
typedef ElemAncestorElem< 3 > TriangleAncestorElem
 
typedef ElemAncestorElem< 4 > QuadAncestorElem
 
typedef ElemAncestorElem< 4 > TetrahedronAncestorElem
 
typedef ElemAncestorElem< 8 > HexahedronAncestorElem
 
template<class VecT >
using PointData = TopologyData< core::topology::BaseMeshTopology::Point, VecT >
 
template<class VecT >
using EdgeData = TopologyData< core::topology::BaseMeshTopology::Edge, VecT >
 
template<class VecT >
using TriangleData = TopologyData< core::topology::BaseMeshTopology::Triangle, VecT >
 
template<class VecT >
using QuadData = TopologyData< core::topology::BaseMeshTopology::Quad, VecT >
 
template<class VecT >
using TetrahedronData = TopologyData< core::topology::BaseMeshTopology::Tetrahedron, VecT >
 
template<class VecT >
using HexahedronData = TopologyData< core::topology::BaseMeshTopology::Hexahedron, VecT >
 
template<class VecT >
using PointSubsetData = TopologySubsetData< core::topology::BaseMeshTopology::Point, VecT >
 
template<class VecT >
using EdgeSubsetData = TopologySubsetData< core::topology::BaseMeshTopology::Edge, VecT >
 
template<class VecT >
using TriangleSubsetData = TopologySubsetData< core::topology::BaseMeshTopology::Triangle, VecT >
 
template<class VecT >
using QuadSubsetData = TopologySubsetData< core::topology::BaseMeshTopology::Quad, VecT >
 
template<class VecT >
using TetrahedronSubsetData = TopologySubsetData< core::topology::BaseMeshTopology::Tetrahedron, VecT >
 
template<class VecT >
using HexahedronSubsetData = TopologySubsetData< core::topology::BaseMeshTopology::Hexahedron, VecT >
 

Enumerations

enum  TopologyChangeType {
  BASE , ENDING_EVENT , POINTSINDICESSWAP , POINTSADDED ,
  POINTSREMOVED , POINTSMOVED , POINTSRENUMBERING , EDGESINDICESSWAP ,
  EDGESADDED , EDGESREMOVED , EDGESMOVED_REMOVING , EDGESMOVED_ADDING ,
  EDGESRENUMBERING , TRIANGLESINDICESSWAP , TRIANGLESADDED , TRIANGLESREMOVED ,
  TRIANGLESMOVED_REMOVING , TRIANGLESMOVED_ADDING , TRIANGLESRENUMBERING , TETRAHEDRAINDICESSWAP ,
  TETRAHEDRAADDED , TETRAHEDRAREMOVED , TETRAHEDRAMOVED_REMOVING , TETRAHEDRAMOVED_ADDING ,
  TETRAHEDRARENUMBERING , QUADSINDICESSWAP , QUADSADDED , QUADSREMOVED ,
  QUADSMOVED_REMOVING , QUADSMOVED_ADDING , QUADSRENUMBERING , HEXAHEDRAINDICESSWAP ,
  HEXAHEDRAADDED , HEXAHEDRAREMOVED , HEXAHEDRAMOVED_REMOVING , HEXAHEDRAMOVED_ADDING ,
  HEXAHEDRARENUMBERING , TOPOLOGYCHANGE_LASTID
}
 The enumeration used to give unique identifiers to TopologyChange objects. More...
 

Functions

std::ostream & operator<< (std::ostream &out, const TopologyChange *t)
 
std::istream & operator>> (std::istream &in, TopologyChange *&t)
 Input (empty) stream. More...
 
std::istream & operator>> (std::istream &in, const TopologyChange *&)
 Input (empty) stream. More...
 
SOFA_CORE_API geometry::ElementType parseElementTypeFromString (const std::string &s)
 
SOFA_CORE_API std::string parseElementTypeToString (geometry::ElementType t)
 
SOFA_CORE_API TopologyChangeType parseTopologyChangeTypeFromString (const std::string &s)
 
SOFA_CORE_API std::string parseTopologyChangeTypeToString (TopologyChangeType t)
 
SOFA_CORE_API std::ostream & operator<< (std::ostream &out, const TopologyElemID &d)
 
SOFA_CORE_API std::istream & operator>> (std::istream &in, TopologyElemID &)
 
SOFA_CORE_API std::ostream & operator<< (std::ostream &out, const PointAncestorElem &d)
 
SOFA_CORE_API std::istream & operator>> (std::istream &in, PointAncestorElem &)
 
template<int NV>
SOFA_CORE_API std::ostream & operator<< (std::ostream &out, const ElemAncestorElem< NV > &d)
 
template<int NV>
SOFA_CORE_API std::istream & operator>> (std::istream &in, ElemAncestorElem< NV > &)
 
template SOFA_CORE_API std::ostream & operator<< (std::ostream &out, const ElemAncestorElem< 2 > &d)
 
template SOFA_CORE_API std::ostream & operator<< (std::ostream &out, const ElemAncestorElem< 3 > &d)
 
template SOFA_CORE_API std::ostream & operator<< (std::ostream &out, const ElemAncestorElem< 4 > &d)
 
template SOFA_CORE_API std::ostream & operator<< (std::ostream &out, const ElemAncestorElem< 8 > &d)
 

Variables

const unsigned int edgesInTetrahedronArray [6][2] = {{0,1}, {0,2}, {0,3}, {1,2}, {1,3}, {2,3}}
 List of pair of vertex indices (edge) in a tetrahedron. More...
 
const unsigned int trianglesOrientationInTetrahedronArray [4][3] = {{1,2,3}, {0,3,2}, {1,3,0}, {0,2,1}}
 List of 3 vertex indices (triangle) in a tetrahedron. More...
 
const unsigned int edgesInHexahedronArray [12][2] = {{0,1},{0,3},{0,4},{1,2},{1,5},{2,3},{2,6},{3,7},{4,5},{4,7},{5,6},{6,7}}
 List of pair of vertex indices (edge) in a hexahedron. More...
 
const unsigned int quadsOrientationInHexahedronArray [6][4] = {{0,3,2,1}, {4,5,6,7}, {0,1,5,4}, {1,2,6,5}, {2,3,7,6}, {3,0,4,7}}
 List of 4 vertex indices (quad) in a hexahedron. More...
 
const unsigned int verticesInHexahedronArray [2][2][2] = { {{0,4}, {3,7}}, {{1,5}, {2,6}} }
 
class SOFA_CORE_API TopologyChange
 
class SOFA_CORE_API EndingEvent
 
class SOFA_CORE_API PointsIndicesSwap
 
class SOFA_CORE_API PointsAdded
 
class SOFA_CORE_API PointsRemoved
 
class SOFA_CORE_API PointsMoved
 
class SOFA_CORE_API PointsRenumbering
 
class SOFA_CORE_API EdgesIndicesSwap
 
class SOFA_CORE_API EdgesAdded
 
class SOFA_CORE_API EdgesRemoved
 
class SOFA_CORE_API EdgesMoved_Removing
 
class SOFA_CORE_API EdgesMoved_Adding
 
class SOFA_CORE_API EdgesRenumbering
 
class SOFA_CORE_API TrianglesIndicesSwap
 
class SOFA_CORE_API TrianglesAdded
 
class SOFA_CORE_API TrianglesRemoved
 
class SOFA_CORE_API TrianglesMoved_Removing
 
class SOFA_CORE_API TrianglesMoved_Adding
 
class SOFA_CORE_API TrianglesRenumbering
 
class SOFA_CORE_API TetrahedraIndicesSwap
 
class SOFA_CORE_API TetrahedraAdded
 
class SOFA_CORE_API TetrahedraRemoved
 
class SOFA_CORE_API TetrahedraMoved_Removing
 
class SOFA_CORE_API TetrahedraMoved_Adding
 
class SOFA_CORE_API TetrahedraRenumbering
 
class SOFA_CORE_API QuadsIndicesSwap
 
class SOFA_CORE_API QuadsAdded
 
class SOFA_CORE_API QuadsRemoved
 
class SOFA_CORE_API QuadsMoved_Removing
 
class SOFA_CORE_API QuadsMoved_Adding
 
class SOFA_CORE_API QuadsRenumbering
 
class SOFA_CORE_API HexahedraIndicesSwap
 
class SOFA_CORE_API HexahedraAdded
 
class SOFA_CORE_API HexahedraRemoved
 
class SOFA_CORE_API HexahedraMoved_Removing
 
class SOFA_CORE_API HexahedraMoved_Adding
 
class SOFA_CORE_API HexahedraRenumbering
 

Typedef Documentation

◆ Edge

◆ EdgeAncestorElem

◆ EdgeData

◆ EdgeSubsetData

◆ Hexahedron

◆ HexahedronAncestorElem

◆ HexahedronData

◆ HexahedronSubsetData

◆ Point

◆ PointData

◆ PointSubsetData

◆ Quad

◆ QuadAncestorElem

◆ QuadData

◆ QuadSubsetData

◆ Tetrahedron

◆ TetrahedronAncestorElem

◆ TetrahedronData

◆ TetrahedronSubsetData

◆ Triangle

◆ TriangleAncestorElem

◆ TriangleData

◆ TriangleSubsetData

Enumeration Type Documentation

◆ TopologyChangeType

The enumeration used to give unique identifiers to TopologyChange objects.

Enumerator
BASE 

For TopologyChange class, should never be used.

ENDING_EVENT 

To notify the end for the current sequence of topological change events.

POINTSINDICESSWAP 

For PointsIndicesSwap class.

POINTSADDED 

For PointsAdded class.

POINTSREMOVED 

For PointsRemoved class.

POINTSMOVED 

For PointsMoved class.

POINTSRENUMBERING 

For PointsRenumbering class.

EDGESINDICESSWAP 

For EdgesIndicesSwap class.

EDGESADDED 

For EdgesAdded class.

EDGESREMOVED 

For EdgesRemoved class.

EDGESMOVED_REMOVING 

For EdgesMoved class (event before changing state).

EDGESMOVED_ADDING 

For EdgesMoved class.

EDGESRENUMBERING 

For EdgesRenumbering class.

TRIANGLESINDICESSWAP 

For TrianglesIndicesSwap class.

TRIANGLESADDED 

For TrianglesAdded class.

TRIANGLESREMOVED 

For TrianglesRemoved class.

TRIANGLESMOVED_REMOVING 

For TrianglesMoved class (event before changing state).

TRIANGLESMOVED_ADDING 

For TrianglesMoved class.

TRIANGLESRENUMBERING 

For TrianglesRenumbering class.

TETRAHEDRAINDICESSWAP 

For TetrahedraIndicesSwap class.

TETRAHEDRAADDED 

For TetrahedraAdded class.

TETRAHEDRAREMOVED 

For TetrahedraRemoved class.

TETRAHEDRAMOVED_REMOVING 

For TetrahedraMoved class (event before changing state).

TETRAHEDRAMOVED_ADDING 

For TetrahedraMoved class.

TETRAHEDRARENUMBERING 

For TetrahedraRenumbering class.

QUADSINDICESSWAP 

For QuadsIndicesSwap class.

QUADSADDED 

For QuadsAdded class.

QUADSREMOVED 

For QuadsRemoved class.

QUADSMOVED_REMOVING 

For QuadsMoved class (event before changing state).

QUADSMOVED_ADDING 

For QuadsMoved class.

QUADSRENUMBERING 

For QuadsRenumbering class.

HEXAHEDRAINDICESSWAP 

For HexahedraIndicesSwap class.

HEXAHEDRAADDED 

For HexahedraAdded class.

HEXAHEDRAREMOVED 

For HexahedraRemoved class.

HEXAHEDRAMOVED_REMOVING 

For HexahedraMoved class (event before changing state).

HEXAHEDRAMOVED_ADDING 

For HexahedraMoved class.

HEXAHEDRARENUMBERING 

For HexahedraRenumbering class.

TOPOLOGYCHANGE_LASTID 

user defined topology changes can start here

Function Documentation

◆ operator<<() [1/8]

template SOFA_CORE_API std::ostream& sofa::core::topology::operator<< ( std::ostream &  out,
const ElemAncestorElem< 2 > &  d 
)

◆ operator<<() [2/8]

template SOFA_CORE_API std::ostream& sofa::core::topology::operator<< ( std::ostream &  out,
const ElemAncestorElem< 3 > &  d 
)

◆ operator<<() [3/8]

template SOFA_CORE_API std::ostream& sofa::core::topology::operator<< ( std::ostream &  out,
const ElemAncestorElem< 4 > &  d 
)

◆ operator<<() [4/8]

template SOFA_CORE_API std::ostream& sofa::core::topology::operator<< ( std::ostream &  out,
const ElemAncestorElem< 8 > &  d 
)

◆ operator<<() [5/8]

template<int NV>
SOFA_CORE_API std::ostream & sofa::core::topology::operator<< ( std::ostream &  out,
const ElemAncestorElem< NV > &  d 
)

◆ operator<<() [6/8]

SOFA_CORE_API std::ostream & sofa::core::topology::operator<< ( std::ostream &  out,
const PointAncestorElem d 
)

◆ operator<<() [7/8]

SOFA_CORE_API std::ostream & sofa::core::topology::operator<< ( std::ostream &  out,
const TopologyChange t 
)

◆ operator<<() [8/8]

SOFA_CORE_API std::ostream & sofa::core::topology::operator<< ( std::ostream &  out,
const TopologyElemID d 
)

◆ operator>>() [1/5]

SOFA_CORE_API std::istream & sofa::core::topology::operator>> ( std::istream &  in,
const TopologyChange *&   
)

Input (empty) stream.

◆ operator>>() [2/5]

template<int NV>
SOFA_CORE_API std::istream & sofa::core::topology::operator>> ( std::istream &  in,
ElemAncestorElem< NV > &   
)

◆ operator>>() [3/5]

SOFA_CORE_API std::istream & sofa::core::topology::operator>> ( std::istream &  in,
PointAncestorElem  
)

◆ operator>>() [4/5]

SOFA_CORE_API std::istream & sofa::core::topology::operator>> ( std::istream &  in,
TopologyChange *&  t 
)

Input (empty) stream.

◆ operator>>() [5/5]

SOFA_CORE_API std::istream & sofa::core::topology::operator>> ( std::istream &  in,
TopologyElemID  
)

◆ parseElementTypeFromString()

SOFA_CORE_API geometry::ElementType sofa::core::topology::parseElementTypeFromString ( const std::string &  s)

◆ parseElementTypeToString()

SOFA_CORE_API std::string sofa::core::topology::parseElementTypeToString ( geometry::ElementType  t)

◆ parseTopologyChangeTypeFromString()

SOFA_CORE_API TopologyChangeType sofa::core::topology::parseTopologyChangeTypeFromString ( const std::string &  s)

◆ parseTopologyChangeTypeToString()

SOFA_CORE_API std::string sofa::core::topology::parseTopologyChangeTypeToString ( TopologyChangeType  t)

Variable Documentation

◆ EdgesAdded

class SOFA_CORE_API sofa::core::topology::EdgesAdded

◆ EdgesIndicesSwap

◆ edgesInHexahedronArray

SOFA_CORE_API const unsigned int sofa::core::topology::edgesInHexahedronArray = {{0,1},{0,3},{0,4},{1,2},{1,5},{2,3},{2,6},{3,7},{4,5},{4,7},{5,6},{6,7}}

List of pair of vertex indices (edge) in a hexahedron.

◆ edgesInTetrahedronArray

SOFA_CORE_API const unsigned int sofa::core::topology::edgesInTetrahedronArray = {{0,1}, {0,2}, {0,3}, {1,2}, {1,3}, {2,3}}

List of pair of vertex indices (edge) in a tetrahedron.

◆ EdgesMoved_Adding

◆ EdgesMoved_Removing

◆ EdgesRemoved

◆ EdgesRenumbering

◆ EndingEvent

class SOFA_CORE_API sofa::core::topology::EndingEvent

◆ HexahedraAdded

◆ HexahedraIndicesSwap

◆ HexahedraMoved_Adding

◆ HexahedraMoved_Removing

◆ HexahedraRemoved

◆ HexahedraRenumbering

◆ PointsAdded

class SOFA_CORE_API sofa::core::topology::PointsAdded

◆ PointsIndicesSwap

◆ PointsMoved

class SOFA_CORE_API sofa::core::topology::PointsMoved

◆ PointsRemoved

◆ PointsRenumbering

◆ QuadsAdded

class SOFA_CORE_API sofa::core::topology::QuadsAdded

◆ QuadsIndicesSwap

◆ QuadsMoved_Adding

◆ QuadsMoved_Removing

◆ quadsOrientationInHexahedronArray

SOFA_CORE_API const unsigned int sofa::core::topology::quadsOrientationInHexahedronArray = {{0,3,2,1}, {4,5,6,7}, {0,1,5,4}, {1,2,6,5}, {2,3,7,6}, {3,0,4,7}}

List of 4 vertex indices (quad) in a hexahedron.

◆ QuadsRemoved

◆ QuadsRenumbering

◆ TetrahedraAdded

◆ TetrahedraIndicesSwap

◆ TetrahedraMoved_Adding

◆ TetrahedraMoved_Removing

◆ TetrahedraRemoved

◆ TetrahedraRenumbering

◆ TopologyChange

◆ TrianglesAdded

◆ TrianglesIndicesSwap

◆ TrianglesMoved_Adding

◆ TrianglesMoved_Removing

◆ trianglesOrientationInTetrahedronArray

SOFA_CORE_API const unsigned int sofa::core::topology::trianglesOrientationInTetrahedronArray = {{1,2,3}, {0,3,2}, {1,3,0}, {0,2,1}}

List of 3 vertex indices (triangle) in a tetrahedron.

◆ TrianglesRemoved

◆ TrianglesRenumbering

◆ verticesInHexahedronArray

SOFA_CORE_API const unsigned int sofa::core::topology::verticesInHexahedronArray = { {{0,4}, {3,7}}, {{1,5}, {2,6}} }