Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## igeo
Class ICurveGeo

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

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

Direct Known Subclasses:
  IArcGeo, ICircleGeo, ITrimCurve

    public class ICurveGeo

extends INurbsGeo
implements ICurveI, IEntityParameter

Geometry of NURBS curve.

Author:
  Satoru Sugihara

Field Summary
`IBSplineBasisFunction` | `basisFunction` bernstein basis function
`IVecI[]` | `controlPoints` control points
`boolean[]` | `defaultWeights` flag to determine to use default weight value (1.0)
`int` | `degree` degree of NURBS curve
`IBSplineBasisFunction` | `derivativeFunction` derivative of bernstein basis function
`double[]` | `knots` normalized knot vector (start value in knot vector is 0, end value is 1)
`double` | `uend` ustart and uend are not normalized, keeping original value in input files
`ICurveCache` | `uSearchCache`
`double` | `ustart` ustart and uend are not normalized, keeping original value in input files

Fields inherited from class igeo.IParameterObject
`parent`

Constructor Summary
`ICurveGeo()`
`ICurveGeo(double[][] xyzValues)`
`ICurveGeo(double[][] xyzValues, boolean close)`
`ICurveGeo(double[][] xyzValues, int degree)`
`ICurveGeo(double[][] xyzValues, int degree, boolean close)`
`ICurveGeo(double x1, double y1, double z1, double x2, double y2, double z2)`
`ICurveGeo(ICurveGeo crv)`
`ICurveGeo(IEdge edge)`
`ICurveGeo(IVecI pt)`
`ICurveGeo(IVecI[] cpts)`
`ICurveGeo(IVecI[] cpts, boolean close)`
`ICurveGeo(IVecI[] cpts, int degree)`
`ICurveGeo(IVecI[] cpts, int degree, boolean close)`
`ICurveGeo(IVecI[] cpts, int degree, double[] knots)`
`ICurveGeo(IVecI[] cpts, int degree, double[] knots, double ustart, double uend)`
`ICurveGeo(IVecI pt1, IVecI pt2)`

