Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Attributes

OpenTissue::mbd::Edge< mbd_types > Class Template Reference

#include <mbd_edge.h>

List of all members.

Public Types

typedef
mbd_types::math_policy::index_type 
size_type
typedef mbd_types::body_type body_type
typedef mbd_types::edge_type edge_type
typedef mbd_types::material_type material_type
typedef mbd_types::contact_iterator contact_iterator
typedef
mbd_types::const_contact_iterator 
const_contact_iterator

Public Member Functions

body_type const * get_body_A () const
body_typeget_body_A ()
body_type const * get_body_B () const
body_typeget_body_B ()
contact_iterator contact_begin ()
contact_iterator contact_end ()
const_contact_iterator contact_begin () const
const_contact_iterator contact_end () const
size_type size_contacts () const
contact_containerget_contacts ()
material_type const * get_material () const
material_typeget_material ()
 Edge ()
virtual ~Edge ()
bool & prunned ()
bool const & prunned () const
void init (body_type *const body_A, body_type *const body_B)
bool operator== (edge_type const &edge) const
bool operator!= (edge_type const &edge) const
bool operator< (edge_type const &edge) const
size_type hash_key () const
bool is_up_to_date () const

Static Public Member Functions

static size_type hash_key (body_type const *A, body_type const *B)

Public Attributes

material_typem_material
 A pointer to the material properties between A and B.
bool m_relative_resting
size_type m_updated_time_stamp
collision_detection_policym_collision_detection
 A pointer to the collision detection engine that detected this edge.

Protected Types

typedef
mbd_types::contact_container 
contact_container
typedef
mbd_types::collision_detection_policy 
collision_detection_policy

Protected Attributes

body_typem_A
 Pointer to body with smallest index.
body_typem_B
 Pointer to body with highest index.
contact_container m_contacts
 All contacts between A and B.
bool m_prunned
 Booelan flag indicating whether the edge has been prunned by some collision detection module during a collision query.

template<typename mbd_types>
class OpenTissue::mbd::Edge< mbd_types >


Member Typedef Documentation

template<typename mbd_types >
typedef mbd_types::body_type OpenTissue::mbd::Edge< mbd_types >::body_type
template<typename mbd_types >
typedef mbd_types::collision_detection_policy OpenTissue::mbd::Edge< mbd_types >::collision_detection_policy [protected]
template<typename mbd_types >
typedef mbd_types::const_contact_iterator OpenTissue::mbd::Edge< mbd_types >::const_contact_iterator
template<typename mbd_types >
typedef mbd_types::contact_container OpenTissue::mbd::Edge< mbd_types >::contact_container [protected]
template<typename mbd_types >
typedef mbd_types::contact_iterator OpenTissue::mbd::Edge< mbd_types >::contact_iterator
template<typename mbd_types >
typedef mbd_types::edge_type OpenTissue::mbd::Edge< mbd_types >::edge_type
template<typename mbd_types >
typedef mbd_types::material_type OpenTissue::mbd::Edge< mbd_types >::material_type
template<typename mbd_types >
typedef mbd_types::math_policy::index_type OpenTissue::mbd::Edge< mbd_types >::size_type

Constructor & Destructor Documentation

template<typename mbd_types >
OpenTissue::mbd::Edge< mbd_types >::Edge (  )  [inline]
template<typename mbd_types >
virtual OpenTissue::mbd::Edge< mbd_types >::~Edge (  )  [inline, virtual]

Member Function Documentation

