A class for storing element related data. Automatically manages topology changes.  
 More...
template<class ElementType, class VecT>
class sofa::core::topology::TopologySubsetData< ElementType, VecT >
A class for storing element related data. Automatically manages topology changes. 
This class is a wrapper of class type::vector that is made to take care transparently of all topology changes that might happen (non exhaustive list: elements added, removed, fused, renumbered). 
|  | 
|  | TopologySubsetData (const typename sofa::core::topology::BaseTopologyData< VecT >::InitData &data) | 
|  | Default Constructor to init Data.  More... 
 | 
|  | 
| void | setMap2Elements (const sofa::type::vector< Index > _map2Elements) | 
|  | Method to set a vector map to rull this subsetData. Will set.  More... 
 | 
|  | 
| sofa::type::vector< Index > & | getMap2Elements () | 
|  | Getter of the vector map indices.  More... 
 | 
|  | 
| void | supportNewTopologyElements (bool value) | 
|  | 
| bool | isNewTopologyElementsSupported () const | 
|  | Getter to the option.  More... 
 | 
|  | 
| virtual Index | indexOfElement (Index index) const | 
|  | 
| virtual const type::vector< Index > | indicesOfElement (Index index) const | 
|  | 
| void | swap (Index i1, Index i2) override | 
|  | Swaps values of this subsetmap at indices i1 and i2. (only if i1 and i2 < subset size())  More... 
 | 
|  | 
| virtual void | add (sofa::Size nbElements, const sofa::type::vector< sofa::type::vector< Index > > &ancestors, const sofa::type::vector< sofa::type::vector< SReal > > &coefs) | 
|  | 
| virtual void | add (sofa::Size nbElements, const sofa::type::vector< ElementType > &elems, const sofa::type::vector< sofa::type::vector< Index > > &ancestors, const sofa::type::vector< sofa::type::vector< SReal > > &coefs) | 
|  | 
| void | add (const sofa::type::vector< Index > &index, const sofa::type::vector< ElementType > &elems, const sofa::type::vector< sofa::type::vector< Index > > &ancestors, const sofa::type::vector< sofa::type::vector< SReal > > &coefs, const sofa::type::vector< AncestorElem > &ancestorElems) override | 
|  | 
| void | remove (const sofa::type::vector< Index > &index) override | 
|  | Remove elems with inputted indices. Will remove only the data contains by this subset.  More... 
 | 
|  | 
| void | renumber (const sofa::type::vector< Index > &index) override | 
|  | Reorder the values. TODO epernod 2021-05-24: check if needed and implement it if needed.  More... 
 | 
|  | 
| void | move (const sofa::type::vector< Index > &indexList, const sofa::type::vector< sofa::type::vector< Index > > &ancestors, const sofa::type::vector< sofa::type::vector< SReal > > &coefs) override | 
|  | Move a list of points. TODO epernod 2021-05-24: check if needed and implement it if needed.  More... 
 | 
|  | 
| void | addOnMovedPosition (const sofa::type::vector< Index > &indexList, const sofa::type::vector< ElementType > &elems) override | 
|  | 
| void | removeOnMovedPosition (const sofa::type::vector< Index > &indices) override | 
|  | 
|  | TopologyData (const typename sofa::core::topology::BaseTopologyData< VecT >::InitData &data) | 
|  | Constructor.  More... 
 | 
|  | 
|  | ~TopologyData () | 
|  | Default Destructor.  More... 
 | 
|  | 
| virtual void | createTopologyHandler (sofa::core::topology::BaseMeshTopology *_topology) | 
|  | Function to create topology handler to manage this Data.  More... 
 | 
|  | 
| void | linkToPointDataArray () | 
|  | Link Data to topology arrays.  More... 
 | 
|  | 
| void | linkToEdgeDataArray () | 
|  | Method used to link Data to edge Data array, using the TopologyHandler's method.  More... 
 | 
|  | 
| void | linkToTriangleDataArray () | 
|  | Method used to link Data to triangle Data array, using the TopologyHandler's method.  More... 
 | 
|  | 
| void | linkToQuadDataArray () | 
|  | Method used to link Data to quad Data array, using the TopologyHandler's method.  More... 
 | 
|  | 
| void | linkToTetrahedronDataArray () | 
|  | Method used to link Data to tetrahedron Data array, using the TopologyHandler's method.  More... 
 | 
|  | 
| void | linkToHexahedronDataArray () | 
|  | Method used to link Data to hexahedron Data array, using the TopologyHandler's method.  More... 
 | 
|  | 
| void | swap (Index i1, Index i2) override | 
|  | Swaps values at indices i1 and i2.  More... 
 | 