Method Summary
`ICurveGeo` | `add(double x, double y, double z)` transformation methods
`ICurveGeo` | `add(double f, IVecI v)` scale add alias
`ICurveGeo` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveGeo` | `add(IDoubleI f, IVecI v)` scale add alias
`ICurveGeo` | `add(IVecI v)`
`ICurveGeo` | `add(IVecI v, double f)` scale add
`ICurveGeo` | `add(IVecI v, IDoubleI f)` scale add
`ICurveGeo` | `addCP(int index, IVecI pt)` add control point at i and rebuild the curve.
`ICurveGeo` | `addCP(int index, IVecI[] pts)` add control points at i and rebuild the curve.
`ICurveGeo` | `addCP(int index, IVecI[] pts, int newDegree)` add control point at i and rebuild the curve and change degree.
`ICurveGeo` | `addCP(int index, IVecI pt, int newDegree)` add control point at i and rebuild the curve and change degree.
`ICurveGeo` | `addCP(IVecI pt)` add control point at the end and rebuild the curve.
`ICurveGeo` | `addCP(IVecI[] pts)` add control points at the end and rebuild the curve.
`ICurveGeo` | `addCP(IVecI[] pts, int newDegree)` add control point at i and rebuild the curve and change degree.
`ICurveGeo` | `addCP(IVecI pt, int newDegree)` add control point at the end and rebuild the curve and change degree if possible.
`IVec` | `center()` Returns center of geometry object.
`static void` | `checkDuplicatedCP(IVecI[] cpts)`
`static void` | `checkDuplicatedCP(IVecI[] origCPs, IVecI newCP)`
`static void` | `checkDuplicatedCP(IVecI[] origCPs, IVecI[] newCPs)`
`static void` | `checkDuplicatedCPOnEdge(IVecI[] cpts)`
`IVec` | `closePt(IVec2I pt)` find approximately closest point on a curve on 2D
`IVec` | `closePt(IVecI pt)` find approximately closest point on a curve
`ICurveGeo` | `cp()` cp() is alias of dup()
`ICurveGeo` | `cp(double x, double y, double z)` cp() is alias of dup().add()
`ICurveGeo` | `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
`ICurveGeo` | `cp(IVecI v)` cp() is alias of dup().add()
`int` | `cpNum()`
`int` | `cpNum(ISwitchE e)`
`IInteger` | `cpNum(ISwitchR r)`
`IVecI[]` | `cps()` all control points
`int` | `deg()`
`int` | `deg(ISwitchE e)`
`IInteger` | `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
`ICurveGeo` | `div(double v)`
`ICurveGeo` | `div(IDoubleI v)`
`ICurveGeo` | `dup()` duplicate the instance
`IVec` | `end()`
`IVec` | `endCP()`
`IVec` | `ep(IIntegerI i)`
`IVec` | `ep(int i)` close curve with the current control points.
`int` | `epNum()`
`int` | `epNum(ISwitchE e)`
`IInteger` | `epNum(ISwitchR r)`
`ICurveGeo` | `flip()` alias of neg
`ICurveGeo` | `flipU()` alias of rev()
`ICurveGeo` | `get()`
`static IVec[]` | `getPointsFromArray(double[][] xyzvalues)`
`void` | `init(IVecI[] cpts)`
`void` | `init(IVecI[] cpts, boolean close)`
`void` | `init(IVecI[] cpts, int degree)`
`void` | `init(IVecI[] cpts, int degree, boolean close)`
`void` | `init(IVecI[] cpts, int degree, double[] knots)`
`ICurveGeo` | `insertCP(int i, IVecI pt)` alias of addCP(int,IVecI)
`ICurveGeo` | `insertCP(int i, IVecI[] pts)` alias of addCP(int,IVecI[])
`IVec[]` | `intersectPlane(IVecI planeDir, IVecI planePt)` intersection of curve and plane.
`IVec[]` | `intersectPlane(IVecI planeDir, IVecI planePt, int segmentResolution)` intersection of curve and plane.
`boolean` | `isClosed()`
`boolean` | `isClosed(ISwitchE e)`
`IBool` | `isClosed(ISwitchR r)`
`boolean` | `isInside2d(IVecI pt)` check if the input point is inside a closed curve.
`boolean` | `isInside2d(IVecI pt, IVecI projectionDir)` check if the input point is inside a closed curve.
`boolean` | `isRational()`
`boolean` | `isRational(ISwitchE e)`
`IBool` | `isRational(ISwitchR r)`
`boolean` | `isValid()`
`static boolean` | `isValidCP(IVecI[] cpts)`
`static boolean` | `isValidCP(IVecI[] cpts, int deg, double[] knots)`
`IDouble` | `knot(IIntegerI i)`
`double` | `knot(int i)` close curve with the current control points.
`int` | `knotNum()`
`int` | `knotNum(ISwitchE e)`
`IInteger` | `knotNum(ISwitchR r)`
`double[]` | `knots()` all knot values
`double[]` | `knots(ISwitchE e)`
`IDouble[]` | `knots(ISwitchR r)`
`double` | `len()`
`double` | `len(double resolutionPerEP)`
`double` | `len(ISwitchE e)`
`IDouble` | `len(ISwitchR r)`
`IVec` | `mid()` parametrically mid point of a curve
`ICurveGeo` | `mirror(IVecI planeDir)` mirror is alias of ref
`ICurveGeo` | `mirror(IVecI center, IVecI planeDir)`
`ICurveGeo` | `mul(double v)`
`ICurveGeo` | `mul(IDoubleI v)`
`ICurveGeo` | `mv(double x, double y, double z)` mv() is alias of add()
`ICurveGeo` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveGeo` | `mv(IVecI v)`
`ICurveGeo` | `neg()`
`int` | `num()` change degree.
`int` | `num(ISwitchE e)`
`IInteger` | `num(ISwitchR r)`
`int` | `overlapCPNum()` number of overlapping control points at the end and the beginning when the curve is closed.
`IVec` | `pt(double u)`
`void` | `pt(double u, IVec retval)`
`IVec` | `pt(IDoubleI u)`
`ICurveGeo` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
`ICurveGeo` | `ref(IVecI center, IVecI planeDir)`
`ICurveGeo` | `removeCP()` removing control point at the end and rebuild the curve.
`ICurveGeo` | `removeCP(int index)` removing control point at i and rebuild the curve note that a knots is rebuilt with default equal interval and destroy original knot intervals if variable, like circle.
`ICurveGeo` | `removeCP(int indexFrom, int indexTo)` removing control point from indexFrom to indexTo-1 and rebuild the curve.
`ICurveGeo` | `rev()` reverse U coordintates direction of curve, without creating a new object
`ICurveGeo` | `revU()` alias of rev()
`ICurveGeo` | `rot(double angle)`
`ICurveGeo` | `rot(IDoubleI angle)` rotation around z-axis and origin
`ICurveGeo` | `rot(IVecI axis, double angle)`
`ICurveGeo` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
`ICurveGeo` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
`ICurveGeo` | `rot(IVecI center, IVecI axis, double angle)`
`ICurveGeo` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center
`ICurveGeo` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
`ICurveGeo` | `rot2(double angle)` rotation on xy-plane around origin; same with rot(double)
`ICurveGeo` | `rot2(IDoubleI angle)` rotation on xy-plane around origin; same with rot(IDoubleI)
`ICurveGeo` | `rot2(IVecI destDir)` rotation on xy-plane to destination direction vector
`ICurveGeo` | `rot2(IVecI center, double angle)`
`ICurveGeo` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane around center
`ICurveGeo` | `rot2(IVecI center, IVecI destPt)` rotation on xy-plane to destination point location
`ICurveGeo` | `scale(double f)`
`ICurveGeo` | `scale(IDoubleI f)` alias of mul
`ICurveGeo` | `scale(IVecI center, double f)`
`ICurveGeo` | `scale(IVecI center, IDoubleI f)`
`ICurveGeo` | `scale1d(IVecI axis, double f)` scale only in 1 direction
`ICurveGeo` | `scale1d(IVecI axis, IDoubleI f)`
`ICurveGeo` | `scale1d(IVecI center, IVecI axis, double f)`
`ICurveGeo` | `scale1d(IVecI center, IVecI axis, IDoubleI f)`
`ICurveGeo` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
`ICurveGeo` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
`ICurveGeo` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)`
`ICurveGeo` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
`ICurveGeo` | `shearXY(double sxy, double syx)`
`ICurveGeo` | `shearXY(IDoubleI sxy, IDoubleI syx)`
`ICurveGeo` | `shearXY(IVecI center, double sxy, double syx)`
`ICurveGeo` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)`
`ICurveGeo` | `shearYZ(double syz, double szy)`
`ICurveGeo` | `shearYZ(IDoubleI syz, IDoubleI szy)`
`ICurveGeo` | `shearYZ(IVecI center, double syz, double szy)`
`ICurveGeo` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)`
`ICurveGeo` | `shearZX(double szx, double sxz)`
`ICurveGeo` | `shearZX(IDoubleI szx, IDoubleI sxz)`
`ICurveGeo` | `shearZX(IVecI center, double szx, double sxz)`
`ICurveGeo` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)`
`IVec` | `start()`
`IVec` | `startCP()`
`ICurveGeo` | `sub(double x, double y, double z)`
`ICurveGeo` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveGeo` | `sub(IVecI v)`
`IVec` | `tan(double u)`
`void` | `tan(double u, IVec retval)`
`IVec` | `tan(IDoubleI u)`
`ICurveGeo` | `transform(IMatrix3I mat)`
`ICurveGeo` | `transform(IMatrix4I mat)`
`ICurveGeo` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)`
`ICurveGeo` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)`
`ICurveGeo` | `translate(double x, double y, double z)` translate is alias of add()
`ICurveGeo` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveGeo` | `translate(IVecI v)`
`IDouble` | `u(IInteger epIdx, IDouble epFraction)`
`double` | `u(int epIdx, double epFraction)`
`double` | `u(ISwitchE r, IVec2I pt)`
`double` | `u(ISwitchE r, IVecI pt)`
`IDouble` | `u(ISwitchR r, IVec2I pt)`
`IDouble` | `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)`
`IDouble` | `uend(ISwitchR r)`
`ICurveGeo` | `updateCache()`
`double` | `ustart()`
`double` | `ustart(ISwitchE e)`
`IDouble` | `ustart(ISwitchR r)`

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`

Field Detail

### controlPoints

    public IVecI[] controlPoints

  control points

### degree

    public int degree

  degree of NURBS curve

### knots

    public double[] knots

  normalized knot vector (start value in knot vector is 0, end value is 1)

### ustart

    public double ustart

  ustart and uend are not normalized, keeping original value in input files

### uend

    public double uend

  ustart and uend are not normalized, keeping original value in input files

### defaultWeights

    public boolean[] defaultWeights

  flag to determine to use default weight value (1.0)

### basisFunction

    public IBSplineBasisFunction basisFunction

  bernstein basis function

### derivativeFunction

    public IBSplineBasisFunction derivativeFunction

  derivative of bernstein basis function

### uSearchCache

    public ICurveCache uSearchCache

Constructor Detail

### ICurveGeo

    public ICurveGeo()

### ICurveGeo

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

### ICurveGeo

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

### ICurveGeo

    public ICurveGeo(IVecI[] cpts,
                     int degree)

### ICurveGeo

    public ICurveGeo(IVecI[] cpts)

### ICurveGeo

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

### ICurveGeo

    public ICurveGeo(IVecI[] cpts,
                     boolean close)

### ICurveGeo

    public ICurveGeo(IVecI pt1,
                     IVecI pt2)

### ICurveGeo

    public ICurveGeo(IVecI pt)

### ICurveGeo

    public ICurveGeo(double x1,
                     double y1,
                     double z1,
                     double x2,
                     double y2,
                     double z2)

### ICurveGeo

    public ICurveGeo(double[][] xyzValues)

### ICurveGeo

    public ICurveGeo(double[][] xyzValues,
                     int degree)

### ICurveGeo

    public ICurveGeo(double[][] xyzValues,
                     boolean close)

### ICurveGeo

    public ICurveGeo(double[][] xyzValues,
                     int degree,
                     boolean close)

### ICurveGeo

    public ICurveGeo(IEdge edge)

### ICurveGeo

    public ICurveGeo(ICurveGeo crv)

Method Detail

### init

    public void init(IVecI[] cpts)

### init

    public void init(IVecI[] cpts,
                     int degree)

### init

    public void init(IVecI[] cpts,
                     boolean close)

### init

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

### init

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

### isValid

    public boolean isValid()

  Specified by:
    `isValid` in interface `ICurveI`

### isValidCP

    public static boolean isValidCP(IVecI[] cpts,
                                    int deg,
                                    double[] knots)

### isValidCP

    public static boolean isValidCP(IVecI[] cpts)

### checkDuplicatedCP

    public static void checkDuplicatedCP(IVecI[] cpts)

### checkDuplicatedCP

    public static void checkDuplicatedCP(IVecI[] origCPs,
                                         IVecI newCP)

### checkDuplicatedCP

    public static void checkDuplicatedCP(IVecI[] origCPs,
                                         IVecI[] newCPs)

### checkDuplicatedCPOnEdge

    public static void checkDuplicatedCPOnEdge(IVecI[] cpts)

### getPointsFromArray

    public static IVec[] getPointsFromArray(double[][] xyzvalues)

### 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 ICurveGeo dup()

  Description copied from interface: `ITransformable`
  duplicate the instance

  Specified by:
    `dup` in interface `ICurveI`
  Specified by:
    `dup` in interface `ITransformable`
  Returns:
    duplicated instance

### pt

    public IVec pt(IDoubleI u)

  Specified by:
    `pt` in interface `ICurveI`

### pt

    public IVec pt(double u)

  Specified by:
    `pt` in interface `ICurveI`

### pt

    public void pt(double u,
                   IVec retval)

### tan

    public IVec tan(IDoubleI u)

  Specified by:
    `tan` in interface `ICurveI`

### tan

    public IVec tan(double u)

  Specified by:
    `tan` in interface `ICurveI`

### tan

    public void tan(double u,
                    IVec retval)

### 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`

