#include <geometry_ellipsoid.h>
typedef Ellipsoid<math_types_> OpenTissue::geometry::Ellipsoid< math_types_ >::ellipsoid_type |
typedef math_types::index_type OpenTissue::geometry::Ellipsoid< math_types_ >::index_type |
typedef math_types_ OpenTissue::geometry::Ellipsoid< math_types_ >::math_types |
typedef math_types::matrix3x3_type OpenTissue::geometry::Ellipsoid< math_types_ >::matrix3x3_type |
typedef math_types::quaternion_type OpenTissue::geometry::Ellipsoid< math_types_ >::quaternion_type |
typedef math_types::real_type OpenTissue::geometry::Ellipsoid< math_types_ >::real_type |
typedef math_types::value_traits OpenTissue::geometry::Ellipsoid< math_types_ >::value_traits |
typedef math_types::vector3_type OpenTissue::geometry::Ellipsoid< math_types_ >::vector3_type |
OpenTissue::geometry::Ellipsoid< math_types_ >::Ellipsoid | ( | ) | [inline] |
virtual OpenTissue::geometry::Ellipsoid< math_types_ >::~Ellipsoid | ( | ) | [inline, virtual] |
real_type OpenTissue::geometry::Ellipsoid< math_types_ >::area | ( | ) | const [inline] |
vector3_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::axis | ( | index_type | idx | ) | const [inline] |
Get Axis.
idx | Index of the axis. |
vector3_type& OpenTissue::geometry::Ellipsoid< math_types_ >::axis | ( | index_type | idx | ) | [inline] |
Get Axis.
idx | Index of the axis. |
vector3_type& OpenTissue::geometry::Ellipsoid< math_types_ >::axis0 | ( | ) | [inline] |
vector3_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::axis0 | ( | ) | const [inline] |
vector3_type& OpenTissue::geometry::Ellipsoid< math_types_ >::axis1 | ( | ) | [inline] |
vector3_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::axis1 | ( | ) | const [inline] |
vector3_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::axis2 | ( | ) | const [inline] |
vector3_type& OpenTissue::geometry::Ellipsoid< math_types_ >::axis2 | ( | ) | [inline] |
vector3_type& OpenTissue::geometry::Ellipsoid< math_types_ >::center | ( | ) | [inline] |
vector3_type OpenTissue::geometry::Ellipsoid< math_types_ >::center | ( | ) | const [inline] |
size_t const OpenTissue::geometry::Ellipsoid< math_types_ >::class_id | ( | ) | const [inline, virtual] |
Query the class ID.
Reimplemented from OpenTissue::utility::ClassID< Ellipsoid< math_types_ > >.
void OpenTissue::geometry::Ellipsoid< 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.
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. |
void OpenTissue::geometry::Ellipsoid< math_types_ >::compute_surface_points | ( | std::vector< vector3_type > & | ) | const [inline] |
real_type OpenTissue::geometry::Ellipsoid< math_types_ >::diameter | ( | ) | const [inline] |
void OpenTissue::geometry::Ellipsoid< math_types_ >::get_covariance | ( | vector3_type & | mean, | |
matrix3x3_type & | C | |||
) | [inline] |
Retrive Covariance Information about Ellipsoid.
C | Covariance matrix. | |
mean | Mean point. |
void OpenTissue::geometry::Ellipsoid< math_types_ >::get_equation | ( | matrix3x3_type & | A, | |
vector3_type & | B, | |||
real_type & | C | |||
) | const [inline] |
Ellipsoid (Implicit) Equation.
let p = [x y z]^T, then an ellipsoid can be written as (in homegenious coordinates)
| A B | | p | |p^T 1 | | B^T C | | 1 | = p^T A p + 2 B^T p + C = 0
Which should be equivalent to the classical ellipoid equation
(R^T (p - center) )_x^2 / r_0^2 + ...+ (R^T (p - center) )_z^2 / r_2^2 = 1
With some mathemagical handy-work is can be shown that
D = diag( 1/r0^2, 1/r1^2, 1/r2^2) R = (axis0, axis1, axis2) A = R D R^T // Note this is a symmetric matrix B = - A center C = center^T A center - 1 = - center^T B - 1
vector3_type OpenTissue::geometry::Ellipsoid< math_types_ >::get_support_point | ( | vector3_type const & | ) | const [inline] |
Ellipsoid& OpenTissue::geometry::Ellipsoid< math_types_ >::operator= | ( | ellipsoid_type const & | ellipsoid | ) | [inline] |
void OpenTissue::geometry::Ellipsoid< math_types_ >::orientation | ( | matrix3x3_type const & | R | ) | [inline] |
matrix3x3_type OpenTissue::geometry::Ellipsoid< math_types_ >::orientation | ( | ) | const [inline] |
real_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::radius | ( | index_type | idx | ) | const [inline] |
Get Radius.
idx | Index of the axis along which the radius is wanted. |
real_type& OpenTissue::geometry::Ellipsoid< math_types_ >::radius | ( | index_type | idx | ) | [inline] |
Get Radius.
idx | Index of the axis along which the radius is wanted. |
real_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::radius0 | ( | ) | const [inline] |
real_type& OpenTissue::geometry::Ellipsoid< math_types_ >::radius0 | ( | ) | [inline] |
real_type& OpenTissue::geometry::Ellipsoid< math_types_ >::radius1 | ( | ) | [inline] |
real_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::radius1 | ( | ) | const [inline] |
real_type& OpenTissue::geometry::Ellipsoid< math_types_ >::radius2 | ( | ) | [inline] |
real_type const& OpenTissue::geometry::Ellipsoid< math_types_ >::radius2 | ( | ) | const [inline] |
void OpenTissue::geometry::Ellipsoid< math_types_ >::random_points | ( | point_container & | P | ) | [inline] |
Generate Random Surface Points on Ellipsoid.
P | Upon return this container will hold the generated points. |
void OpenTissue::geometry::Ellipsoid< math_types_ >::rotate | ( | matrix3x3_type const & | R | ) | [inline] |
void OpenTissue::geometry::Ellipsoid< math_types_ >::scale | ( | real_type const & | s | ) | [inline] |
void OpenTissue::geometry::Ellipsoid< math_types_ >::set_covariance | ( | vector3_type const & | mean, | |
matrix3x3_type const & | C | |||
) | [inline] |
void OpenTissue::geometry::Ellipsoid< math_types_ >::set_equation | ( | matrix3x3_type const & | A, | |
vector3_type const & | B, | |||
real_type const & | C | |||
) | [inline] |
Set Ellipsoid
Let ellipsoid equation be given as
p^T A p + 2 B^T p + C = 0
This method extracts, ellipsoid axes and center from this implicit equation.
void OpenTissue::geometry::Ellipsoid< math_types_ >::set_sphere | ( | real_type const & | radius, | |
vector3_type const & | center | |||
) | [inline] |
Set Ellipsoid to be Spherical.
radius | The radius of the sphere. | |
center | The cetner of the sphere. |
void OpenTissue::geometry::Ellipsoid< math_types_ >::translate | ( | vector3_type const & | T | ) | [inline] |
real_type OpenTissue::geometry::Ellipsoid< math_types_ >::volume | ( | ) | const [inline] |
vector3_type OpenTissue::geometry::Ellipsoid< math_types_ >::m_axis0 [protected] |
First axis.
vector3_type OpenTissue::geometry::Ellipsoid< math_types_ >::m_axis1 [protected] |
Second axis.
vector3_type OpenTissue::geometry::Ellipsoid< math_types_ >::m_axis2 [protected] |
Third axis.
vector3_type OpenTissue::geometry::Ellipsoid< math_types_ >::m_center [protected] |
The center of the ellipsoid.
real_type OpenTissue::geometry::Ellipsoid< math_types_ >::m_radius0 [protected] |
Radius of first axis.
real_type OpenTissue::geometry::Ellipsoid< math_types_ >::m_radius1 [protected] |
Radius of first axis.
real_type OpenTissue::geometry::Ellipsoid< math_types_ >::m_radius2 [protected] |
Radius of first axis.