Vector
======

.. lua:module:: Imath

Imath.V2s
^^^^^^^^^

.. lua:class:: V2s

   .. lua:attribute:: short x
   .. lua:attribute:: short y

   .. lua:method:: V2s() -> V2s
   .. lua:method:: V2s(V2s v) -> V2s
   .. lua:method:: V2s(V2d v) -> V2s
   .. lua:method:: V2s(V2f v) -> V2s
   .. lua:method:: V2s(V2i v) -> V2s
   .. lua:method:: V2s(short a) -> V2s
   .. lua:method:: V2s(short a, short b) -> V2s
   .. lua:method:: V2s(table[2] t) -> V2s

   .. lua:method:: operator==(V2s v) const -> boolean
   .. lua:method:: operator!=(V2s v) const -> boolean
   .. lua:method:: operator+(V2s v) const -> V2s
   .. lua:method:: operator-(V2s v) const -> V2s
   .. lua:method:: operator-() const -> V2s
   .. lua:method:: operator*(V2s) const -> V2s
   .. lua:method:: operator*(short s) const -> V2s
   .. lua:method:: operator/(V2s v) const -> V2s
   .. lua:method:: operator/(short s) const -> V2s
   .. lua:method:: operator[](int idx) const -> short
   .. lua:method:: operator[](int idx, short value)

   .. lua:method:: equals(V2d v) const -> boolean
   .. lua:method:: equals(V2f v) const -> boolean
   .. lua:method:: equals(V2i v) const -> boolean
   .. lua:method:: equals(V2s v) const -> boolean
   .. lua:method:: equalWithAbsError(V2s v, short e) const -> boolean
   .. lua:method:: equalWithRelError(V2s v, short e) const -> boolean

   .. lua:method:: dot(V2s v) -> short
   .. lua:method:: cross(V2s v) const -> short

   .. lua:method:: negate() -> V2s&

   .. lua:method:: toTable() const -> table[2]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> short
   .. lua:staticmethod:: baseTypeMax() -> short
   .. lua:staticmethod:: baseTypeSmallest() -> short
   .. lua:staticmethod:: baseTypeEpsilon() -> short

   .. lua:staticmethod:: closestVertex(V2s v0, V2s v1, V2s v2, V2s p) -> V2s

Imath.V2i
^^^^^^^^^

.. lua:class:: V2i

   .. lua:attribute:: int x
   .. lua:attribute:: int y

   .. lua:method:: V2i() -> V2i
   .. lua:method:: V2i(V2i v) -> V2i
   .. lua:method:: V2i(V2d v) -> V2i
   .. lua:method:: V2i(V2f v) -> V2i
   .. lua:method:: V2i(V2s v) -> V2i
   .. lua:method:: V2i(int a) -> V2i
   .. lua:method:: V2i(int a, int b) -> V2i
   .. lua:method:: V2i(table[2] t) -> V2i

   .. lua:method:: operator==(V2i v) const -> boolean
   .. lua:method:: operator!=(V2i v) const -> boolean
   .. lua:method:: operator+(V2i v) const -> V2i
   .. lua:method:: operator-(V2i v) const -> V2i
   .. lua:method:: operator-() const -> V2i
   .. lua:method:: operator*(V2i) const -> V2i
   .. lua:method:: operator*(int s) const -> V2i
   .. lua:method:: operator/(V2i v) const -> V2i
   .. lua:method:: operator/(int s) const -> V2i
   .. lua:method:: operator[](int idx) const -> int
   .. lua:method:: operator[](int idx, int value)

   .. lua:method:: equals(V2d v) const -> boolean
   .. lua:method:: equals(V2f v) const -> boolean
   .. lua:method:: equals(V2i v) const -> boolean
   .. lua:method:: equals(V2s v) const -> boolean
   .. lua:method:: equalWithAbsError(V2i v, int e) const -> boolean
   .. lua:method:: equalWithRelError(V2i v, int e) const -> boolean

   .. lua:method:: dot(V2i v) -> int
   .. lua:method:: cross(V2i v) const -> int

   .. lua:method:: negate() -> V2i&

   .. lua:method:: toTable() const -> table[2]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> int
   .. lua:staticmethod:: baseTypeMax() -> int
   .. lua:staticmethod:: baseTypeSmallest() -> int
   .. lua:staticmethod:: baseTypeEpsilon() -> int

   .. lua:staticmethod:: closestVertex(V2i v0, V2i v1, V2i v2, V2i p) -> V2i

