igeo

## Class ITrimCurve

- java.lang.Object
- - igeo.IParameterObject
  - - igeo.INurbsGeo
    - - igeo.ICurveGeo
      - - igeo.ITrimCurve

- All Implemented Interfaces:
    ICurveI, ICurveOp, IEntityParameter, IParameter, ISubobject, ITransformable, ITrimCurveI, IVal

      public class ITrimCurve
      extends ICurveGeo
      implements ITrimCurveI

  Geometry class of trim curve on a surface. A trim curve is either outer trim curve (outside edge) or inner trim curve (edge of hole). ITrimCurve always need to be contained by surface instance and same instance of ITrimCurve should not be shared by multiple surfaces.
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `ISurfaceI` | `surface`

    - ### Fields inherited from class igeo.ICurveGeo

      `basisFunction, controlPoints, defaultWeights, degree, derivativeFunction, knots, uend, uSearchCache, ustart`

    - ### Fields inherited from class igeo.IParameterObject

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ITrimCurve()`
    `ITrimCurve(double[][] xyValues)`
    `ITrimCurve(double[][] xyValues, boolean close)`
    `ITrimCurve(double[][] xyValues, int degree)`
    `ITrimCurve(double[][] xyValues, int degree, boolean close)`
    `ITrimCurve(double x1, double y1, double x2, double y2)`
    `ITrimCurve(ICurve crv)`
    `ITrimCurve(ICurveGeo crv)`
    `ITrimCurve(ICurveI crv)`
    `ITrimCurve(ITrimCurve crv)`
    `ITrimCurve(ITrimCurve crv, ISurfaceI surf)`
    `ITrimCurve(IVecI[] cpts)`
    `ITrimCurve(IVecI[] cpts, boolean close)`
    `ITrimCurve(IVecI[] cpts, int degree)`
    `ITrimCurve(IVecI[] cpts, int degree, boolean close)`
    `ITrimCurve(IVecI[] cpts, int degree, double[] knots)`
    `ITrimCurve(IVecI[] cpts, int degree, double[] knots, double ustart, double uend)`
    `ITrimCurve(IVecI pt1, IVecI pt2)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ITrimCurve` | `add(double x, double y, double z)` transformation methods
    `ITrimCurve` | `add(double f, IVecI v)` scale add alias
    `ITrimCurve` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ITrimCurve` | `add(IDoubleI f, IVecI v)` scale add alias
    `ITrimCurve` | `add(IVecI v)`
    `ITrimCurve` | `add(IVecI v, double f)` scale add
    `ITrimCurve` | `add(IVecI v, IDoubleI f)` scale add
    `ITrimCurve` | `cp()` cp() is alias of dup()
    `ITrimCurve` | `cp(double x, double y, double z)` cp() is alias of dup().add()
    `ITrimCurve` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)` cp() is alias of dup().add()
    `ITrimCurve` | `cp(IVecI v)` cp() is alias of dup().add()
    `ITrimCurve` | `div(double v)`
    `ITrimCurve` | `div(IDoubleI v)`
    `ITrimCurve` | `dup()` When duplicated, surface is cleared and need to be re-set later.
    `IVec2` | `end2()`
    `IVec2` | `end2d()` alias
    `IVec2` | `endCP2()`
    `IVec2` | `endCP2d()` alias
    `ITrimCurve` | `flip()` alias of neg
    `ITrimCurve` | `flipU()` alias of rev()
    `ITrimCurve` | `get()`
    `ICurveGeo` | `get3d()` Gets trim curve in 3d space mapped via the surface (Currently very rough approximation)
    `boolean` | `isClosed()`
    `ITrimCurve` | `mirror(IVecI planeDir)` mirror is alias of ref
    `ITrimCurve` | `mirror(IVecI center, IVecI planeDir)`
    `ITrimCurve` | `mul(double v)`
    `ITrimCurve` | `mul(IDoubleI v)`
    `ITrimCurve` | `mv(double x, double y, double z)` mv() is alias of add()
    `ITrimCurve` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ITrimCurve` | `mv(IVecI v)`
    `ITrimCurve` | `neg()`
    `void` | `normalizeControlPoints()` because surface knots are normalized, control points in u-v coordinates need to be normalized too.
    `void` | `normalizeControlPoints(ISurfaceI srf)`
    `void` | `pt(double u, IVec retval)`
    `IVec2I` | `pt2(double u)` it returns uv coordinates.
    `void` | `pt2(double u, IVec2 retval)` it returns uv coordinates.
    `IVec2I` | `pt2(IDoubleI u)` it returns uv coordinates.
    `IVec2I` | `pt2d(double u)` alias
    `void` | `pt2d(double u, IVec2 retval)` alias
    `IVec2I` | `pt2d(IDoubleI u)` alias
    `ITrimCurve` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
    `ITrimCurve` | `ref(IVecI center, IVecI planeDir)`
    `ITrimCurve` | `rev()` reverse U coordintates direction of curve, without creating a new object
    `ITrimCurve` | `revU()` alias of rev()
    `ITrimCurve` | `rot(double angle)`
    `ITrimCurve` | `rot(IDoubleI angle)` rotation around z-axis and origin
    `ITrimCurve` | `rot(IVecI axis, double angle)`
    `ITrimCurve` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
    `ITrimCurve` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
    `ITrimCurve` | `rot(IVecI center, IVecI axis, double angle)`
    `ITrimCurve` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center
    `ITrimCurve` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
    `ITrimCurve` | `rot2(double angle)` rotation on xy-plane around origin; same with rot(double)
    `ITrimCurve` | `rot2(IDoubleI angle)` rotation on xy-plane around origin; same with rot(IDoubleI)
    `ITrimCurve` | `rot2(IVecI destDir)` rotation on xy-plane to destination direction vector
    `ITrimCurve` | `rot2(IVecI center, double angle)`
    `ITrimCurve` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane around center
    `ITrimCurve` | `rot2(IVecI center, IVecI destPt)` rotation on xy-plane to destination point location
    `ITrimCurve` | `scale(double f)`
    `ITrimCurve` | `scale(IDoubleI f)` same with mul
    `ITrimCurve` | `scale(IVecI center, double f)`
    `ITrimCurve` | `scale(IVecI center, IDoubleI f)`
    `ITrimCurve` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `ITrimCurve` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `ITrimCurve` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)`
    `ITrimCurve` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `ITrimCurve` | `shearXY(double sxy, double syx)`
    `ITrimCurve` | `shearXY(IDoubleI sxy, IDoubleI syx)`
    `ITrimCurve` | `shearXY(IVecI center, double sxy, double syx)`
    `ITrimCurve` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)`
    `ITrimCurve` | `shearYZ(double syz, double szy)`
    `ITrimCurve` | `shearYZ(IDoubleI syz, IDoubleI szy)`
    `ITrimCurve` | `shearYZ(IVecI center, double syz, double szy)`
    `ITrimCurve` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)`
    `ITrimCurve` | `shearZX(double szx, double sxz)`
    `ITrimCurve` | `shearZX(IDoubleI szx, IDoubleI sxz)`
    `ITrimCurve` | `shearZX(IVecI center, double szx, double sxz)`
    `ITrimCurve` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)`
    `IVec2` | `start2()`
    `IVec2` | `start2d()` alias
    `IVec2` | `startCP2()`
    `IVec2` | `startCP2d()` alias
    `ITrimCurve` | `sub(double x, double y, double z)`
    `ITrimCurve` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ITrimCurve` | `sub(IVecI v)`
    `ISurfaceI` | `surface()` get surface
    `ITrimCurve` | `surface(ISurfaceI srf)` Setting surface of the trim curve.
    `void` | `tan(double u, IVec retval)`
    `ITrimCurve` | `transform(IMatrix3I mat)`
    `ITrimCurve` | `transform(IMatrix4I mat)`
    `ITrimCurve` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)`
    `ITrimCurve` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)`
    `ITrimCurve` | `translate(double x, double y, double z)` translate is alias of add()
    `ITrimCurve` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ITrimCurve` | `translate(IVecI v)`

    - ### Methods inherited from class igeo.ICurveGeo

      `addCP, addCP, addCP, addCP, addCP, addCP, addCP, addCP, center, checkDuplicatedCP, checkDuplicatedCP, checkDuplicatedCP, checkDuplicatedCPOnEdge, closePt, closePt, cp, cp, cpNum, cpNum, cpNum, cps, deg, deg, deg, dist, dist, end, endCP, ep, ep, epNum, epNum, epNum, getPointsFromArray, init, init, init, init, init, insertCP, insertCP, intersectPlane, intersectPlane, isClosed, isClosed, isInside2d, isInside2d, isRational, isRational, isRational, isValid, isValidCP, isValidCP, knot, knot, knotNum, knotNum, knotNum, knots, knots, knots, len, len, len, len, mid, num, num, num, overlapCPNum, pt, pt, removeCP, removeCP, removeCP, scale1d, scale1d, scale1d, scale1d, start, startCP, tan, tan, u, u, u, u, u, u, u, u, uend, uend, uend, updateCache, ustart, ustart, ustart`

    - ### Methods inherited from class igeo.INurbsGeo

      `createClosedCP, createClosedCPInU, createClosedCPInV, createClosedKnots, createKnots, createKnots, invertKnots, isValidKnots, normalizeKnots`

    - ### Methods inherited from class igeo.IParameterObject

      `createObject, parent, parent`

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

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

    - ### Methods inherited from interface igeo.ICurveI

      `center, closePt, closePt, cp, cp, cpNum, cpNum, cpNum, cps, deg, deg, deg, dist, dist, end, endCP, ep, ep, epNum, epNum, epNum, isClosed, isClosed, isRational, isRational, isRational, isValid, knot, knot, knotNum, knotNum, knotNum, knots, knots, knots, len, len, len, mid, num, num, num, pt, pt, scale1d, scale1d, scale1d, scale1d, start, startCP, tan, tan, u, u, u, u, u, u, u, u, uend, uend, uend, ustart, ustart, ustart`

- - ### Field Detail

    - #### surface

          public ISurfaceI surface

  - ### Constructor Detail

    - #### ITrimCurve

          public ITrimCurve()

    - #### ITrimCurve

          public ITrimCurve(IVecI[] cpts,
                            int degree,
                            double[] knots,
                            double ustart,
                            double uend)

    - #### ITrimCurve

          public ITrimCurve(IVecI[] cpts,
                            int degree,
                            double[] knots)

    - #### ITrimCurve

          public ITrimCurve(IVecI[] cpts,
                            int degree)

    - #### ITrimCurve

          public ITrimCurve(IVecI[] cpts)

    - #### ITrimCurve

          public ITrimCurve(IVecI[] cpts,
                            int degree,
                            boolean close)

    - #### ITrimCurve

          public ITrimCurve(IVecI[] cpts,
                            boolean close)

    - #### ITrimCurve

          public ITrimCurve(IVecI pt1,
                            IVecI pt2)

    - #### ITrimCurve

          public ITrimCurve(double x1,
                            double y1,
                            double x2,
                            double y2)

    - #### ITrimCurve

          public ITrimCurve(double[][] xyValues)

    - #### ITrimCurve

          public ITrimCurve(double[][] xyValues,
                            int degree)

    - #### ITrimCurve

          public ITrimCurve(double[][] xyValues,
                            boolean close)

    - #### ITrimCurve

          public ITrimCurve(double[][] xyValues,
                            int degree,
                            boolean close)

    - #### ITrimCurve

          public ITrimCurve(ICurveGeo crv)

    - #### ITrimCurve

          public ITrimCurve(ICurve crv)

    - #### ITrimCurve

          public ITrimCurve(ICurveI crv)

    - #### ITrimCurve

          public ITrimCurve(ITrimCurve crv)

    - #### ITrimCurve

          public ITrimCurve(ITrimCurve crv,
                            ISurfaceI surf)

  - ### Method Detail

    - #### surface

          public ITrimCurve surface(ISurfaceI srf)

      Setting surface of the trim curve. Giving error when the surface already set.
      Specified by:
        `surface` in interface `ITrimCurveI`

    - #### surface

          public ISurfaceI surface()

      Description copied from interface: `ITrimCurveI`
      get surface
      Specified by:
        `surface` in interface `ITrimCurveI`

    - #### dup

          public ITrimCurve dup()

      When duplicated, surface is cleared and need to be re-set later.
      Specified by:
        `dup` in interface `ICurveI`
      Specified by:
        `dup` in interface `ITransformable`
      Overrides:
        `dup` in class `ICurveGeo`
      Returns:
        duplicated instance

    - #### get

          public ITrimCurve get()

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

    - #### get3d

          public ICurveGeo get3d()

      Gets trim curve in 3d space mapped via the surface (Currently very rough approximation)
      Specified by:
        `get3d` in interface `ITrimCurveI`

    - #### normalizeControlPoints

          public void normalizeControlPoints()

      because surface knots are normalized, control points in u-v coordinates need to be normalized too.

    - #### normalizeControlPoints

          public void normalizeControlPoints(ISurfaceI srf)

    - #### pt

          public void pt(double u,
                         IVec retval)

      Overrides:
        `pt` in class `ICurveGeo`

    - #### pt2

          public void pt2(double u,
                          IVec2 retval)

      it returns uv coordinates.

    - #### pt2d

          public void pt2d(double u,
                           IVec2 retval)

      alias

    - #### pt2

          public IVec2I pt2(double u)

      Description copied from interface: `ITrimCurveI`
      it returns uv coordinates.
      Specified by:
        `pt2` in interface `ITrimCurveI`

    - #### pt2d

          public IVec2I pt2d(double u)

      alias
      Specified by:
        `pt2d` in interface `ITrimCurveI`

    - #### pt2

          public IVec2I pt2(IDoubleI u)

      Description copied from interface: `ITrimCurveI`
      it returns uv coordinates.
      Specified by:
        `pt2` in interface `ITrimCurveI`

    - #### pt2d

          public IVec2I pt2d(IDoubleI u)

      alias
      Specified by:
        `pt2d` in interface `ITrimCurveI`

    - #### start2

          public IVec2 start2()

      Specified by:
        `start2` in interface `ITrimCurveI`

    - #### start2d

          public IVec2 start2d()

      alias
      Specified by:
        `start2d` in interface `ITrimCurveI`

    - #### end2

          public IVec2 end2()

      Specified by:
        `end2` in interface `ITrimCurveI`

    - #### end2d

          public IVec2 end2d()

      alias
      Specified by:
        `end2d` in interface `ITrimCurveI`

    - #### startCP2

          public IVec2 startCP2()

      Specified by:
        `startCP2` in interface `ITrimCurveI`

    - #### startCP2d

          public IVec2 startCP2d()

      alias
      Specified by:
        `startCP2d` in interface `ITrimCurveI`

    - #### endCP2

          public IVec2 endCP2()

      Specified by:
        `endCP2` in interface `ITrimCurveI`

    - #### endCP2d

          public IVec2 endCP2d()

      alias
      Specified by:
        `endCP2d` in interface `ITrimCurveI`

    - #### tan

          public void tan(double u,
                          IVec retval)

      Overrides:
        `tan` in class `ICurveGeo`

    - #### isClosed

          public boolean isClosed()

      Specified by:
        `isClosed` in interface `ICurveI`
      Overrides:
        `isClosed` in class `ICurveGeo`

    - #### rev

          public ITrimCurve rev()

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

    - #### revU

          public ITrimCurve revU()

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

    - #### flipU

          public ITrimCurve flipU()

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

    - #### add

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

      transformation methods
      Specified by:
        `add` in interface `ICurveI`
      Specified by:
        `add` in interface `ITransformable`
      Overrides:
        `add` in class `ICurveGeo`

    - #### add

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

      Specified by:
        `add` in interface `ICurveI`
      Specified by:
        `add` in interface `ITransformable`
      Overrides:
        `add` in class `ICurveGeo`

    - #### add

          public ITrimCurve add(IVecI v)

      Specified by:
        `add` in interface `ICurveI`
      Specified by:
        `add` in interface `ITransformable`
      Overrides:
        `add` in class `ICurveGeo`

    - #### sub

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

      Specified by:
        `sub` in interface `ICurveI`
      Specified by:
        `sub` in interface `ITransformable`
      Overrides:
        `sub` in class `ICurveGeo`

    - #### sub

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

      Specified by:
        `sub` in interface `ICurveI`
      Specified by:
        `sub` in interface `ITransformable`
      Overrides:
        `sub` in class `ICurveGeo`

    - #### sub

          public ITrimCurve sub(IVecI v)

      Specified by:
        `sub` in interface `ICurveI`
      Specified by:
        `sub` in interface `ITransformable`
      Overrides:
        `sub` in class `ICurveGeo`

    - #### mul

          public ITrimCurve mul(IDoubleI v)

      Specified by:
        `mul` in interface `ICurveI`
      Specified by:
        `mul` in interface `ITransformable`
      Overrides:
        `mul` in class `ICurveGeo`

    - #### mul

          public ITrimCurve mul(double v)

      Specified by:
        `mul` in interface `ICurveI`
      Specified by:
        `mul` in interface `ITransformable`
      Overrides:
        `mul` in class `ICurveGeo`

    - #### div

          public ITrimCurve div(IDoubleI v)

      Specified by:
        `div` in interface `ICurveI`
      Specified by:
        `div` in interface `ITransformable`
      Overrides:
        `div` in class `ICurveGeo`

    - #### div

          public ITrimCurve div(double v)

      Specified by:
        `div` in interface `ICurveI`
      Specified by:
        `div` in interface `ITransformable`
      Overrides:
        `div` in class `ICurveGeo`

    - #### neg

          public ITrimCurve neg()

      Specified by:
        `neg` in interface `ICurveI`
      Specified by:
        `neg` in interface `ITransformable`
      Overrides:
        `neg` in class `ICurveGeo`

    - #### flip

          public ITrimCurve flip()

      alias of neg
      Specified by:
        `flip` in interface `ICurveI`
      Specified by:
        `flip` in interface `ITransformable`
      Overrides:
        `flip` in class `ICurveGeo`

    - #### add

          public ITrimCurve add(IVecI v,
                                double f)

      scale add
      Specified by:
        `add` in interface `ICurveI`
      Specified by:
        `add` in interface `ITransformable`
      Overrides:
        `add` in class `ICurveGeo`

    - #### add

          public ITrimCurve add(IVecI v,
                                IDoubleI f)

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

    - #### add

          public ITrimCurve add(double f,
                                IVecI v)

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

    - #### add

          public ITrimCurve add(IDoubleI f,
                                IVecI v)

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

    - #### rot

          public ITrimCurve rot(IDoubleI angle)

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

    - #### rot

          public ITrimCurve rot(double angle)

      Specified by:
        `rot` in interface `ITransformable`
      Overrides:
        `rot` in class `ICurveGeo`

    - #### rot

          public ITrimCurve 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`
      Overrides:
        `rot` in class `ICurveGeo`

    - #### rot

          public ITrimCurve rot(IVecI axis,
                                double angle)

      Specified by:
        `rot` in interface `ICurveI`
      Specified by:
        `rot` in interface `ITransformable`
      Overrides:
        `rot` in class `ICurveGeo`

    - #### rot

          public ITrimCurve 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`
      Overrides:
        `rot` in class `ICurveGeo`

    - #### rot

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

      Specified by:
        `rot` in interface `ICurveI`
      Specified by:
        `rot` in interface `ITransformable`
      Overrides:
        `rot` in class `ICurveGeo`

    - #### rot

          public ITrimCurve rot(IVecI axis,
                                IVecI destDir)

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

    - #### rot

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

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

    - #### rot2

          public ITrimCurve rot2(IDoubleI angle)

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

    - #### rot2

          public ITrimCurve rot2(double angle)

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

    - #### rot2

          public ITrimCurve rot2(IVecI center,
                                 IDoubleI angle)

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

    - #### rot2

          public ITrimCurve rot2(IVecI center,
                                 double angle)

      Specified by:
        `rot2` in interface `ITransformable`
      Overrides:
        `rot2` in class `ICurveGeo`

    - #### rot2

          public ITrimCurve rot2(IVecI destDir)

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

    - #### rot2

          public ITrimCurve rot2(IVecI center,
                                 IVecI destPt)

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

    - #### scale

          public ITrimCurve scale(IDoubleI f)

      same with mul
      Specified by:
        `scale` in interface `ICurveI`
      Specified by:
        `scale` in interface `ITransformable`
      Overrides:
        `scale` in class `ICurveGeo`

    - #### scale

          public ITrimCurve scale(double f)

      Specified by:
        `scale` in interface `ICurveI`
      Specified by:
        `scale` in interface `ITransformable`
      Overrides:
        `scale` in class `ICurveGeo`

    - #### scale

          public ITrimCurve scale(IVecI center,
                                  IDoubleI f)

      Specified by:
        `scale` in interface `ICurveI`
      Specified by:
        `scale` in interface `ITransformable`
      Overrides:
        `scale` in class `ICurveGeo`

    - #### scale

          public ITrimCurve scale(IVecI center,
                                  double f)

      Specified by:
        `scale` in interface `ICurveI`
      Specified by:
        `scale` in interface `ITransformable`
      Overrides:
        `scale` in class `ICurveGeo`

    - #### ref

          public ITrimCurve 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`
      Overrides:
        `ref` in class `ICurveGeo`

    - #### ref

          public ITrimCurve ref(IVecI center,
                                IVecI planeDir)

      Specified by:
        `ref` in interface `ICurveI`
      Specified by:
        `ref` in interface `ITransformable`
      Overrides:
        `ref` in class `ICurveGeo`

    - #### mirror

          public ITrimCurve mirror(IVecI planeDir)

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

    - #### mirror

          public ITrimCurve mirror(IVecI center,
                                   IVecI planeDir)

      Specified by:
        `mirror` in interface `ICurveI`
      Specified by:
        `mirror` in interface `ITransformable`
      Overrides:
        `mirror` in class `ICurveGeo`

    - #### shear

          public ITrimCurve 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`
      Overrides:
        `shear` in class `ICurveGeo`

    - #### shear

          public ITrimCurve 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`
      Overrides:
        `shear` in class `ICurveGeo`

    - #### shear

          public ITrimCurve 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`
      Overrides:
        `shear` in class `ICurveGeo`

    - #### shear

          public ITrimCurve 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`
      Overrides:
        `shear` in class `ICurveGeo`

    - #### shearXY

          public ITrimCurve shearXY(double sxy,
                                    double syx)

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Overrides:
        `shearXY` in class `ICurveGeo`

    - #### shearXY

          public ITrimCurve shearXY(IDoubleI sxy,
                                    IDoubleI syx)

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Overrides:
        `shearXY` in class `ICurveGeo`

    - #### shearXY

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

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Overrides:
        `shearXY` in class `ICurveGeo`

    - #### shearXY

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

      Specified by:
        `shearXY` in interface `ICurveI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Overrides:
        `shearXY` in class `ICurveGeo`

    - #### shearYZ

          public ITrimCurve shearYZ(double syz,
                                    double szy)

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Overrides:
        `shearYZ` in class `ICurveGeo`

    - #### shearYZ

          public ITrimCurve shearYZ(IDoubleI syz,
                                    IDoubleI szy)

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Overrides:
        `shearYZ` in class `ICurveGeo`

    - #### shearYZ

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

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Overrides:
        `shearYZ` in class `ICurveGeo`

    - #### shearYZ

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

      Specified by:
        `shearYZ` in interface `ICurveI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Overrides:
        `shearYZ` in class `ICurveGeo`

    - #### shearZX

          public ITrimCurve shearZX(double szx,
                                    double sxz)

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Overrides:
        `shearZX` in class `ICurveGeo`

    - #### shearZX

          public ITrimCurve shearZX(IDoubleI szx,
                                    IDoubleI sxz)

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Overrides:
        `shearZX` in class `ICurveGeo`

    - #### shearZX

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

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Overrides:
        `shearZX` in class `ICurveGeo`

    - #### shearZX

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

      Specified by:
        `shearZX` in interface `ICurveI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Overrides:
        `shearZX` in class `ICurveGeo`

    - #### translate

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

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

    - #### translate

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

      Specified by:
        `translate` in interface `ICurveI`
      Specified by:
        `translate` in interface `ITransformable`
      Overrides:
        `translate` in class `ICurveGeo`

    - #### translate

          public ITrimCurve translate(IVecI v)

      Specified by:
        `translate` in interface `ICurveI`
      Specified by:
        `translate` in interface `ITransformable`
      Overrides:
        `translate` in class `ICurveGeo`

    - #### transform

          public ITrimCurve transform(IMatrix3I mat)

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`
      Overrides:
        `transform` in class `ICurveGeo`

    - #### transform

          public ITrimCurve transform(IMatrix4I mat)

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`
      Overrides:
        `transform` in class `ICurveGeo`

    - #### transform

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

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`
      Overrides:
        `transform` in class `ICurveGeo`

    - #### transform

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

      Specified by:
        `transform` in interface `ICurveI`
      Specified by:
        `transform` in interface `ITransformable`
      Overrides:
        `transform` in class `ICurveGeo`

    - #### mv

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

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

    - #### mv

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

      Specified by:
        `mv` in interface `ICurveI`
      Specified by:
        `mv` in interface `ITransformable`
      Overrides:
        `mv` in class `ICurveGeo`

    - #### mv

          public ITrimCurve mv(IVecI v)

      Specified by:
        `mv` in interface `ICurveI`
      Specified by:
        `mv` in interface `ITransformable`
      Overrides:
        `mv` in class `ICurveGeo`

    - #### cp

          public ITrimCurve cp()

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

    - #### cp

          public ITrimCurve 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`
      Overrides:
        `cp` in class `ICurveGeo`

    - #### cp

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

      Description copied from class: `ICurveGeo`
      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `ICurveI`
      Specified by:
        `cp` in interface `ITransformable`
      Overrides:
        `cp` in class `ICurveGeo`

    - #### cp

          public ITrimCurve cp(IVecI v)

      Description copied from class: `ICurveGeo`
      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `ICurveI`
      Specified by:
        `cp` in interface `ITransformable`
      Overrides:
        `cp` in class `ICurveGeo`