SOFA API  7352f41a
Open source framework for multi-physics simuation
sofa::component::topology::container::dynamic::TriangleSetTopologyContainer Class Reference

#include <TriangleSetTopologyContainer.h>

: Object that stores a set of triangles and provides access to each triangle and its edges and vertices More...

Inheritance diagram for sofa::component::topology::container::dynamic::TriangleSetTopologyContainer:

Detailed Description

: Object that stores a set of triangles and provides access to each triangle and its edges and vertices

Public Attributes

Data< sofa::type::vector< Triangle > > d_triangle
 provides the set of triangles. More...
 
- Public Attributes inherited from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer
Data< sofa::type::vector< Edge > > d_edge
 List of edge indices. More...
 
Data< boolm_checkConnexity
 It true, will check the connexity of the mesh. More...
 
- Public Attributes inherited from sofa::component::topology::container::dynamic::PointSetTopologyContainer
Data< InitTypes::VecCoordd_initPoints
 Initial position of points
More...
 
Data< boold_checkTopology
 Bool parameter to activate internal topology checks in several methods. More...
 
- Public Attributes inherited from sofa::core::topology::TopologyContainer
Data< std::list< const TopologyChange * > > m_changeList
 Array of topology modifications that have already occured (addition) or will occur next (deletion). More...
 
Data< std::list< const TopologyChange * > > m_stateChangeList
 Array of state modifications that have already occured (addition) or will occur next (deletion). More...
 
std::array< std::set< TopologyHandler * >, sofa::geometry::NumberOfElementTypem_topologyHandlerListPerElement {}
 List of topology engines which will interact on all topological Data. More...
 
- Public Attributes inherited from sofa::core::objectmodel::BaseObject
Data< boolf_listening
 if true, handle the events, otherwise ignore the events More...
 
- Public Attributes inherited from sofa::core::objectmodel::Base
std::vector< lifecycle::DeprecatedData * > m_oldAttributes
 
Data< int > d_messageLogCount
 
Data< std::string > name
 Name of the object. More...
 
Data< boolf_printLog
 if true, emits extra messages at runtime. More...
 
Data< sofa::core::objectmodel::TagSetf_tags
 list of the subsets the objet belongs to More...
 
Data< sofa::type::BoundingBoxf_bbox
 this object bounding box More...
 
Data< sofa::core::objectmodel::ComponentStated_componentState
 the object state More...
 
std::string m_definitionSourceFileName {""}
 
int m_definitionSourceFilePos {-1}
 
std::string m_instanciationSourceFileName {""}
 
int m_instanciationSourceFilePos {-1}
 

Protected Attributes

sofa::type::vector< EdgesInTrianglem_edgesInTriangle
 provides the 3 edges in each triangle. More...
 
sofa::type::vector< TrianglesAroundVertexm_trianglesAroundVertex
 for each vertex provides the set of triangles adjacent to that vertex. More...
 
sofa::type::vector< TrianglesAroundEdgem_trianglesAroundEdge
 for each edge provides the set of triangles adjacent to that edge. More...
 
sofa::type::vector< TriangleIDm_trianglesOnBorder
 Set of triangle indices on topology border. More...
 
sofa::type::vector< EdgeIDm_edgesOnBorder
 Set of edge indices on topology border. More...
 
sofa::type::vector< PointIDm_pointsOnBorder
 Set of point indices on topology border. More...
 
bool m_triangleTopologyDirty = false
 Boolean used to know if the topology Data of this container is dirty. More...
 
- Protected Attributes inherited from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer
sofa::type::vector< EdgesAroundVertexm_edgesAroundVertex
 
bool m_edgeTopologyDirty = false
 Boolean used to know if the topology Data of this container is dirty. More...
 
- Protected Attributes inherited from sofa::component::topology::container::dynamic::PointSetTopologyContainer
bool m_pointTopologyDirty = false
 Boolean used to know if the topology Data of this container is dirty. More...
 
- Protected Attributes inherited from sofa::core::objectmodel::BaseObject
SingleLink< BaseObject, BaseContext, BaseLink::FLAG_DOUBLELINKl_context
 
LinkSlaves l_slaves
 
SingleLink< BaseObject, BaseObject, BaseLink::FLAG_DOUBLELINKl_master
 
- Protected Attributes inherited from sofa::core::objectmodel::Base
std::map< std::string, sofa::core::DataTrackerCallbackm_internalEngine
 
VecData m_vecData
 List of fields (Data instances) More...
 
MapData m_aliasData
 name -> Data multi-map (includes names and aliases) More...
 
VecLink m_vecLink
 List of links. More...
 
MapLink m_aliasLink
 name -> Link multi-map (includes names and aliases) More...
 
- Protected Attributes inherited from sofa::core::topology::BaseMeshTopology
sofa::core::objectmodel::DataFileName fileTopology
 

Public Member Functions

 SOFA_CLASS (TriangleSetTopologyContainer, EdgeSetTopologyContainer)
 
void init () override
 Initialization method called at graph creation and modification, during top-down traversal. More...
 
void reinit () override
 Update method called when variables used in precomputation are modified. More...
 
bool hasTriangles () const
 
bool hasEdgesInTriangle () const
 
bool hasTrianglesAroundVertex () const
 
bool hasTrianglesAroundEdge () const
 
bool hasBorderElementLists () const
 
void createElementsOnBorder ()
 : Create element lists which are on topology border: More...
 
void reOrientateTriangle (TriangleID id) override
 Will change order of vertices in triangle: t[1] <=> t[2]. More...
 
sofa::geometry::ElementType getTopologyType () const override
 Returns the type of the topology. More...
 
bool linkTopologyHandlerToData (core::topology::TopologyHandler *topologyHandler, sofa::geometry::ElementType elementType) override
 
bool unlinkTopologyHandlerToData (core::topology::TopologyHandler *topologyHandler, sofa::geometry::ElementType elementType) override
 
void clear () override
 
void addEdge (Index, Index) override
 
void addTriangle (Index a, Index b, Index c) override
 
const SeqTrianglesgetTriangles () override
 Returns the quad array. More...
 
const Triangle getTriangle (TriangleID i) override
 Returns the triangle corresponding to the TriangleID i. More...
 