|  | 
| void | remove (const sofa::type::vector< Index > &index) override | 
|  | Remove the values corresponding to the elements removed.  More... 
 | 
|  | 
| void | renumber (const sofa::type::vector< Index > &index) override | 
|  | Reorder the values.  More... 
 | 
|  | 
| void | move (const sofa::type::vector< Index > &indexList, const sofa::type::vector< sofa::type::vector< Index > > &ancestors, const sofa::type::vector< sofa::type::vector< SReal > > &coefs) override | 
|  | Move a list of points.  More... 
 | 
|  | 
| void | setDestructionCallback (std::function< void(Index, value_type &)> func) | 
|  | 
| void | setCreationCallback (std::function< void(Index, value_type &, const ElementType &, const sofa::type::vector< Index > &, const sofa::type::vector< SReal > &)> func) | 
|  | 
| void | addTopologyEventCallBack (core::topology::TopologyChangeType type, TopologyChangeCallback callback) | 
|  | Method to add a Callback method to be registered in the TopologyHandler. This callback will be used when TopologyChangeType.  More... 
 | 
|  | 
|  | BaseTopologyData (const sofa::core::objectmodel::BaseData::BaseInitData &init) | 
|  | 
| virtual void | add (const sofa::type::vector< Topology::PointID > &, const sofa::type::vector< Topology::Point > &, const sofa::type::vector< sofa::type::vector< Topology::PointID > > &, const sofa::type::vector< sofa::type::vector< SReal > > &, const sofa::type::vector< PointAncestorElem > &) | 
|  | Add some values. Values are added at the end of the vector.  More... 
 | 
|  | 
| virtual void | add (const sofa::type::vector< Topology::EdgeID > &, const sofa::type::vector< Topology::Edge > &, const sofa::type::vector< sofa::type::vector< Topology::EdgeID > > &, const sofa::type::vector< sofa::type::vector< SReal > > &, const sofa::type::vector< EdgeAncestorElem > &) | 
|  | 
| virtual void | add (const sofa::type::vector< Topology::TriangleID > &, const sofa::type::vector< Topology::Triangle > &, const sofa::type::vector< sofa::type::vector< Topology::TriangleID > > &, const sofa::type::vector< sofa::type::vector< SReal > > &, const sofa::type::vector< TriangleAncestorElem > &) | 
|  | add Triangle  More... 
 | 
|  | 
| virtual void | add (const sofa::type::vector< Topology::TetrahedronID > &, const sofa::type::vector< Topology::Tetrahedron > &, const sofa::type::vector< sofa::type::vector< Topology::TetrahedronID > > &, const sofa::type::vector< sofa::type::vector< SReal > > &, const sofa::type::vector< TetrahedronAncestorElem > &) | 
|  | add Quad & Tetrahedron  More... 
 | 
|  | 
| virtual void | add (const sofa::type::vector< Topology::QuadID > &, const sofa::type::vector< Topology::Quad > &, const sofa::type::vector< sofa::type::vector< Topology::QuadID > > &, const sofa::type::vector< sofa::type::vector< SReal > > &, const sofa::type::vector< QuadAncestorElem > &) | 
|  | 
| virtual void | add (const sofa::type::vector< Topology::HexahedronID > &, const sofa::type::vector< Topology::Hexahedron > &, const sofa::type::vector< sofa::type::vector< Topology::HexahedronID > > &, const sofa::type::vector< sofa::type::vector< SReal > > &, const sofa::type::vector< HexahedronAncestorElem > &) | 
|  | add Hexahedron  More... 
 | 
|  | 
| virtual void | remove (const sofa::type::vector< unsigned int > &) | 
|  | Remove the values corresponding to the points removed.  More... 
 | 
|  | 
| virtual void | swap (unsigned int, unsigned int) | 
|  | Swaps values at indices i1 and i2.  More... 
 | 
|  | 
| virtual void | renumber (const sofa::type::vector< unsigned int > &) | 
|  | Reorder the values.  More... 
 | 
|  | 
| virtual void | move (const sofa::type::vector< unsigned int > &, const sofa::type::vector< sofa::type::vector< unsigned int > > &, const sofa::type::vector< sofa::type::vector< SReal > > &) | 
|  | Move a list of points.  More... 
 | 
|  | 
| sofa::core::topology::BaseMeshTopology * | getTopology () | 
|  | 
| void | setDataSetArraySize (const Index s) | 
|  | to handle PointSubsetData  More... 
 | 
|  | 
| virtual Index | getLastElementIndex () const | 
|  | Return the last element index of the topolgy buffer this Data is linked to.  More... 
 | 