### addCP

    public ICurveGeo addCP(IVecI pt,
                           int newDegree)

  add control point at the end and rebuild the curve and change degree if possible. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### addCP

    public ICurveGeo addCP(IVecI pt)

  add control point at the end and rebuild the curve. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### addCP

    public ICurveGeo addCP(int index,
                           IVecI pt,
                           int newDegree)

  add control point at i and rebuild the curve and change degree. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### addCP

    public ICurveGeo addCP(int index,
                           IVecI pt)

  add control point at i and rebuild the curve. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### addCP

    public ICurveGeo addCP(IVecI[] pts,
                           int newDegree)

  add control point at i and rebuild the curve and change degree. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### addCP

    public ICurveGeo addCP(IVecI[] pts)

  add control points at the end and rebuild the curve. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### addCP

    public ICurveGeo addCP(int index,
                           IVecI[] pts,
                           int newDegree)

  add control point at i and rebuild the curve and change degree. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### addCP

    public ICurveGeo addCP(int index,
                           IVecI[] pts)

  add control points at i and rebuild the curve. note that a knots is rebuilt with default equal intervals and destroy original knot intervals if variable, like circle.

### insertCP

    public ICurveGeo insertCP(int i,
                              IVecI pt)

  alias of addCP(int,IVecI)

