sofa::component::topology::TriangleSubsetData< T > Class Template Reference

A class for storing Triangle related data. More...

#include <TriangleSubsetData.h>

Inheritance diagram for sofa::component::topology::TriangleSubsetData< T >:

Inheritance graph
[legend]
Collaboration diagram for sofa::component::topology::TriangleSubsetData< T >:

Collaboration graph
[legend]

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

Detailed Description

template<class T>
class sofa::component::topology::TriangleSubsetData< T >

A class for storing Triangle related data.

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.


Member Typedef Documentation

template<class T >
typedef std::map<unsigned int,T>::const_reference sofa::component::topology::TriangleSubsetData< T >::const_reference

const reference to a value (read only)

Definition at line 79 of file TriangleSubsetData.h.

template<class T >
typedef std::map<unsigned int,T>::reference sofa::component::topology::TriangleSubsetData< T >::reference

reference to a value (read-write)

Definition at line 77 of file TriangleSubsetData.h.

template<class T >
typedef std::map<unsigned int,T>::size_type sofa::component::topology::TriangleSubsetData< T >::size_type

size_type

Definition at line 75 of file TriangleSubsetData.h.


Constructor & Destructor Documentation

template<class T >
sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData ( size_type  n,
const T &  value 
) [inline]

Constructor.

Definition at line 83 of file TriangleSubsetData.h.

template<class T >
sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData ( int  n,
const T &  value 
) [inline]

Constructor.

Definition at line 85 of file TriangleSubsetData.h.

template<class T >
sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData ( long  n,
const T &  value 
) [inline]

Constructor.

Definition at line 87 of file TriangleSubsetData.h.

template<class T >
sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData ( size_type  n  )  [inline, explicit]

Constructor.

Definition at line 89 of file TriangleSubsetData.h.

template<class T >
sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData ( const std::map< unsigned int, T > &  x  )  [inline]

Constructor.

Definition at line 91 of file TriangleSubsetData.h.

template<class T >
sofa::component::topology::TriangleSubsetData< T >::TriangleSubsetData ( typename TriangleSubsetData< T >::const_iterator  first,
typename TriangleSubsetData< T >::const_iterator  last 
) [inline]

Constructor.

Definition at line 99 of file TriangleSubsetData.h.

template<class T >
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.


Member Function Documentation

template<typename T >
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]

template<typename T >
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]

template<typename T >
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.

template<class T >
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.

template<class T >
void sofa::component::topology::TriangleSubsetData< T >::setCreateParameter ( void *  createParam  )  [inline]

Definition at line 133 of file TriangleSubsetData.h.

template<class T >
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.

template<class T >
void sofa::component::topology::TriangleSubsetData< T >::setDestroyFunction ( void(*)(unsigned int, void *, T &)  destroyFunc  )  [inline]

Definition at line 123 of file TriangleSubsetData.h.

template<class T >
void sofa::component::topology::TriangleSubsetData< T >::setDestroyParameter ( void *  destroyParam  )  [inline]

Definition at line 128 of file TriangleSubsetData.h.

template<class T >
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.

template<class T >
void sofa::component::topology::TriangleSubsetData< T >::setTotalTriangleSetArraySize ( const unsigned int  s  )  [inline, private]


Field Documentation

template<class T >
unsigned int sofa::component::topology::TriangleSubsetData< T >::lastTriangleIndex [private]

template<class T >
void(* sofa::component::topology::TriangleSubsetData< T >::m_createFunc)(unsigned int, void *, T &, const Triangle &, const std::vector< unsigned int > &, const std::vector< double > &) [private]

template<class T >
void* sofa::component::topology::TriangleSubsetData< T >::m_createParam [private]

template<class T >
void(* sofa::component::topology::TriangleSubsetData< T >::m_createTetrahedronFunc)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) [private]

template<class T >
void(* sofa::component::topology::TriangleSubsetData< T >::m_destroyFunc)(unsigned int, void *, T &) [private]

template<class T >
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().

template<class T >
void(* sofa::component::topology::TriangleSubsetData< T >::m_destroyTetrahedronFunc)(const std::vector< unsigned int > &, void *, std::map< unsigned int, T > &) [private]


The documentation for this class was generated from the following files:

Generated on Sun Nov 23 04:21:42 2008 for Sofa by  doxygen 1.5.7.1