| http://www.sim.no/ http://www.coin3d.org/

Public Member Functions | Static Public Member Functions | Friends | List of all members
SbDPRotation Class Reference
Base Classes

The SbDPRotation class represents a rotation in 3D space.SbDPRotation is used extensively throughout the Coin library. More...

`#include <Inventor/SbLinear.h>`

## Public Member Functions

| SbDPRotation (void)
| SbDPRotation (const SbVec3d &axis, const double radians)
| SbDPRotation (const double q[4])
| SbDPRotation (const double q0, const double q1, const double q2, const double q3)
| SbDPRotation (const SbDPMatrix &m)
| SbDPRotation (const SbVec3d &rotateFrom, const SbVec3d &rotateTo)
const double * | getValue (void) const
void | getValue (double &q0, double &q1, double &q2, double &q3) const
SbDPRotation & | setValue (const double q0, const double q1, const double q2, const double q3)
void | getValue (SbVec3d &axis, double &radians) const
void | getValue (SbDPMatrix &matrix) const
SbDPRotation & | invert (void)
SbDPRotation | inverse (void) const
SbDPRotation & | setValue (const double q[4])
SbDPRotation & | setValue (const SbDPMatrix &m)
SbDPRotation & | setValue (const SbVec3d &axis, const double radians)
SbDPRotation & | setValue (const SbVec3d &rotateFrom, const SbVec3d &rotateTo)
SbDPRotation & | operator*= (const SbDPRotation &q)
SbDPRotation & | operator*= (const double s)
SbBool | equals (const SbDPRotation &r, const double tolerance) const
void | multVec (const SbVec3d &src, SbVec3d &dst) const
void | scaleAngle (const double scaleFactor)
void | print (FILE *fp) const

## Static Public Member Functions

static SbDPRotation | slerp (const SbDPRotation &rot0, const SbDPRotation &rot1, double t)
static SbDPRotation | identity (void)

## Friends

int | operator== (const SbDPRotation &q1, const SbDPRotation &q2)
int | operator!= (const SbDPRotation &q1, const SbDPRotation &q2)
SbDPRotation | operator* (const SbDPRotation &q1, const SbDPRotation &q2)

## Detailed Description

The SbDPRotation class represents a rotation in 3D space.

SbDPRotation is used extensively throughout the Coin library.

An SbDPRotation is stored internally as a quaternion for speed and storage reasons, but inquiries can be done to get and set axis and angle values for convenience.

See also
  SbDPMatrix

## Constructor & Destructor Documentation

## ◆ SbDPRotation() [1/6]

SbDPRotation::SbDPRotation | ( | void |  | ) |

The default constructor just initializes a valid rotation. The actual value is unspecified, and you should not depend on it.

## ◆ SbDPRotation() [2/6]

SbDPRotation::SbDPRotation | ( | const SbVec3d & | axis,
|  | const double | radians
| ) |  |

Construct a new SbDPRotation object initialized with the given axis-of-rotation and rotation angle.

## ◆ SbDPRotation() [3/6]

SbDPRotation::SbDPRotation | ( | const double | q[4] | ) |

Construct a new SbDPRotation object initialized with the given quaternion components.

The array must be ordered as follows:

q[0] = x, q[1] = y, q[2] = z and q[3] = w, where the quaternion is specified by q=w+xi+yj+zk.

## ◆ SbDPRotation() [4/6]

SbDPRotation::SbDPRotation | ( | const double | q0,
|  | const double | q1,
|  | const double | q2,
|  | const double | q3
| ) |  |

Construct a new SbDPRotation object initialized with the given quaternion components.

## ◆ SbDPRotation() [5/6]

SbDPRotation::SbDPRotation | ( | const SbDPMatrix & | m | ) |

Construct a new SbDPRotation object initialized with the given rotation matrix.

## ◆ SbDPRotation() [6/6]

SbDPRotation::SbDPRotation | ( | const SbVec3d & | rotateFrom,
|  | const SbVec3d & | rotateTo
| ) |  |

Construct a rotation which is the minimum rotation necessary to make vector rotateFrom point in the direction of vector rotateTo.

## Member Function Documentation

## ◆ getValue() [1/4]

const double * SbDPRotation::getValue | ( | void |  | ) | const

Return pointer to an array with the rotation expressed as four quaternion values.

See also
  setValue().

## ◆ getValue() [2/4]

void SbDPRotation::getValue | ( | double & | q0,
|  | double & | q1,
|  | double & | q2,
|  | double & | q3
| ) |  | const

Return the four quaternion components representing the rotation.

See also
  setValue().

## ◆ setValue() [1/5]

