public

Inheritance Graph

graph BT
	_SRT
	click _SRT "classGeometry_1_1__SRT"

Description

SRT - scale,rotate and translate.

See also: 3D Game Engine Design, David H. Eberly,http://www.geometrictools.com/

[SRT]

Mainvec3_t

   
   
  _SRT()
   
  _SRT(const _SRT < value_t > & srt1, const _SRT < value_t > & srt2, float blend)
   
  _SRT(const vec3_t & translation, const matrix3x3_t & rotation, value_t scaling)
Create an SRT by specifying all components explicitly.
   
  _SRT( vec3_t _pos, const vec3_t & _dir, const vec3_t & _up, value_t _scale)
   
  _SRT(const std::array< value_t , 8 > & arr)

Information

   
   
value_t getScale() const
   
const vec3_t & getTranslation() const
   
const matrix3x3_t & getRotation() const
   
vec3_t getDirVector() const
   
vec3_t getRightVector() const
   
vec3_t getUpVector() const

Modification

   
   
void reset()
   
void setScale( value_t x)
   
void scale( value_t x)
   
void resetRotation()
   
void setRotation(const matrix3x3_t & x)
   
void setRotation(const vec3_t & dir, const vec3_t & up)
   
void setTranslation(const vec3_t & x)
   
void translate(const vec3_t & v)
   
void translateLocal(const vec3_t & v)
   
void rotateLocal(const angle_t & angle, const vec3_t & axis)
   
void rotateLocal_rad(float rad, const vec3_t & axis)
   
void rotateLocal_deg(float deg, const vec3_t & axis)
   
void rotateRel(const angle_t & angle, const vec3_t & axis)
   
void rotateRel_rad( value_t rad, const vec3_t & axis)
   
void rotateRel_deg( value_t deg, const vec3_t & axis)

Creation

   
   
const vec3_t operator*(const vec3_t & v) const
   
const _SRT < value_t > operator*(const _SRT < value_t > & srt) const
   
_SRT < value_t > getTransformation(const _SRT < value_t > & srt) const
   
_SRT < value_t > inverse() const

Comparators

   
   
bool equals(const _SRT & other, value_t epsilon) const
   
bool operator==(const _SRT < value_t > & srt) const
   
bool operator!=(const _SRT < value_t > & srt) const

Conversion

   
   
void toArray( value_t fa) const
   
std::array< value_t , 8 > toArray() const

Serialization

 
 
 

Public Types

   
   
typedef T_ value_t
   
typedef _Matrix3x3 < value_t > matrix3x3_t
   
typedef _Angle < value_t > angle_t
   
typedef _Vec3 < value_t > vec3_t

Documentation

function
Geometry::_SRT::_SRT

public inline
   
   
_SRT( )

[ctor]

Defined in Geometry/SRT.h:57


function
Geometry::_SRT::_SRT

public inline
     
     
_SRT( const _SRT < value_t > & srt1,
  const _SRT < value_t > & srt2,
  float blend
)    

[ctor] interpolation between srt1 and srt2, according to the factor blend (should be between 0 and 1);

Defined in Geometry/SRT.h:62


function
Geometry::_SRT::_SRT

public inline
     
     
_SRT( const vec3_t & translation,
  const matrix3x3_t & rotation,
  value_t scaling
)    

Create an SRT by specifying all components explicitly.

Defined in Geometry/SRT.h:70


function
Geometry::_SRT::_SRT

public inline
     
     
_SRT( vec3_t _pos,
  const vec3_t & _dir,
  const vec3_t & _up,
  value_t _scale
)    

[ctor] pos, dir, up [,scale]

Note: dir and up are normalized automatically.

Defined in Geometry/SRT.h:79


function
Geometry::_SRT::_SRT

public inline
     
     
_SRT( const std::array< value_t , 8 > & arr )

[ x,y,z, rx,ry,rz,rw, scale ]

See also: toArray()

Defined in Geometry/SRT.h:86


function
Geometry::_SRT::getScale

public const inline
   
   
value_t getScale( ) const

Defined in Geometry/SRT.h:97


function
Geometry::_SRT::getTranslation

public const inline
   
   
const vec3_t & getTranslation( ) const

Defined in Geometry/SRT.h:100


function
Geometry::_SRT::getRotation

public const inline
   
   
const matrix3x3_t & getRotation( ) const

Defined in Geometry/SRT.h:103


function
Geometry::_SRT::getDirVector

public const inline
   
   
vec3_t getDirVector( ) const

Defined in Geometry/SRT.h:106


function
Geometry::_SRT::getRightVector

public const inline
   
   
vec3_t getRightVector( ) const

Defined in Geometry/SRT.h:109


function
Geometry::_SRT::getUpVector

public const inline
   
   
vec3_t getUpVector( ) const

Defined in Geometry/SRT.h:112


function
Geometry::_SRT::reset

