#include <sch/S_Object/S_Object.h>
Public Types | |
enum | S_ObjectType { TS_Object, TPolyhedron, TSTP_BV, TSphere, TBox, TSuperellipsoid, TSTP_BV_WithPolyhedron, TPoint, TCapsule, TCone, TCylinder } |
type of a solid object. Don't use it to cast ! More... | |
Public Member Functions | |
virtual SCH_API Point3 | l_Support (const Vector3 &v, int &lastFeature) const =0 |
gives the support point for a given vector in local cordinates and a given last feature. MUST BE OVERLOADED. More... | |
virtual SCH_API S_Object * | clone () const =0 |
Returns a copy of this S_Object. More... | |
SCH_API | S_Object (void) |
virtual SCH_API | ~S_Object (void) |
virtual SCH_API Point3 | support (const Vector3 &v) const =0 |
put it in objects coordinates, then calls l_support. DO NOT OVERLOAD IT UNLESS YOU KNOW WHAT YOU ARE DOING (if you want to define the support function, overload l_support) More... | |
virtual SCH_API Point3 | support (const Vector3 &v, int &LastFeature) const =0 |
version of support with last feature optimization More... | |
virtual SCH_API void | constructFromFile (const std::string &filename) |
SCH_API void | setOrientation (const Matrix3x3 &Rotation) |
SCH_API void | setOrientation (const Scalar &r00, const Scalar &r01, const Scalar &r02, const Scalar &r10, const Scalar &r11, const Scalar &r12, const Scalar &r20, const Scalar &r21, const Scalar &r22) |
SCH_API void | setOrientation (const Quaternion quaternion) |
SCH_API void | setOrientation (const Scalar &q0, const Scalar &q1, const Scalar &q2, const Scalar &q3) |
SCH_API void | setOrientation (const Scalar &yaw, const Scalar &pitch, const Scalar &roll) |
SCH_API void | setOrientation (const Scalar *const p) |
SCH_API void | setOrientation (const Scalar &angle, const Vector3 &axe) |
SCH_API void | setPosition (const Vector3 &v) |
Sets the position. More... | |
SCH_API void | setPosition (const Scalar &x, const Scalar &y, const Scalar &z) |
SCH_API void | setPosition (const Scalar *const v) |
SCH_API void | setTransformation (const Matrix4x4 &transformation) |
Sets the transformation matrix. More... | |
SCH_API void | addRotation (const Matrix3x3 &Rotation) |
composes the current orientation with a Rotation More... | |
SCH_API void | addRotation (const Scalar &r00, const Scalar &r01, const Scalar &r02, const Scalar &r10, const Scalar &r11, const Scalar &r12, const Scalar &r20, const Scalar &r21, const Scalar &r22) |
SCH_API void | addRotation (const Quaternion quaternion) |
SCH_API void | addRotation (const Scalar &q0, const Scalar &q1, const Scalar &q2, const Scalar &q3) |
SCH_API void | addRotation (const Scalar &angle, const Vector3 &axe) |
SCH_API void | addRotation (const Scalar &yaw, const Scalar &pitch, const Scalar &roll) |
SCH_API void | addRotation (const Scalar *const p) |
SCH_API void | addScale (const Scalar &x, const Scalar &y, const Scalar &z) |
composes the current transfornation with a scale More... | |
SCH_API void | addTransformation (const Matrix4x4 &transformation) |
composes the current transfornation with transformation matrix one More... | |
SCH_API void | resetTransformation () |
loads Identity More... | |
const SCH_API Vector3 & | getPosition () const |
returns the position More... | |
const SCH_API Matrix3x3 & | getOrientation () const |
returns the orientation as a rotation matrix More... | |
SCH_API void | getTransformationMatrix (Scalar *S) const |
puts the transfomation matrix in a sclar array More... | |
int | getSlices () const |
int | getStacks () const |
virtual SCH_API S_ObjectType | getType () const |
must be overloaded to return the type More... | |
const S_ObjectTimeStamp & | checkStamp () const |
returns the current time stamp More... | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int) |
Adds a translation | |
SCH_API void | addTranslation (const Vector3 &v) |
SCH_API void | addTranslation (const Scalar *const v) |
SCH_API void | addTranslation (const Scalar &x, const Scalar &y, const Scalar &z) |
Protected Attributes | |
S_ObjectTimeStamp | stamp_ |
int | stacks_ |
int | slices_ |
Matrix3x3 | mRot_ |
Vector3 | trans_ |
SCH_API sch::S_Object::S_Object | ( | void | ) |
|
virtual |
composes the current orientation with a Rotation
SCH_API void sch::S_Object::addRotation | ( | const Quaternion | quaternion | ) |
SCH_API void sch::S_Object::addRotation | ( | const Scalar & | q0, |
const Scalar & | q1, | ||
const Scalar & | q2, | ||
const Scalar & | q3 | ||
) |
SCH_API void sch::S_Object::addRotation | ( | const Scalar & | r00, |
const Scalar & | r01, | ||
const Scalar & | r02, | ||
const Scalar & | r10, | ||
const Scalar & | r11, | ||
const Scalar & | r12, | ||
const Scalar & | r20, | ||
const Scalar & | r21, | ||
const Scalar & | r22 | ||
) |
SCH_API void sch::S_Object::addRotation | ( | const Scalar & | yaw, |
const Scalar & | pitch, | ||
const Scalar & | roll | ||
) |
Euler ROLL PITCH YAW - AROUND X, Y THEN Z
composes the current transfornation with a scale
composes the current transfornation with transformation matrix one
|
inline |
returns the current time stamp
Returns a copy of this S_Object.
Implemented in sch::STP_BV, sch::S_Polyhedron, sch::S_Cone, sch::S_Box, sch::S_Sphere, sch::S_Superellipsoid, sch::STP_BV_P, sch::S_Capsule, sch::S_Cylinder, and sch::S_Point.
|
virtual |
Reimplemented in sch::STP_BV, sch::S_Polyhedron, and sch::STP_BV_P.
|
inline |
returns the orientation as a rotation matrix
|
inline |
returns the position
|
inline |
|
inline |
|
inline |
puts the transfomation matrix in a sclar array
|
virtual |
must be overloaded to return the type
Reimplemented in sch::STP_BV, sch::S_Polyhedron, sch::STP_BV_P, sch::S_Cone, sch::S_Box, sch::S_Capsule, sch::S_Cylinder, sch::S_Sphere, sch::S_Point, and sch::S_Superellipsoid.
|
pure virtual |
gives the support point for a given vector in local cordinates and a given last feature. MUST BE OVERLOADED.
v | direction vector (normalized) |
lastFeature | tells in which feature we were in last query, amd returns the new one. very important in spatio-temporal coherence |
Implemented in sch::STP_BV, sch::S_Polyhedron, sch::S_Cone, sch::S_Box, sch::S_Capsule, sch::S_Cylinder, sch::S_Sphere, sch::S_Point, sch::S_Superellipsoid, and sch::STP_BV_P.
SCH_API void sch::S_Object::resetTransformation | ( | ) |
loads Identity
|
inline |
SCH_API void sch::S_Object::setOrientation | ( | const Quaternion | quaternion | ) |
SCH_API void sch::S_Object::setOrientation | ( | const Scalar & | q0, |
const Scalar & | q1, | ||
const Scalar & | q2, | ||
const Scalar & | q3 | ||
) |
SCH_API void sch::S_Object::setOrientation | ( | const Scalar & | r00, |
const Scalar & | r01, | ||
const Scalar & | r02, | ||
const Scalar & | r10, | ||
const Scalar & | r11, | ||
const Scalar & | r12, | ||
const Scalar & | r20, | ||
const Scalar & | r21, | ||
const Scalar & | r22 | ||
) |
SCH_API void sch::S_Object::setOrientation | ( | const Scalar & | yaw, |
const Scalar & | pitch, | ||
const Scalar & | roll | ||
) |
Euler ROLL PITCH YAW - AROUND X, Y THEN Z
Sets the position.
Sets the transformation matrix.
put it in objects coordinates, then calls l_support. DO NOT OVERLOAD IT UNLESS YOU KNOW WHAT YOU ARE DOING (if you want to define the support function, overload l_support)
v | direction vector |
Implemented in sch::S_ObjectNonNormalized, and sch::S_ObjectNormalized.
|
pure virtual |
version of support with last feature optimization
v | direction vector |
lastFeature | tells in which feature we were in last query, and returns the new one. very important in spatio-temporal coherence |
Implemented in sch::S_ObjectNonNormalized, and sch::S_ObjectNormalized.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |