igeo

## Interface IVolumeI

- All Superinterfaces:
    IParameter, ITransformable, IVal, IVolumeOp
  All Known Implementing Classes:
    IVolume, IVolumeGeo

      public interface IVolumeI
      extends IVolumeOp, ITransformable

  Abstract interface of NURBS surface.
  Author:
    Satoru Sugihara

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `IVolumeI` | `add(double x, double y, double z)` transformation methods; API of ITransformable interface
    `IVolumeI` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVolumeI` | `add(IVecI v)`
    `IVolumeI` | `add(IVecI v, double f)` scale add
    `IVolumeI` | `add(IVecI v, IDoubleI f)` scale add
    `IVecI` | `center()` returns center of geometry object
    `IVecI` | `corner(IIntegerI u, IIntegerI v, IIntegerI w)`
    `IVecI` | `corner(int u, int v, int w)`
    `IVecI` | `cornerCP(IIntegerI u, IIntegerI v, IIntegerI w)`
    `IVecI` | `cornerCP(int u, int v, int w)`
    `IVolumeI` | `cp()` cp() is alias of dup()
    `IVolumeI` | `cp(double x, double y, double z)` cp() is alias of dup().add()
    `IVolumeI` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVecI` | `cp(IIntegerI i, IIntegerI j, IIntegerI k)`
    `IVecI` | `cp(int i, int j, int k)`
    `IVolumeI` | `cp(IVecI v)`
    `IVecI[][][]` | `cps()`
    `IVolumeI` | `div(double v)`
    `IVolumeI` | `div(IDoubleI v)`
    `IVolumeI` | `dup()` duplicate the instance
    `IVecI` | `ep(IIntegerI i, IIntegerI j, IIntegerI k)`
    `IVecI` | `ep(int i, int j, int k)`
    `IVolumeI` | `flip()` same with neg
    `IVolumeGeo` | `get()`
    `boolean` | `isRational()`
    `boolean` | `isRational(ISwitchE e)`
    `IBoolI` | `isRational(ISwitchR r)`
    `boolean` | `isUClosed()` swap U and V parameter
    `boolean` | `isUClosed(ISwitchE e)`
    `IBoolI` | `isUClosed(ISwitchR r)`
    `boolean` | `isValid()`
    `boolean` | `isVClosed()`
    `boolean` | `isVClosed(ISwitchE e)`
    `IBoolI` | `isVClosed(ISwitchR r)`
    `boolean` | `isWClosed()`
    `boolean` | `isWClosed(ISwitchE e)`
    `IBoolI` | `isWClosed(ISwitchR r)`
    `IVecI` | `mid()` mid in UV parameter (u=0.5, v=0.5, w=0.5) point on a surface
    `IVolumeI` | `mirror(IVecI planeDir)` mirror is alias of ref
    `IVolumeI` | `mirror(IVecI center, IVecI planeDir)`
    `IVolumeI` | `mul(double v)`
    `IVolumeI` | `mul(IDoubleI v)`
    `IVolumeI` | `mv(double x, double y, double z)` mv() is alias of add()
    `IVolumeI` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVolumeI` | `mv(IVecI v)`
    `IVolumeI` | `neg()`
    `IVecI` | `pt(double u, double v, double w)`
    `IVecI` | `pt(IDoubleI u, IDoubleI v, IDoubleI w)`
    `IVecI` | `pt(IVecI uvw)`
    `IVolumeI` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
    `IVolumeI` | `ref(IVecI center, IVecI planeDir)`
    `IVolumeI` | `rot(IVecI axis, double angle)`
    `IVolumeI` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
    `IVolumeI` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
    `IVolumeI` | `rot(IVecI center, IVecI axis, double angle)`
    `IVolumeI` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center
    `IVolumeI` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
    `IVolumeI` | `scale(double f)`
    `IVolumeI` | `scale(IDoubleI f)` alias of mul
    `IVolumeI` | `scale(IVecI center, double f)`
    `IVolumeI` | `scale(IVecI center, IDoubleI f)`
    `IVolumeI` | `scale1d(IVecI axis, double f)` scale only in 1 direction
    `IVolumeI` | `scale1d(IVecI axis, IDoubleI f)`
    `IVolumeI` | `scale1d(IVecI center, IVecI axis, double f)`
    `IVolumeI` | `scale1d(IVecI center, IVecI axis, IDoubleI f)`
    `IVolumeI` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `IVolumeI` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `IVolumeI` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)`
    `IVolumeI` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `IVolumeI` | `shearXY(double sxy, double syx)`
    `IVolumeI` | `shearXY(IDoubleI sxy, IDoubleI syx)`
    `IVolumeI` | `shearXY(IVecI center, double sxy, double syx)`
    `IVolumeI` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)`
    `IVolumeI` | `shearYZ(double syz, double szy)`
    `IVolumeI` | `shearYZ(IDoubleI syz, IDoubleI szy)`
    `IVolumeI` | `shearYZ(IVecI center, double syz, double szy)`
    `IVolumeI` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)`
    `IVolumeI` | `shearZX(double szx, double sxz)`
    `IVolumeI` | `shearZX(IDoubleI szx, IDoubleI sxz)`
    `IVolumeI` | `shearZX(IVecI center, double szx, double sxz)`
    `IVolumeI` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)`
    `IVolumeI` | `sub(double x, double y, double z)`
    `IVolumeI` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVolumeI` | `sub(IVecI v)`
    `IVolumeI` | `transform(IMatrix3I mat)`
    `IVolumeI` | `transform(IMatrix4I mat)`
    `IVolumeI` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)`
    `IVolumeI` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)`
    `IVolumeI` | `translate(double x, double y, double z)` translate() is alias of add()
    `IVolumeI` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVolumeI` | `translate(IVecI v)`
    `IDoubleI` | `u(IIntegerI epIdx, IDoubleI epFraction)`
    `double` | `u(int epIdx, double epFraction)`
    `int` | `ucpNum()`
    `int` | `ucpNum(ISwitchE e)`
    `IIntegerI` | `ucpNum(ISwitchR r)`
    `int` | `udeg()`
    `int` | `udeg(ISwitchE e)`
    `IIntegerI` | `udeg(ISwitchR r)`
    `double` | `uend()`
    `double` | `uend(ISwitchE e)`
    `IDoubleI` | `uend(ISwitchR r)`
    `int` | `uepNum()`
    `int` | `uepNum(ISwitchE e)`
    `IIntegerI` | `uepNum(ISwitchR r)`
    `IDoubleI` | `uknot(IIntegerI i)`
    `double` | `uknot(int i)` distance to the closest point in the volume
    `int` | `uknotNum()`
    `int` | `uknotNum(ISwitchE e)`
    `IIntegerI` | `uknotNum(ISwitchR r)`
    `double[]` | `uknots()`
    `double[]` | `uknots(ISwitchE e)`
    `IDoubleI[]` | `uknots(ISwitchR r)`
    `int` | `unum()`
    `int` | `unum(ISwitchE e)`
    `IIntegerI` | `unum(ISwitchR r)`
    `double` | `ustart()` original knots start value and end value
    `double` | `ustart(ISwitchE e)`
    `IDoubleI` | `ustart(ISwitchR r)`
    `IVecI` | `utan(double u, double v, double w)`
    `IVecI` | `utan(IDoubleI u, IDoubleI v, IDoubleI w)`
    `IVecI` | `utan(IVecI uvw)`
    `IDoubleI` | `v(IIntegerI epIdx, IDoubleI epFraction)`
    `double` | `v(int epIdx, double epFraction)`
    `int` | `vcpNum()`
    `int` | `vcpNum(ISwitchE e)`
    `IIntegerI` | `vcpNum(ISwitchR r)`
    `int` | `vdeg()`
    `int` | `vdeg(ISwitchE e)`
    `IIntegerI` | `vdeg(ISwitchR r)`
    `double` | `vend()`
    `double` | `vend(ISwitchE e)`
    `IDoubleI` | `vend(ISwitchR r)`
    `int` | `vepNum()`
    `int` | `vepNum(ISwitchE e)`
    `IIntegerI` | `vepNum(ISwitchR r)`
    `IDoubleI` | `vknot(IIntegerI i)`
    `double` | `vknot(int i)`
    `int` | `vknotNum()`
    `int` | `vknotNum(ISwitchE e)`
    `IIntegerI` | `vknotNum(ISwitchR r)`
    `double[]` | `vknots()`
    `double[]` | `vknots(ISwitchE e)`
    `IDoubleI[]` | `vknots(ISwitchR r)`
    `int` | `vnum()`
    `int` | `vnum(ISwitchE e)`
    `IIntegerI` | `vnum(ISwitchR r)`
    `double` | `vstart()`
    `double` | `vstart(ISwitchE e)`
    `IDoubleI` | `vstart(ISwitchR r)`
    `IVecI` | `vtan(double u, double v, double w)`
    `IVecI` | `vtan(IDoubleI u, IDoubleI v, IDoubleI w)`
    `IVecI` | `vtan(IVecI uvw)`
    `IDoubleI` | `w(IIntegerI epIdx, IDoubleI epFraction)`
    `double` | `w(int epIdx, double epFraction)`
    `int` | `wcpNum()`
    `int` | `wcpNum(ISwitchE e)`
    `IIntegerI` | `wcpNum(ISwitchR r)`
    `int` | `wdeg()`
    `int` | `wdeg(ISwitchE e)`
    `IIntegerI` | `wdeg(ISwitchR r)`
    `double` | `wend()`
    `double` | `wend(ISwitchE e)`
    `IDoubleI` | `wend(ISwitchR r)`
    `int` | `wepNum()`
    `int` | `wepNum(ISwitchE e)`
    `IIntegerI` | `wepNum(ISwitchR r)`
    `IDoubleI` | `wknot(IIntegerI i)`
    `double` | `wknot(int i)`
    `int` | `wknotNum()`
    `int` | `wknotNum(ISwitchE e)`
    `IIntegerI` | `wknotNum(ISwitchR r)`
    `double[]` | `wknots()`
    `double[]` | `wknots(ISwitchE e)`
    `IDoubleI[]` | `wknots(ISwitchR r)`
    `int` | `wnum()`
    `int` | `wnum(ISwitchE e)`
    `IIntegerI` | `wnum(ISwitchR r)`
    `double` | `wstart()`
    `double` | `wstart(ISwitchE e)`
    `IDoubleI` | `wstart(ISwitchR r)`
    `IVecI` | `wtan(double u, double v, double w)`
    `IVecI` | `wtan(IDoubleI u, IDoubleI v, IDoubleI w)`
    `IVecI` | `wtan(IVecI uvw)`

    - ### Methods inherited from interface igeo.ITransformable

      `add, add, rot, rot, rot2, rot2, rot2, rot2, rot2, rot2`

- - ### Method Detail

    - #### get

          IVolumeGeo get()

      Specified by:
        `get` in interface `IParameter`
      Specified by:
        `get` in interface `IVolumeOp`
      Returns:
        fixed value but in wrapper class

    - #### dup

          IVolumeI dup()

      Description copied from interface: `ITransformable`
      duplicate the instance
      Specified by:
        `dup` in interface `ITransformable`
      Returns:
        duplicated instance

    - #### isValid

          boolean isValid()

    - #### pt

          IVecI pt(double u,
                   double v,
                   double w)

    - #### pt

          IVecI pt(IDoubleI u,
                   IDoubleI v,
                   IDoubleI w)

    - #### pt

          IVecI pt(IVecI uvw)

    - #### utan

          IVecI utan(double u,
                     double v,
                     double w)

    - #### utan

          IVecI utan(IDoubleI u,
                     IDoubleI v,
                     IDoubleI w)

    - #### utan

          IVecI utan(IVecI uvw)

    - #### vtan

          IVecI vtan(double u,
                     double v,
                     double w)

    - #### vtan

          IVecI vtan(IDoubleI u,
                     IDoubleI v,
                     IDoubleI w)

    - #### vtan

          IVecI vtan(IVecI uvw)

    - #### wtan

          IVecI wtan(double u,
                     double v,
                     double w)

    - #### wtan

          IVecI wtan(IDoubleI u,
                     IDoubleI v,
                     IDoubleI w)

    - #### wtan

          IVecI wtan(IVecI uvw)

    - #### cp

          IVecI cp(int i,
                   int j,
                   int k)

    - #### cp

          IVecI cp(IIntegerI i,
                   IIntegerI j,
                   IIntegerI k)

    - #### cps

          IVecI[][][] cps()

    - #### corner

          IVecI corner(int u,
                       int v,
                       int w)

    - #### corner

          IVecI corner(IIntegerI u,
                       IIntegerI v,
                       IIntegerI w)

    - #### cornerCP

          IVecI cornerCP(int u,
                         int v,
                         int w)

    - #### cornerCP

          IVecI cornerCP(IIntegerI u,
                         IIntegerI v,
                         IIntegerI w)

    - #### ep

          IVecI ep(int i,
                   int j,
                   int k)

    - #### ep

          IVecI ep(IIntegerI i,
                   IIntegerI j,
                   IIntegerI k)

    - #### mid

          IVecI mid()

      mid in UV parameter (u=0.5, v=0.5, w=0.5) point on a surface

    - #### center

          IVecI center()

      returns center of geometry object

    - #### uknot

          double uknot(int i)

      distance to the closest point in the volume

    - #### uknot

          IDoubleI uknot(IIntegerI i)

    - #### vknot

          double vknot(int i)

    - #### vknot

          IDoubleI vknot(IIntegerI i)

    - #### wknot

          double wknot(int i)

    - #### wknot

          IDoubleI wknot(IIntegerI i)

    - #### uknots

          double[] uknots()

    - #### uknots

          double[] uknots(ISwitchE e)

    - #### uknots

          IDoubleI[] uknots(ISwitchR r)

    - #### vknots

          double[] vknots()

    - #### vknots

          double[] vknots(ISwitchE e)

    - #### vknots

          IDoubleI[] vknots(ISwitchR r)

    - #### wknots

          double[] wknots()

    - #### wknots

          double[] wknots(ISwitchE e)

    - #### wknots

          IDoubleI[] wknots(ISwitchR r)

    - #### uknotNum

          int uknotNum()

    - #### vknotNum

          int vknotNum()

    - #### wknotNum

          int wknotNum()

    - #### uknotNum

          int uknotNum(ISwitchE e)

    - #### vknotNum

          int vknotNum(ISwitchE e)

    - #### wknotNum

          int wknotNum(ISwitchE e)

    - #### uknotNum

          IIntegerI uknotNum(ISwitchR r)

    - #### vknotNum

          IIntegerI vknotNum(ISwitchR r)

    - #### wknotNum

          IIntegerI wknotNum(ISwitchR r)

    - #### isRational

          boolean isRational()

      Returns:
        returns true if any of control point has non-default(1.0) weight otherwise false.

    - #### isRational

          boolean isRational(ISwitchE e)

    - #### isRational

          IBoolI isRational(ISwitchR r)

    - #### udeg

          int udeg()

    - #### vdeg

          int vdeg()

    - #### wdeg

          int wdeg()

    - #### udeg

          int udeg(ISwitchE e)

    - #### vdeg

          int vdeg(ISwitchE e)

    - #### wdeg

          int wdeg(ISwitchE e)

    - #### udeg

          IIntegerI udeg(ISwitchR r)

    - #### vdeg

          IIntegerI vdeg(ISwitchR r)

    - #### wdeg

          IIntegerI wdeg(ISwitchR r)

    - #### unum

          int unum()

    - #### vnum

          int vnum()

    - #### wnum

          int wnum()

    - #### unum

          int unum(ISwitchE e)

    - #### vnum

          int vnum(ISwitchE e)

    - #### wnum

          int wnum(ISwitchE e)

    - #### unum

          IIntegerI unum(ISwitchR r)

    - #### vnum

          IIntegerI vnum(ISwitchR r)

    - #### wnum

          IIntegerI wnum(ISwitchR r)

    - #### ucpNum

          int ucpNum()

    - #### vcpNum

          int vcpNum()

    - #### wcpNum

          int wcpNum()

    - #### ucpNum

          int ucpNum(ISwitchE e)

    - #### vcpNum

          int vcpNum(ISwitchE e)

    - #### wcpNum

          int wcpNum(ISwitchE e)

    - #### ucpNum

          IIntegerI ucpNum(ISwitchR r)

    - #### vcpNum

          IIntegerI vcpNum(ISwitchR r)

    - #### wcpNum

          IIntegerI wcpNum(ISwitchR r)

    - #### uepNum

          int uepNum()

    - #### vepNum

          int vepNum()

    - #### wepNum

          int wepNum()

    - #### uepNum

          int uepNum(ISwitchE e)

    - #### vepNum

          int vepNum(ISwitchE e)

    - #### wepNum

          int wepNum(ISwitchE e)

    - #### uepNum

          IIntegerI uepNum(ISwitchR r)

    - #### vepNum

          IIntegerI vepNum(ISwitchR r)

    - #### wepNum

          IIntegerI wepNum(ISwitchR r)

    - #### u

          double u(int epIdx,
                   double epFraction)

    - #### u

          IDoubleI u(IIntegerI epIdx,
                     IDoubleI epFraction)

    - #### v

          double v(int epIdx,
                   double epFraction)

    - #### v

          IDoubleI v(IIntegerI epIdx,
                     IDoubleI epFraction)

    - #### w

          double w(int epIdx,
                   double epFraction)

    - #### w

          IDoubleI w(IIntegerI epIdx,
                     IDoubleI epFraction)

    - #### ustart

          double ustart()

      original knots start value and end value

    - #### uend

          double uend()

    - #### vstart

          double vstart()

    - #### vend

          double vend()

    - #### wstart

          double wstart()

    - #### wend

          double wend()

    - #### ustart

          double ustart(ISwitchE e)

    - #### uend

          double uend(ISwitchE e)

    - #### vstart

          double vstart(ISwitchE e)

    - #### vend

          double vend(ISwitchE e)

    - #### wstart

          double wstart(ISwitchE e)

    - #### wend

          double wend(ISwitchE e)

    - #### ustart

          IDoubleI ustart(ISwitchR r)

    - #### uend

          IDoubleI uend(ISwitchR r)

    - #### vstart

          IDoubleI vstart(ISwitchR r)

    - #### vend

          IDoubleI vend(ISwitchR r)

    - #### wstart

          IDoubleI wstart(ISwitchR r)

    - #### wend

          IDoubleI wend(ISwitchR r)

    - #### isUClosed

          boolean isUClosed()

      swap U and V parameter

    - #### isUClosed

          boolean isUClosed(ISwitchE e)

    - #### isUClosed

          IBoolI isUClosed(ISwitchR r)

    - #### isVClosed

          boolean isVClosed()

    - #### isVClosed

          boolean isVClosed(ISwitchE e)

    - #### isVClosed

          IBoolI isVClosed(ISwitchR r)

    - #### isWClosed

          boolean isWClosed()

    - #### isWClosed

          boolean isWClosed(ISwitchE e)

    - #### isWClosed

          IBoolI isWClosed(ISwitchR r)

    - #### add

          IVolumeI add(double x,
                       double y,
                       double z)

      transformation methods; API of ITransformable interface
      Specified by:
        `add` in interface `ITransformable`

    - #### add

          IVolumeI add(IDoubleI x,
                       IDoubleI y,
                       IDoubleI z)

      Specified by:
        `add` in interface `ITransformable`

    - #### add

          IVolumeI add(IVecI v)

      Specified by:
        `add` in interface `ITransformable`

    - #### sub

          IVolumeI sub(double x,
                       double y,
                       double z)

      Specified by:
        `sub` in interface `ITransformable`

    - #### sub

          IVolumeI sub(IDoubleI x,
                       IDoubleI y,
                       IDoubleI z)

      Specified by:
        `sub` in interface `ITransformable`

    - #### sub

          IVolumeI sub(IVecI v)

      Specified by:
        `sub` in interface `ITransformable`

    - #### mul

          IVolumeI mul(IDoubleI v)

      Specified by:
        `mul` in interface `ITransformable`

    - #### mul

          IVolumeI mul(double v)

      Specified by:
        `mul` in interface `ITransformable`

    - #### div

          IVolumeI div(IDoubleI v)

      Specified by:
        `div` in interface `ITransformable`

    - #### div

          IVolumeI div(double v)

      Specified by:
        `div` in interface `ITransformable`

    - #### neg

          IVolumeI neg()

      Specified by:
        `neg` in interface `ITransformable`

    - #### flip

          IVolumeI flip()

      same with neg
      Specified by:
        `flip` in interface `ITransformable`

    - #### add

          IVolumeI add(IVecI v,
                       double f)

      scale add
      Specified by:
        `add` in interface `ITransformable`

    - #### add

          IVolumeI add(IVecI v,
                       IDoubleI f)

      Description copied from interface: `ITransformable`
      scale add
      Specified by:
        `add` in interface `ITransformable`

    - #### rot

          IVolumeI rot(IVecI axis,
                       IDoubleI angle)

      Description copied from interface: `ITransformable`
      rotation around axis vector
      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          IVolumeI rot(IVecI axis,
                       double angle)

      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          IVolumeI rot(IVecI center,
                       IVecI axis,
                       IDoubleI angle)

      Description copied from interface: `ITransformable`
      rotation around axis vector and center
      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          IVolumeI rot(IVecI center,
                       IVecI axis,
                       double angle)

      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          IVolumeI rot(IVecI axis,
                       IVecI destDir)

      rotate to destination direction vector
      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          IVolumeI rot(IVecI center,
                       IVecI axis,
                       IVecI destPt)

      rotate to destination point location
      Specified by:
        `rot` in interface `ITransformable`

    - #### scale

          IVolumeI scale(IDoubleI f)

      alias of mul
      Specified by:
        `scale` in interface `ITransformable`

    - #### scale

          IVolumeI scale(double f)

      Specified by:
        `scale` in interface `ITransformable`

    - #### scale

          IVolumeI scale(IVecI center,
                         IDoubleI f)

      Specified by:
        `scale` in interface `ITransformable`

    - #### scale

          IVolumeI scale(IVecI center,
                         double f)

      Specified by:
        `scale` in interface `ITransformable`

    - #### scale1d

          IVolumeI scale1d(IVecI axis,
                           double f)

      scale only in 1 direction
      Specified by:
        `scale1d` in interface `ITransformable`

    - #### scale1d

          IVolumeI scale1d(IVecI axis,
                           IDoubleI f)

      Specified by:
        `scale1d` in interface `ITransformable`

    - #### scale1d

          IVolumeI scale1d(IVecI center,
                           IVecI axis,
                           double f)

      Specified by:
        `scale1d` in interface `ITransformable`

    - #### scale1d

          IVolumeI scale1d(IVecI center,
                           IVecI axis,
                           IDoubleI f)

      Specified by:
        `scale1d` in interface `ITransformable`

    - #### ref

          IVolumeI ref(IVecI planeDir)

      reflect(mirror) 3 dimensionally to the other side of the plane
      Specified by:
        `ref` in interface `ITransformable`

    - #### ref

          IVolumeI ref(IVecI center,
                       IVecI planeDir)

      Specified by:
        `ref` in interface `ITransformable`

    - #### mirror

          IVolumeI mirror(IVecI planeDir)

      mirror is alias of ref
      Specified by:
        `mirror` in interface `ITransformable`

    - #### mirror

          IVolumeI mirror(IVecI center,
                          IVecI planeDir)

      Specified by:
        `mirror` in interface `ITransformable`

    - #### shear

          IVolumeI shear(double sxy,
                         double syx,
                         double syz,
                         double szy,
                         double szx,
                         double sxz)

      shear operation
      Specified by:
        `shear` in interface `ITransformable`

    - #### shear

          IVolumeI shear(IDoubleI sxy,
                         IDoubleI syx,
                         IDoubleI syz,
                         IDoubleI szy,
                         IDoubleI szx,
                         IDoubleI sxz)

      Specified by:
        `shear` in interface `ITransformable`

    - #### shear

          IVolumeI shear(IVecI center,
                         double sxy,
                         double syx,
                         double syz,
                         double szy,
                         double szx,
                         double sxz)

      Specified by:
        `shear` in interface `ITransformable`

    - #### shear

          IVolumeI shear(IVecI center,
                         IDoubleI sxy,
                         IDoubleI syx,
                         IDoubleI syz,
                         IDoubleI szy,
                         IDoubleI szx,
                         IDoubleI sxz)

      Specified by:
        `shear` in interface `ITransformable`

    - #### shearXY

          IVolumeI shearXY(double sxy,
                           double syx)

      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearXY

          IVolumeI shearXY(IDoubleI sxy,
                           IDoubleI syx)

      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearXY

          IVolumeI shearXY(IVecI center,
                           double sxy,
                           double syx)

      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearXY

          IVolumeI shearXY(IVecI center,
                           IDoubleI sxy,
                           IDoubleI syx)

      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearYZ

          IVolumeI shearYZ(double syz,
                           double szy)

      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearYZ

          IVolumeI shearYZ(IDoubleI syz,
                           IDoubleI szy)

      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearYZ

          IVolumeI shearYZ(IVecI center,
                           double syz,
                           double szy)

      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearYZ

          IVolumeI shearYZ(IVecI center,
                           IDoubleI syz,
                           IDoubleI szy)

      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearZX

          IVolumeI shearZX(double szx,
                           double sxz)

      Specified by:
        `shearZX` in interface `ITransformable`

    - #### shearZX

          IVolumeI shearZX(IDoubleI szx,
                           IDoubleI sxz)

      Specified by:
        `shearZX` in interface `ITransformable`

    - #### shearZX

          IVolumeI shearZX(IVecI center,
                           double szx,
                           double sxz)

      Specified by:
        `shearZX` in interface `ITransformable`

    - #### shearZX

          IVolumeI shearZX(IVecI center,
                           IDoubleI szx,
                           IDoubleI sxz)

      Specified by:
        `shearZX` in interface `ITransformable`

    - #### mv

          IVolumeI mv(double x,
                      double y,
                      double z)

      mv() is alias of add()
      Specified by:
        `mv` in interface `ITransformable`

    - #### mv

          IVolumeI mv(IDoubleI x,
                      IDoubleI y,
                      IDoubleI z)

      Specified by:
        `mv` in interface `ITransformable`

    - #### mv

          IVolumeI mv(IVecI v)

      Specified by:
        `mv` in interface `ITransformable`

    - #### cp

          IVolumeI cp()

      cp() is alias of dup()
      Specified by:
        `cp` in interface `ITransformable`

    - #### cp

          IVolumeI cp(double x,
                      double y,
                      double z)

      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `ITransformable`

    - #### cp

          IVolumeI cp(IDoubleI x,
                      IDoubleI y,
                      IDoubleI z)

      Specified by:
        `cp` in interface `ITransformable`

    - #### cp

          IVolumeI cp(IVecI v)

      Specified by:
        `cp` in interface `ITransformable`

    - #### translate

          IVolumeI translate(double x,
                             double y,
                             double z)

      translate() is alias of add()
      Specified by:
        `translate` in interface `ITransformable`

    - #### translate

          IVolumeI translate(IDoubleI x,
                             IDoubleI y,
                             IDoubleI z)

      Specified by:
        `translate` in interface `ITransformable`

    - #### translate

          IVolumeI translate(IVecI v)

      Specified by:
        `translate` in interface `ITransformable`

    - #### transform

          IVolumeI transform(IMatrix3I mat)

      Specified by:
        `transform` in interface `ITransformable`

    - #### transform

          IVolumeI transform(IMatrix4I mat)

      Specified by:
        `transform` in interface `ITransformable`

    - #### transform

          IVolumeI transform(IVecI xvec,
                             IVecI yvec,
                             IVecI zvec)

      Specified by:
        `transform` in interface `ITransformable`

    - #### transform

          IVolumeI transform(IVecI xvec,
                             IVecI yvec,
                             IVecI zvec,
                             IVecI translate)

      Specified by:
        `transform` in interface `ITransformable`