### insertCP

    public ICurveGeo insertCP(int i,
                              IVecI[] pts)

  alias of addCP(int,IVecI[])

### removeCP

    public ICurveGeo removeCP()

  removing control point at the end and rebuild the curve. note that a knots is rebuilt with default equal interval and destroy original knot intervals if variable, like circle.

### removeCP

    public ICurveGeo removeCP(int index)

  removing control point at i and rebuild the curve note that a knots is rebuilt with default equal interval and destroy original knot intervals if variable, like circle.

### removeCP

    public ICurveGeo removeCP(int indexFrom,
                              int indexTo)

  removing control point from indexFrom to indexTo-1 and rebuild the curve. note taht point at indexTo is not removed. note that a knots is rebuilt with default equal interval and destroy original knot intervals if variable, like circle.

### ep

    public IVec ep(int i)

  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:
    `ep` in interface `ICurveI`

### ep

    public IVec ep(IIntegerI i)

  Specified by:
    `ep` in interface `ICurveI`

### start

    public IVec start()

  Specified by:
    `start` in interface `ICurveI`

### end

    public IVec end()

  Specified by:
    `end` in interface `ICurveI`

### startCP

    public IVec startCP()

  Specified by:
    `startCP` in interface `ICurveI`

### endCP

    public IVec endCP()

  Specified by:
    `endCP` in interface `ICurveI`

### mid

    public IVec mid()

  parametrically mid point of a curve

  Specified by:
    `mid` in interface `ICurveI`

### center

    public IVec center()

  Returns center of geometry object. This is approximation calculated only by control points

  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 IDouble 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 IDouble u(ISwitchR r,
                     IVec2I pt)

  Specified by:
    `u` in interface `ICurveI`

### closePt

    public IVec closePt(IVecI pt)

  find approximately closest point on a curve

  Specified by:
    `closePt` in interface `ICurveI`

### closePt

    public IVec 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 IDouble 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 IDouble[] 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 IInteger knotNum(ISwitchR r)

  Specified by:
    `knotNum` 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 IInteger 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 IInteger 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 IInteger 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 IInteger epNum(ISwitchR r)

  Specified by:
    `epNum` 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 IBool isRational(ISwitchR r)

  Specified by:
    `isRational` in interface `ICurveI`

### len

    public double len(double resolutionPerEP)

### 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 IDouble 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 IDouble ustart(ISwitchR r)

  Specified by:
    `ustart` in interface `ICurveI`

### uend

    public IDouble 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 IBool isClosed(ISwitchR r)

  Specified by:
    `isClosed` in interface `ICurveI`

### rev

    public ICurveGeo 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 ICurveGeo revU()

  alias of rev()

  Specified by:
    `revU` in interface `ICurveI`

### flipU

    public ICurveGeo flipU()

  alias of rev()

  Specified by:
    `flipU` in interface `ICurveI`

### overlapCPNum

    public int overlapCPNum()

  number of overlapping control points at the end and the beginning when the curve is closed. this should be used after checking curve is closed. if it's open it checks all the control points.

### isInside2d

    public boolean isInside2d(IVecI pt,
                              IVecI projectionDir)

  check if the input point is inside a closed curve. if not closed, it supposes closed by connecting the start and end point

### isInside2d

    public boolean isInside2d(IVecI pt)

  check if the input point is inside a closed curve. if not closed, it supposes closed by connecting the start and end point

### updateCache

    public ICurveGeo updateCache()

### intersectPlane

    public IVec[] intersectPlane(IVecI planeDir,
                                 IVecI planePt,
                                 int segmentResolution)

  intersection of curve and plane.

  Parameters:
    `segmentResolution` - segmentation resolution per EP count in degree >= 1 curve.

### intersectPlane

    public IVec[] intersectPlane(IVecI planeDir,
                                 IVecI planePt)

  intersection of curve and plane.

### add

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

  transformation methods

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

### add

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

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

### add

    public ICurveGeo add(IVecI v)

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

### sub

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

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

### sub

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

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

### sub

    public ICurveGeo sub(IVecI v)

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

### mul

    public ICurveGeo mul(IDoubleI v)

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

### mul

    public ICurveGeo mul(double v)

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

### div

    public ICurveGeo div(IDoubleI v)

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

### div

    public ICurveGeo div(double v)

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

### neg

    public ICurveGeo neg()

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

### flip

    public ICurveGeo flip()

  alias of neg

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

### add

    public ICurveGeo add(IVecI v,
                         double f)

  scale add

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

### add

    public ICurveGeo 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 ICurveGeo add(double f,
                         IVecI v)

  scale add alias

  Specified by:
    `add` in interface `ITransformable`

### add

    public ICurveGeo add(IDoubleI f,
                         IVecI v)

  Description copied from interface: `ITransformable`
  scale add alias

  Specified by:
    `add` in interface `ITransformable`

### rot

    public ICurveGeo rot(IDoubleI angle)

  Description copied from interface: `ITransformable`
  rotation around z-axis and origin

  Specified by:
    `rot` in interface `ITransformable`

### rot

    public ICurveGeo rot(double angle)

  Specified by:
    `rot` in interface `ITransformable`

### rot

    public ICurveGeo 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 ICurveGeo rot(IVecI axis,
                         double angle)

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

### rot

    public ICurveGeo 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 ICurveGeo rot(IVecI center,
                         IVecI axis,
                         double angle)

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

### rot

    public ICurveGeo rot(IVecI axis,
                         IVecI destDir)

  rotate to destination direction vector

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

### rot

    public ICurveGeo 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 ICurveGeo 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 ICurveGeo 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 ICurveGeo rot2(IVecI center,
                          IDoubleI angle)

  Description copied from interface: `ITransformable`
  rotation on xy-plane around center

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public ICurveGeo rot2(IVecI center,
                          double angle)

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public ICurveGeo rot2(IVecI destDir)

  rotation on xy-plane to destination direction vector

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public ICurveGeo rot2(IVecI center,
                          IVecI destPt)

  rotation on xy-plane to destination point location

  Specified by:
    `rot2` in interface `ITransformable`

### scale

    public ICurveGeo scale(IDoubleI f)

  alias of mul

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

### scale

    public ICurveGeo scale(double f)

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

### scale

    public ICurveGeo scale(IVecI center,
                           IDoubleI f)

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

### scale

    public ICurveGeo scale(IVecI center,
                           double f)

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

### scale1d

    public ICurveGeo scale1d(IVecI axis,
                             double f)

  scale only in 1 direction

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

### scale1d

    public ICurveGeo scale1d(IVecI axis,
                             IDoubleI f)

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

### scale1d

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

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

### scale1d

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

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

### ref

    public ICurveGeo 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 ICurveGeo ref(IVecI center,
                         IVecI planeDir)

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

### mirror

    public ICurveGeo mirror(IVecI planeDir)

  mirror is alias of ref

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

### mirror

    public ICurveGeo mirror(IVecI center,
                            IVecI planeDir)

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

### shear

    public ICurveGeo 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 ICurveGeo 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 ICurveGeo 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 ICurveGeo 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 ICurveGeo shearXY(double sxy,
                             double syx)

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

### shearXY

    public ICurveGeo shearXY(IDoubleI sxy,
                             IDoubleI syx)

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

### shearXY

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

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

### shearXY

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

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

### shearYZ

    public ICurveGeo shearYZ(double syz,
                             double szy)

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

### shearYZ

    public ICurveGeo shearYZ(IDoubleI syz,
                             IDoubleI szy)

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

### shearYZ

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

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

### shearYZ

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

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

### shearZX

    public ICurveGeo shearZX(double szx,
                             double sxz)

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

### shearZX

    public ICurveGeo shearZX(IDoubleI szx,
                             IDoubleI sxz)

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

### shearZX

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

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

### shearZX

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

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

### translate

    public ICurveGeo 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 ICurveGeo translate(IDoubleI x,
                               IDoubleI y,
                               IDoubleI z)

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

### translate

    public ICurveGeo translate(IVecI v)

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

### transform

    public ICurveGeo transform(IMatrix3I mat)

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

### transform

    public ICurveGeo transform(IMatrix4I mat)

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

### transform

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

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

### transform

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

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

### mv

    public ICurveGeo 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 ICurveGeo mv(IDoubleI x,
                        IDoubleI y,
                        IDoubleI z)

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

### mv

    public ICurveGeo mv(IVecI v)

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

### cp

    public ICurveGeo cp()

  cp() is alias of dup()

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

### cp

    public ICurveGeo 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 ICurveGeo 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 ICurveGeo cp(IVecI v)

  cp() is alias of dup().add()

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

Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD