Quaternion.rst 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. Quaternion - Implementation of a quaternion
  2. -------------------------------------------
  3. .. ...............................................................................
  4. .. rubric:: Constructor
  5. .. ...............................................................................
  6. .. class:: Quaternion( x, y, z, w )
  7. Implementation of a quaternion
  8. :param float x: x-coordinate
  9. :param float y: y-coordinate
  10. :param float z: z-coordinate
  11. :param float w: w-coordinate
  12. .. ...............................................................................
  13. .. rubric:: Attributes
  14. .. ...............................................................................
  15. .. attribute:: Quaternion.x
  16. float - default ``0``
  17. .. attribute:: Quaternion.y
  18. float - default ``0``
  19. .. attribute:: Quaternion.z
  20. float - default ``0``
  21. .. attribute:: Quaternion.w
  22. float - default ``1``
  23. .. ...............................................................................
  24. .. rubric:: Methods
  25. .. ...............................................................................
  26. .. function:: Quaternion.clone( )
  27. Clones this quaternion
  28. :returns: New instance identical to this quaternion
  29. :rtype: :class:`Quaternion`
  30. .. function:: Quaternion.set( x, y, z, w )
  31. Sets value of this vector
  32. :param float x: x-coordinate
  33. :param float y: y-coordinate
  34. :param float z: z-coordinate
  35. :param float w: w-coordinate
  36. :returns: This quaternion
  37. :rtype: :class:`Quaternion`
  38. .. function:: Quaternion.copy( q )
  39. Copies value of ``q`` to this quaternion
  40. :param Quaternion v: source quaternion
  41. :returns: This quaternion
  42. :rtype: :class:`Quaternion`
  43. .. function:: Quaternion.setFromEuler ( vec3 )
  44. Sets this quaternion from rotation specified by Euler angles
  45. Angles are in degrees
  46. :param Vector3 vec3: Euler angles vector
  47. :returns: This quaternion
  48. :rtype: :class:`Quaternion`
  49. .. function:: Quaternion.setFromAxisAngle ( axis, angle )
  50. Sets this quaternion from rotation specified by axis and angle
  51. Adapted from: http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm
  52. Axis have to be normalized, angle is in radians
  53. :param Vector3 axis: axis vector
  54. :param float angle: angle
  55. :returns: This quaternion
  56. :rtype: :class:`Quaternion`
  57. .. function:: Quaternion.setFromRotationMatrix ( m )
  58. Sets this quaternion from rotation specified by matrix
  59. Adapted from: http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm
  60. :param Matrix4 m: rotation matrix
  61. :returns: This quaternion
  62. :rtype: :class:`Quaternion`
  63. .. function:: Quaternion.calculateW( )
  64. Calculates ``w`` component of this quaternion
  65. :returns: This quaternion
  66. :rtype: :class:`Quaternion`
  67. .. function:: Quaternion.inverse( )
  68. Inverts this quaternion
  69. :returns: This quaternion
  70. :rtype: :class:`Quaternion`
  71. .. function:: Quaternion.length( )
  72. Computes length of this quaternion
  73. :returns: length
  74. :rtype: float
  75. .. function:: Quaternion.normalize( )
  76. Normalizes this quaternion
  77. :returns: This vector
  78. :rtype: :class:`Quaternion`
  79. .. function:: Quaternion.multiplySelf( quat2 )
  80. Multiplies this quaternion by ``quat2``
  81. :param Quaternion quat2: quaternion
  82. :returns: This quaternion
  83. :rtype: :class:`Quaternion`
  84. .. function:: Quaternion.multiply( q1, q2 )
  85. Sets this quaternion to ``q1 * q2``
  86. Adapted from: http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm
  87. :param Quaternion q1: quaternion 1
  88. :param Quaternion q2: quaternion 2
  89. :returns: This quaternion
  90. :rtype: :class:`Quaternion`
  91. .. function:: Quaternion.multiplyVector3( vec, dest )
  92. Rotates ``vec`` by this quaternion into ``dest``
  93. If ``dest`` is not specified, result goes to ``vec``
  94. :param Vector3 vec: source vector
  95. :param Vector3 dest: destination vector
  96. :returns: Rotated vector
  97. :rtype: :class:`Vector3`
  98. .. ...............................................................................
  99. .. rubric:: Example
  100. .. ...............................................................................
  101. ::
  102. var q = new THREE.Quaternion();
  103. q.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );
  104. var v = new THREE.Vector3( 1, 0, 0 );
  105. q.multiplyVector3( v );