Imath.V2f
^^^^^^^^^

.. lua:class:: V2f

   .. lua:attribute:: float x
   .. lua:attribute:: float y

   .. lua:method:: V2f() -> V2f
   .. lua:method:: V2f(V2f v) -> V2f
   .. lua:method:: V2f(V2d v) -> V2f
   .. lua:method:: V2f(V2i v) -> V2f
   .. lua:method:: V2f(V2s v) -> V2f
   .. lua:method:: V2f(float a) -> V2f
   .. lua:method:: V2f(float a, float b) -> V2f
   .. lua:method:: V2f(table[2] t) -> V2f

   .. lua:method:: operator==(V2f v) const -> boolean
   .. lua:method:: operator!=(V2f v) const -> boolean
   .. lua:method:: operator+(V2f v) const -> V2f
   .. lua:method:: operator-(V2f v) const -> V2f
   .. lua:method:: operator-() const -> V2f
   .. lua:method:: operator*(V2f) const -> V2f
   .. lua:method:: operator*(float s) const -> V2f
   .. lua:method:: operator/(V2f v) const -> V2f
   .. lua:method:: operator/(float s) const -> V2f
   .. lua:method:: operator*(M33f m) const -> V2f
   .. lua:method:: operator[](int idx) const -> float
   .. lua:method:: operator[](int idx, float value)

   .. lua:method:: equals(V2d v) const -> boolean
   .. lua:method:: equals(V2f v) const -> boolean
   .. lua:method:: equals(V2i v) const -> boolean
   .. lua:method:: equals(V2s v) const -> boolean
   .. lua:method:: equalWithAbsError(V2f v, float e) const -> boolean
   .. lua:method:: equalWithRelError(V2f v, float e) const -> boolean

   .. lua:method:: dot(V2f v) -> float
   .. lua:method:: cross(V2f v) const -> float

   .. lua:method:: negate() -> V2f&

   .. lua:method:: length() const -> float
   .. lua:method:: length2() const -> float

   .. lua:method:: normalize() -> V2f&
   .. lua:method:: normalizeExc() -> V2f&
   .. lua:method:: normalizeNonNull() -> V2f&

   .. lua:method:: normalized() const -> V2f
   .. lua:method:: normalizedExc() const -> V2f
   .. lua:method:: normalizedNonNull() const -> V2f

   .. lua:method:: project(V2f v) const -> V2f
   .. lua:method:: orthogonal(V2f v) const -> V2f
   .. lua:method:: reflect(V2f v) const -> V2f

   .. lua:method:: toTable() const -> table[2]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> float
   .. lua:staticmethod:: baseTypeMax() -> float
   .. lua:staticmethod:: baseTypeSmallest() -> float
   .. lua:staticmethod:: baseTypeEpsilon() -> float

   .. lua:staticmethod:: closestVertex(V2f v0, V2f v1, V2f v2, V2f p) -> V2f

Imath.V2d
^^^^^^^^^