template<typename mbd_types >
contact_iterator OpenTissue::mbd::Edge< mbd_types >::contact_begin (  )  [inline]
template<typename mbd_types >
const_contact_iterator OpenTissue::mbd::Edge< mbd_types >::contact_begin (  )  const [inline]
template<typename mbd_types >
const_contact_iterator OpenTissue::mbd::Edge< mbd_types >::contact_end (  )  const [inline]
template<typename mbd_types >
contact_iterator OpenTissue::mbd::Edge< mbd_types >::contact_end (  )  [inline]
template<typename mbd_types >
body_type const* OpenTissue::mbd::Edge< mbd_types >::get_body_A (  )  const [inline]
template<typename mbd_types >
body_type* OpenTissue::mbd::Edge< mbd_types >::get_body_A (  )  [inline]
template<typename mbd_types >
body_type* OpenTissue::mbd::Edge< mbd_types >::get_body_B (  )  [inline]
template<typename mbd_types >
body_type const* OpenTissue::mbd::Edge< mbd_types >::get_body_B (  )  const [inline]
template<typename mbd_types >
contact_container* OpenTissue::mbd::Edge< mbd_types >::get_contacts (  )  [inline]
template<typename mbd_types >
material_type const* OpenTissue::mbd::Edge< mbd_types >::get_material (  )  const [inline]
template<typename mbd_types >
material_type* OpenTissue::mbd::Edge< mbd_types >::get_material (  )  [inline]
template<typename mbd_types >
static size_type OpenTissue::mbd::Edge< mbd_types >::hash_key ( body_type const *  A,
body_type const *  B 
) [inline, static]

Get Hash Key. This method is usefull if one want to get the hash key of a body edge that needs to be looked up in a hash map.

Parameters:
A 
B 
Returns:
template<typename mbd_types >
size_type OpenTissue::mbd::Edge< mbd_types >::hash_key (  )  const [inline]
template<typename mbd_types >
void OpenTissue::mbd::Edge< mbd_types >::init ( body_type *const   body_A,
body_type *const   body_B 
) [inline]
template<typename mbd_types >
bool OpenTissue::mbd::Edge< mbd_types >::is_up_to_date (  )  const [inline]

Is Up-To-Date Query. This method determines whether the cached contact information in the edge is up-to-date.

Returns:
If edge is up-to-date then the return value is true otherwise it is false.
template<typename mbd_types >
bool OpenTissue::mbd::Edge< mbd_types >::operator!= ( edge_type const &  edge  )  const [inline]
template<typename mbd_types >
bool OpenTissue::mbd::Edge< mbd_types >::operator< ( edge_type const &  edge  )  const [inline]
template<typename mbd_types >
bool OpenTissue::mbd::Edge< mbd_types >::operator== ( edge_type const &  edge  )  const [inline]
template<typename mbd_types >
bool const& OpenTissue::mbd::Edge< mbd_types >::prunned (  )  const [inline]
template<typename mbd_types >
bool& OpenTissue::mbd::Edge< mbd_types >::prunned (  )  [inline]

Get Prunned Flag.

Returns:
A reference to a booelan flag indicating whether the edge has been prunned by some collision detection module during a collision query.
template<typename mbd_types >
size_type OpenTissue::mbd::Edge< mbd_types >::size_contacts (  )  const [inline]

Member Data Documentation

template<typename mbd_types >
body_type* OpenTissue::mbd::Edge< mbd_types >::m_A [protected]

Pointer to body with smallest index.

template<typename mbd_types >
body_type* OpenTissue::mbd::Edge< mbd_types >::m_B [protected]

Pointer to body with highest index.

template<typename mbd_types >
collision_detection_policy* OpenTissue::mbd::Edge< mbd_types >::m_collision_detection

A pointer to the collision detection engine that detected this edge.

template<typename mbd_types >
contact_container OpenTissue::mbd::Edge< mbd_types >::m_contacts [protected]

All contacts between A and B.

template<typename mbd_types >
material_type* OpenTissue::mbd::Edge< mbd_types >::m_material

A pointer to the material properties between A and B.

template<typename mbd_types >
bool OpenTissue::mbd::Edge< mbd_types >::m_prunned [protected]

Booelan flag indicating whether the edge has been prunned by some collision detection module during a collision query.

template<typename mbd_types >
bool OpenTissue::mbd::Edge< mbd_types >::m_relative_resting

Boolean value indicating whatever the bodies are in relative rest since the last invocation of the collision detection engine. This flag can be used to determine whatever caching could be exploited. (for instance to skip narrow phase collision detection and contact determination).

template<typename mbd_types >
size_type OpenTissue::mbd::Edge< mbd_types >::m_updated_time_stamp

Timestamp of last time when this edge contains up-to-date information. Compare this to the time stamp of the collision detection engine, if they are equal the edge contains valid cached contact information, if they are unequal the cached information is non-valid and should not be used.


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