|  | 
| const sofa::defaulttype::AbstractTypeInfo * | getValueTypeInfo () const override | 
|  | Get info about the value type of the associated variable.  More... 
 | 
|  | 
| bool | read (const std::string &s) override | 
|  | 
| void | printValue (std::ostream &out) const override | 
|  | General case for printing default value.  More... 
 | 
|  | 
| std::string | getValueString () const override | 
|  | General case for printing value.  More... 
 | 
|  | 
| std::string | getDefaultValueString () const override | 
|  | General case for printing default value.  More... 
 | 
|  | 
| std::string | getValueTypeString () const override | 
|  | Get the name of the type of the value held in this Data.  More... 
 | 
|  | 
| void | operator= (const T &value) | 
|  | 
| bool | copyValueFrom (const Data< T > *data) | 
|  | 
|  | Data (const Data &)=delete | 
|  | 
| Data & | operator= (const Data &)=delete | 
|  | 
| bool SOFA_CORE_API | read (const std::string &str) | 
|  | Specialization for reading strings.  More... 
 | 
|  | 
| bool SOFA_CORE_API | read (const std::string &str) | 
|  | Specialization for reading booleans.  More... 
 | 
|  | 
| bool | read (const std::string &str) | 
|  | Specialization for reading strings.  More... 
 | 
|  | 
| bool | read (const std::string &str) | 
|  | Specialization for reading booleans.  More... 
 | 
|  | 
| virtual T * | beginEdit () | 
|  | 
| virtual T * | beginWriteOnly () | 
|  | 
| virtual void | endEdit () | 
|  | 
| void | setValue (const T &value) | 
|  | 
| const T & | getValue () const | 
|  | 
| BaseData * | getNewInstance () override | 
|  | 
|  | Data (const BaseData::BaseInitData &init) | 
|  | 
|  | Data (const InitData &init) | 
|  | 
|  | Data (const char *helpMsg=nullptr, bool isDisplayed=true, bool isReadOnly=false) | 
|  | 
|  | Data (const std::string &helpMsg, bool isDisplayed=true, bool isReadOnly=false) | 
|  | 
|  | Data (const T &value, const char *helpMsg=nullptr, bool isDisplayed=true, bool isReadOnly=false) | 
|  | 
|  | Data (const T &value, const std::string &helpMsg, bool isDisplayed=true, bool isReadOnly=false) | 
|  | 
|  | ~Data () override | 
|  | Destructor.  More... 
 | 
|  | 
|  | BaseData (const BaseInitData &init) | 
|  | 
|  | BaseData (const std::string &helpMsg, DataFlags flags=FLAG_DEFAULT) | 
|  | 
|  | BaseData (const char *helpMsg, DataFlags flags=FLAG_DEFAULT) | 
|  | 
|  | BaseData (const std::string &helpMsg, bool isDisplayed=true, bool isReadOnly=false) | 
|  | 
|  | BaseData (const char *helpMsg, bool isDisplayed=true, bool isReadOnly=false) | 
|  | 
|  | ~BaseData () override | 
|  | Destructor.  More... 
 | 
|  | 
| const void * | getValueVoidPtr () const | 
|  | Get current value as a void pointer (use getValueTypeInfo to find how to access it)  More... 
 | 
|  | 
| void * | beginEditVoidPtr () | 
|  | Begin edit current value as a void pointer (use getValueTypeInfo to find how to access it)  More... 
 | 
|  | 
| void | endEditVoidPtr () | 
|  | Must be called after beginEditVoidPtr(), after you are finished modifying this Data.  More... 
 | 
|  | 
| const std::string & | getHelp () const | 
|  | Get a help message that describes this Data.  More... 
 | 
|  | 
| void | setHelp (const std::string &val) | 
|  | Set the help message.  More... 
 | 
|  | 
| const std::string & | getGroup () const | 
|  | Get group.  More... 
 | 
|  | 
| void | setGroup (const std::string &val) | 
|  | Set group.  More... 
 | 
|  | 
| const std::string & | getWidget () const | 
|  | Get widget.  More... 
 | 
|  | 
| void | setWidget (const char *val) | 
|  | Set widget.  More... 
 | 
|  | 
| virtual std::string | getLinkPath () const | 
|  | If we use the Data as a link and not as value directly.  More... 
 | 
|  | 
| virtual bool | canBeLinked () const | 
|  | 
| Base * | getOwner () const | 
|  | Return the Base component owning this Data.  More... 
 | 
|  | 
| void | setOwner (Base *o) | 
|  | Set the owner of this Data.  More... 
 | 
|  | 
| BaseData * | getData () const | 
|  | This method is needed by DDGNode.  More... 
 | 