.. lua:class:: V2d

   .. lua:attribute:: double x
   .. lua:attribute:: double y

   .. lua:method:: V2d() -> V2d
   .. lua:method:: V2d(V2d v) -> V2d
   .. lua:method:: V2d(V2f v) -> V2d
   .. lua:method:: V2d(V2i v) -> V2d
   .. lua:method:: V2d(V2s v) -> V2d
   .. lua:method:: V2d(double a) -> V2d
   .. lua:method:: V2d(double a, double b) -> V2d
   .. lua:method:: V2d(table[2] t) -> V2d

   .. lua:method:: operator==(V2d v) const -> boolean
   .. lua:method:: operator!=(V2d v) const -> boolean
   .. lua:method:: operator+(V2d v) const -> V2d
   .. lua:method:: operator-(V2d v) const -> V2d
   .. lua:method:: operator-() const -> V2d
   .. lua:method:: operator*(V2d) const -> V2d
   .. lua:method:: operator*(double s) const -> V2d
   .. lua:method:: operator/(V2d v) const -> V2d
   .. lua:method:: operator/(double s) const -> V2d
   .. lua:method:: operator*(M33d m) const -> V2d
   .. lua:method:: operator[](int idx) const -> double
   .. lua:method:: operator[](int idx, double value)

   .. lua:method:: equals(V2d v) const -> boolean
   .. lua:method:: equals(V2f v) const -> boolean
   .. lua:method:: equals(V2i v) const -> boolean
   .. lua:method:: equals(V2s v) const -> boolean
   .. lua:method:: equalWithAbsError(V2d v, double e) const -> boolean
   .. lua:method:: equalWithRelError(V2d v, double e) const -> boolean

   .. lua:method:: dot(V2d v) -> double
   .. lua:method:: cross(V2d v) const -> double

   .. lua:method:: negate() -> V2d&

   .. lua:method:: length() const -> double
   .. lua:method:: length2() const -> double

   .. lua:method:: normalize() -> V2d&
   .. lua:method:: normalizeExc() -> V2d&
   .. lua:method:: normalizeNonNull() -> V2d&

   .. lua:method:: normalized() const -> V2d
   .. lua:method:: normalizedExc() const -> V2d
   .. lua:method:: normalizedNonNull() const -> V2d

   .. lua:method:: project(V2d v) const -> V2d
   .. lua:method:: orthogonal(V2d v) const -> V2d
   .. lua:method:: reflect(V2d v) const -> V2d

   .. lua:method:: toTable() const -> table[2]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> double
   .. lua:staticmethod:: baseTypeMax() -> double
   .. lua:staticmethod:: baseTypeSmallest() -> double
   .. lua:staticmethod:: baseTypeEpsilon() -> double

   .. lua:staticmethod:: closestVertex(V2d v0, V2d v1, V2d v2, V2d p) -> V2d

Imath.V3s
^^^^^^^^^

.. lua:attribute:: InfException

   ``INF_EXCEPTION``

.. lua:class:: V3s

   .. lua:attribute:: short x
   .. lua:attribute:: short y
   .. lua:attribute:: short z

   .. lua:method:: V3s() -> V3s
   .. lua:method:: V3s(V3s v) -> V3s
   .. lua:method:: V3s(V3d v) -> V3s
   .. lua:method:: V3s(V3f v) -> V3s
   .. lua:method:: V3s(V3i v) -> V3s
   .. lua:method:: V3s(short a) -> V3s
   .. lua:method:: V3s(short a, short b, short c) -> V3s
   .. lua:method:: V3s(table[3] t) -> V3s
   .. lua:method:: V3s(V4s v) -> V3s
   .. lua:method:: V3s(V4s v, InfException) -> V3s

   .. lua:method:: operator==(V3s v) const -> boolean
   .. lua:method:: operator!=(V3s v) const -> boolean
   .. lua:method:: operator+(V3s v) const -> V3s
   .. lua:method:: operator-(V3s v) const -> V3s
   .. lua:method:: operator-() const -> V3s
   .. lua:method:: operator*(V3s) const -> V3s
   .. lua:method:: operator*(short s) const -> V3s
   .. lua:method:: operator/(V3s v) const -> V3s
   .. lua:method:: operator/(short s) const -> V3s
   .. lua:method:: operator[](int idx) const -> short
   .. lua:method:: operator[](int idx, short value)

   .. lua:method:: equals(V3d v) const -> boolean
   .. lua:method:: equals(V3f v) const -> boolean
   .. lua:method:: equals(V3i v) const -> boolean
   .. lua:method:: equals(V3s v) const -> boolean
   .. lua:method:: equalWithAbsError(V3s v, short e) const -> boolean
   .. lua:method:: equalWithRelError(V3s v, short e) const -> boolean

   .. lua:method:: dot(V3s v) -> short
   .. lua:method:: cross(V3s v) const -> V3s

   .. lua:method:: negate() -> V3s&

   .. lua:method:: toTable() const -> table[3]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> short
   .. lua:staticmethod:: baseTypeMax() -> short
   .. lua:staticmethod:: baseTypeSmallest() -> short
   .. lua:staticmethod:: baseTypeEpsilon() -> short

   .. lua:staticmethod:: closestVertex(V3s v0, V3s v1, V3s v2, V3s p) -> V3s

Imath.V3i
^^^^^^^^^

.. lua:class:: V3i

   .. lua:attribute:: int x
   .. lua:attribute:: int y
   .. lua:attribute:: int z

   .. lua:method:: V3i() -> V3i
   .. lua:method:: V3i(V3i v) -> V3i
   .. lua:method:: V3i(V3d v) -> V3i
   .. lua:method:: V3i(V3f v) -> V3i
   .. lua:method:: V3i(V3s v) -> V3i
   .. lua:method:: V3i(int a) -> V3i
   .. lua:method:: V3i(int a, int b, int c) -> V3i
   .. lua:method:: V3i(table[3] t) -> V3i
   .. lua:method:: V3i(V4i v) -> V3i
   .. lua:method:: V3i(V4i v, InfException) -> V3i

   .. lua:method:: operator==(V3i v) const -> boolean
   .. lua:method:: operator!=(V3i v) const -> boolean
   .. lua:method:: operator+(V3i v) const -> V3i
   .. lua:method:: operator-(V3i v) const -> V3i
   .. lua:method:: operator-() const -> V3i
   .. lua:method:: operator*(V3i) const -> V3i
   .. lua:method:: operator*(int s) const -> V3i
   .. lua:method:: operator/(V3i v) const -> V3i
   .. lua:method:: operator/(int s) const -> V3i
   .. lua:method:: operator[](int idx) const -> int
   .. lua:method:: operator[](int idx, int value)

   .. lua:method:: equals(V3d v) const -> boolean
   .. lua:method:: equals(V3f v) const -> boolean
   .. lua:method:: equals(V3i v) const -> boolean
   .. lua:method:: equals(V3s v) const -> boolean
   .. lua:method:: equalWithAbsError(V3i v, int e) const -> boolean
   .. lua:method:: equalWithRelError(V3i v, int e) const -> boolean

   .. lua:method:: dot(V3i v) -> int
   .. lua:method:: cross(V3i v) const -> V3i

   .. lua:method:: negate() -> V3i&

   .. lua:method:: toTable() const -> table[3]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> int
   .. lua:staticmethod:: baseTypeMax() -> int
   .. lua:staticmethod:: baseTypeSmallest() -> int
   .. lua:staticmethod:: baseTypeEpsilon() -> int

   .. lua:staticmethod:: closestVertex(V3i v0, V3i v1, V3i v2, V3i p) -> V3i

Imath.V3f
^^^^^^^^^

.. lua:class:: V3f

   .. lua:attribute:: float x
   .. lua:attribute:: float y
   .. lua:attribute:: float z

   .. lua:method:: V3f() -> V3f
   .. lua:method:: V3f(V3f v) -> V3f
   .. lua:method:: V3f(V3d v) -> V3f
   .. lua:method:: V3f(V3i v) -> V3f
   .. lua:method:: V3f(V3s v) -> V3f
   .. lua:method:: V3f(float a) -> V3f
   .. lua:method:: V3f(float a, float b, float c) -> V3f
   .. lua:method:: V3f(table[3] t) -> V3f
   .. lua:method:: V3f(V4f v) -> V3f
   .. lua:method:: V3f(V4f v, InfException) -> V3f

   .. lua:method:: operator==(V3f v) const -> boolean
   .. lua:method:: operator!=(V3f v) const -> boolean
   .. lua:method:: operator+(V3f v) const -> V3f
   .. lua:method:: operator-(V3f v) const -> V3f
   .. lua:method:: operator-() const -> V3f
   .. lua:method:: operator*(V3f) const -> V3f
   .. lua:method:: operator*(float s) const -> V3f
   .. lua:method:: operator/(V3f v) const -> V3f
   .. lua:method:: operator/(float s) const -> V3f
   .. lua:method:: operator*(M33f m) const -> V3f
   .. lua:method:: operator*(M44f m) const -> V3f
   .. lua:method:: operator[](int idx) const -> float
   .. lua:method:: operator[](int idx, float value)

   .. lua:method:: equals(V3d v) const -> boolean
   .. lua:method:: equals(V3f v) const -> boolean
   .. lua:method:: equals(V3i v) const -> boolean
   .. lua:method:: equals(V3s v) const -> boolean
   .. lua:method:: equalWithAbsError(V3f v, float e) const -> boolean
   .. lua:method:: equalWithRelError(V3f v, float e) const -> boolean

   .. lua:method:: dot(V3f v) -> float
   .. lua:method:: cross(V3f v) const -> V3f

   .. lua:method:: negate() -> V3f&

   .. lua:method:: length() const -> float
   .. lua:method:: length2() const -> float

   .. lua:method:: normalize() -> V3f&
   .. lua:method:: normalizeExc() -> V3f&
   .. lua:method:: normalizeNonNull() -> V3f&

   .. lua:method:: normalized() const -> V3f
   .. lua:method:: normalizedExc() const -> V3f
   .. lua:method:: normalizedNonNull() const -> V3f

   .. lua:method:: project(V3f v) const -> V3f
   .. lua:method:: orthogonal(V3f v) const -> V3f
   .. lua:method:: reflect(V3f v) const -> V3f

   .. lua:method:: toTable() const -> table[3]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> float
   .. lua:staticmethod:: baseTypeMax() -> float
   .. lua:staticmethod:: baseTypeSmallest() -> float
   .. lua:staticmethod:: baseTypeEpsilon() -> float

   .. lua:staticmethod:: closestVertex(V3f v0, V3f v1, V3f v2, V3f p) -> V3f

Imath.V3d
^^^^^^^^^

.. lua:class:: V3d

   .. lua:attribute:: double x
   .. lua:attribute:: double y
   .. lua:attribute:: double z

   .. lua:method:: V3d() -> V3d
   .. lua:method:: V3d(V3d v) -> V3d
   .. lua:method:: V3d(V3f v) -> V3d
   .. lua:method:: V3d(V3i v) -> V3d
   .. lua:method:: V3d(V3s v) -> V3d
   .. lua:method:: V3d(double a) -> V3d
   .. lua:method:: V3d(double a, double b, double c) -> V3d
   .. lua:method:: V3d(table[3] t) -> V3d
   .. lua:method:: V3d(V4d v) -> V3d
   .. lua:method:: V3d(V4d v, InfException) -> V3d

   .. lua:method:: operator==(V3d v) const -> boolean
   .. lua:method:: operator!=(V3d v) const -> boolean
   .. lua:method:: operator+(V3d v) const -> V3d
   .. lua:method:: operator-(V3d v) const -> V3d
   .. lua:method:: operator-() const -> V3d
   .. lua:method:: operator*(V3d) const -> V3d
   .. lua:method:: operator*(double s) const -> V3d
   .. lua:method:: operator/(V3d v) const -> V3d
   .. lua:method:: operator/(double s) const -> V3d
   .. lua:method:: operator*(M33d m) const -> V3d
   .. lua:method:: operator*(M44d m) const -> V3d
   .. lua:method:: operator[](int idx) const -> double
   .. lua:method:: operator[](int idx, double value)

   .. lua:method:: equals(V3d v) const -> boolean
   .. lua:method:: equals(V3f v) const -> boolean
   .. lua:method:: equals(V3i v) const -> boolean
   .. lua:method:: equals(V3s v) const -> boolean
   .. lua:method:: equalWithAbsError(V3d v, double e) const -> boolean
   .. lua:method:: equalWithRelError(V3d v, double e) const -> boolean

   .. lua:method:: dot(V3d v) -> double
   .. lua:method:: cross(V3d v) const -> V3d

   .. lua:method:: negate() -> V3d&

   .. lua:method:: length() const -> double
   .. lua:method:: length2() const -> double

   .. lua:method:: normalize() -> V3d&
   .. lua:method:: normalizeExc() -> V3d&
   .. lua:method:: normalizeNonNull() -> V3d&

   .. lua:method:: normalized() const -> V3d
   .. lua:method:: normalizedExc() const -> V3d
   .. lua:method:: normalizedNonNull() const -> V3d

   .. lua:method:: project(V3d v) const -> V3d
   .. lua:method:: orthogonal(V3d v) const -> V3d
   .. lua:method:: reflect(V3d v) const -> V3d

   .. lua:method:: toTable() const -> table[3]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> double
   .. lua:staticmethod:: baseTypeMax() -> double
   .. lua:staticmethod:: baseTypeSmallest() -> double
   .. lua:staticmethod:: baseTypeEpsilon() -> double

   .. lua:staticmethod:: closestVertex(V3d v0, V3d v1, V3d v2, V3d p) -> V3d

Imath.V4s
^^^^^^^^^

.. lua:class:: V4s

   .. lua:attribute:: short x
   .. lua:attribute:: short y
   .. lua:attribute:: short z
   .. lua:attribute:: short w

   .. lua:method:: V4s() -> V4s
   .. lua:method:: V4s(V4s v) -> V4s
   .. lua:method:: V4s(V4d v) -> V4s
   .. lua:method:: V4s(V4f v) -> V4s
   .. lua:method:: V4s(V4i v) -> V4s
   .. lua:method:: V4s(short a) -> V4s
   .. lua:method:: V4s(short a, short b, short c, short d) -> V4s
   .. lua:method:: V4s(table[4] t) -> V4s

   .. lua:method:: operator==(V4s v) const -> boolean
   .. lua:method:: operator!=(V4s v) const -> boolean
   .. lua:method:: operator+(V4s v) const -> V4s
   .. lua:method:: operator-(V4s v) const -> V4s
   .. lua:method:: operator-() const -> V4s
   .. lua:method:: operator*(V4s) const -> V4s
   .. lua:method:: operator*(short s) const -> V4s
   .. lua:method:: operator/(V4s v) const -> V4s
   .. lua:method:: operator/(short s) const -> V4s
   .. lua:method:: operator[](int idx) const -> short
   .. lua:method:: operator[](int idx, short value)

   .. lua:method:: equals(V4d v) const -> boolean
   .. lua:method:: equals(V4f v) const -> boolean
   .. lua:method:: equals(V4i v) const -> boolean
   .. lua:method:: equals(V4s v) const -> boolean
   .. lua:method:: equalWithAbsError(V4s v, short e) const -> boolean
   .. lua:method:: equalWithRelError(V4s v, short e) const -> boolean

   .. lua:method:: dot(V4s v) -> short
   .. lua:method:: cross(V4s v) const -> V4s

   .. lua:method:: negate() -> V4s&

   .. lua:method:: toTable() const -> table[4]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> short
   .. lua:staticmethod:: baseTypeMax() -> short
   .. lua:staticmethod:: baseTypeSmallest() -> short
   .. lua:staticmethod:: baseTypeEpsilon() -> short

   .. lua:staticmethod:: closestVertex(V4s v0, V4s v1, V4s v2, V4s p) -> V4s

Imath.V4i
^^^^^^^^^

