zenilib  0.5.3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Zeni::Collision::Capsule Class Reference

Collision Capsule. More...

#include <Collision.h>

Public Member Functions

 Capsule ()
 
 Capsule (const Point3f &end_point_a_, const Point3f &end_point_b_, const float &radius_)
 
const Point3fget_end_point_a () const
 
const Point3fget_end_point_b () const
 
const float & get_radius () const
 
template<typename TYPE >
bool intersects (const TYPE &rhs) const
 
std::pair< float, float > nearest_point (const Capsule &rhs) const
 Returns <distance, interpolation value [0.0f, 1.0f]> More...
 
std::pair< float, float > nearest_point (const Point3f &rhs) const
 
std::pair< float, float > nearest_point (const Sphere &rhs) const
 
std::pair< float, float > nearest_point (const Plane &rhs) const
 
std::pair< float, float > nearest_point (const Line &rhs) const
 
std::pair< float, float > nearest_point (const Ray &rhs) const
 
std::pair< float, float > nearest_point (const Line_Segment &rhs) const
 
std::pair< float, float > nearest_point (const Infinite_Cylinder &rhs) const
 
std::pair< float, float > nearest_point (const Parallelepiped &rhs) const
 
float shortest_distance (const Capsule &rhs) const
 
float shortest_distance (const Point3f &rhs) const
 
float shortest_distance (const Sphere &rhs) const
 
float shortest_distance (const Plane &rhs) const
 
float shortest_distance (const Line &rhs) const
 
float shortest_distance (const Ray &rhs) const
 
float shortest_distance (const Line_Segment &rhs) const
 
float shortest_distance (const Infinite_Cylinder &rhs) const
 
float shortest_distance (const Parallelepiped &rhs) const
 

Detailed Description

Collision Capsule.

This class ZENI_DLL describes a Capsule object in 3-space. The Capsule extends the Line_Segment to have a radius. It is possible to test to see if it intersects any other object in Zeni_Collision, and it is also possible to find the shortest distance between it and any other object in Zeni_Collision. Additionally, it is possible to determine the closest point on the Capsule's inner Line Segment to the object it is being compared to.

Author
bazald

Contact: bazal.nosp@m.d@ze.nosp@m.nipex.nosp@m..com

Definition at line 382 of file Collision.h.

Constructor & Destructor Documentation

Zeni::Collision::Capsule::Capsule ( )
inline

Definition at line 384 of file Collision.h.

Zeni::Collision::Capsule::Capsule ( const Point3f end_point_a_,
const Point3f end_point_b_,
const float &  radius_ 
)

Definition at line 430 of file Collision.cpp.

Member Function Documentation

const Point3f& Zeni::Collision::Capsule::get_end_point_a ( ) const
inline

Definition at line 412 of file Collision.h.

const Point3f& Zeni::Collision::Capsule::get_end_point_b ( ) const
inline

Definition at line 413 of file Collision.h.

const float& Zeni::Collision::Capsule::get_radius ( ) const
inline

Definition at line 414 of file Collision.h.

template<typename TYPE >
bool Zeni::Collision::Capsule::intersects ( const TYPE rhs) const

Definition at line 202 of file Collision.hxx.

References shortest_distance(), and ZENI_COLLISION_EPSILON.

std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Capsule rhs) const

Returns <distance, interpolation value [0.0f, 1.0f]>

Definition at line 458 of file Collision.cpp.

References Zeni::Collision::Line_Segment::nearest_point(), and Zeni::Collision::unpoof().

Referenced by shortest_distance().

std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Point3f rhs) const
std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Sphere rhs) const
std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Plane rhs) const
std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Line rhs) const
std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Ray rhs) const
std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Line_Segment rhs) const
std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Infinite_Cylinder rhs) const
std::pair< float, float > Zeni::Collision::Capsule::nearest_point ( const Parallelepiped rhs) const
float Zeni::Collision::Capsule::shortest_distance ( const Point3f rhs) const
inline

Definition at line 176 of file Collision.hxx.

References nearest_point().

float Zeni::Collision::Capsule::shortest_distance ( const Sphere rhs) const
inline

Definition at line 173 of file Collision.hxx.

References nearest_point().

float Zeni::Collision::Capsule::shortest_distance ( const Plane rhs) const
inline

Definition at line 179 of file Collision.hxx.

References nearest_point().

float Zeni::Collision::Capsule::shortest_distance ( const Line rhs) const
inline

Definition at line 182 of file Collision.hxx.

References nearest_point().

float Zeni::Collision::Capsule::shortest_distance ( const Ray rhs) const
inline

Definition at line 185 of file Collision.hxx.

References nearest_point().

float Zeni::Collision::Capsule::shortest_distance ( const Line_Segment rhs) const
inline

Definition at line 188 of file Collision.hxx.

References nearest_point().

float Zeni::Collision::Capsule::shortest_distance ( const Infinite_Cylinder rhs) const
inline

Definition at line 191 of file Collision.hxx.

References nearest_point().

float Zeni::Collision::Capsule::shortest_distance ( const Parallelepiped rhs) const
inline

Definition at line 197 of file Collision.hxx.

References nearest_point().


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