Public Types | Public Member Functions | Public Attributes

OpenTissue::geometry::HybridVolume< math_types_ > Class Template Reference

#include <geometry_hybrid.h>

Inheritance diagram for OpenTissue::geometry::HybridVolume< math_types_ >:
OpenTissue::geometry::VolumeShape< math_types_ > OpenTissue::utility::ClassID< HybridVolume< math_types_ > > OpenTissue::geometry::BaseShape< math_types_ > OpenTissue::utility::ClassIDInterface OpenTissue::collision::GeometryInterface< math_types_ > OpenTissue::utility::ClassIDInterface

List of all members.

Public Types

enum  selection_type {
  selection_undefined, selection_sphere, selection_aabb, selection_obb,
  selection_cylinder, selection_prism, selection_tetrahedron
}
typedef math_types_ math_types
typedef math_types::value_traits value_traits
typedef math_types::real_type real_type
typedef math_types::vector3_type vector3_type
typedef math_types::matrix3x3_type matrix3x3_type
typedef math_types::quaternion_type quaternion_type
typedef VolumeShape< math_types_ > volume_type
typedef AABB< math_typesaabb_type
typedef OBB< math_typesobb_type
typedef Cylinder< math_typescylinder_type
typedef Sphere< math_typessphere_type
typedef Prism< math_typesprism_type

Public Member Functions

size_t const class_id () const
virtual ~HybridVolume ()
 HybridVolume ()
void set (aabb_type const &other_aabb)
void set (obb_type const &other_obb)
void set (sphere_type const &other_sphere)
void set (cylinder_type const &other_cylinder)
void set (prism_type const &other_prism)
real_type volume () const
real_type area () const
real_type diameter () const
vector3_type center () const
selection_type selected_type () const
void compute_surface_points (std::vector< vector3_type > &points) const
void translate (vector3_type const &T)
void rotate (matrix3x3_type const &R)
void scale (real_type const &s)
vector3_type get_support_point (vector3_type const &v) const
void compute_collision_aabb (vector3_type const &r, matrix3x3_type const &R, vector3_type &min_coord, vector3_type &max_coord) const

Public Attributes

aabb_type m_aabb
obb_type m_obb
cylinder_type m_cylinder
sphere_type m_sphere
prism_type m_prism
selection_type m_picked

Detailed Description

template<typename math_types_>
class OpenTissue::geometry::HybridVolume< math_types_ >

Hybrid Volume Class.


Member Typedef Documentation

template<typename math_types_ >
typedef AABB<math_types> OpenTissue::geometry::HybridVolume< math_types_ >::aabb_type
template<typename math_types_ >
typedef Cylinder<math_types> OpenTissue::geometry::HybridVolume< math_types_ >::cylinder_type
template<typename math_types_ >
typedef math_types_ OpenTissue::geometry::HybridVolume< math_types_ >::math_types
template<typename math_types_ >
typedef math_types::matrix3x3_type OpenTissue::geometry::HybridVolume< math_types_ >::matrix3x3_type
template<typename math_types_ >
typedef OBB<math_types> OpenTissue::geometry::HybridVolume< math_types_ >::obb_type
template<typename math_types_ >
typedef Prism<math_types> OpenTissue::geometry::HybridVolume< math_types_ >::prism_type
template<typename math_types_ >
typedef math_types::quaternion_type OpenTissue::geometry::HybridVolume< math_types_ >::quaternion_type
template<typename math_types_ >
typedef math_types::real_type OpenTissue::geometry::HybridVolume< math_types_ >::real_type
template<typename math_types_ >
typedef Sphere<math_types> OpenTissue::geometry::HybridVolume< math_types_ >::sphere_type
template<typename math_types_ >
typedef math_types::value_traits OpenTissue::geometry::HybridVolume< math_types_ >::value_traits
template<typename math_types_ >
typedef math_types::vector3_type OpenTissue::geometry::HybridVolume< math_types_ >::vector3_type
template<typename math_types_ >
typedef VolumeShape< math_types_ > OpenTissue::geometry::HybridVolume< math_types_ >::volume_type

Member Enumeration Documentation

template<typename math_types_ >
enum OpenTissue::geometry::HybridVolume::selection_type
Enumerator:
selection_undefined 
selection_sphere 
selection_aabb 
selection_obb 
selection_cylinder 
selection_prism 
selection_tetrahedron 

Constructor & Destructor Documentation

template<typename math_types_ >
virtual OpenTissue::geometry::HybridVolume< math_types_ >::~HybridVolume (  )  [inline, virtual]
template<typename math_types_ >
OpenTissue::geometry::HybridVolume< math_types_ >::HybridVolume (  )  [inline]

Member Function Documentation

template<typename math_types_ >
real_type OpenTissue::geometry::HybridVolume< math_types_ >::area (  )  const [inline]
template<typename math_types_ >
vector3_type OpenTissue::geometry::HybridVolume< math_types_ >::center (  )  const [inline]
template<typename math_types_ >
size_t const OpenTissue::geometry::HybridVolume< math_types_ >::class_id (  )  const [inline, virtual]

Query the class ID.

Returns:
The object's class ID

Reimplemented from OpenTissue::utility::ClassID< HybridVolume< math_types_ > >.

template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::compute_collision_aabb ( vector3_type const &  r,
matrix3x3_type const &  R,
vector3_type min_coord,
vector3_type max_coord 
) const [inline]

Compute Bounding Box. This method computes an axis aligned bounding box (AABB) that encloses the geometry.

Parameters:
r The position of the model frame (i.e the coordinate frame the geometry lives in).
R The orientation of the model frame (i.e the coordinate frame the geometry lives in).
min_coord Upon return holds the minimum corner of the box.
max_coord Upon return holds the maximum corner of the box.
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::compute_surface_points ( std::vector< vector3_type > &  points  )  const [inline]
template<typename math_types_ >
real_type OpenTissue::geometry::HybridVolume< math_types_ >::diameter (  )  const [inline]
template<typename math_types_ >
vector3_type OpenTissue::geometry::HybridVolume< math_types_ >::get_support_point ( vector3_type const &  v  )  const [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::rotate ( matrix3x3_type const &  R  )  [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::scale ( real_type const &  s  )  [inline]
template<typename math_types_ >
selection_type OpenTissue::geometry::HybridVolume< math_types_ >::selected_type (  )  const [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::set ( sphere_type const &  other_sphere  )  [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::set ( aabb_type const &  other_aabb  )  [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::set ( prism_type const &  other_prism  )  [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::set ( cylinder_type const &  other_cylinder  )  [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::set ( obb_type const &  other_obb  )  [inline]
template<typename math_types_ >
void OpenTissue::geometry::HybridVolume< math_types_ >::translate ( vector3_type const &  T  )  [inline]
template<typename math_types_ >
real_type OpenTissue::geometry::HybridVolume< math_types_ >::volume (  )  const [inline]

Member Data Documentation

template<typename math_types_ >
aabb_type OpenTissue::geometry::HybridVolume< math_types_ >::m_aabb
template<typename math_types_ >
cylinder_type OpenTissue::geometry::HybridVolume< math_types_ >::m_cylinder
template<typename math_types_ >
obb_type OpenTissue::geometry::HybridVolume< math_types_ >::m_obb
template<typename math_types_ >
selection_type OpenTissue::geometry::HybridVolume< math_types_ >::m_picked
template<typename math_types_ >
prism_type OpenTissue::geometry::HybridVolume< math_types_ >::m_prism
template<typename math_types_ >
sphere_type OpenTissue::geometry::HybridVolume< math_types_ >::m_sphere

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