SbDPRotation & SbDPRotation::setValue | ( | const double | q0,
|  | const double | q1,
|  | const double | q2,
|  | const double | q3
| ) |  |

Set the rotation.

See also
  getValue().

## ◆ getValue() [3/4]

void SbDPRotation::getValue | ( | SbVec3d & | axis,
|  | double & | radians
| ) |  | const

Return the rotation in the form of an axis-of-rotation and a rotation angle.

See also
  setValue().

## ◆ getValue() [4/4]

void SbDPRotation::getValue | ( | SbDPMatrix & | matrix | ) | const

Return this rotation in the form of a matrix.

See also
  setValue().

## ◆ invert()

SbDPRotation & SbDPRotation::invert | ( | void |  | ) |

Invert the rotation. Returns reference to self.

See also
  inverse()

## ◆ inverse()

SbDPRotation SbDPRotation::inverse | ( | void |  | ) | const

Non-destructively inverses the rotation and returns the result.

See also
  invert()

## ◆ setValue() [2/5]

SbDPRotation & SbDPRotation::setValue | ( | const double | q[4] | ) |

Reset the rotation by the four quaternions in the array.

See also
  getValue().

## ◆ setValue() [3/5]

SbDPRotation & SbDPRotation::setValue | ( | const SbDPMatrix & | m | ) |

Set the rotation from the components of the given matrix. Returns reference to self.

See also
  getValue().

## ◆ setValue() [4/5]

SbDPRotation & SbDPRotation::setValue | ( | const SbVec3d & | axis,
|  | const double | radians
| ) |  |

Reset rotation with the given axis-of-rotation and rotation angle. Returns reference to self.

Make sure axis is not the null vector when calling this method.

See also
  getValue().

## ◆ setValue() [5/5]

SbDPRotation & SbDPRotation::setValue | ( | const SbVec3d & | rotateFrom,
|  | const SbVec3d & | rotateTo
| ) |  |

Construct a rotation which is the minimum rotation necessary to make vector rotateFrom point in the direction of vector rotateTo.

Returns reference to self.

See also
  getValue().

## ◆ operator*=() [1/2]

SbDPRotation & SbDPRotation::operator*= | ( | const SbDPRotation & | q | ) |

Multiplies the quaternions.

Note that order is important when combining quaternions with the multiplication operator.

## ◆ operator*=() [2/2]

SbDPRotation & SbDPRotation::operator*= | ( | const double | s | ) |

Multiplies components of quaternion with scalar value s. Returns reference to self.

## ◆ equals()

SbBool SbDPRotation::equals | ( | const SbDPRotation & | r,
|  | const double | tolerance
| ) |  | const

Check the internal quaternion representation vectors for equality within the given tolerance.

## ◆ multVec()

void SbDPRotation::multVec | ( | const SbVec3d & | src,
|  | SbVec3d & | dst
| ) |  | const

Rotate the src vector and put the result in dst.

## ◆ scaleAngle()

void SbDPRotation::scaleAngle | ( | const double | scaleFactor | ) |

Scale the angle of rotation by scaleFactor.

## ◆ slerp()

SbDPRotation slerp | ( | const SbDPRotation & | rot0,
|  | const SbDPRotation & | rot1,
|  | double | t
| ) |  |

static

Interpolates along the shortest path between the two rotation positions (from rot0 to rot1).

Returns the SbDPRotation which will rotate rot0 the given part t of the spherical distance towards rot1, where t=0 will yield rot0 and t=1 will yield rot1.

t should be in the interval [0, 1].

## ◆ identity()

SbDPRotation SbDPRotation::identity | ( | void |  | ) |

static

Returns an identity rotation.

## ◆ print()

void SbDPRotation::print | ( | FILE * | fp | ) | const

Dump the state of this object to the file stream. Only works in debug version of library, method does nothing in an optimized compile.

## Friends And Related Function Documentation

## ◆ operator==

int operator== | ( | const SbDPRotation & | q1,
|  | const SbDPRotation & | q2
| ) |  |

friend

Check if the two rotations are equal.

See also
  equals().

## ◆ operator!=

int operator!= | ( | const SbDPRotation & | q1,
|  | const SbDPRotation & | q2
| ) |  |

friend

Check if the two rotations are unequal.

See also
  equals().

## ◆ operator*

SbDPRotation operator* | ( | const SbDPRotation & | q1,
|  | const SbDPRotation & | q2
| ) |  |

friend

Multiplies the two rotations and returns the result.

Note that order is important when combining quaternions with the multiplication operator.

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

- SbDPRotation.h
- SbDPRotation.cpp

Copyright © 1998-2010 by Kongsberg Oil & Gas Technologies. All rights reserved.