TriangleID getTriangleIndex (PointID v1, PointID v2, PointID v3) override
 Returns the index of the triangle given three vertex indices; returns InvalidID if no triangle exists. More...
 
const EdgesInTrianglegetEdgesInTriangle (TriangleID id) override
 Returns the 3 edges adjacent to a given triangle. More...
 
const TrianglesAroundVertexgetTrianglesAroundVertex (PointID id) override
 Returns the set of triangles adjacent to a given vertex. More...
 
const TrianglesAroundEdgegetTrianglesAroundEdge (EdgeID id) override
 Returns the set of triangles adjacent to a given edge. More...
 
int getVertexIndexInTriangle (const Triangle &t, PointID vertexIndex) const override
 Returns the index (either 0, 1 ,2) of the vertex whose global index is vertexIndex. More...
 
int getEdgeIndexInTriangle (const EdgesInTriangle &t, EdgeID edgeIndex) const override
 Returns the index (either 0, 1 ,2) of the edge whose global index is edgeIndex. More...
 
PointID getOtherPointInTriangle (const Triangle &t, PointID p1, PointID p2) const
 Returns the global point index of third point of a triangle given the 2 others. More...
 
void initTopology ()
 
bool checkTopology () const override
 Checks if the topology is coherent. More...
 
Size getNumberOfTriangles () const
 Returns the number of triangles in this topology. The difference to getNbTriangles() is that this method does not generate the triangle array if it does not exist. More...
 
Size getNumberOfElements () const override
 Returns the number of topological element of the current topology. This function avoids to know which topological container is in used. More...
 
const sofa::type::vector< Triangle > & getTriangleArray ()
 Returns the Triangle array. More...
 
const sofa::type::vector< EdgesInTriangle > & getEdgesInTriangleArray ()
 Returns the EdgesInTriangle array (i.e. provide the 3 edge indices for each triangle). More...
 
const sofa::type::vector< TrianglesAroundVertex > & getTrianglesAroundVertexArray ()
 Returns the TrianglesAroundVertex array (i.e. provide the triangles indices adjacent to each vertex). More...
 
const sofa::type::vector< TrianglesAroundEdge > & getTrianglesAroundEdgeArray ()
 Returns the TrianglesAroundEdge array (i.e. provide the triangles indices adjacent to each edge). More...
 
const sofa::type::vector< TriangleID > & getTrianglesOnBorder () override
 : Return a list of TriangleID which are on a border. More...
 
const sofa::type::vector< EdgeID > & getEdgesOnBorder () override
 : Return a list of EdgeID which are on a border. More...
 
const sofa::type::vector< PointID > & getPointsOnBorder () override
 : Return a vector of PointID which are on a border. More...
 
bool checkConnexity () override
 Checks if the topology has only one connected component. More...
 
Size getNumberOfConnectedComponent () override
 Returns the number of connected component. More...
 
const VecTriangleID getConnectedElement (TriangleID elem) override
 Returns the set of element indices connected to an input one (i.e. which can be reached by topological links) More...
 
const VecTriangleID getElementAroundElement (TriangleID elem) override
 Returns the set of element indices adjacent to a given element (i.e. sharing a link) More...
 
const VecTriangleID getElementAroundElements (VecTriangleID elems) override
 Returns the set of element indices adjacent to a given list of elements (i.e. sharing a link) More...
 
- Public Member Functions inherited from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer
 SOFA_CLASS (EdgeSetTopologyContainer, PointSetTopologyContainer)
 
const SeqEdgesgetEdges () override
 Returns the edge array. More...
 
const Edge getEdge (EdgeID i) override
 Get an Edge from its ID. More...
 
EdgeID getEdgeIndex (PointID v1, PointID v2) override
 Get the index of the edge joining two vertices. More...
 
const EdgesAroundVertexgetEdgesAroundVertex (PointID id) override
 Get the indices of the edges around a vertex. More...
 
void initTopology ()
 
Size getNumberOfEdges () const
 Returns the number of edges in this topology. More...
 
virtual int getNumberConnectedComponents (sofa::type::vector< EdgeID > &components)
 Returns the number of connected components from the graph containing all edges and give, for each vertex, which component it belongs to (use BOOST GRAPH LIBRAIRY) More...
 
virtual const sofa::type::vector< Edge > & getEdgeArray ()
 Returns the Edge array. More...
 
virtual const sofa::type::vector< sofa::type::vector< EdgeID > > & getEdgesAroundVertexArray ()
 Returns the list of Edge indices around each DOF. More...
 
bool hasEdges () const
 
bool hasEdgesAroundVertex () const
 
const VecEdgeID getConnectedElement (EdgeID elem) override
 Returns the set of element indices connected to an input one (i.e. which can be reached by topological links) More...
 
const VecEdgeID getElementAroundElement (EdgeID elem) override
 Returns the set of element indices adjacent to a given element (i.e. sharing a link) More...
 
const VecEdgeID getElementAroundElements (VecEdgeID elems) override
 Returns the set of element indices adjacent to a given list of elements (i.e. sharing a link) More...
 
- Public Member Functions inherited from sofa::component::topology::container::dynamic::PointSetTopologyContainer
 SOFA_CLASS (PointSetTopologyContainer, core::topology::TopologyContainer)
 
void addPoint (SReal px, SReal py, SReal pz) override
 
Size getNbPoints () const override
 Returns the number of vertices in this topology. More...
 
void setNbPoints (Size n) override
 Set the number of vertices in this topology. More...
 
bool hasPos () const override
 check if vertices in this topology have positions. More...
 
SReal getPX (Index i) const override
 Returns the X coordinate of the ith DOF. More...
 
SReal getPY (Index i) const override
 Returns the Y coordinate of the ith DOF. More...
 
SReal getPZ (Index i) const override
 Returns the Z coordinate of the ith DOF. More...
 
void addPoint ()
 add one DOF in this topology (simply increment the number of DOF) More...
 
void addPoints (const Size nPoints)
 add a number of DOFs in this topology (simply increase the number of DOF according to this parameter) More...
 
void removePoint ()
 remove one DOF in this topology (simply decrement the number of DOF) More...
 