public inline
   
   
void reset( )

Defined in Geometry/SRT.h:121


function
Geometry::_SRT::setScale

public inline
     
     
void setScale( value_t x )

Defined in Geometry/SRT.h:127


function
Geometry::_SRT::scale

public inline
     
     
void scale( value_t x )

Defined in Geometry/SRT.h:130


function
Geometry::_SRT::resetRotation

public inline
   
   
void resetRotation( )

Defined in Geometry/SRT.h:134


function
Geometry::_SRT::setRotation

public inline
     
     
void setRotation( const matrix3x3_t & x )

Defined in Geometry/SRT.h:138


function
Geometry::_SRT::setRotation

public inline
     
     
void setRotation( const vec3_t & dir,
  const vec3_t & up
)    

Defined in Geometry/SRT.h:143


function
Geometry::_SRT::setTranslation

public inline
     
     
void setTranslation( const vec3_t & x )

Defined in Geometry/SRT.h:148


function
Geometry::_SRT::translate

public inline
     
     
void translate( const vec3_t & v )

Defined in Geometry/SRT.h:151


function
Geometry::_SRT::translateLocal

public inline
     
     
void translateLocal( const vec3_t & v )

Defined in Geometry/SRT.h:154


function
Geometry::_SRT::rotateLocal

public inline
     
     
void rotateLocal( const angle_t & angle,
  const vec3_t & axis
)    

Defined in Geometry/SRT.h:158


function
Geometry::_SRT::rotateLocal_rad

public inline
     
     
void rotateLocal_rad( float rad,
  const vec3_t & axis
)    

Defined in Geometry/SRT.h:165


function
Geometry::_SRT::rotateLocal_deg

public inline
     
     
void rotateLocal_deg( float deg,
  const vec3_t & axis
)    

Defined in Geometry/SRT.h:168


function
Geometry::_SRT::rotateRel

public inline
     
     
void rotateRel( const angle_t & angle,
  const vec3_t & axis
)    

Defined in Geometry/SRT.h:172


function
Geometry::_SRT::rotateRel_rad

public inline
     
     
void rotateRel_rad( value_t rad,
  const vec3_t & axis
)    

Defined in Geometry/SRT.h:180


function
Geometry::_SRT::rotateRel_deg

public inline
     
     
void rotateRel_deg( value_t deg,
  const vec3_t & axis
)    

Defined in Geometry/SRT.h:183


function
Geometry::_SRT::operator*

public const inline
     
     
const vec3_t operator*( const vec3_t & v ) const

Defined in Geometry/SRT.h:192


function
Geometry::_SRT::operator*

public const inline
     
     
const _SRT < value_t > operator*( const _SRT < value_t > & srt ) const

Defined in Geometry/SRT.h:195


function
Geometry::_SRT::getTransformation

public const inline
     
     
_SRT < value_t > getTransformation( const _SRT < value_t > & srt ) const

Like a multiplication, but applies the rotation of this srt to translation of the given srt which results in the same behaviour as ( Matrix4x4 (*this) * Matrix4x4(srt) )._toSRT()

Defined in Geometry/SRT.h:206


function
Geometry::_SRT::inverse

public const inline
   
   
_SRT < value_t > inverse( ) const

Defined in Geometry/SRT.h:212


function
Geometry::_SRT::equals

public const inline
     
     
bool equals( const _SRT & other,
  value_t epsilon
) const    

compares this with other componentwise

Parameters

other
the object to compare with
epsilon
the maximum allowed difference between the component pairs

Returns

true iff any the absolute difference between any pai of components is larger than epsilon

Defined in Geometry/SRT.h:229


function
Geometry::_SRT::operator==

public const inline
     
     
bool operator==( const _SRT < value_t > & srt ) const

Defined in Geometry/SRT.h:232


function
Geometry::_SRT::operator!=

public const inline
     
     
bool operator!=( const _SRT < value_t > & srt ) const

Defined in Geometry/SRT.h:235


function
Geometry::_SRT::toArray

public const inline
     
     
void toArray( value_t fa ) const

Defined in Geometry/SRT.h:244


function
Geometry::_SRT::toArray

public const inline
   
   
std::array< value_t , 8 > toArray( ) const

Defined in Geometry/SRT.h:263


typedef
Geometry::_SRT::value_t

public
 
 
typedef T_ value_t

Defined in Geometry/SRT.h:34


typedef
Geometry::_SRT::matrix3x3_t

public
 
 
typedef _Matrix3x3 < value_t > matrix3x3_t

Defined in Geometry/SRT.h:35


typedef
Geometry::_SRT::angle_t

public
 
 
typedef _Angle < value_t > angle_t

Defined in Geometry/SRT.h:36


typedef
Geometry::_SRT::vec3_t

public
 
 
typedef _Vec3 < value_t > vec3_t

Defined in Geometry/SRT.h:37