SbRotation man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



							       SbRotation(3IV)

NAME
     SbRotation (SbRot) - class for representing a rotation

INHERITS FROM
     SbRotation

SYNOPSIS
     #include <Inventor_c/SbLinear.h>

     typedef SbRotation	 SbRot

	  Functions from class SbRotation:

     void		 SbRotGetAxisAngle(const SbRot *this, SbVec3f *axis,
			      float *radians)
     void		 SbRotGetMx(const SbRot *this, SbMatrix *matrix)
     SbRotation *	 SbRotInvert(SbRot *this)
     SbRotation		 SbRotInverse(const SbRot *this)
     SbRotation *	 SbRotSetMx(SbRot *this, const SbMatrix *m)
     SbRotation *	 SbRotSetAxisAngle(SbRot *this, const SbVec3f *axis,
			      float radians)
     SbRotation *	 SbRotSetFromTo(SbRot *this, const SbVec3f
			      *rotateFrom, const SbVec3f *rotateTo)
     int		 SbRotIsEq(SbRot *this, const SbRotation *q1, const
			      SbRotation *q2)
     int		 SbRotIsNEq(SbRot *this, const SbRotation *q1, const
			      SbRotation *q2)
     SbBool		 SbRotEquals(const SbRot *this, const SbRotation *r,
			      float tolerance)
     SbRotation		 SbRotMult(SbRot *this, const SbRotation *q1, const
			      SbRotation *q2)
     void		 SbRotMultVec(const SbRot *this, const SbVec3f *src,
			      SbVec3f *dst)
     void		 SbRotScaleAngle(SbRot *this, float scaleFactor )
     SbRotation		 SbRotSlerp(const SbRotation *rot0, const SbRotation
			      *rot1, float t)
     SbRotation		 SbRotIdent()

	  Macros from class SbRotation:

     SbRotGetQuat(float *dest, SbRotation *src)
     SbRotGetQ_U_A_T(float q0, float q1, float q2, float q3,
			   SbRotation *src)
     SbRotSetQuat(SbRotation *dest, float *src)
     SbRotSetQ_U_A_T(SbRotation *dest, float q0, float q1,
			   float q2, float q3)

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

Page 1

SbRotation(3IV)

     object does not have Create or Delete functions because it is a simple
     datatype. C programmers should declare and/or malloc rotations as
     standard C structs. Access the components of the vector as though it is a
     simple structure or use the access and operation functions described in
     this reference page:

	       /* This is defined in Inventor_c/SbLinear.h: */
	       struct SbRotation {
				float quat[4];
	       };
	       typedef SbRotation SbRot

	       /* This is what your code should look like: */
	       SbRot   r1, r2;

	       /* The next two lines produce equivalent rotations. */
	       r1.quat[0] = 1.0; r1.quat[1] = r1.quat[2] = 0.0; r1.quat[3] = 1.0;
	       SbRotSetQ_U_A_T( v2, 1.0, 0.0, 0.0, 1.0 );

FUNCTIONS
     void		 SbRotGetAxisAngle(const SbRot *this, SbVec3f *axis,
			      float *radians)
	  Returns corresponding 3D rotation axis vector and angle in radians.

     void		 SbRotGetMx(const SbRot *this, SbMatrix *matrix)
	  Returns corresponding 4x4 rotation matrix.

     SbRotation *	 SbRotInvert(SbRot *this)
	  Changes a rotation to be its inverse.

     SbRotation		 SbRotInverse(const SbRot *this)
	  Returns the inverse of a rotation.

     SbRotation *	 SbRotSetMx(SbRot *this, const SbMatrix *m)
	  Sets value of rotation from a rotation matrix.

     SbRotation *	 SbRotSetAxisAngle(SbRot *this, const SbVec3f *axis,
			      float radians)
	  Sets value of vector from 3D rotation axis vector and angle in
	  radians.

     SbRotation *	 SbRotSetFromTo(SbRot *this, const SbVec3f
			      *rotateFrom, const SbVec3f *rotateTo)
	  Sets rotation to rotate one direction vector to another. The
	  rotateFrom and rotateTo arguments are normalized before the rotation
	  is calculated.

     int		 SbRotIsEq(SbRot *this, const SbRotation *q1, const
			      SbRotation *q2)

Page 2

							       SbRotation(3IV)

     int		 SbRotIsNEq(SbRot *this, const SbRotation *q1, const
			      SbRotation *q2)
	  Equality comparison operators.

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

     SbRotation		 SbRotMult(SbRot *this, const SbRotation *q1, const
			      SbRotation *q2)
	  Multiplication of two rotations; results in product of rotations.

     void		 SbRotMultVec(const SbRot *this, const SbVec3f *src,
			      SbVec3f *dst)
	  Multiplies the given vector by the matrix of this rotation.

     void		 SbRotScaleAngle(SbRot *this, float scaleFactor )
	  Keep the axis the same. Multiply the angle of rotation by the amount
	  scaleFactor.

     SbRotation		 SbRotSlerp(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.

     SbRotation		 SbRotIdent()
	  Returns a null rotation.

MACROS
     SbRotGetQuat(float *dest, SbRotation *src)
     SbRotGetQ_U_A_T(float q0, float q1, float q2, float q3,
			   SbRotation *src)
     SbRotSetQuat(SbRotation *dest, float *src)
     SbRotSetQ_U_A_T(SbRotation *dest, float q0, float q1,
			   float q2, float q3)
	  Sets and gets rotations in the form of quaternions. The quaternion
	  may be passed either as an array of length 4 or as 4 separate
	  components.

FILE FORMAT/DEFAULTS
     Rotation {
     }

NOTES
     Rotations are stored internally as quaternions.

SEE ALSO
     SbVec3f, SbMatrix

Page 3

SbRotation(3IV)

Page 4

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net