Euler
=====

.. lua:module:: Imath

Imath.Eulerf
^^^^^^^^^^^^

.. lua:class:: Eulerf

   Inherits :lua:class:`V3f`.

   .. lua:attribute:: enum Order

      ``XYZ``
      ``XZY``
      ``YZX``
      ``YXZ``
      ``ZXY``
      ``ZYX``
      ``XZX``
      ``XYX``
      ``YXY``
      ``YZY``
      ``ZYZ``
      ``ZXZ``
      ``XYZr``
      ``XZYr``
      ``YZXr``
      ``YXZr``
      ``ZXYr``
      ``ZYXr``
      ``XZXr``
      ``XYXr``
      ``YXYr``
      ``YZYr``
      ``ZYZr``
      ``ZXZr``
      ``Legal``
      ``Min``
      ``Max``
      ``Default``

   .. lua:attribute:: enum Axis

      ``X``
      ``Y``
      ``Z``

   .. lua:attribute:: enum InputLayout

      ``XYZLayout``
      ``IJKLayout``

   .. lua:method:: Eulerf() -> Eulerf
   .. lua:method:: Eulerf(Eulerf e) -> Eulerf
   .. lua:method:: Eulerf(Eulerf.Order p) -> Eulerf
   .. lua:method:: Eulerf(V3f v[, Eulerf.Order o=Eulerf.Default, \
                          Eulerf.InputLayout l=EulerfIJKLayout]) -> Eulerf
   .. lua:method:: Eulerf(float i, float j, float k[, \
                          Eulerf.Order o=Eulerf.Default, \
                          Eulerf.InputLayout l=EulerfIJKLayout]) -> Eulerf
   .. lua:method:: Eulerf(Eulerf euler, Eulerf.Order newp) -> Eulerf
   .. lua:method:: Eulerf(M33f m[, Eulerf.Order o=Eulerf.Default]) -> Eulerf
   .. lua:method:: Eulerf(M44f m[, Eulerf.Order o=Eulerf.Default]) -> Eulerf
   .. lua:method:: Eulerf(table[3] v[, Eulerf.Order o=Eulerf.Default, \
                          Eulerf.InputLayout l=EulerfIJKLayout]) -> Eulerf
   .. lua:method:: Eulerf(table[9] m[, Eulerf.Order o=Eulerf.Default, \
                          Eulerf.InputLayout l=EulerfIJKLayout]) -> Eulerf
   .. lua:method:: Eulerf(table[16] m[, Eulerf.Order o=Eulerf.Default, \
                          Eulerf.InputLayout l=EulerfIJKLayout]) -> Eulerf

   .. lua:method:: operator==(Eulerf o) const -> boolean
   .. lua:method:: operator!=(Eulerf o) const -> boolean

   .. lua:method:: setXYZVector(V3f v)
   .. lua:method:: setXYZVector(table[3] v)

   .. lua:method:: order() const -> Eulerf.Order
   .. lua:method:: setOrder(Eulerf.Order o)

   .. lua:method:: set(Eulerf.Axis initial, boolean relative, \
                       boolean parityEven, boolean firstRepeats)

   .. lua:method:: extract(M33f m)
   .. lua:method:: extract(M44f m)
   .. lua:method:: extract(Quatf q)

   .. lua:method:: toMatrix33() const -> M33f
   .. lua:method:: toMatrix44() const -> M44f
   .. lua:method:: toQuat() const -> Quatf
   .. lua:method:: toXYZVector() const -> V3f

   .. lua:method:: angleOrder() const -> int, int, int
   .. lua:method:: angleMapping() const -> int, int, int

   .. lua:method:: makeNear(Eulerf target)

   .. lua:method:: frameStatic() const -> boolean
   .. lua:method:: initialRepeated() const -> boolean
   .. lua:method:: parityEven() const -> boolean
   .. lua:method:: initialAxis() const -> Eulerf.Axis

   .. lua:staticmethod:: legal(Eulerf.Order o) -> boolean

   .. lua:staticmethod:: angleMod(float angle) -> float
   .. lua:staticmethod:: simpleXYZRotation(V3f& xyzRot, V3f targetXyzRot)
   .. lua:staticmethod:: nearestRotation(V3f& xyzRot, V3f targetXyzRot, \
                                         Eulerf.Order=Eulerf.XYZ)