void removePoints (const Size nPoints)
 remove a number of DOFs in this topology (simply decrease the number of DOF according to this parameter) More...
 
- Public Member Functions inherited from sofa::core::topology::TopologyContainer
 SOFA_CLASS2 (TopologyContainer, BaseTopologyObject, BaseMeshTopology)
 
void init () override
 Initialization method called at graph creation and modification, during top-down traversal. More...
 
const SeqEdgesgetEdges () override
 
const SeqTrianglesgetTriangles () override
 
const SeqQuadsgetQuads () override
 
const SeqTetrahedragetTetrahedra () override
 
const SeqHexahedragetHexahedra () override
 
int getRevision () const override
 Get the current revision of this mesh. More...
 
const std::list< const TopologyChange * > & getChangeList () const
 
const std::list< const TopologyChange * > & getStateChangeList () const
 
const Data< std::list< const TopologyChange * > > & getDataChangeList () const
 
const Data< std::list< const TopologyChange * > > & getDataStateChangeList () const
 
virtual void addTopologyChange (const TopologyChange *topologyChange)
 Adds a TopologyChange to the list. More...
 
virtual void addStateChange (const TopologyChange *topologyChange)
 Adds a StateChange to the list. More...
 
std::list< const TopologyChange * >::const_iterator beginChange () const override
 Provides an iterator on the first element in the list of TopologyChange objects. More...
 
std::list< const TopologyChange * >::const_iterator endChange () const override
 Provides an iterator on the last element in the list of TopologyChange objects. More...
 
std::list< const TopologyChange * >::const_iterator beginStateChange () const override
 Provides an iterator on the first element in the list of StateChange objects. More...
 
std::list< const TopologyChange * >::const_iterator endStateChange () const override
 Provides an iterator on the last element in the list of StateChange objects. More...
 
virtual void resetTopologyChangeList ()
 Free each Topology changes in the list and remove them from the list. More...
 
virtual void resetStateChangeList ()
 Free each State changes in the list and remove them from the list. More...
 
const std::set< TopologyHandler * > & getTopologyHandlerList (sofa::geometry::ElementType elementType) const
 
bool addTopologyHandler (TopologyHandler *_TopologyHandler, sofa::geometry::ElementType elementType)
 Adds a TopologyHandler, linked to a certain type of Element. More...
 
void removeTopologyHandler (TopologyHandler *_TopologyHandler, sofa::geometry::ElementType elementType)
 Remove a TopologyHandler, linked to a certain type of Element. More...
 
void resetTopologyHandlerList ()
 Free each Topology changes in the list and remove them from the list. More...
 
bool insertInNode (objectmodel::BaseNode *node) override
 
bool removeInNode (objectmodel::BaseNode *node) override
 
- Public Member Functions inherited from sofa::core::topology::BaseTopologyObject
 SOFA_CLASS (BaseTopologyObject, core::objectmodel::BaseObject)
 
bool insertInNode (objectmodel::BaseNode *node) override
 
bool removeInNode (objectmodel::BaseNode *node) override
 
- Public Member Functions inherited from sofa::core::objectmodel::BaseObject
 SOFA_CLASS (BaseObject, Base)
 
virtual void draw (const core::visual::VisualParams *)
 Render internal data of this object, for debugging purposes. More...
 
virtual void computeBBox (const core::ExecParams *, bool=false)
 
void setSrc (const std::string &v, std::vector< std::string > *attributeList=nullptr)
 Sets a source Object and parses it to collect dependent Data. More...
 
void setSrc (const std::string &v, const BaseObject *loader, std::vector< std::string > *attributeList=nullptr)
 
BasefindLinkDestClass (const BaseClass *destType, const std::string &path, const BaseLink *link) override
 
virtual std::string getPathName () const override
 Return the full path name of this object. More...
 
SReal getTime () const
 Current time. More...
 
const BaseContextgetContext () const
 
BaseContextgetContext ()
 
const BaseObjectgetMaster () const
 
BaseObjectgetMaster ()
 
const VecSlavesgetSlaves () const
 
BaseObjectgetSlave (const std::string &name) const
 
virtual void addSlave (BaseObject::SPtr s)
 
virtual void removeSlave (BaseObject::SPtr s)
 
virtual void handleEvent (Event *)
 Handle an event. More...
 
virtual void handleTopologyChange ()
 
virtual void handleTopologyChange (core::topology::Topology *t)
 
void parse (BaseObjectDescription *arg) override
 Parse the given description to assign values to this object's fields and potentially other parameters. More...
 
virtual void bwdInit ()
 Initialization method called at graph creation and modification, during bottom-up traversal. More...
 
void updateInternal ()
 Update method called when variables (used to compute other internal variables) are modified. More...
 
virtual void storeResetState ()
 Save the initial state for later uses in reset() More...
 
virtual void reset ()
 Reset to initial state. More...
 
virtual void cleanup ()
 
- Public Member Functions inherited from sofa::core::objectmodel::Base
virtual const BaseClassgetClass () const
 
void addDeprecatedAttribute (lifecycle::DeprecatedData *attribute)
 
void addUpdateCallback (const std::string &name, std::initializer_list< BaseData * > inputs, std::function< sofa::core::objectmodel::ComponentState(const DataTracker &)> function, std::initializer_list< BaseData * > outputs)
 
void addOutputsToCallback (const std::string &name, std::initializer_list< BaseData * > outputs)
 
const std::string & getName () const
 Accessor to the object name. More...
 
void setName (const std::string &n)
 Set the name of this object. More...
 
void setName (const std::string &n, int counter)
 Set the name of this object, adding an integer counter. More...
 
std::string getTypeName () const
 Get the type name of this object (i.e. class and template types) More...
 
virtual std::string getClassName () const
 Get the class name of this object. More...
 
virtual std::string getTemplateName () const final
 Get the template type names (if any) used to instantiate this object. More...
 
std::string getNameSpaceName () const
 Get the template type names (if any) used to instantiate this object. More...
 
void setDefinitionSourceFileName (const std::string &sourceFileName)
 Set the source filename (where the component is implemented) More...
 
const std::string & getDefinitionSourceFileName () const
 Get the source filename (where the component is implemented) More...
 
