igeo

## Class ICurveR

- java.lang.Object
- - igeo.IObject
  - - igeo.ICurveR

- All Implemented Interfaces:
    ICurveI, ICurveOp, IParameter, ITransformable, IVal

      public class ICurveR
      extends IObject
      implements ICurveI

  Reference class of NURBS curve to contain any instance of ICurveI.
  Author:
    Satoru Sugihara

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ICurveR.IsClosed`
    `static class` | `ICurveR.Pt`
    `static class` | `ICurveR.Tan`
    `static class` | `ICurveR.U`
    `static class` | `ICurveR.U2`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `ICurveI` | `curve`

    - ### Fields inherited from class igeo.IObject

      `attribute, dynamics, graphics, parameter, server, userData`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ICurveR()`
    `ICurveR(ICurveI crv)`
    `ICurveR(ICurveR crv)`
    `ICurveR(IServerI s)`
    `ICurveR(IServerI s, ICurveI crv)`
    `ICurveR(IServerI s, ICurveR crv)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ICurveR` | `add(double x, double y, double z)` transformation methods; API of ITransformable interface
    `ICurveR` | `add(double f, IVecI v)` scale add alias
    `ICurveR` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ICurveR` | `add(IDoubleI f, IVecI v)` scale add alias
    `ICurveR` | `add(IVecI v)`
    `ICurveR` | `add(IVecI v, double f)` scale add
    `ICurveR` | `add(IVecI v, IDoubleI f)` scale add
    `IVecI` | `center()` returns center of geometry object
    `IVecR` | `closePt(IVec2I pt)` find approximately closest point on a curve on 2D
    `IVecR` | `closePt(IVecI pt)` find approximately closest point on a curve
    `ICurveR` | `clr(java.awt.Color c)`
    `ICurveR` | `clr(java.awt.Color c, double alpha)`
    `ICurveR` | `clr(java.awt.Color c, float alpha)`
    `ICurveR` | `clr(java.awt.Color c, int alpha)`
    `ICurveR` | `clr(double dgray)`
    `ICurveR` | `clr(double dgray, double dalpha)`
    `ICurveR` | `clr(double dr, double dg, double db)`
    `ICurveR` | `clr(double dr, double dg, double db, double da)`
    `ICurveR` | `clr(float fgray)`
    `ICurveR` | `clr(float fgray, float falpha)`
    `ICurveR` | `clr(float fr, float fg, float fb)`
    `ICurveR` | `clr(float fr, float fg, float fb, float fa)`
    `ICurveR` | `clr(IColor c)` to set an object color
    `ICurveR` | `clr(IColor c, double alpha)` to set color, with alpha value overwritten
    `ICurveR` | `clr(IColor c, float alpha)` to set color, with alpha value overwritten
    `ICurveR` | `clr(IColor c, int alpha)` to set color, with alpha value overwritten
    `ICurveR` | `clr(int gray)`
    `ICurveR` | `clr(int gray, int alpha)`
    `ICurveR` | `clr(int r, int g, int b)`
    `ICurveR` | `clr(int r, int g, int b, int a)`
    `ICurveR` | `clr(IObject o)` to set the same color with the object
    `ICurveR` | `cp()` cp() is alias of dup()
    `ICurveR` | `cp(double x, double y, double z)` cp() is alias of dup().add()
    `ICurveR` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)` cp() is alias of dup().add()
    `IVecI` | `cp(IIntegerI i)` getting i-th control point
    `IVecI` | `cp(int i)` getting i-th control point
    `ICurveR` | `cp(IVecI v)` cp() is alias of dup().add()
    `int` | `cpNum()`
    `int` | `cpNum(ISwitchE e)`
    `IIntegerI` | `cpNum(ISwitchR r)`
    `IVecI[]` | `cps()` all control points
    `IGraphicObject` | `createGraphic(igeo.gui.IGraphicMode m)`
    `int` | `deg()`
    `int` | `deg(ISwitchE e)`
    `IIntegerI` | `deg(ISwitchR r)`
    `double` | `dist(IVec2I pt)` distance to the closest point on a curve on 2D
    `double` | `dist(IVecI pt)` distance to the closest point on a curve
    `ICurveR` | `div(double v)`
    `ICurveR` | `div(IDoubleI v)`
    `ICurveR` | `dup()` duplicate object
    `IVecR` | `end()`
    `IVecI` | `endCP()`
    `IVecR` | `ep(IIntegerI i)` getting i-th edit point
    `IVecR` | `ep(int i)` getting i-th edit point
    `int` | `epNum()`
    `int` | `epNum(ISwitchE e)`
    `IIntegerI` | `epNum(ISwitchR r)`
    `ICurveR` | `flip()` same with neg
    `ICurveR` | `flipU()` alias of rev()
    `ICurveGeo` | `get()`
    `ICurveR` | `hide()`
    `ICurveR` | `hsb(double h, double s, double b)`
    `ICurveR` | `hsb(double h, double s, double b, double a)`
    `ICurveR` | `hsb(float h, float s, float b)`
    `ICurveR` | `hsb(float h, float s, float b, float a)`
    `void` | `initCurve(IServerI s)`
    `boolean` | `isClosed()`
    `boolean` | `isClosed(ISwitchE e)`
    `IBoolR` | `isClosed(ISwitchR r)`
    `boolean` | `isRational()`
    `boolean` | `isRational(ISwitchE e)`
    `IBoolI` | `isRational(ISwitchR r)`
    `boolean` | `isValid()` checking parameters validity.
    `IDoubleI` | `knot(IIntegerI i)`
    `double` | `knot(int i)` close curve with the current control points.
    `int` | `knotNum()`
    `int` | `knotNum(ISwitchE e)`
    `IIntegerI` | `knotNum(ISwitchR r)`
    `double[]` | `knots()` all knot values
    `double[]` | `knots(ISwitchE e)`
    `IDoubleI[]` | `knots(ISwitchR r)`
    `ICurveR` | `layer(ILayer l)` Set layer by ILayer object
    `double` | `len()`
    `double` | `len(ISwitchE e)`
    `IDouble` | `len(ISwitchR r)`
    `IVecR` | `mid()` parametrically mid point of a curve
    `ICurveR` | `mirror(IVecI planeDir)` mirror is alias of ref
    `ICurveR` | `mirror(IVecI center, IVecI planeDir)`
    `ICurveR` | `mul(double v)`
    `ICurveR` | `mul(IDoubleI v)`
    `ICurveR` | `mv(double x, double y, double z)` mv() is alias of add()
    `ICurveR` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ICurveR` | `mv(IVecI v)`
    `ICurveR` | `name(java.lang.String nm)` IObject methods
    `ICurveR` | `neg()`
    `int` | `num()` change degree.
    `int` | `num(ISwitchE e)`
    `IIntegerI` | `num(ISwitchR r)`
    `IVecR` | `pt(double u)`
    `IVecR` | `pt(IDoubleI u)`
    `ICurveR` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
    `ICurveR` | `ref(IVecI center, IVecI planeDir)`
    `ICurveR` | `rev()` reverse U coordintates direction of curve, without creating a new object
    `ICurveR` | `revU()` alias of rev()
    `ICurveR` | `rot(double angle)`
    `ICurveR` | `rot(IDoubleI angle)` rotation around z-axis and origin
    `ICurveR` | `rot(IVecI axis, double angle)`
    `ICurveR` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
    `ICurveR` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
    `ICurveR` | `rot(IVecI center, IVecI axis, double angle)`
    `ICurveR` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center
    `ICurveR` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
    `ICurveR` | `rot2(double angle)` rotation on xy-plane around origin; same with rot(double)
    `ICurveR` | `rot2(IDoubleI angle)` rotation on xy-plane around origin; same with rot(IDoubleI)
    `ICurveR` | `rot2(IVecI destDir)` rotation on xy-plane to destination direction vector
    `ICurveR` | `rot2(IVecI center, double angle)`
    `ICurveR` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane around center
    `ICurveR` | `rot2(IVecI center, IVecI destPt)` rotation on xy-plane to destination point location
    `ICurveR` | `scale(double f)`
    `ICurveR` | `scale(IDoubleI f)` alias of mul
    `ICurveR` | `scale(IVecI center, double f)`
    `ICurveR` | `scale(IVecI center, IDoubleI f)`
    `ICurveR` | `scale1d(IVecI axis, double f)` scale only in 1 direction
    `ICurveR` | `scale1d(IVecI axis, IDoubleI f)`
    `ICurveR` | `scale1d(IVecI center, IVecI axis, double f)`
    `ICurveR` | `scale1d(IVecI center, IVecI axis, IDoubleI f)`
    `ICurveR` | `setColor(java.awt.Color c)`
    `ICurveR` | `setColor(java.awt.Color c, int alpha)`
    `ICurveR` | `setColor(double dgray)`
    `ICurveR` | `setColor(double dgray, double dalpha)`
    `ICurveR` | `setColor(double dr, double dg, double db)`
    `ICurveR` | `setColor(double dr, double dg, double db, double da)`
    `ICurveR` | `setColor(float fgray)`
    `ICurveR` | `setColor(float fgray, float falpha)`
    `ICurveR` | `setColor(float fr, float fg, float fb)`
    `ICurveR` | `setColor(float fr, float fg, float fb, float fa)`
    `ICurveR` | `setColor(int gray)`
    `ICurveR` | `setColor(int gray, int alpha)`
    `ICurveR` | `setColor(int r, int g, int b)`
    `ICurveR` | `setColor(int r, int g, int b, int a)`
    `ICurveR` | `setHSBColor(double h, double s, double b)`
    `ICurveR` | `setHSBColor(double h, double s, double b, double a)`
    `ICurveR` | `setHSBColor(float h, float s, float b)`
    `ICurveR` | `setHSBColor(float h, float s, float b, float a)`
    `ICurveR` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `ICurveR` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `ICurveR` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)`
    `ICurveR` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `ICurveR` | `shearXY(double sxy, double syx)`
    `ICurveR` | `shearXY(IDoubleI sxy, IDoubleI syx)`
    `ICurveR` | `shearXY(IVecI center, double sxy, double syx)`
    `ICurveR` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)`
    `ICurveR` | `shearYZ(double syz, double szy)`
    `ICurveR` | `shearYZ(IDoubleI syz, IDoubleI szy)`
    `ICurveR` | `shearYZ(IVecI center, double syz, double szy)`
    `ICurveR` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)`
    `ICurveR` | `shearZX(double szx, double sxz)`
    `ICurveR` | `shearZX(IDoubleI szx, IDoubleI sxz)`
    `ICurveR` | `shearZX(IVecI center, double szx, double sxz)`
    `ICurveR` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)`
    `ICurveR` | `show()`
    `IVecR` | `start()`
    `IVecI` | `startCP()`
    `ICurveR` | `sub(double x, double y, double z)`
    `ICurveR` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ICurveR` | `sub(IVecI v)`
    `IVecR` | `tan(double u)`
    `IVecR` | `tan(IDoubleI u)`
    `ICurveR` | `transform(IMatrix3I mat)`
    `ICurveR` | `transform(IMatrix4I mat)`
    `ICurveR` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)`
    `ICurveR` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)`
    `ICurveR` | `translate(double x, double y, double z)` translate is alias of add()
    `ICurveR` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ICurveR` | `translate(IVecI v)`
    `IDoubleI` | `u(IInteger epIdx, IDouble epFraction)`
    `double` | `u(int epIdx, double epFraction)`
    `double` | `u(ISwitchE r, IVec2I pt)`
    `double` | `u(ISwitchE r, IVecI pt)`
    `IDoubleR` | `u(ISwitchR r, IVec2I pt)`
    `IDoubleR` | `u(ISwitchR r, IVecI pt)`
    `double` | `u(IVec2I pt)` approximate invert projection from 2D location to interanl parameter U
    `double` | `u(IVecI pt)` approximate invert projection from 3D location to interanl parameter U (closest point on curve)
    `double` | `uend()`
    `double` | `uend(ISwitchE e)`
    `IDoubleI` | `uend(ISwitchR r)`
    `double` | `ustart()`
    `double` | `ustart(ISwitchE e)`
    `IDoubleI` | `ustart(ISwitchR r)`
    `ICurveR` | `weight(double w)`
    `ICurveR` | `weight(float w)`

    - ### Methods inherited from class igeo.IObject

      `addDynamics, addUserData, addUserData, alpha, alphaInt, attr, attr, attr, awtColor, blue, blueInt, brightness, castStringHashMap, clearDynamics, clearGraphics, clr, defaultAttribute, del, deletDynamics, deleteDynamics, deleteDynamics, deleteGraphic, dynamicsNum, getAWTColor, getColor, getDynamics, getGraphic, getGraphic, getParameter, graphicsNum, gray, grayInt, green, greenInt, grey, greyInt, hue, initGraphic, initObject, isVisible, layer, layer, name, red, redInt, resetGraphic, saturation, server, setColor, setColor, setColor, setColor, setColor, setColor, setParameter, syncColor, syncGraphic, syncVisibility, syncWeight, updateGraphic, userData, userData, userData, userDataNum, visible, weight`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### curve

          public ICurveI curve

  - ### Constructor Detail

    - #### ICurveR

          public ICurveR()

    - #### ICurveR

          public ICurveR(ICurveI crv)

    - #### ICurveR

          public ICurveR(IServerI s)

    - #### ICurveR

          public ICurveR(IServerI s,
                 ICurveI crv)

    - #### ICurveR

          public ICurveR(ICurveR crv)

    - #### ICurveR

          public ICurveR(IServerI s,
                 ICurveR crv)

  - ### Method Detail

    - #### initCurve

          public void initCurve(IServerI s)

    - #### createGraphic

          public IGraphicObject createGraphic(igeo.gui.IGraphicMode m)

      Overrides:
        `createGraphic` in class `IObject`

    - #### isValid

          public boolean isValid()

      Description copied from class: `IObject`
      checking parameters validity. to be overriden.
      Specified by:
        `isValid` in interface `ICurveI`
      Overrides:
        `isValid` in class `IObject`

    - #### get

          public ICurveGeo get()

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

    - #### dup

          public ICurveR dup()

      Description copied from class: `IObject`
      duplicate object
      Specified by:
        `dup` in interface `ICurveI`
      Specified by:
        `dup` in interface `ITransformable`
      Overrides:
        `dup` in class `IObject`
      Returns:
        duplicated instance

    - #### pt

          public IVecR pt(IDoubleI u)

      Specified by:
        `pt` in interface `ICurveI`

    - #### pt

          public IVecR pt(double u)

      Specified by:
        `pt` in interface `ICurveI`

    - #### tan

          public IVecR tan(IDoubleI u)

      Specified by:
        `tan` in interface `ICurveI`

    - #### tan

          public IVecR tan(double u)

      Specified by:
        `tan` in interface `ICurveI`

    - #### cp

          public IVecI cp(int i)

      getting i-th control point
      Specified by:
        `cp` in interface `ICurveI`

    - #### cp

          public IVecI cp(IIntegerI i)

      getting i-th control point
      Specified by:
        `cp` in interface `ICurveI`

    - #### cps

          public IVecI[] cps()

      Description copied from interface: `ICurveI`
      all control points
      Specified by:
        `cps` in interface `ICurveI`

    - #### ep

          public IVecR ep(int i)

      getting i-th edit point
      Specified by:
        `ep` in interface `ICurveI`

    - #### ep

          public IVecR ep(IIntegerI i)

      getting i-th edit point
      Specified by:
        `ep` in interface `ICurveI`

    - #### start

          public IVecR start()

      Specified by:
        `start` in interface `ICurveI`

    - #### end

          public IVecR end()

      Specified by:
        `end` in interface `ICurveI`

    - #### startCP

          public IVecI startCP()

      Specified by:
        `startCP` in interface `ICurveI`

    - #### endCP

          public IVecI endCP()

      Specified by:
        `endCP` in interface `ICurveI`

    - #### mid

          public IVecR mid()

      parametrically mid point of a curve
      Specified by:
        `mid` in interface `ICurveI`

    - #### center

          public IVecI center()

      returns center of geometry object
      Specified by:
        `center` in interface `ICurveI`

    - #### u

          public double u(IVecI pt)

      approximate invert projection from 3D location to interanl parameter U (closest point on curve)
      Specified by:
        `u` in interface `ICurveI`

    - #### u

          public double u(ISwitchE r,
                 IVecI pt)

      Specified by:
        `u` in interface `ICurveI`

    - #### u

          public IDoubleR u(ISwitchR r,
                   IVecI pt)

      Specified by:
        `u` in interface `ICurveI`

    - #### u

          public double u(IVec2I pt)

      approximate invert projection from 2D location to interanl parameter U
      Specified by:
        `u` in interface `ICurveI`

    - #### u

          public double u(ISwitchE r,
                 IVec2I pt)

      Specified by:
        `u` in interface `ICurveI`

    - #### u

          public IDoubleR u(ISwitchR r,
                   IVec2I pt)

      Specified by:
        `u` in interface `ICurveI`

    - #### closePt

          public IVecR closePt(IVecI pt)

      find approximately closest point on a curve
      Specified by:
        `closePt` in interface `ICurveI`

    - #### closePt

          public IVecR closePt(IVec2I pt)

      find approximately closest point on a curve on 2D
      Specified by:
        `closePt` in interface `ICurveI`

    - #### dist

          public double dist(IVecI pt)

      distance to the closest point on a curve
      Specified by:
        `dist` in interface `ICurveI`

    - #### dist

          public double dist(IVec2I pt)

      distance to the closest point on a curve on 2D
      Specified by:
        `dist` in interface `ICurveI`

    - #### knot

          public double knot(int i)

      Description copied from interface: `ICurveI`
      close curve with the current control points. it changes total number of control points and knot vector dependng on the degree. new knot vector has equal default intervals destroying original variable intervals.
      Specified by:
        `knot` in interface `ICurveI`

    - #### knot

          public IDoubleI knot(IIntegerI i)

      Specified by:
        `knot` in interface `ICurveI`

    - #### knots

          public double[] knots()

      Description copied from interface: `ICurveI`
      all knot values
      Specified by:
        `knots` in interface `ICurveI`

    - #### knots

          public double[] knots(ISwitchE e)

      Specified by:
        `knots` in interface `ICurveI`

    - #### knots

          public IDoubleI[] knots(ISwitchR r)

      Specified by:
        `knots` in interface `ICurveI`

    - #### knotNum

          public int knotNum()

      Specified by:
        `knotNum` in interface `ICurveI`

    - #### knotNum

          public int knotNum(ISwitchE e)

      Specified by:
        `knotNum` in interface `ICurveI`

    - #### knotNum

          public IIntegerI knotNum(ISwitchR r)

      Specified by:
        `knotNum` in interface `ICurveI`

    - #### isRational

          public boolean isRational()

      Specified by:
        `isRational` in interface `ICurveI`
      Returns:
        returns true if any of control point has non-default(1.0) weight otherwise false.

    - #### isRational

          public boolean isRational(ISwitchE e)

      Specified by:
        `isRational` in interface `ICurveI`

    - #### isRational

          public IBoolI isRational(ISwitchR r)

      Specified by:
        `isRational` in interface `ICurveI`

    - #### deg

          public int deg()

      Specified by:
        `deg` in interface `ICurveI`

    - #### deg

          public int deg(ISwitchE e)

      Specified by:
        `deg` in interface `ICurveI`

    - #### deg

          public IIntegerI deg(ISwitchR r)

      Specified by:
        `deg` in interface `ICurveI`

    - #### num

          public int num()

      Description copied from interface: `ICurveI`
      change degree. this operation is costly because it needs to rebuild the whole knots and basisFunction
      Specified by:
        `num` in interface `ICurveI`

    - #### num

          public int num(ISwitchE e)

      Specified by:
        `num` in interface `ICurveI`

    - #### num

          public IIntegerI num(ISwitchR r)

      Specified by:
        `num` in interface `ICurveI`

    - #### cpNum

          public int cpNum()

      Specified by:
        `cpNum` in interface `ICurveI`

    - #### cpNum

          public int cpNum(ISwitchE e)

      Specified by:
        `cpNum` in interface `ICurveI`

    - #### cpNum

          public IIntegerI cpNum(ISwitchR r)

      Specified by:
        `cpNum` in interface `ICurveI`

    - #### epNum

          public int epNum()

      Specified by:
        `epNum` in interface `ICurveI`

    - #### epNum

          public int epNum(ISwitchE e)

      Specified by:
        `epNum` in interface `ICurveI`

    - #### epNum

          public IIntegerI epNum(ISwitchR r)

      Specified by:
        `epNum` in interface `ICurveI`

    - #### len

          public double len()

      Specified by:
        `len` in interface `ICurveI`

    - #### len

          public double len(ISwitchE e)

      Specified by:
        `len` in interface `ICurveI`

    - #### len

          public IDouble len(ISwitchR r)

      Specified by:
        `len` in interface `ICurveI`

    - #### u

          public double u(int epIdx,
                 double epFraction)

      Specified by:
        `u` in interface `ICurveI`

    - #### u

          public IDoubleI u(IInteger epIdx,
                   IDouble epFraction)

      Specified by:
        `u` in interface `ICurveI`

    - #### ustart

          public double ustart()

      Specified by:
        `ustart` in interface `ICurveI`

    - #### uend

          public double uend()

      Specified by:
        `uend` in interface `ICurveI`

    - #### ustart

          public double ustart(ISwitchE e)

      Specified by:
        `ustart` in interface `ICurveI`

    - #### uend

          public double uend(ISwitchE e)

      Specified by:
        `uend` in interface `ICurveI`

    - #### ustart

          public IDoubleI ustart(ISwitchR r)

      Specified by:
        `ustart` in interface `ICurveI`

    - #### uend

          public IDoubleI uend(ISwitchR r)

      Specified by:
        `uend` in interface `ICurveI`

    - #### isClosed

          public boolean isClosed()

      Specified by:
        `isClosed` in interface `ICurveI`

    - #### isClosed

          public boolean isClosed(ISwitchE e)

      Specified by:
        `isClosed` in interface `ICurveI`

    - #### isClosed

          public IBoolR isClosed(ISwitchR r)

      Specified by:
        `isClosed` in interface `ICurveI`

    - #### rev

          public ICurveR rev()

      Description copied from interface: `ICurveI`
      reverse U coordintates direction of curve, without creating a new object
      Specified by:
        `rev` in interface `ICurveI`

    - #### revU

          public ICurveR revU()

      alias of rev()
      Specified by:
        `revU` in interface `ICurveI`

    - #### flipU

          public ICurveR flipU()

      alias of rev()
      Specified by:
        `flipU` in interface `ICurveI`

    - #### add

          public ICurveR add(double x,
                    double y,
                    double z)

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

    - #### add

          public ICurveR add(IDoubleI x,
                    IDoubleI y,
                    IDoubleI z)

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

    - #### add

          public ICurveR add(IVecI v)

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

    - #### sub

          public ICurveR sub(double x,
                    double y,
                    double z)

      Specified by:
        `sub` in interface `ICurveI`
      Specified by:
        `sub` in interface `ITransformable`

    - #### sub

          public ICurveR sub(IDoubleI x,
                    IDoubleI y,
                    IDoubleI z)

      Specified by:
        `sub` in interface `ICurveI`
      Specified by:
        `sub` in interface `ITransformable`

    - #### sub

          public ICurveR sub(IVecI v)

      Specified by:
        `sub` in interface `ICurveI`
      Specified by:
        `sub` in interface `ITransformable`

    - #### mul

          public ICurveR mul(IDoubleI v)

      Specified by:
        `mul` in interface `ICurveI`
      Specified by:
        `mul` in interface `ITransformable`

    - #### mul

          public ICurveR mul(double v)

      Specified by:
        `mul` in interface `ICurveI`
      Specified by:
        `mul` in interface `ITransformable`

    - #### div

          public ICurveR div(IDoubleI v)

      Specified by:
        `div` in interface `ICurveI`
      Specified by:
        `div` in interface `ITransformable`

    - #### div

          public ICurveR div(double v)

      Specified by:
        `div` in interface `ICurveI`
      Specified by:
        `div` in interface `ITransformable`

    - #### neg

          public ICurveR neg()

      Specified by:
        `neg` in interface `ICurveI`
      Specified by:
        `neg` in interface `ITransformable`

    - #### flip

          public ICurveR flip()

      Description copied from interface: `ICurveI`
      same with neg
      Specified by:
        `flip` in interface `ICurveI`
      Specified by:
        `flip` in interface `ITransformable`

    - #### add

          public ICurveR add(IVecI v,
                    double f)

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

    - #### add

          public ICurveR add(IVecI v,
                    IDoubleI f)

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

    - #### add

          public ICurveR add(double f,
                    IVecI v)

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

    - #### add

          public ICurveR add(IDoubleI f,
                    IVecI v)

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

    - #### rot

          public ICurveR rot(IDoubleI angle)

      Description copied from interface: `ITransformable`
      rotation around z-axis and origin
      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          public ICurveR rot(double angle)

      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          public ICurveR rot(IVecI axis,
                    IDoubleI angle)

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

    - #### rot

          public ICurveR rot(IVecI axis,
                    double angle)

      Specified by:
        `rot` in interface `ICurveI`
      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          public ICurveR rot(IVecI center,
                    IVecI axis,
                    IDoubleI angle)

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

    - #### rot

          public ICurveR rot(IVecI center,
                    IVecI axis,
                    double angle)

      Specified by:
        `rot` in interface `ICurveI`
      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          public ICurveR rot(IVecI axis,
                    IVecI destDir)

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

    - #### rot

          public ICurveR rot(IVecI center,
                    IVecI axis,
                    IVecI destPt)

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

    - #### rot2

          public ICurveR rot2(IDoubleI angle)

      Description copied from interface: `ITransformable`
      rotation on xy-plane around origin; same with rot(IDoubleI)
      Specified by:
        `rot2` in interface `ITransformable`

    - #### rot2

          public ICurveR rot2(double angle)

      Description copied from interface: `ITransformable`
      rotation on xy-plane around origin; same with rot(double)
      Specified by:
        `rot2` in interface `ITransformable`

    - #### rot2

          public ICurveR rot2(IVecI center,
                     IDoubleI angle)

      Description copied from interface: `ITransformable`
      rotation on xy-plane around center
      Specified by:
        `rot2` in interface `ITransformable`

    - #### rot2

          public ICurveR rot2(IVecI center,
                     double angle)

      Specified by:
        `rot2` in interface `ITransformable`

    - #### rot2

          public ICurveR rot2(IVecI destDir)

      rotation on xy-plane to destination direction vector
      Specified by:
        `rot2` in interface `ITransformable`

    - #### rot2

          public ICurveR rot2(IVecI center,
                     IVecI destPt)

      rotation on xy-plane to destination point location
      Specified by:
        `rot2` in interface `ITransformable`

    - #### scale

          public ICurveR scale(IDoubleI f)

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

    - #### scale

          public ICurveR scale(double f)

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

    - #### scale

          public ICurveR scale(IVecI center,
                      IDoubleI f)

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

    - #### scale

          public ICurveR scale(IVecI center,
                      double f)

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

    - #### scale1d

          public ICurveR scale1d(IVecI axis,
                        double f)

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

    - #### scale1d

          public ICurveR scale1d(IVecI axis,
                        IDoubleI f)

      Specified by:
        `scale1d` in interface `ICurveI`
      Specified by:
        `scale1d` in interface `ITransformable`

    - #### scale1d

          public ICurveR scale1d(IVecI center,
                        IVecI axis,
                        double f)

      Specified by:
        `scale1d` in interface `ICurveI`
      Specified by:
        `scale1d` in interface `ITransformable`

    - #### scale1d

          public ICurveR scale1d(IVecI center,
                        IVecI axis,
                        IDoubleI f)

      Specified by:
        `scale1d` in interface `ICurveI`
      Specified by:
        `scale1d` in interface `ITransformable`

    - #### ref

          public ICurveR ref(IVecI planeDir)

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

    - #### ref

          public ICurveR ref(IVecI center,
                    IVecI planeDir)

      Specified by:
        `ref` in interface `ICurveI`
      Specified by:
        `ref` in interface `ITransformable`

    - #### mirror

          public ICurveR mirror(IVecI planeDir)

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

    - #### mirror

          public ICurveR mirror(IVecI center,
                       IVecI planeDir)

      Specified by:
        `mirror` in interface `ICurveI`
      Specified by:
        `mirror` in interface `ITransformable`

    - #### shear

          public ICurveR shear(double sxy,
                      double syx,
                      double syz,
                      double szy,
                      double szx,
                      double sxz)

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

    - #### shear

          public ICurveR shear(IDoubleI sxy,
                      IDoubleI syx,
                      IDoubleI syz,
                      IDoubleI szy,
                      IDoubleI szx,
                      IDoubleI sxz)

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

    - #### shear

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

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

    - #### shear

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

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

    - #### shearXY

          public ICurveR shearXY(double sxy,
                        double syx)

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearXY

          public ICurveR shearXY(IDoubleI sxy,
                        IDoubleI syx)

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearXY

          public ICurveR shearXY(IVecI center,
                        double sxy,
                        double syx)

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearXY

          public ICurveR shearXY(IVecI center,
                        IDoubleI sxy,
                        IDoubleI syx)

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`

    - #### shearYZ

          public ICurveR shearYZ(double syz,
                        double szy)

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearYZ

          public ICurveR shearYZ(IDoubleI syz,
                        IDoubleI szy)

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearYZ

          public ICurveR shearYZ(IVecI center,
                        double syz,
                        double szy)

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearYZ

          public ICurveR shearYZ(IVecI center,
                        IDoubleI syz,
                        IDoubleI szy)

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`

    - #### shearZX

          public ICurveR shearZX(double szx,
                        double sxz)

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`

    - #### shearZX

          public ICurveR shearZX(IDoubleI szx,
                        IDoubleI sxz)

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`

    - #### shearZX

          public ICurveR shearZX(IVecI center,
                        double szx,
                        double sxz)

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`

    - #### shearZX

          public ICurveR shearZX(IVecI center,
                        IDoubleI szx,
                        IDoubleI sxz)

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`

    - #### translate

          public ICurveR translate(double x,
                          double y,
                          double z)

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

    - #### translate

          public ICurveR translate(IDoubleI x,
                          IDoubleI y,
                          IDoubleI z)

      Specified by:
        `translate` in interface `ICurveI`
      Specified by:
        `translate` in interface `ITransformable`

    - #### translate

          public ICurveR translate(IVecI v)

      Specified by:
        `translate` in interface `ICurveI`
      Specified by:
        `translate` in interface `ITransformable`

    - #### mv

          public ICurveR mv(double x,
                   double y,
                   double z)

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

    - #### mv

          public ICurveR mv(IDoubleI x,
                   IDoubleI y,
                   IDoubleI z)

      Specified by:
        `mv` in interface `ICurveI`
      Specified by:
        `mv` in interface `ITransformable`

    - #### mv

          public ICurveR mv(IVecI v)

      Specified by:
        `mv` in interface `ICurveI`
      Specified by:
        `mv` in interface `ITransformable`

    - #### cp

          public ICurveR cp()

      cp() is alias of dup()
      Specified by:
        `cp` in interface `ICurveI`
      Specified by:
        `cp` in interface `ITransformable`
      Overrides:
        `cp` in class `IObject`

    - #### cp

          public ICurveR cp(double x,
                   double y,
                   double z)

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

    - #### cp

          public ICurveR cp(IDoubleI x,
                   IDoubleI y,
                   IDoubleI z)

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

    - #### cp

          public ICurveR cp(IVecI v)

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

    - #### transform

          public ICurveR transform(IMatrix3I mat)

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`

    - #### transform

          public ICurveR transform(IMatrix4I mat)

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`

    - #### transform

          public ICurveR transform(IVecI xvec,
                          IVecI yvec,
                          IVecI zvec)

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`

    - #### transform

          public ICurveR transform(IVecI xvec,
                          IVecI yvec,
                          IVecI zvec,
                          IVecI translate)

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`

    - #### name

          public ICurveR name(java.lang.String nm)

      IObject methods
      Overrides:
        `name` in class `IObject`

    - #### layer

          public ICurveR layer(ILayer l)

      Description copied from class: `IObject`
      Set layer by ILayer object
      Overrides:
        `layer` in class `IObject`

    - #### hide

          public ICurveR hide()

      Overrides:
        `hide` in class `IObject`

    - #### show

          public ICurveR show()

      Overrides:
        `show` in class `IObject`

    - #### clr

          public ICurveR clr(IColor c)

      Description copied from class: `IObject`
      to set an object color
      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(IColor c,
                    int alpha)

      Description copied from class: `IObject`
      to set color, with alpha value overwritten
      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(IColor c,
                    float alpha)

      Description copied from class: `IObject`
      to set color, with alpha value overwritten
      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(IColor c,
                    double alpha)

      Description copied from class: `IObject`
      to set color, with alpha value overwritten
      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(IObject o)

      Description copied from class: `IObject`
      to set the same color with the object
      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(java.awt.Color c)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(java.awt.Color c,
                    int alpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(java.awt.Color c,
                    float alpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(java.awt.Color c,
                    double alpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(int gray)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(float fgray)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(double dgray)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(int gray,
                    int alpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(float fgray,
                    float falpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(double dgray,
                    double dalpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(int r,
                    int g,
                    int b)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(float fr,
                    float fg,
                    float fb)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(double dr,
                    double dg,
                    double db)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(int r,
                    int g,
                    int b,
                    int a)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(float fr,
                    float fg,
                    float fb,
                    float fa)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ICurveR clr(double dr,
                    double dg,
                    double db,
                    double da)

      Overrides:
        `clr` in class `IObject`

    - #### hsb

          public ICurveR hsb(float h,
                    float s,
                    float b,
                    float a)

      Overrides:
        `hsb` in class `IObject`

    - #### hsb

          public ICurveR hsb(double h,
                    double s,
                    double b,
                    double a)

      Overrides:
        `hsb` in class `IObject`

    - #### hsb

          public ICurveR hsb(float h,
                    float s,
                    float b)

      Overrides:
        `hsb` in class `IObject`

    - #### hsb

          public ICurveR hsb(double h,
                    double s,
                    double b)

      Overrides:
        `hsb` in class `IObject`

    - #### setColor

          public ICurveR setColor(java.awt.Color c)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(java.awt.Color c,
                         int alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(int gray)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(float fgray)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(double dgray)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(int gray,
                         int alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(float fgray,
                         float falpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(double dgray,
                         double dalpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(int r,
                         int g,
                         int b)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(float fr,
                         float fg,
                         float fb)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(double dr,
                         double dg,
                         double db)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(int r,
                         int g,
                         int b,
                         int a)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(float fr,
                         float fg,
                         float fb,
                         float fa)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ICurveR setColor(double dr,
                         double dg,
                         double db,
                         double da)

      Overrides:
        `setColor` in class `IObject`

    - #### setHSBColor

          public ICurveR setHSBColor(float h,
                            float s,
                            float b,
                            float a)

      Overrides:
        `setHSBColor` in class `IObject`

    - #### setHSBColor

          public ICurveR setHSBColor(double h,
                            double s,
                            double b,
                            double a)

      Overrides:
        `setHSBColor` in class `IObject`

    - #### setHSBColor

          public ICurveR setHSBColor(float h,
                            float s,
                            float b)

      Overrides:
        `setHSBColor` in class `IObject`

    - #### setHSBColor

          public ICurveR setHSBColor(double h,
                            double s,
                            double b)

      Overrides:
        `setHSBColor` in class `IObject`

    - #### weight

          public ICurveR weight(double w)

      Overrides:
        `weight` in class `IObject`

    - #### weight

          public ICurveR weight(float w)

      Overrides:
        `weight` in class `IObject`