.. lua:class:: V4i

   .. lua:attribute:: int x
   .. lua:attribute:: int y
   .. lua:attribute:: int z
   .. lua:attribute:: int w

   .. lua:method:: V4i() -> V4i
   .. lua:method:: V4i(V4i v) -> V4i
   .. lua:method:: V4i(V4d v) -> V4i
   .. lua:method:: V4i(V4f v) -> V4i
   .. lua:method:: V4i(V4s v) -> V4i
   .. lua:method:: V4i(int a) -> V4i
   .. lua:method:: V4i(int a, int b, int c, int d) -> V4i
   .. lua:method:: V4i(table[4] t) -> V4i

   .. lua:method:: operator==(V4i v) const -> boolean
   .. lua:method:: operator!=(V4i v) const -> boolean
   .. lua:method:: operator+(V4i v) const -> V4i
   .. lua:method:: operator-(V4i v) const -> V4i
   .. lua:method:: operator-() const -> V4i
   .. lua:method:: operator*(V4i) const -> V4i
   .. lua:method:: operator*(int s) const -> V4i
   .. lua:method:: operator/(V4i v) const -> V4i
   .. lua:method:: operator/(int s) const -> V4i
   .. lua:method:: operator[](int idx) const -> int
   .. lua:method:: operator[](int idx, int value)

   .. lua:method:: equals(V4d v) const -> boolean
   .. lua:method:: equals(V4f v) const -> boolean
   .. lua:method:: equals(V4i v) const -> boolean
   .. lua:method:: equals(V4s v) const -> boolean
   .. lua:method:: equalWithAbsError(V4i v, int e) const -> boolean
   .. lua:method:: equalWithRelError(V4i v, int e) const -> boolean

   .. lua:method:: dot(V4i v) -> int
   .. lua:method:: cross(V4i v) const -> V4i

   .. lua:method:: negate() -> V4i&

   .. lua:method:: toTable() const -> table[4]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> int
   .. lua:staticmethod:: baseTypeMax() -> int
   .. lua:staticmethod:: baseTypeSmallest() -> int
   .. lua:staticmethod:: baseTypeEpsilon() -> int

   .. lua:staticmethod:: closestVertex(V4i v0, V4i v1, V4i v2, V4i p) -> V4i

Imath.V4f
^^^^^^^^^

.. lua:class:: V4f

   .. lua:attribute:: float x
   .. lua:attribute:: float y
   .. lua:attribute:: float z
   .. lua:attribute:: float w

   .. lua:method:: V4f() -> V4f
   .. lua:method:: V4f(V4f v) -> V4f
   .. lua:method:: V4f(V4d v) -> V4f
   .. lua:method:: V4f(V4i v) -> V4f
   .. lua:method:: V4f(V4s v) -> V4f
   .. lua:method:: V4f(float a) -> V4f
   .. lua:method:: V4f(float a, float b, float c, float d) -> V4f
   .. lua:method:: V4f(table[4] t) -> V4f

   .. lua:method:: operator==(V4f v) const -> boolean
   .. lua:method:: operator!=(V4f v) const -> boolean
   .. lua:method:: operator+(V4f v) const -> V4f
   .. lua:method:: operator-(V4f v) const -> V4f
   .. lua:method:: operator-() const -> V4f
   .. lua:method:: operator*(V4f) const -> V4f
   .. lua:method:: operator*(float s) const -> V4f
   .. lua:method:: operator/(V4f v) const -> V4f
   .. lua:method:: operator/(float s) const -> V4f
   .. lua:method:: operator*(M44f m) const -> V4f
   .. lua:method:: operator[](int idx) const -> float
   .. lua:method:: operator[](int idx, float value)

   .. lua:method:: equals(V4d v) const -> boolean
   .. lua:method:: equals(V4f v) const -> boolean
   .. lua:method:: equals(V4i v) const -> boolean
   .. lua:method:: equals(V4s v) const -> boolean
   .. lua:method:: equalWithAbsError(V4f v, float e) const -> boolean
   .. lua:method:: equalWithRelError(V4f v, float e) const -> boolean

   .. lua:method:: dot(V4f v) -> float
   .. lua:method:: cross(V4f v) const -> V4f

   .. lua:method:: negate() -> V4f&

   .. lua:method:: length() const -> float
   .. lua:method:: length2() const -> float

   .. lua:method:: normalize() -> V4f&
   .. lua:method:: normalizeExc() -> V4f&
   .. lua:method:: normalizeNonNull() -> V4f&

   .. lua:method:: normalized() const -> V4f
   .. lua:method:: normalizedExc() const -> V4f
   .. lua:method:: normalizedNonNull() const -> V4f

   .. lua:method:: project(V4f v) const -> V4f
   .. lua:method:: orthogonal(V4f v) const -> V4f
   .. lua:method:: reflect(V4f v) const -> V4f

   .. lua:method:: toTable() const -> table[4]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> float
   .. lua:staticmethod:: baseTypeMax() -> float
   .. lua:staticmethod:: baseTypeSmallest() -> float
   .. lua:staticmethod:: baseTypeEpsilon() -> float

   .. lua:staticmethod:: closestVertex(V4f v0, V4f v1, V4f v2, V4f p) -> V4f

