#include <psys_surface_mesh.h>
Public Types | |
typedef MassSpringSystem < types, integrator_policy > | base_class |
typedef types::math_types | math_types |
typedef math_types::real_type | real_type |
typedef math_types::vector3_type | vector3_type |
typedef types::particle_type | particle_type |
typedef Stick< types > | stick_type |
typedef Spring< types > | spring_type |
typedef types::coupling_type | coupling_type |
typedef types::mesh_type | mesh_type |
Public Member Functions | |
int & | rigidty () |
int const & | rigidty () const |
coupling_type & | coupling () |
coupling_type const & | coupling () const |
SurfaceMesh () | |
virtual | ~SurfaceMesh () |
virtual void | clear () |
virtual void | init (mesh_type &mesh, bool create_sticks, bool create_springs) |
Public Attributes | |
coupling_type | m_coupling |
Internal data structure used to find correspond particle of vertex. | |
int | m_rigidty |
Constant used to determine how rigid a surface should be. | |
stick_container | m_sticks |
Internal data structure used to store all stick constraints. | |
stick_lut_type | m_stick_lut |
Internal datas tructure to record stick connections. | |
spring_container | m_springs |
Internal data structure used to store all spring constraints. | |
spring_lut_type | m_spring_lut |
Internal datas tructure to record spring connections. | |
Protected Types | |
typedef mesh_type::vertex_type | vertex_type |
typedef mesh_type::vertex_iterator | vertex_iterator |
typedef mesh_type::vertex_halfedge_circulator | vertex_halfedge_circulator |
typedef std::list< stick_type > | stick_container |
typedef std::list< stick_type * > | stick_ptr_container |
typedef std::map < particle_type *, stick_ptr_container > | stick_lut_type |
typedef std::list< spring_type > | spring_container |
typedef std::list< spring_type * > | spring_ptr_container |
typedef std::map < particle_type *, spring_ptr_container > | spring_lut_type |
Protected Member Functions | |
bool | exist_stick (particle_type *A, particle_type *B) |
bool | exist_spring (particle_type *A, particle_type *B) |
void | add_stick (particle_type *A, particle_type *B) |
void | add_spring (particle_type *A, particle_type *B) |
template<typename vertex_iterator_container > | |
void | traverse (vertex_iterator root, vertex_iterator from, bool create_sticks, bool create_springs, int dist, vertex_iterator_container &visited) |
Surface Mesh.
Takes a mesh and builds a particle system from it.
typedef MassSpringSystem<types,integrator_policy> OpenTissue::psys::SurfaceMesh< types, integrator_policy >::base_class |
Reimplemented in OpenTissue::psys::Cloth< types, integrator_policy >.
typedef types::coupling_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::coupling_type |
Reimplemented in OpenTissue::psys::Cloth< types, integrator_policy >.
typedef types::math_types OpenTissue::psys::SurfaceMesh< types, integrator_policy >::math_types |
Reimplemented from OpenTissue::psys::MassSpringSystem< types, integrator_policy >.
Reimplemented in OpenTissue::psys::Cloth< types, integrator_policy >.
typedef types::mesh_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::mesh_type |
Reimplemented in OpenTissue::psys::Cloth< types, integrator_policy >.
typedef types::particle_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::particle_type |
Reimplemented from OpenTissue::psys::MassSpringSystem< types, integrator_policy >.
typedef math_types::real_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::real_type |
Reimplemented from OpenTissue::psys::MassSpringSystem< types, integrator_policy >.
Reimplemented in OpenTissue::psys::Cloth< types, integrator_policy >.
typedef std::list<spring_type> OpenTissue::psys::SurfaceMesh< types, integrator_policy >::spring_container [protected] |
typedef std::map<particle_type*, spring_ptr_container > OpenTissue::psys::SurfaceMesh< types, integrator_policy >::spring_lut_type [protected] |
typedef std::list<spring_type*> OpenTissue::psys::SurfaceMesh< types, integrator_policy >::spring_ptr_container [protected] |
typedef Spring<types> OpenTissue::psys::SurfaceMesh< types, integrator_policy >::spring_type |
typedef std::list<stick_type> OpenTissue::psys::SurfaceMesh< types, integrator_policy >::stick_container [protected] |
typedef std::map<particle_type*, stick_ptr_container > OpenTissue::psys::SurfaceMesh< types, integrator_policy >::stick_lut_type [protected] |
typedef std::list<stick_type*> OpenTissue::psys::SurfaceMesh< types, integrator_policy >::stick_ptr_container [protected] |
typedef Stick<types> OpenTissue::psys::SurfaceMesh< types, integrator_policy >::stick_type |
typedef math_types::vector3_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::vector3_type |
Reimplemented from OpenTissue::psys::MassSpringSystem< types, integrator_policy >.
Reimplemented in OpenTissue::psys::Cloth< types, integrator_policy >.
typedef mesh_type::vertex_halfedge_circulator OpenTissue::psys::SurfaceMesh< types, integrator_policy >::vertex_halfedge_circulator [protected] |
typedef mesh_type::vertex_iterator OpenTissue::psys::SurfaceMesh< types, integrator_policy >::vertex_iterator [protected] |
typedef mesh_type::vertex_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::vertex_type [protected] |
OpenTissue::psys::SurfaceMesh< types, integrator_policy >::SurfaceMesh | ( | ) | [inline] |
virtual OpenTissue::psys::SurfaceMesh< types, integrator_policy >::~SurfaceMesh | ( | ) | [inline, virtual] |
void OpenTissue::psys::SurfaceMesh< types, integrator_policy >::add_spring | ( | particle_type * | A, | |
particle_type * | B | |||
) | [inline, protected] |
void OpenTissue::psys::SurfaceMesh< types, integrator_policy >::add_stick | ( | particle_type * | A, | |
particle_type * | B | |||
) | [inline, protected] |
virtual void OpenTissue::psys::SurfaceMesh< types, integrator_policy >::clear | ( | void | ) | [inline, virtual] |
Reimplemented from OpenTissue::psys::MassSpringSystem< types, integrator_policy >.
coupling_type const& OpenTissue::psys::SurfaceMesh< types, integrator_policy >::coupling | ( | ) | const [inline] |
coupling_type& OpenTissue::psys::SurfaceMesh< types, integrator_policy >::coupling | ( | ) | [inline] |
bool OpenTissue::psys::SurfaceMesh< types, integrator_policy >::exist_spring | ( | particle_type * | A, | |
particle_type * | B | |||
) | [inline, protected] |
bool OpenTissue::psys::SurfaceMesh< types, integrator_policy >::exist_stick | ( | particle_type * | A, | |
particle_type * | B | |||
) | [inline, protected] |
virtual void OpenTissue::psys::SurfaceMesh< types, integrator_policy >::init | ( | mesh_type & | mesh, | |
bool | create_sticks, | |||
bool | create_springs | |||
) | [inline, virtual] |
int& OpenTissue::psys::SurfaceMesh< types, integrator_policy >::rigidty | ( | ) | [inline] |
int const& OpenTissue::psys::SurfaceMesh< types, integrator_policy >::rigidty | ( | ) | const [inline] |
void OpenTissue::psys::SurfaceMesh< types, integrator_policy >::traverse | ( | vertex_iterator | root, | |
vertex_iterator | from, | |||
bool | create_sticks, | |||
bool | create_springs, | |||
int | dist, | |||
vertex_iterator_container & | visited | |||
) | [inline, protected] |
coupling_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::m_coupling |
Internal data structure used to find correspond particle of vertex.
int OpenTissue::psys::SurfaceMesh< types, integrator_policy >::m_rigidty |
Constant used to determine how rigid a surface should be.
spring_lut_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::m_spring_lut |
Internal datas tructure to record spring connections.
spring_container OpenTissue::psys::SurfaceMesh< types, integrator_policy >::m_springs |
Internal data structure used to store all spring constraints.
stick_lut_type OpenTissue::psys::SurfaceMesh< types, integrator_policy >::m_stick_lut |
Internal datas tructure to record stick connections.
stick_container OpenTissue::psys::SurfaceMesh< types, integrator_policy >::m_sticks |
Internal data structure used to store all stick constraints.