Line
====

.. lua:module:: Imath

Imath.Line3f
^^^^^^^^^^^^

.. lua:class:: Line3f

   .. lua:attribute:: V3f pos
   .. lua:attribute:: V3f dir

   .. lua:method:: Line3f() -> Line3f
   .. lua:method:: Line3f(Line3f) -> Line3f
   .. lua:method:: Line3f(V3f point1, V3f point2) -> Line3f
   .. lua:method:: Line3f(table[3] point1, table[3] point2) -> Line3f
   .. lua:method:: Line3f(float posX, float posY, float posZ, float dirX, \
                          float dirY, float dirZ) -> Line3f
   .. lua:method:: Line3f(table[6] posDir) -> Line3f

   .. lua:method:: operator==(Line3f l) const -> boolean
   .. lua:method:: operator!=(Line3f l) const -> boolean
   .. lua:method:: operator[](int idx) const -> float
   .. lua:method:: operator[](int idx, float value)
   .. lua:method:: operator()(float param) const -> V3f

   .. lua:method:: set(V3f point1, V3f point2) -> Line3f
   .. lua:method:: set(table[3] point1, table[3] point2) -> Line3f
   .. lua:method:: set(table[6] posDir) -> Line3f

   .. lua:method:: distanceTo(V3f point) const -> float
   .. lua:method:: distanceTo(Line3f line) const -> float
   .. lua:method:: closestPointTo(V3f point) const -> V3f
   .. lua:method:: closestPointTo(Line3f line) const -> V3f

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

   .. lua:method:: closestPoints(Line3f line2, V3f& point1, V3f& point2) const \
                     -> boolean
   .. lua:method:: closestPoints(Line3f line2) const -> boolean, V3f, V3f
   .. lua:method:: intersect(V3f v0, V3f v1, V3f v2, V3f& pt, \
                             V3f& barycentric) const -> boolean, boolean
   .. lua:method:: intersect(V3f v0, V3f v1, V3f v2) const \
                     -> boolean, V3f, V3f, boolean
   .. lua:method:: closestVertex(V3f v0, V3f v1, V3f v2) const -> V3f
   .. lua:method:: rotatePoint(V3f p, float angle) const -> V3f

Imath.Line3d
^^^^^^^^^^^^

.. lua:class:: Line3d

   .. lua:attribute:: V3d pos
   .. lua:attribute:: V3d dir

   .. lua:method:: Line3d() -> Line3d
   .. lua:method:: Line3d(Line3d) -> Line3d
   .. lua:method:: Line3d(V3d point1, V3d point2) -> Line3d
   .. lua:method:: Line3d(table[3] point1, table[3] point2) -> Line3d
   .. lua:method:: Line3d(double posX, double posY, double posZ, double dirX, \
                          double dirY, double dirZ) -> Line3d
   .. lua:method:: Line3d(table[6] posDir) -> Line3d

   .. lua:method:: operator==(Line3d l) const -> boolean
   .. lua:method:: operator!=(Line3d l) const -> boolean
   .. lua:method:: operator[](int idx) const -> double
   .. lua:method:: operator[](int idx, double value)
   .. lua:method:: operator()(double param) const -> V3d

   .. lua:method:: set(V3d point1, V3d point2) -> Line3d
   .. lua:method:: set(table[3] point1, table[3] point2) -> Line3d
   .. lua:method:: set(table[6] posDir) -> Line3d

   .. lua:method:: distanceTo(V3d point) const -> double
   .. lua:method:: distanceTo(Line3d line) const -> double
   .. lua:method:: closestPointTo(V3d point) const -> V3d
   .. lua:method:: closestPointTo(Line3d line) const -> V3d

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

   .. lua:method:: closestPoints(Line3d line2, V3d& point1, V3d& point2) const \
                     -> boolean
   .. lua:method:: closestPoints(Line3d line2) const -> boolean, V3d, V3d
   .. lua:method:: intersect(V3d v0, V3d v1, V3d v2, V3d& pt, \
                             V3d& barycentric) const -> boolean, boolean
   .. lua:method:: intersect(V3d v0, V3d v1, V3d v2) const \
                     -> boolean, V3d, V3d, boolean
   .. lua:method:: closestVertex(V3d v0, V3d v1, V3d v2) const -> V3d
   .. lua:method:: rotatePoint(V3d p, double angle) const -> V3d