void setDefinitionSourceFilePos (const int)
 Set the source location (where the component is implemented) More...
 
int getDefinitionSourceFilePos () const
 Get the source location (where the component is implemented) More...
 
void setInstanciationSourceFileName (const std::string &sourceFileName)
 
const std::string & getInstanciationSourceFileName () const
 
void setInstanciationSourceFilePos (const int)
 
int getInstanciationSourceFilePos () const
 
void addMessage (const sofa::helper::logging::Message &m) const
 
size_t countLoggedMessages (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
const std::deque< sofa::helper::logging::Message > & getLoggedMessages () const
 
const std::string getLoggedMessagesAsString (sofa::helper::logging::Message::TypeSet t=sofa::helper::logging::Message::AnyTypes) const
 
void clearLoggedMessages () const
 
bool notMuted () const
 
const sofa::core::objectmodel::TagSetgetTags () const
 Represents the subsets the object belongs to. More...
 
bool hasTag (Tag t) const
 Return true if the object belong to the given subset. More...
 
void addTag (Tag t)
 Add a subset qualification to the object. More...
 
void removeTag (Tag t)
 Remove a subset qualification to the object. More...
 
ComponentState getComponentState () const
 
bool isComponentStateValid () const
 
virtual bool parseField (const std::string &attribute, const std::string &value)
 Assign one field value (Data or Link) More...
 
virtual bool hasField (const std::string &attribute) const
 Check if a given Data field or Link exists. More...
 
void parseFields (const std::list< std::string > &str)
 Assign the field values stored in the given list of name + value pairs of strings. More...
 
virtual void parseFields (const std::map< std::string, std::string * > &str)
 Assign the field values stored in the given map of name -> value pairs. More...
 
void writeDatas (std::map< std::string, std::string * > &str)
 Write the current field values to the given map of name -> value pairs. More...
 
void writeDatas (std::ostream &out, const std::string &separator=" ")
 
BaseDatafindData (const std::string &name) const
 
std::vector< BaseData * > findGlobalField (const std::string &name) const
 Find data fields given a name: several can be found as we look into the alias map. More...
 
BaseLinkfindLink (const std::string &name) const
 
std::vector< BaseLink * > findLinks (const std::string &name) const
 Find link fields given a name: several can be found as we look into the alias map. More...
 
virtual void updateLinks (bool logErrors=true)
 Update pointers in case the pointed-to objects have appeared. More...
 
template<class T >
BaseData::BaseInitData initData (::sofa::core::objectmodel::Data< T > *field, const char *name, const char *help, ::sofa::core::objectmodel::BaseData::DataFlags dataflags)
 Helper method used to initialize a data field containing a value of type T. More...
 
template<class T >
BaseData::BaseInitData initData (Data< T > *field, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 Helper method used to initialize a data field containing a value of type T. More...
 
template<class T >
Data< T >::InitData initData (Data< T > *field, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 Helper method used to initialize a data field containing a value of type T. More...
 
void addData (BaseData *f, const std::string &name)
 
void addData (BaseData *f)
 
void removeData (BaseData *f)
 Remove a data field. More...
 
void addAlias (BaseData *field, const char *alias)
 Add an alias to a Data. More...
 
void addLink (BaseLink *l)
 Add a link. More...
 
void addAlias (BaseLink *link, const char *alias)
 Add an alias to a Link. More...
 
const VecDatagetDataFields () const
 Accessor to the vector containing all the fields of this object. More...
 
const MapDatagetDataAliases () const
 Accessor to the map containing all the aliases of this object. More...
 
const VecLinkgetLinks () const
 Accessor to the vector containing all the fields of this object. More...
 
const MapLinkgetLinkAliases () const
 Accessor to the map containing all the aliases of this object. More...
 
virtual bool findDataLinkDest (BaseData *&ptr, const std::string &path, const BaseLink *link)
 
template<class T >
bool findLinkDest (T *&ptr, const std::string &path, const BaseLink *link)
 
- Public Member Functions inherited from sofa::core::topology::BaseMeshTopology
 SOFA_ABSTRACT_CLASS (BaseMeshTopology, core::topology::Topology)
 
virtual bool load (const char *filename)
 
virtual std::string getFilename () const
 
virtual EdgeID getEdgeIndex (PointID v1, PointID v2)
 Returns the index of the edge joining vertex v1 and vertex v2; returns InvalidID if no edge exists. More...
 
virtual QuadID getQuadIndex (PointID v1, PointID v2, PointID v3, PointID v4)
 Returns the index of the quad given four vertex indices; returns InvalidID if no quad exists. More...
 
virtual TetrahedronID getTetrahedronIndex (PointID v1, PointID v2, PointID v3, PointID v4)
 Returns the index of the tetrahedron given four vertex indices; returns InvalidID if no tetrahedron exists. More...
 
virtual HexahedronID getHexahedronIndex (PointID v1, PointID v2, PointID v3, PointID v4, PointID v5, PointID v6, PointID v7, PointID v8)
 Returns the index of the hexahedron given eight vertex indices; returns InvalidID if no hexahedron exists. More...
 
virtual int getVertexIndexInQuad (const Quad &t, PointID vertexIndex) const
 
virtual int getEdgeIndexInQuad (const EdgesInQuad &t, EdgeID edgeIndex) const
 
virtual int getVertexIndexInTetrahedron (const Tetra &t, PointID vertexIndex) const
 
virtual int getEdgeIndexInTetrahedron (const EdgesInTetrahedron &t, EdgeID edgeIndex) const
 
virtual int getTriangleIndexInTetrahedron (const TrianglesInTetrahedron &t, TriangleID triangleIndex) const
 
virtual int getVertexIndexInHexahedron (const Hexa &t, PointID vertexIndex) const
 
virtual int getEdgeIndexInHexahedron (const EdgesInHexahedron &t, EdgeID edgeIndex) const
 
virtual int getQuadIndexInHexahedron (const QuadsInHexahedron &t, QuadID quadIndex) const
 
virtual Edge getLocalEdgesInTetrahedron (const PointID i) const
 Returns for each index (between 0 and 5) the two vertex indices that are adjacent to that edge. More...
 
virtual Triangle getLocalTrianglesInTetrahedron (const PointID i) const
 Returns for each index (between 0 and 3) the three local vertices indices that are adjacent to that triangle. More...
 
virtual Edge getLocalEdgesInHexahedron (const PointID i) const
 Returns for each index (between 0 and 12) the two vertex indices that are adjacent to that edge. More...
 
virtual Quad getLocalQuadsInHexahedron (const PointID i) const
 Returns for each index (between 0 and 6) the four vertices indices that are adjacent to that quad. More...
 
virtual Size getNbEdges ()
 
virtual Size getNbTriangles ()
 
virtual Size getNbQuads ()
 
virtual Size getNbTetrahedra ()
 
virtual Size getNbHexahedra ()
 
virtual const Edge getEdge (EdgeID i)
 
virtual const Quad getQuad (QuadID i)
 
virtual const Tetra getTetrahedron (TetraID i)
 
virtual const Hexa getHexahedron (HexaID i)
 
virtual Size getNbTetras ()
 
virtual Size getNbHexas ()
 
virtual Tetra getTetra (TetraID i)
 
virtual Hexa getHexa (HexaID i)
 
virtual const SeqTetrahedragetTetras ()
 
virtual const SeqHexahedragetHexas ()
 
virtual const EdgesAroundVertexgetEdgesAroundVertex (PointID i)
 Returns the set of edges adjacent to a given vertex. More...
 
virtual const EdgesInQuadgetEdgesInQuad (QuadID i)
 Returns the set of edges adjacent to a given quad. More...
 
virtual const EdgesInTetrahedrongetEdgesInTetrahedron (TetraID i)
 Returns the set of edges adjacent to a given tetrahedron. More...
 
virtual const EdgesInHexahedrongetEdgesInHexahedron (HexaID i)
 Returns the set of edges adjacent to a given hexahedron. More...
 
virtual const TrianglesInTetrahedrongetTrianglesInTetrahedron (TetraID i)
 Returns the set of triangles adjacent to a given tetrahedron. More...
 
virtual const QuadsAroundVertexgetQuadsAroundVertex (PointID i)
 Returns the set of quads adjacent to a given vertex. More...
 
virtual const QuadsAroundEdgegetQuadsAroundEdge (EdgeID i)
 Returns the set of quads adjacent to a given edge. More...
 
virtual const QuadsInHexahedrongetQuadsInHexahedron (HexaID i)
 Returns the set of quads adjacent to a given hexahedron. More...
 
virtual const TetrahedraAroundVertexgetTetrahedraAroundVertex (PointID i)
 Returns the set of tetrahedra adjacent to a given vertex. More...
 
virtual const TetrahedraAroundEdgegetTetrahedraAroundEdge (EdgeID i)
 Returns the set of tetrahedra adjacent to a given edge. More...
 
virtual const TetrahedraAroundTrianglegetTetrahedraAroundTriangle (TriangleID i)
 Returns the set of tetrahedra adjacent to a given triangle. More...
 
virtual const HexahedraAroundVertexgetHexahedraAroundVertex (PointID i)
 Returns the set of hexahedra adjacent to a given vertex. More...
 
virtual const HexahedraAroundEdgegetHexahedraAroundEdge (EdgeID i)
 Returns the set of hexahedra adjacent to a given edge. More...
 
virtual const HexahedraAroundQuadgetHexahedraAroundQuad (QuadID i)
 Returns the set of hexahedra adjacent to a given quad. More...
 
virtual const VerticesAroundVertex getVerticesAroundVertex (PointID i)
 Returns the set of vertices adjacent to a given vertex (i.e. sharing an edge) More...
 
virtual const sofa::type::vector< IndexgetElementAroundElements (sofa::type::vector< Index > elems)
 Returns the set of element indices adjacent to a given list of elements (i.e. sharing a link) More...
 
const SeqLinesgetLines ()
 
Size getNbLines ()
 
Line getLine (LineID i)
 
bool hasPos () const override
 
SReal getPX (Index) const override
 
SReal getPY (Index) const override
 
SReal getPZ (Index) const override
 
void addLine (Index a, Index b)
 
virtual void addQuad (Index a, Index b, Index c, Index d)
 
virtual void addTetra (Index a, Index b, Index c, Index d)
 
virtual void addHexa (Index a, Index b, Index c, Index d, Index e, Index f, Index g, Index h)
 
- Public Member Functions inherited from sofa::core::topology::Topology
 SOFA_CLASS (Topology, core::objectmodel::BaseObject)
 
bool insertInNode (objectmodel::BaseNode *node) override
 
bool removeInNode (objectmodel::BaseNode *node) override
 

Protected Member Functions

 TriangleSetTopologyContainer ()
 
 ~TriangleSetTopologyContainer () override
 
virtual void createTriangleSetArray ()
 Creates the TriangleSet array. More...
 
void createEdgeSetArray () override
 Creates the EdgeSet array. More...
 
virtual void createEdgesInTriangleArray ()
 Creates the array of edge indices for each triangle. More...
 
virtual void createTrianglesAroundVertexArray ()
 Creates the TrianglesAroundVertex Array. More...
 
virtual void createTrianglesAroundEdgeArray ()
 Creates the TrianglesAroundEdge Array. More...
 
void clearTriangles ()
 
void clearEdgesInTriangle ()
 
void clearTrianglesAroundVertex ()
 
void clearTrianglesAroundEdge ()
 
void clearBorderElementLists ()
 
virtual TrianglesAroundVertexgetTrianglesAroundVertexForModification (const PointID vertexIndex)
 Returns a non-const list of triangle indices around a given DOF for subsequent modification. More...
 
virtual TrianglesAroundEdgegetTrianglesAroundEdgeForModification (const EdgeID edgeIndex)
 Returns a non-const list of triangle indices around a given edge for subsequent modification. More...
 
void setTriangleTopologyToDirty ()
 
void cleanTriangleTopologyFromDirty ()
 
const boolisTriangleTopologyDirty ()
 
- Protected Member Functions inherited from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer
 EdgeSetTopologyContainer ()
 
 ~EdgeSetTopologyContainer () override
 
virtual void createEdgesAroundVertexArray ()
 Creates the EdgesAroundVertex array. More...
 
void clearEdges ()
 
void clearEdgesAroundVertex ()
 
void setEdgeTopologyToDirty ()
 
void cleanEdgeTopologyFromDirty ()
 
const boolisEdgeTopologyDirty ()
 
virtual EdgesAroundVertexgetEdgesAroundVertexForModification (const PointID i)
 Returns a non-const list of Edge indices around the ith DOF for subsequent modification. More...
 
- Protected Member Functions inherited from sofa::component::topology::container::dynamic::PointSetTopologyContainer
 PointSetTopologyContainer (Size nPoints=0)
 
 ~PointSetTopologyContainer () override=default
 
void setPointTopologyToDirty ()
 
void cleanPointTopologyFromDirty ()
 
const boolisPointTopologyDirty () const
 
- Protected Member Functions inherited from sofa::core::topology::TopologyContainer
 TopologyContainer ()
 Constructor. More...
 
 ~TopologyContainer () override
 Destructor. More...
 
- Protected Member Functions inherited from sofa::core::topology::BaseTopologyObject
 BaseTopologyObject ()
 
 ~BaseTopologyObject () override
 
- Protected Member Functions inherited from sofa::core::objectmodel::BaseObject
 BaseObject ()
 
 ~BaseObject () override
 
virtual void doUpdateInternal ()
 Implementation of the internal update. More...
 
void changeContextLink (BaseContext *before, BaseContext *&after)
 
void changeSlavesLink (BaseObject::SPtr ptr, std::size_t, bool add)
 This method insures that slaves objects have master and context links set correctly. More...
 
void trackInternalData (const BaseData &data)
 Method called to add the Data to the DataTracker (listing the Data to track) More...
 
void cleanTracker ()
 
bool hasDataChanged (const BaseData &data)
 Method called to know if a tracked Data has changed. More...
 
- Protected Member Functions inherited from sofa::core::objectmodel::Base
 Base ()
 
virtual ~Base ()
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 Helper method used by initData() More...
 
void initData0 (BaseData *field, BaseData::BaseInitData &res, const char *name, const char *help, BaseData::DataFlags dataFlags)
 Helper method used by initData() More...
 
template<class T >
void initData0 (Data< T > *field, typename Data< T >::InitData &res, const T &value, const char *name, const char *help, bool isDisplayed=true, bool isReadOnly=false)
 Helper method used by initData() More...
 
- Protected Member Functions inherited from sofa::core::topology::BaseMeshTopology
 BaseMeshTopology ()
 
- Protected Member Functions inherited from sofa::core::topology::Topology
 Topology ()
 
virtual ~Topology ()
 

Friends

class TriangleSetTopologyModifier
 

Additional Inherited Members

- Static Public Attributes inherited from sofa::core::topology::BaseMeshTopology
static constexpr EdgesInTriangle InvalidEdgesInTriangles = type::makeHomogeneousArray<EdgesInTriangle>(sofa::InvalidID)
 
static constexpr EdgesInQuad InvalidEdgesInQuad = type::makeHomogeneousArray<EdgesInQuad>(sofa::InvalidID)
 
static constexpr TrianglesInTetrahedron InvalidTrianglesInTetrahedron = type::makeHomogeneousArray<TrianglesInTetrahedron>(sofa::InvalidID)
 
static constexpr EdgesInTetrahedron InvalidEdgesInTetrahedron = type::makeHomogeneousArray<EdgesInTetrahedron>(sofa::InvalidID)
 
static constexpr QuadsInHexahedron InvalidQuadsInHexahedron = type::makeHomogeneousArray<QuadsInHexahedron>(sofa::InvalidID)
 
static constexpr EdgesInHexahedron InvalidEdgesInHexahedron = type::makeHomogeneousArray<EdgesInHexahedron>(sofa::InvalidID)
 
- Static Public Attributes inherited from sofa::core::topology::Topology
static constexpr Index InvalidID = sofa::InvalidID
 
static const auto InvalidSet = sofa::topology::InvalidSet
 
static constexpr auto InvalidEdge = sofa::topology::InvalidEdge
 
static constexpr auto InvalidTriangle = sofa::topology::InvalidTriangle
 
static constexpr auto InvalidQuad = sofa::topology::InvalidQuad
 
static constexpr auto InvalidTetrahedron = sofa::topology::InvalidTetrahedron
 
static constexpr auto InvalidPentahedron = sofa::topology::InvalidPentahedron
 
static constexpr auto InvalidHexahedron = sofa::topology::InvalidHexahedron
 
static constexpr auto InvalidPyramid = sofa::topology::InvalidPyramid
 
- Static Public Member Functions inherited from sofa::core::objectmodel::BaseObject
template<class T >
static bool canCreate (T *, BaseContext *, BaseObjectDescription *)
 Pre-construction check method called by ObjectFactory. More...
 
template<class T >
static T::SPtr create (T *, BaseContext *context, BaseObjectDescription *arg)
 Construction method called by ObjectFactory. More...
 
- Static Public Member Functions inherited from sofa::core::objectmodel::Base
static const BaseClassGetClass ()
 
template<class T >
static std::string shortName (const T *ptr=nullptr, BaseObjectDescription *=nullptr)
 

Attribute details

◆ d_triangle

Data< sofa::type::vector<Triangle> > sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::d_triangle

provides the set of triangles.

◆ m_edgesInTriangle

sofa::type::vector<EdgesInTriangle> sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::m_edgesInTriangle
protected

provides the 3 edges in each triangle.

◆ m_edgesOnBorder

sofa::type::vector<EdgeID> sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::m_edgesOnBorder
protected

Set of edge indices on topology border.

◆ m_pointsOnBorder

sofa::type::vector<PointID> sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::m_pointsOnBorder
protected

Set of point indices on topology border.

◆ m_trianglesAroundEdge

sofa::type::vector< TrianglesAroundEdge > sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::m_trianglesAroundEdge
protected

for each edge provides the set of triangles adjacent to that edge.

◆ m_trianglesAroundVertex

sofa::type::vector< TrianglesAroundVertex > sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::m_trianglesAroundVertex
protected

for each vertex provides the set of triangles adjacent to that vertex.

◆ m_trianglesOnBorder

sofa::type::vector<TriangleID> sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::m_trianglesOnBorder
protected

Set of triangle indices on topology border.

◆ m_triangleTopologyDirty

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::m_triangleTopologyDirty = false
protected

Boolean used to know if the topology Data of this container is dirty.

Constructor details

◆ TriangleSetTopologyContainer()

sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::TriangleSetTopologyContainer ( )
protected

◆ ~TriangleSetTopologyContainer()

sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::~TriangleSetTopologyContainer ( )
inlineoverrideprotected

Function details

◆ addEdge()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::addEdge ( Index  ,
Index   
)
inlineoverridevirtual

◆ addTriangle()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::addTriangle ( Index  a,
Index  b,
Index  c 
)
overridevirtual

◆ checkConnexity()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::checkConnexity ( )
overridevirtual

Checks if the topology has only one connected component.

Get information about connexity of the mesh

Returns
true if only one connected component

Get information about connexity of the mesh

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ checkTopology()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::checkTopology ( ) const
overridevirtual

Checks if the topology is coherent.

Check if the shell arrays are coherent

See also
m_triangle
m_edgesInTriangle
m_trianglesAroundVertex
m_trianglesAroundEdge

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ cleanTriangleTopologyFromDirty()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::cleanTriangleTopologyFromDirty ( )
protected

◆ clear()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::clear ( )
overridevirtual

Procedural creation methods

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ clearBorderElementLists()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::clearBorderElementLists ( )
protected

◆ clearEdgesInTriangle()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::clearEdgesInTriangle ( )
protected

◆ clearTriangles()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::clearTriangles ( )
protected

◆ clearTrianglesAroundEdge()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::clearTrianglesAroundEdge ( )
protected

◆ clearTrianglesAroundVertex()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::clearTrianglesAroundVertex ( )
protected

◆ createEdgeSetArray()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::createEdgeSetArray ( )
overrideprotectedvirtual

Creates the EdgeSet array.

Create the set of edges when needed.

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ createEdgesInTriangleArray()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::createEdgesInTriangleArray ( )
protectedvirtual

Creates the array of edge indices for each triangle.

This function is only called if the EdgesInTriangle array is required. m_edgesInTriangle[i] contains the 3 indices of the 3 edges composing the ith triangle.

◆ createElementsOnBorder()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::createElementsOnBorder ( )

: Create element lists which are on topology border:

◆ createTrianglesAroundEdgeArray()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::createTrianglesAroundEdgeArray ( )
protectedvirtual

Creates the TrianglesAroundEdge Array.

This function is only called if the TrianglesAroundVertex array is required. m_trianglesAroundEdge[i] contains the indices of all triangles adjacent to the ith edge.

◆ createTrianglesAroundVertexArray()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::createTrianglesAroundVertexArray ( )
protectedvirtual

Creates the TrianglesAroundVertex Array.

This function is only called if the TrianglesAroundVertex array is required. m_trianglesAroundVertex[i] contains the indices of all triangles adjacent to the ith DOF.

◆ createTriangleSetArray()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::createTriangleSetArray ( )
protectedvirtual

Creates the TriangleSet array.

This function must be implemented by derived classes to create a list of triangles from a set of tetrahedra for instance

Reimplemented in sofa::component::topology::container::dynamic::TetrahedronSetTopologyContainer.

◆ getConnectedElement()

const TriangleSetTopologyContainer::VecTriangleID sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getConnectedElement ( TriangleID  elem)
overridevirtual

Returns the set of element indices connected to an input one (i.e. which can be reached by topological links)

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getEdgeIndexInTriangle()

int sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getEdgeIndexInTriangle ( const EdgesInTriangle t,
EdgeID  edgeIndex 
) const
overridevirtual

Returns the index (either 0, 1 ,2) of the edge whose global index is edgeIndex.

Parameters
Refto an EdgesInTriangle.
Idof an edge.
Returns
the position of this edge in the triangle (i.e. either 0, 1, 2).
-1 if none.

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getEdgesInTriangle()

const TriangleSetTopologyContainer::EdgesInTriangle & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getEdgesInTriangle ( TriangleID  id)
overridevirtual

Returns the 3 edges adjacent to a given triangle.

Parameters
IDof a triangle.
Returns
EdgesInTriangle list composing the input triangle.

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getEdgesInTriangleArray()

const sofa::type::vector< TriangleSetTopologyContainer::EdgesInTriangle > & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getEdgesInTriangleArray ( )

Returns the EdgesInTriangle array (i.e. provide the 3 edge indices for each triangle).

◆ getEdgesOnBorder()

const sofa::type::vector< TriangleSetTopologyContainer::EdgeID > & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getEdgesOnBorder ( )
overridevirtual

: Return a list of EdgeID which are on a border.

See also
createElementsOnBorder()

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getElementAroundElement()

const TriangleSetTopologyContainer::VecTriangleID sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getElementAroundElement ( TriangleID  elem)
overridevirtual

Returns the set of element indices adjacent to a given element (i.e. sharing a link)

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getElementAroundElements()

const TriangleSetTopologyContainer::VecTriangleID sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getElementAroundElements ( VecTriangleID  elems)
override

Returns the set of element indices adjacent to a given list of elements (i.e. sharing a link)

◆ getNumberOfConnectedComponent()

Size sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getNumberOfConnectedComponent ( )
overridevirtual

Returns the number of connected component.

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ getNumberOfElements()

Size sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getNumberOfElements ( ) const
overridevirtual

Returns the number of topological element of the current topology. This function avoids to know which topological container is in used.

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ getNumberOfTriangles()

Size sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getNumberOfTriangles ( ) const

Returns the number of triangles in this topology. The difference to getNbTriangles() is that this method does not generate the triangle array if it does not exist.

◆ getOtherPointInTriangle()

TriangleSetTopologyContainer::PointID sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getOtherPointInTriangle ( const Triangle t,
PointID  p1,
PointID  p2 
) const

Returns the global point index of third point of a triangle given the 2 others.

Parameters
Refto an Triangle.
2point indices of this triangle.
Returns
third point index.

◆ getPointsOnBorder()

const sofa::type::vector< TriangleSetTopologyContainer::PointID > & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getPointsOnBorder ( )
overridevirtual

: Return a vector of PointID which are on a border.

See also
createElementsOnBorder()

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getTopologyType()

sofa::geometry::ElementType sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTopologyType ( ) const
inlineoverridevirtual

Returns the type of the topology.

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ getTriangle()

const TriangleSetTopologyContainer::Triangle sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTriangle ( TriangleID  i)
overridevirtual

Returns the triangle corresponding to the TriangleID i.

Parameters
IDof a triangle.
Returns
The corresponding triangle.

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getTriangleArray()

const sofa::type::vector< TriangleSetTopologyContainer::Triangle > & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTriangleArray ( )

Returns the Triangle array.

◆ getTriangleIndex()

TriangleSetTopologyContainer::TriangleID sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTriangleIndex ( PointID  v1,
PointID  v2,
PointID  v3 
)
overridevirtual

Returns the index of the triangle given three vertex indices; returns InvalidID if no triangle exists.

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getTriangles()

const SeqTriangles& sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTriangles ( )
inlineoverridevirtual

Returns the quad array.

BaseMeshTopology API

Implements sofa::core::topology::BaseMeshTopology.

◆ getTrianglesAroundEdge()

const TriangleSetTopologyContainer::TrianglesAroundEdge & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTrianglesAroundEdge ( EdgeID  id)
overridevirtual

Returns the set of triangles adjacent to a given edge.

Parameters
IDof an edge.
Returns
TrianglesAroundEdge list around the input edge.

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getTrianglesAroundEdgeArray()

const sofa::type::vector< TriangleSetTopologyContainer::TrianglesAroundEdge > & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTrianglesAroundEdgeArray ( )

Returns the TrianglesAroundEdge array (i.e. provide the triangles indices adjacent to each edge).

◆ getTrianglesAroundEdgeForModification()

TriangleSetTopologyContainer::TrianglesAroundEdge & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTrianglesAroundEdgeForModification ( const EdgeID  edgeIndex)
protectedvirtual

Returns a non-const list of triangle indices around a given edge for subsequent modification.

Returns
TrianglesAroundEdge lists in non-const.
See also
getTrianglesAroundEdge()

◆ getTrianglesAroundVertex()

const TriangleSetTopologyContainer::TrianglesAroundVertex & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTrianglesAroundVertex ( PointID  id)
overridevirtual

Returns the set of triangles adjacent to a given vertex.

Parameters
IDof a vertex
Returns
TrianglesAroundVertex list around the input vertex

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getTrianglesAroundVertexArray()

const sofa::type::vector< TriangleSetTopologyContainer::TrianglesAroundVertex > & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTrianglesAroundVertexArray ( )

Returns the TrianglesAroundVertex array (i.e. provide the triangles indices adjacent to each vertex).

◆ getTrianglesAroundVertexForModification()

TriangleSetTopologyContainer::TrianglesAroundVertex & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTrianglesAroundVertexForModification ( const PointID  vertexIndex)
protectedvirtual

Returns a non-const list of triangle indices around a given DOF for subsequent modification.

Returns
TrianglesAroundVertex lists in non-const.
See also
getTrianglesAroundVertex()

◆ getTrianglesOnBorder()

const sofa::type::vector< TriangleSetTopologyContainer::TriangleID > & sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getTrianglesOnBorder ( )
overridevirtual

: Return a list of TriangleID which are on a border.

See also
createElementsOnBorder()

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ getVertexIndexInTriangle()

int sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::getVertexIndexInTriangle ( const Triangle t,
PointID  vertexIndex 
) const
overridevirtual

Returns the index (either 0, 1 ,2) of the vertex whose global index is vertexIndex.

Parameters
Refto a triangle.
Idof a vertex.
Returns
the position of this vertex in the triangle (i.e. either 0, 1, 2).
-1 if none.

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ hasBorderElementLists()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::hasBorderElementLists ( ) const

◆ hasEdgesInTriangle()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::hasEdgesInTriangle ( ) const

◆ hasTriangles()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::hasTriangles ( ) const

◆ hasTrianglesAroundEdge()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::hasTrianglesAroundEdge ( ) const

◆ hasTrianglesAroundVertex()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::hasTrianglesAroundVertex ( ) const

◆ init()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::init ( void  )
overridevirtual

Initialization method called at graph creation and modification, during top-down traversal.

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ initTopology()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::initTopology ( )

Dynamic Topology API

Method called by component Init method. Will create all the topology neighboorhood buffers and call

See also
EdgeSetTopologyContainer::initTopology()

◆ isTriangleTopologyDirty()

const bool& sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::isTriangleTopologyDirty ( )
inlineprotected

◆ linkTopologyHandlerToData()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::linkTopologyHandlerToData ( core::topology::TopologyHandler topologyHandler,
sofa::geometry::ElementType  elementType 
)
overridevirtual

\ brief Generic function to link potential data (related to a type of element) with a topologyHandler

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ reinit()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::reinit ( )
overridevirtual

Update method called when variables used in precomputation are modified.

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

◆ reOrientateTriangle()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::reOrientateTriangle ( TriangleID  id)
overridevirtual

Will change order of vertices in triangle: t[1] <=> t[2].

Reimplemented from sofa::core::topology::BaseMeshTopology.

◆ setTriangleTopologyToDirty()

void sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::setTriangleTopologyToDirty ( )
protected

Use a specific boolean

See also
m_triangleTopologyDirty in order to know if topology Data is dirty or not. Set/Get function access to this boolean

◆ SOFA_CLASS()

sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::SOFA_CLASS ( TriangleSetTopologyContainer  ,
EdgeSetTopologyContainer   
)

◆ unlinkTopologyHandlerToData()

bool sofa::component::topology::container::dynamic::TriangleSetTopologyContainer::unlinkTopologyHandlerToData ( core::topology::TopologyHandler topologyHandler,
sofa::geometry::ElementType  elementType 
)
overridevirtual

\ brief Generic function to link potential data (related to a type of element) with a topologyHandler

Reimplemented from sofa::component::topology::container::dynamic::EdgeSetTopologyContainer.

Related details

◆ TriangleSetTopologyModifier

friend class TriangleSetTopologyModifier
friend