Codebase list ruby-fxruby / ddfc60e rdoc-sources / FXQuatf.rb
ddfc60e

Tree @ddfc60e (Download .tar.gz)

FXQuatf.rb @ddfc60eraw · history · blame

module Fox
  class FXQuatf < FXVec4f
    # Return an initialized FXQuatf instance.
    def initialize; end

    #
    # Construct an FXQuatf instance from a rotation axis and angle.
    #
    # ==== Parameters:
    #
    # +axis+::  the rotation axis {FXVec3f}
    # +angle+::  the rotation angle (in radians) [Float]
    #
    def initialize(axis, phi=0.0); end

    #
    # Construct from Euler angles yaw (z), pitch (y) and roll (x).
    #
    # ==== Parameters:
    #
    # +roll+::  roll angle in radians [Float]
    # +pitch+::  pitch angle in radians [Float]
    # +yaw+::  yaw angle in radians [Float]
    #
    def initialize(roll, pitch, yaw); end

    #
    # Construct quaternion from axes
    #
    # ==== Parameters:
    #
    # +ex+:: x-axis {FXVec3f}
    # +ey+:: y-axis {FXVec3f}
    # +ez+:: z-axis {FXVec3f}
    #
    def initialize(ex, ey, ez); end

    #
    # Construct quaternion from 3x3 matrix (where _mat_ is an FXMat3f instance).
    #
    def initialize(mat); end

    #
    # Construct an FXQuatf from components.
    #
    # ==== Parameters:
    #
    # +x+::  x [Float]
    # +y+::  y [Float]
    # +z+::  z [Float]
    # +width+::  w [Float]
    #
    def initialize(x, y, z, w); end

    # Adjust quaternion length; returns a reference to self.
    def adjust!; end

    #
    # Set quaternion from rotation axis and angle.
    #
    # ==== Parameters:
    #
    # +axis+::  the rotation axis {FXVec3f}
    # +angle+::  the rotation angle (in radians) [Float]
    #
    def setAxisAngle(axis, phi=0.0); end

    #
    # Return the rotation axis and angle for this quaternion, i.e.
    #
    #     axis, angle = aQuaternion.getAxisAngle()
    #
    # where _axis_ is an FXVec3f instance and _angle_ is the angle
    # of rotation in radians.
    #
    def getAxisAngle(); end

    #
    # Set quaternion from yaw (z), pitch (y) and roll (x).
    #
    # ==== Parameters:
    #
    # +roll+::  roll angle in radians [Float]
    # +pitch+::  pitch angle in radians [Float]
    # +yaw+::  yaw angle in radians [Float]
    #
    def setRollPitchYaw(roll, pitch, yaw); end

    #
    # Obtain roll, pitch and yaw angles (in radians) from quaternion, e.g.
    #
    #     roll, pitch, yaw = aQuaternion.getRollPitchYaw()
    #
    def getRollPitchYaw(); end

    # Set quaternion from axes (where _ex_, _ey_ and _ez_ are FXVec3f instances).
    def setAxes(ex, ey, ez); end

    # Get quaternion axes as a 3-element array of FXVec3f instances.
    def getAxes(); end

    # Return the local x-axis as an FXVec3f instance.
    def getXAxis(); end

    # Return the local y-axis as an FXVec3f instance.
    def getYAxis(); end

    # Return the local z-axis as an FXVec3f instance.
    def getZAxis(); end

    #
    # Return the exponentiation of this quaternion (a new FXQuatf instance).
    #
    def exp; end

    #
    # Return the logarithm of this quaternion (a new FXQuatf instance).
    #
    def log; end

    #
    # Return the inverse of this quaternion (a new FXQuatf instance).
    #
    def invert; end

    #
    # Invert unit quaternion (returns a new FXQuatf instance).
    #
    def unitinvert; end

    #
    # Return the conjugate of this quaternion (a new FXQuatf instance).
    #
    def conj; end

    #
    # Return the product of this quaternion and _other_ (another FXQuatf instance).
    #
    def *(other); end

    #
    # Compute the rotation of a vector _vec_ by this quaternion; returns the
    # rotated vector (a new FXVec3f instance).
    #
    # ==== Parameters:
    #
    # +vec+::  the vector to be rotated {FXVec3f}
    #
    def *(vec); end

    #
    # Construct a quaternion from arc a->b on unit sphere and
    # return reference to self.
    #
    # ==== Parameters:
    #
    # +a+:: {FXVec3f}
    # +b+:: {FXVec3f}
    #
    def arc!(a, b); end

    #
    # Spherical lerp, return reference to self.
    #
    # ==== Parameters:
    #
    # +u+:: {FXQuatf}
    # +v+:: {FXQuatf}
    # +f+::  [Float]
    #
    def lerp!(u, v, f); end
  end
end