Imath.V4d
^^^^^^^^^

.. lua:class:: V4d

   .. lua:attribute:: double x
   .. lua:attribute:: double y
   .. lua:attribute:: double z
   .. lua:attribute:: double w

   .. lua:method:: V4d() -> V4d
   .. lua:method:: V4d(V4d v) -> V4d
   .. lua:method:: V4d(V4f v) -> V4d
   .. lua:method:: V4d(V4i v) -> V4d
   .. lua:method:: V4d(V4s v) -> V4d
   .. lua:method:: V4d(double a) -> V4d
   .. lua:method:: V4d(double a, double b, double c, double d) -> V4d
   .. lua:method:: V4d(table[4] t) -> V4d

   .. lua:method:: operator==(V4d v) const -> boolean
   .. lua:method:: operator!=(V4d v) const -> boolean
   .. lua:method:: operator+(V4d v) const -> V4d
   .. lua:method:: operator-(V4d v) const -> V4d
   .. lua:method:: operator-() const -> V4d
   .. lua:method:: operator*(V4d) const -> V4d
   .. lua:method:: operator*(double s) const -> V4d
   .. lua:method:: operator/(V4d v) const -> V4d
   .. lua:method:: operator/(double s) const -> V4d
   .. lua:method:: operator*(M44d m) const -> V4d
   .. lua:method:: operator[](int idx) const -> double
   .. lua:method:: operator[](int idx, double value)

   .. lua:method:: equals(V4d v) const -> boolean
   .. lua:method:: equals(V4f v) const -> boolean
   .. lua:method:: equals(V4i v) const -> boolean
   .. lua:method:: equals(V4s v) const -> boolean
   .. lua:method:: equalWithAbsError(V4d v, double e) const -> boolean
   .. lua:method:: equalWithRelError(V4d v, double e) const -> boolean

   .. lua:method:: dot(V4d v) -> double
   .. lua:method:: cross(V4d v) const -> V4d

   .. lua:method:: negate() -> V4d&

   .. lua:method:: length() const -> double
   .. lua:method:: length2() const -> double

   .. lua:method:: normalize() -> V4d&
   .. lua:method:: normalizeExc() -> V4d&
   .. lua:method:: normalizeNonNull() -> V4d&

   .. lua:method:: normalized() const -> V4d
   .. lua:method:: normalizedExc() const -> V4d
   .. lua:method:: normalizedNonNull() const -> V4d

   .. lua:method:: project(V4d v) const -> V4d
   .. lua:method:: orthogonal(V4d v) const -> V4d
   .. lua:method:: reflect(V4d v) const -> V4d

   .. lua:method:: toTable() const -> table[4]

   .. lua:staticmethod:: dimensions() -> int
   .. lua:staticmethod:: baseTypeLowest() -> double
   .. lua:staticmethod:: baseTypeMax() -> double
   .. lua:staticmethod:: baseTypeSmallest() -> double
   .. lua:staticmethod:: baseTypeEpsilon() -> double

   .. lua:staticmethod:: closestVertex(V4d v0, V4d v1, V4d v2, V4d p) -> V4d