|  | 
| const std::string & | getName () const | 
|  | Return the name of this Data within the Base component.  More... 
 | 
|  | 
| void | setName (const std::string &name) | 
|  | 
| bool | hasDefaultValue () const | 
|  | Return whether the Data has a default value or not.  More... 
 | 
|  | 
| bool | setParent (BaseData *parent, const std::string &path=std::string()) | 
|  | Link to a parent data. The value of this data will automatically duplicate the value of the parent data.  More... 
 | 
|  | 
| bool | setParent (const std::string &path) | 
|  | 
| virtual bool | validParent (const BaseData *parent) | 
|  | Check if a given Data can be linked as a parent of this data.  More... 
 | 
|  | 
| BaseData * | getParent () const | 
|  | 
| void | update () override | 
|  | Update the value of this Data.  More... 
 | 
|  | 
| bool | copyValueFrom (const BaseData *data) | 
|  | Update this Data from the value of its parent.  More... 
 | 
|  | 
| bool | updateValueFromLink (const BaseData *data) | 
|  | 
| void | setFlag (DataFlagsEnum flag, bool b) | 
|  | Set one of the flags.  More... 
 | 
|  | 
| bool | getFlag (DataFlagsEnum flag) const | 
|  | Get one of the flags.  More... 
 | 
|  | 
| bool | isDisplayed () const | 
|  | Return whether this Data has to be displayed in GUIs.  More... 
 | 
|  | 
| bool | isReadOnly () const | 
|  | Return whether this Data will be read-only in GUIs.  More... 
 | 
|  | 
| bool | isPersistent () const | 
|  | Return whether this Data contains persistent information.  More... 
 | 
|  | 
| bool | isAutoLink () const | 
|  | Return whether this Data should be autolinked when using the src="" syntax.  More... 
 | 
|  | 
| bool | isRequired () const | 
|  | Return whether the Data has to be set by the user for the owner component to be valid.  More... 
 | 
|  | 
| void | setDisplayed (bool b) | 
|  | Set whether this Data should be displayed in GUIs.  More... 
 | 
|  | 
| void | setReadOnly (bool b) | 
|  | Set whether this Data is read-only.  More... 
 | 
|  | 
| void | setPersistent (bool b) | 
|  | Set whether this Data contains persistent information.  More... 
 | 
|  | 
| void | setAutoLink (bool b) | 
|  | Set whether this data should be autolinked when using the src="" syntax.  More... 
 | 
|  | 
| void | setRequired (bool b) | 
|  | Set whether the Data has to be set by the user for the owner component to be valid.  More... 
 | 
|  | 
| bool | isSet () const | 
|  | 
| void | unset () | 
|  | Reset the isSet flag to false, to indicate that the current value is the default for this Data.  More... 
 | 
|  | 
| void | forceSet () | 
|  | Reset the isSet flag to true, to indicate that the current value has been modified.  More... 
 | 
|  | 
| int | getCounter () const | 
|  | 
|  | DDGNode () | 
|  | Constructor.  More... 
 | 
|  | 
| virtual | ~DDGNode () | 
|  | Destructor. Automatically remove remaining links.  More... 
 | 
|  | 
| void | addInput (DDGNode *n) | 
|  | Add a new input to this node.  More... 
 | 
|  | 
| void | delInput (DDGNode *n) | 
|  | Remove an input from this node.  More... 
 | 
|  | 
| void | addOutput (DDGNode *n) | 
|  | Add a new output to this node.  More... 
 | 
|  | 
| void | delOutput (DDGNode *n) | 
|  | Remove an output from this node.  More... 
 | 
|  | 
| const DDGLinkContainer & | getInputs () | 
|  | Get the list of inputs for this DDGNode.  More... 
 | 
|  | 
| const DDGLinkContainer & | getOutputs () | 
|  | Get the list of outputs for this DDGNode.  More... 
 | 
|  | 
| bool | isDirty () const | 
|  | Returns true if the DDGNode needs to be updated.  More... 
 | 
|  | 
| virtual void | setDirtyValue () | 
|  | Indicate the value needs to be updated.  More... 
 | 
|  | 
| virtual void | setDirtyOutputs () | 
|  | Indicate the outputs needs to be updated. This method must be called after changing the value of this node.  More... 
 | 
|  | 
| void | cleanDirty () | 
|  | Set dirty flag to false.  More... 
 | 
|  | 
| virtual void | notifyEndEdit () | 
|  | Notify links that the DGNode has been modified.  More... 
 | 
|  | 
| void | updateIfDirty () const | 
|  | Utility method to call update if necessary. This method should be called before reading of writing the value of this node.  More... 
 | 
|  |