Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SbRotation(3IV)()					     SbRotation(3IV)()

NAME
       SbRotation -- class for representing a rotation

INHERITS FROM
       SbRotation

SYNOPSIS
       #include	<Inventor/SbLinear.h>

	  Methods from class SbRotation:

			 SbRotation()
			 SbRotation(const SbVec3f &axis, float radians)
			 SbRotation(const float	v[4])
			 SbRotation(float q0, float q1,	float q2, float	q3)
			 SbRotation(const SbMatrix &m)
			 SbRotation(const  SbVec3f  &rotateFrom, const SbVec3f
			      &rotateTo)
     const float *	 getValue() const
     void		 getValue(float	&q0, float &q1,	float &q2, float  &q3)
			      const
     SbRotation	&	 setValue(float	q0, float q1, float q2,	float q3)
     void		 getValue(SbVec3f &axis, float &radians) const
     void		 getValue(SbMatrix &matrix) const
     SbRotation	&	 invert()
     SbRotation		 inverse() const
     SbRotation	&	 setValue(const	float q[4])
     SbRotation	&	 setValue(const	SbMatrix &m)
     SbRotation	&	 setValue(const	SbVec3f	&axis, float radians)
     SbRotation	 &	  setValue(const  SbVec3f  &rotateFrom,	 const SbVec3f
			      &rotateTo)
     SbRotation	&	 operator *=(const SbRotation &q)
     int		 operator ==(const SbRotation  &q1,  const  SbRotation
			      &q2)
     int		 operator  !=(const  SbRotation	 &q1, const SbRotation
			      &q2)
     SbBool		 equals(const SbRotation &r, float tolerance) const
     SbRotation		 operator *(const  SbRotation  &q1,  const  SbRotation
			      &q2)
     void		 multVec(const SbVec3f &src, SbVec3f &dst) const
     void		 scaleAngle(float scaleFactor )
     static SbRotation	 slerp(const SbRotation	&rot0, const SbRotation	&rot1,
			      float t)
     static SbRotation	 identity()

DESCRIPTION
       Object that stores a rotation. There are	several	ways to	specify	a  ro-
       tation:	quaternion (4 floats), 4x4 rotation matrix, or axis and	angle.
       All angles are in radians and all rotations are right-handed.

METHODS
			 SbRotation()
			 SbRotation(const SbVec3f &axis, float radians)
			 SbRotation(const float	v[4])
			 SbRotation(float q0, float q1,	float q2, float	q3)
			 SbRotation(const SbMatrix &m)
			 SbRotation(const SbVec3f &rotateFrom,	const  SbVec3f
			      &rotateTo)
	  Constructors	for  rotation.	The axis/radians constructor creates a
	  rotation of angle radians about the  given  axis.  The  constructors
	  that	take  four floats create a quaternion from those floats	(care-
	  ful, this differs from the four numbers in  an  axis/radian  defini-
	  tion).  Matrix constructor requires a	valid rotation matrix. The ro-
	  tateFrom/To constructor defines rotation that	rotates	from one  vec-
	  tor into another. The	rotateFrom and rotateTo	vectors	are normalized
	  by the constructor before calculating	the rotation.

     const float *	 getValue() const
	  Returns pointer to array of 4	components defining quaternion.

     void		 getValue(float	&q0, float &q1,	float &q2, float  &q3)
			      const
	  Returns 4 individual components of rotation quaternion.

     SbRotation	&	 setValue(float	q0, float q1, float q2,	float q3)
	  Sets value of	rotation from 4	individual components of a quaternion.

     void		 getValue(SbVec3f &axis, float &radians) const
	  Returns corresponding	3D rotation axis vector	and angle in radians.

     void		 getValue(SbMatrix &matrix) const
	  Returns corresponding	4x4 rotation matrix.

     SbRotation	&	 invert()
	  Changes a rotation to	be its inverse.

     SbRotation		 inverse() const
	  Returns the inverse of a rotation.

     SbRotation	&	 setValue(const	float q[4])
	  Sets value of	rotation from array of 4 components of a quaternion.

     SbRotation	&	 setValue(const	SbMatrix &m)
	  Sets value of	rotation from a	rotation matrix.

     SbRotation	&	 setValue(const	SbVec3f	&axis, float radians)
	  Sets value of	vector from 3D rotation	axis vector and	angle in radi-
	  ans.

     SbRotation	&	 setValue(const	 SbVec3f  &rotateFrom,	const  SbVec3f
			      &rotateTo)
	  Sets rotation	to rotate one direction	vector to another. The rotate-
	  From and rotateTo arguments are normalized before  the  rotation  is
	  calculated.

     SbRotation	&	 operator *=(const SbRotation &q)
	  Multiplies by	another	rotation; results in product of	rotations.

     int		 operator  ==(const  SbRotation	 &q1, const SbRotation
			      &q2)
     int		 operator !=(const SbRotation  &q1,  const  SbRotation
			      &q2)
	  Equality comparison operators.

     SbBool		 equals(const SbRotation &r, float tolerance) const
	  Equality  comparison	within	given  tolerance  -- the square	of the
	  length of the	maximum	distance between the two quaternion vectors.

     SbRotation		 operator *(const  SbRotation  &q1,  const  SbRotation
			      &q2)
	  Multiplication of two	rotations; results in product of rotations.

     void		 multVec(const SbVec3f &src, SbVec3f &dst) const
	  Multiplies the given vector by the matrix of this rotation.

     void		 scaleAngle(float scaleFactor )
	  Keep the axis	the same. Multiply the angle of	rotation by the	amount
	  scaleFactor.

     static SbRotation	 slerp(const SbRotation	&rot0, const SbRotation	&rot1,
			      float t)
	  Spherical  linear  interpolation:  as	 t  goes from 0	to 1, returned
	  value	goes from rot0 to rot1.

     static SbRotation	 identity()
	  Returns a null rotation.

FILE FORMAT/DEFAULTS
NOTES
       Rotations are stored internally as quaternions.

SEE ALSO
       SbVec3f,	SbMatrix

							     SbRotation(3IV)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | METHODS | FILE FORMAT/DEFAULTS | NOTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SbRotation&sektion=3iv&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help