#include <TriangleSubsetData.h>


Public Types | |
| typedef std::map< unsigned int, T >::size_type | size_type |
| size_type | |
| typedef std::map< unsigned int, T >::reference | reference |
| reference to a value (read-write) | |
| typedef std::map< unsigned int, T >::const_reference | const_reference |
| const reference to a value (read only) | |
Public Member Functions | |
| TriangleSubsetData (size_type n, const T &value) | |
| Constructor. | |
| TriangleSubsetData (int n, const T &value) | |
| Constructor. | |
| TriangleSubsetData (long n, const T &value) | |
| Constructor. | |
| TriangleSubsetData (size_type n) | |
| Constructor. | |
| TriangleSubsetData (const std::map< unsigned int, T > &x) | |
| Constructor. | |
| TriangleSubsetData (typename TriangleSubsetData< T >::const_iterator first, typename TriangleSubsetData< T >::const_iterator last) | |
| Constructor. | |
| TriangleSubsetData (void(*createFunc)(unsigned int, void *, T &, const Triangle &, const std::vector< unsigned int > &, const std::vector< double > &)=tsd_basicCreateFunc, void *createParam=(void *) NULL, void(*destroyFunc)(unsigned int, void *, T &)=tsd_basicDestroyFunc, void *destroyParam=(void *) NULL) | |
| Optionnaly takes 2 parameters, a creation and a destruction function that will be called when adding/deleting elements. | |
| void | handleTopologyEvents (std::list< const core::componentmodel::topology::TopologyChange * >::const_iterator changeIt, std::list< const core::componentmodel::topology::TopologyChange * >::const_iterator &end, const unsigned int totalTriangleSetArraySize) |
| Handle TriangleSetTopology related events, ignore others. | |
| void | setCreateFunction (void(*createFunc)(unsigned int, void *, T &, const Triangle &, const std::vector< unsigned int > &, const std::vector< double > &)) |
| void | setDestroyFunction (void(*destroyFunc)(unsigned int, void *, T &)) |
| void | setDestroyParameter (void *destroyParam) |
| void | setCreateParameter (void *createParam) |
| void | setCreateTetrahedronFunction (void(*createTetrahedronFunc)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &)) |
| void | setDestroyTetrahedronFunction (void(*destroyTetrahedronFunc)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &)) |
Private Member Functions | |
| void | add (unsigned int nbTriangles, const helper::vector< Triangle > &triangle, const helper::vector< helper::vector< unsigned int > > &ancestors, const helper::vector< helper::vector< double > > &coefs) |
| Add some values. Values are added at the end of the vector. | |
| void | remove (const helper::vector< unsigned int > &index) |
| Remove the values corresponding to the Triangles removed. | |
| void | setTotalTriangleSetArraySize (const unsigned int s) |
Private Attributes | |
| void(* | m_createFunc )(unsigned int, void *, T &, const Triangle &, const std::vector< unsigned int > &, const std::vector< double > &) |
| Creation function, called when adding elements. | |
| void(* | m_destroyFunc )(unsigned int, void *, T &) |
| Destruction function, called when deleting elements. | |
| void(* | m_createTetrahedronFunc )(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) |
| Creation function, called when adding tetrahedra elements. | |
| void(* | m_destroyTetrahedronFunc )(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) |
| Destruction function, called when removing tetrahedra elements. | |
| void * | m_createParam |
| Parameter to be passed to creation function. | |
| void * | m_destroyParam |
| Parameter to be passed to destruction function. | |
| unsigned int | lastTriangleIndex |
| to handle properly the removal of items, the container must know the index of the last element | |
Automatically manages topology changes.
This class is a wrapper of class helper::vector that is made to take care transparently of all topology changes that might happen (non exhaustive list: Triangles added, removed, fused, renumbered).
Definition at line 71 of file TriangleSubsetData.h.
| typedef std::map<unsigned int,T>::const_reference sofa::component::topology::TriangleSubsetData< T >::const_reference |
| sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData | ( | size_type | n, | |
| const T & | value | |||
| ) | [inline] |
| sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData | ( | int | n, | |
| const T & | value | |||
| ) | [inline] |
| sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData | ( | long | n, | |
| const T & | value | |||
| ) | [inline] |
| sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData | ( | size_type | n | ) | [inline, explicit] |
| sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData | ( | const std::map< unsigned int, T > & | x | ) | [inline] |
| sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData | ( | typename TriangleSubsetData< T >::const_iterator | first, | |
| typename TriangleSubsetData< T >::const_iterator | last | |||
| ) | [inline] |
| sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData | ( | void(*)(unsigned int, void *, T &, const Triangle &, const std::vector< unsigned int > &, const std::vector< double > &) | createFunc = tsd_basicCreateFunc, |
|
| void * | createParam = (void*)NULL, |
|||
| void(*)(unsigned int, void *, T &) | destroyFunc = tsd_basicDestroyFunc, |
|||
| void * | destroyParam = (void*)NULL | |||
| ) | [inline] |
Optionnaly takes 2 parameters, a creation and a destruction function that will be called when adding/deleting elements.
Definition at line 103 of file TriangleSubsetData.h.
| void sofa::component::topology::TriangleSubsetData< T >::add | ( | unsigned int | nbTriangles, | |
| const helper::vector< Triangle > & | triangle, | |||
| const helper::vector< helper::vector< unsigned int > > & | ancestors, | |||
| const helper::vector< helper::vector< double > > & | coefs | |||
| ) | [inline, private] |
Add some values. Values are added at the end of the vector.
Definition at line 96 of file TriangleSubsetData.inl.
References sofa::component::topology::TriangleSubsetData< T >::lastTriangleIndex, sofa::component::topology::TriangleSubsetData< T >::m_createFunc, and sofa::component::topology::TriangleSubsetData< T >::m_createParam.
| void sofa::component::topology::TriangleSubsetData< T >::handleTopologyEvents | ( | std::list< const core::componentmodel::topology::TopologyChange * >::const_iterator | changeIt, | |
| std::list< const core::componentmodel::topology::TopologyChange * >::const_iterator & | end, | |||
| const unsigned int | totalTriangleSetArraySize | |||
| ) | [inline] |
Handle TriangleSetTopology related events, ignore others.
Definition at line 46 of file TriangleSubsetData.inl.
References sofa::component::topology::TrianglesAdded::ancestorsList, sofa::component::topology::TrianglesAdded::coefs, sofa::component::topology::TetrahedraRemoved::getArray(), sofa::component::topology::TrianglesAdded::getNbAddedTriangles(), sofa::component::topology::TriangleSubsetData< T >::m_createParam, sofa::component::topology::TriangleSubsetData< T >::m_createTetrahedronFunc, sofa::component::topology::TriangleSubsetData< T >::m_destroyTetrahedronFunc, sofa::component::topology::TriangleSubsetData< T >::setTotalTriangleSetArraySize(), sofa::core::componentmodel::topology::TETRAHEDRAADDED, sofa::core::componentmodel::topology::TETRAHEDRAREMOVED, sofa::component::topology::TetrahedraAdded::tetrahedronIndexArray, sofa::component::topology::TrianglesAdded::triangleArray, sofa::core::componentmodel::topology::TRIANGLESADDED, and sofa::core::componentmodel::topology::TRIANGLESREMOVED.
| void sofa::component::topology::TriangleSubsetData< T >::remove | ( | const helper::vector< unsigned int > & | index | ) | [inline, private] |
Remove the values corresponding to the Triangles removed.
the triangle lastTriangleIndex is now set to index index[i]
change the key of the item associated with key lastTriangleIndex
Definition at line 124 of file TriangleSubsetData.inl.
References sofa::component::topology::TriangleSubsetData< T >::lastTriangleIndex, sofa::component::topology::TriangleSubsetData< T >::m_destroyFunc, and sofa::component::topology::TriangleSubsetData< T >::m_destroyParam.
| void sofa::component::topology::TriangleSubsetData< T >::setCreateFunction | ( | void(*)(unsigned int, void *, T &, const Triangle &, const std::vector< unsigned int > &, const std::vector< double > &) | createFunc | ) | [inline] |
Definition at line 118 of file TriangleSubsetData.h.
| void sofa::component::topology::TriangleSubsetData< T >::setCreateParameter | ( | void * | createParam | ) | [inline] |
Definition at line 133 of file TriangleSubsetData.h.
| void sofa::component::topology::TriangleSubsetData< T >::setCreateTetrahedronFunction | ( | void(*)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) | createTetrahedronFunc | ) | [inline] |
Definition at line 138 of file TriangleSubsetData.h.
| void sofa::component::topology::TriangleSubsetData< T >::setDestroyFunction | ( | void(*)(unsigned int, void *, T &) | destroyFunc | ) | [inline] |
Definition at line 123 of file TriangleSubsetData.h.
| void sofa::component::topology::TriangleSubsetData< T >::setDestroyParameter | ( | void * | destroyParam | ) | [inline] |
Definition at line 128 of file TriangleSubsetData.h.
| void sofa::component::topology::TriangleSubsetData< T >::setDestroyTetrahedronFunction | ( | void(*)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) | destroyTetrahedronFunc | ) | [inline] |
Definition at line 143 of file TriangleSubsetData.h.
| void sofa::component::topology::TriangleSubsetData< T >::setTotalTriangleSetArraySize | ( | const unsigned int | s | ) | [inline, private] |
Definition at line 158 of file TriangleSubsetData.h.
Referenced by sofa::component::topology::TriangleSubsetData< T >::handleTopologyEvents().
unsigned int sofa::component::topology::TriangleSubsetData< T >::lastTriangleIndex [private] |
to handle properly the removal of items, the container must know the index of the last element
Definition at line 189 of file TriangleSubsetData.h.
Referenced by sofa::component::topology::TriangleSubsetData< T >::add(), sofa::component::topology::TriangleSubsetData< T >::remove(), and sofa::component::topology::TriangleSubsetData< sofa::component::forcefield::TrianglePressureForceField::TrianglePressureInformation >::setTotalTriangleSetArraySize().
void(* sofa::component::topology::TriangleSubsetData< T >::m_createFunc)(unsigned int, void *, T &, const Triangle &, const std::vector< unsigned int > &, const std::vector< double > &) [private] |
Creation function, called when adding elements.
Referenced by sofa::component::topology::TriangleSubsetData< T >::add(), and sofa::component::topology::TriangleSubsetData< sofa::component::forcefield::TrianglePressureForceField::TrianglePressureInformation >::setCreateFunction().
void* sofa::component::topology::TriangleSubsetData< T >::m_createParam [private] |
Parameter to be passed to creation function.
Warning : construction and destruction of this object is not of the responsibility of TriangleSubsetData.
Definition at line 180 of file TriangleSubsetData.h.
Referenced by sofa::component::topology::TriangleSubsetData< T >::add(), sofa::component::topology::TriangleSubsetData< T >::handleTopologyEvents(), and sofa::component::topology::TriangleSubsetData< sofa::component::forcefield::TrianglePressureForceField::TrianglePressureInformation >::setCreateParameter().
void(* sofa::component::topology::TriangleSubsetData< T >::m_createTetrahedronFunc)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) [private] |
Creation function, called when adding tetrahedra elements.
Referenced by sofa::component::topology::TriangleSubsetData< T >::handleTopologyEvents(), and sofa::component::topology::TriangleSubsetData< sofa::component::forcefield::TrianglePressureForceField::TrianglePressureInformation >::setCreateTetrahedronFunction().
void(* sofa::component::topology::TriangleSubsetData< T >::m_destroyFunc)(unsigned int, void *, T &) [private] |
Destruction function, called when deleting elements.
Referenced by sofa::component::topology::TriangleSubsetData< T >::remove(), and sofa::component::topology::TriangleSubsetData< sofa::component::forcefield::TrianglePressureForceField::TrianglePressureInformation >::setDestroyFunction().
void* sofa::component::topology::TriangleSubsetData< T >::m_destroyParam [private] |
Parameter to be passed to destruction function.
Warning : construction and destruction of this object is not of the responsibility of TriangleSubsetData.
Definition at line 186 of file TriangleSubsetData.h.
Referenced by sofa::component::topology::TriangleSubsetData< T >::remove(), and sofa::component::topology::TriangleSubsetData< sofa::component::forcefield::TrianglePressureForceField::TrianglePressureInformation >::setDestroyParameter().
void(* sofa::component::topology::TriangleSubsetData< T >::m_destroyTetrahedronFunc)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) [private] |
Destruction function, called when removing tetrahedra elements.
Referenced by sofa::component::topology::TriangleSubsetData< T >::handleTopologyEvents(), and sofa::component::topology::TriangleSubsetData< sofa::component::forcefield::TrianglePressureForceField::TrianglePressureInformation >::setDestroyTetrahedronFunction().
1.5.7.1