Imath.Eulerd
^^^^^^^^^^^^

.. lua:class:: Eulerd

   Inherits :lua:class:`V3d`.

   .. lua:attribute:: enum Order

      ``XYZ``
      ``XZY``
      ``YZX``
      ``YXZ``
      ``ZXY``
      ``ZYX``
      ``XZX``
      ``XYX``
      ``YXY``
      ``YZY``
      ``ZYZ``
      ``ZXZ``
      ``XYZr``
      ``XZYr``
      ``YZXr``
      ``YXZr``
      ``ZXYr``
      ``ZYXr``
      ``XZXr``
      ``XYXr``
      ``YXYr``
      ``YZYr``
      ``ZYZr``
      ``ZXZr``
      ``Legal``
      ``Min``
      ``Max``
      ``Default``

   .. lua:attribute:: enum Axis

      ``X``
      ``Y``
      ``Z``

   .. lua:attribute:: enum InputLayout

      ``XYZLayout``
      ``IJKLayout``

   .. lua:method:: Eulerd() -> Eulerd
   .. lua:method:: Eulerd(Eulerd e) -> Eulerd
   .. lua:method:: Eulerd(Eulerd.Order p) -> Eulerd
   .. lua:method:: Eulerd(V3d v[, Eulerd.Order o=Eulerd.Default, \
                          Eulerd.InputLayout l=EulerdIJKLayout]) -> Eulerd
   .. lua:method:: Eulerd(double i, double j, double k[, \
                          Eulerd.Order o=Eulerd.Default, \
                          Eulerd.InputLayout l=EulerdIJKLayout]) -> Eulerd
   .. lua:method:: Eulerd(Eulerd euler, Eulerd.Order newp) -> Eulerd
   .. lua:method:: Eulerd(M33d m[, Eulerd.Order o=Eulerd.Default]) -> Eulerd
   .. lua:method:: Eulerd(M44d m[, Eulerd.Order o=Eulerd.Default]) -> Eulerd
   .. lua:method:: Eulerd(table[3] v[, Eulerd.Order o=Eulerd.Default, \
                          Eulerd.InputLayout l=EulerdIJKLayout]) -> Eulerd
   .. lua:method:: Eulerd(table[9] m[, Eulerd.Order o=Eulerd.Default, \
                          Eulerd.InputLayout l=EulerdIJKLayout]) -> Eulerd
   .. lua:method:: Eulerd(table[16] m[, Eulerd.Order o=Eulerd.Default, \
                          Eulerd.InputLayout l=EulerdIJKLayout]) -> Eulerd

   .. lua:method:: operator==(Eulerd o) const -> boolean
   .. lua:method:: operator!=(Eulerd o) const -> boolean

   .. lua:method:: setXYZVector(V3d v)
   .. lua:method:: setXYZVector(table[3] v)

   .. lua:method:: order() const -> Eulerd.Order
   .. lua:method:: setOrder(Eulerd.Order o)

   .. lua:method:: set(Eulerd.Axis initial, boolean relative, \
                       boolean parityEven, boolean firstRepeats)

   .. lua:method:: extract(M33d m)
   .. lua:method:: extract(M44d m)
   .. lua:method:: extract(Quatd q)

   .. lua:method:: toMatrix33() const -> M33d
   .. lua:method:: toMatrix44() const -> M44d
   .. lua:method:: toQuat() const -> Quatd
   .. lua:method:: toXYZVector() const -> V3d

   .. lua:method:: angleOrder() const -> int, int, int
   .. lua:method:: angleMapping() const -> int, int, int

   .. lua:method:: makeNear(Eulerd target)

   .. lua:method:: frameStatic() const -> boolean
   .. lua:method:: initialRepeated() const -> boolean
   .. lua:method:: parityEven() const -> boolean
   .. lua:method:: initialAxis() const -> Eulerd.Axis

   .. lua:staticmethod:: legal(Eulerd.Order o) -> boolean

   .. lua:staticmethod:: angleMod(double angle) -> float
   .. lua:staticmethod:: simpleXYZRotation(V3d& xyzRot, V3d targetXyzRot)
   .. lua:staticmethod:: nearestRotation(V3d& xyzRot, V3d targetXyzRot, \
                                         Eulerd.Order=Eulerd.XYZ)