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

## igeo
Interface ICurveI

All Superinterfaces:
  ICurveOp, IParameter, ITransformable, IVal

All Known Subinterfaces:
  ITrimCurveI

All Known Implementing Classes:
  IArc, IArcGeo, ICircle, ICircleGeo, ICurve, ICurveGeo, ICurveR, IPolycurveGeo, IStraightenerCurve, ITensionLine, ITensionLineOnCurve, ITrimCurve

    public interface ICurveI

extends ICurveOp, ITransformable

Abstract interface of NURBS curve.

Author:
  Satoru Sugihara

Method Summary
`ICurveI` | `add(double x, double y, double z)` transformation: API of ITransformable inteface
`ICurveI` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveI` | `add(IVecI v)`
`ICurveI` | `add(IVecI v, double f)` scale add
`ICurveI` | `add(IVecI v, IDoubleI f)` scale add
`IVecI` | `center()` returns center of geometry object
`IVecI` | `closePt(IVec2I pt)` find approximately closest point on a curve on 2D
`IVecI` | `closePt(IVecI pt)` find approximately closest point on a curve
`ICurveI` | `cp()` cp() is alias of dup()
`ICurveI` | `cp(double x, double y, double z)` cp() is alias of dup().add()
`ICurveI` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVecI` | `cp(IIntegerI i)`
`IVecI` | `cp(int i)`
`ICurveI` | `cp(IVecI v)`
`int` | `cpNum()`
`int` | `cpNum(ISwitchE e)`
`IIntegerI` | `cpNum(ISwitchR r)`
`IVecI[]` | `cps()` all control points
`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
`ICurveI` | `div(double v)`
`ICurveI` | `div(IDoubleI v)`
`ICurveI` | `dup()` duplicate the instance
`IVecI` | `end()`
`IVecI` | `endCP()`
`IVecI` | `ep(IIntegerI i)`
`IVecI` | `ep(int i)`
`int` | `epNum()`
`int` | `epNum(ISwitchE e)`
`IIntegerI` | `epNum(ISwitchR r)`
`ICurveI` | `flip()` same with neg
`ICurveI` | `flipU()` alias of rev()
`ICurveGeo` | `get()`
`boolean` | `isClosed()`
`boolean` | `isClosed(ISwitchE e)`
`IBoolI` | `isClosed(ISwitchR r)`
`boolean` | `isRational()`
`boolean` | `isRational(ISwitchE e)`
`IBoolI` | `isRational(ISwitchR r)`
`boolean` | `isValid()`
`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)`
`double` | `len()`
`double` | `len(ISwitchE e)`
`IDouble` | `len(ISwitchR r)`
`IVecI` | `mid()` parametrically mid point of a curve
`ICurveI` | `mirror(IVecI planeDir)` mirror is alias of ref
`ICurveI` | `mirror(IVecI center, IVecI planeDir)`
`ICurveI` | `mul(double v)`
`ICurveI` | `mul(IDoubleI v)`
`ICurveI` | `mv(double x, double y, double z)` mv() is alias of add()
`ICurveI` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveI` | `mv(IVecI v)`
`ICurveI` | `neg()`
`int` | `num()` change degree.
`int` | `num(ISwitchE e)`
`IIntegerI` | `num(ISwitchR r)`
`IVecI` | `pt(double u)`
`IVecI` | `pt(IDoubleI u)`
`ICurveI` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
`ICurveI` | `ref(IVecI center, IVecI planeDir)`
`ICurveI` | `rev()` reverse U coordintates direction of curve, without creating a new object
`ICurveI` | `revU()` alias of rev()
`ICurveI` | `rot(IVecI axis, double angle)`
`ICurveI` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
`ICurveI` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
`ICurveI` | `rot(IVecI center, IVecI axis, double angle)`
`ICurveI` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center
`ICurveI` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
`ICurveI` | `scale(double f)`
`ICurveI` | `scale(IDoubleI f)` alias of mul
`ICurveI` | `scale(IVecI center, double f)`
`ICurveI` | `scale(IVecI center, IDoubleI f)`
`ICurveI` | `scale1d(IVecI axis, double f)` scale only in 1 direction
`ICurveI` | `scale1d(IVecI axis, IDoubleI f)`
`ICurveI` | `scale1d(IVecI center, IVecI axis, double f)`
`ICurveI` | `scale1d(IVecI center, IVecI axis, IDoubleI f)`
`ICurveI` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
`ICurveI` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
`ICurveI` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)`
`ICurveI` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
`ICurveI` | `shearXY(double sxy, double syx)`
`ICurveI` | `shearXY(IDoubleI sxy, IDoubleI syx)`
`ICurveI` | `shearXY(IVecI center, double sxy, double syx)`
`ICurveI` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)`
`ICurveI` | `shearYZ(double syz, double szy)`
`ICurveI` | `shearYZ(IDoubleI syz, IDoubleI szy)`
`ICurveI` | `shearYZ(IVecI center, double syz, double szy)`
`ICurveI` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)`
`ICurveI` | `shearZX(double szx, double sxz)`
`ICurveI` | `shearZX(IDoubleI szx, IDoubleI sxz)`
`ICurveI` | `shearZX(IVecI center, double szx, double sxz)`
`ICurveI` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)`
`IVecI` | `start()`
`IVecI` | `startCP()`
`ICurveI` | `sub(double x, double y, double z)`
`ICurveI` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveI` | `sub(IVecI v)`
`IVecI` | `tan(double u)`
`IVecI` | `tan(IDoubleI u)`
`ICurveI` | `transform(IMatrix3I mat)`
`ICurveI` | `transform(IMatrix4I mat)`
`ICurveI` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)`
`ICurveI` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)`
`ICurveI` | `translate(double x, double y, double z)` translate is alias of add()
`ICurveI` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)`
`ICurveI` | `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)`
`IDoubleI` | `u(ISwitchR r, IVec2I pt)`
`IDoubleI` | `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)`

Methods inherited from interface igeo.ITransformable
`add, add, rot, rot, rot2, rot2, rot2, rot2, rot2, rot2`

Method Detail

### get

    ICurveGeo get()

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

### dup

    ICurveI dup()

  Description copied from interface: `ITransformable`
  duplicate the instance

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

### isValid

    boolean isValid()

### pt

    IVecI pt(double u)

### pt

    IVecI pt(IDoubleI u)

### tan

    IVecI tan(double u)

### tan

    IVecI tan(IDoubleI u)

### cp

    IVecI cp(int i)

### cp

    IVecI cp(IIntegerI i)

### ep

    IVecI ep(int i)

### ep

    IVecI ep(IIntegerI i)

### cps

    IVecI[] cps()

  all control points

### u

    double u(IVecI pt)

  approximate invert projection from 3D location to interanl parameter U (closest point on curve)

### u

    double u(ISwitchE r,
             IVecI pt)

### u

    IDoubleI u(ISwitchR r,
               IVecI pt)

### u

    double u(IVec2I pt)

  approximate invert projection from 2D location to interanl parameter U

### u

    double u(ISwitchE r,
             IVec2I pt)

### u

    IDoubleI u(ISwitchR r,
               IVec2I pt)

### closePt

    IVecI closePt(IVecI pt)

  find approximately closest point on a curve

### closePt

    IVecI closePt(IVec2I pt)

  find approximately closest point on a curve on 2D

### dist

    double dist(IVecI pt)

  distance to the closest point on a curve

### dist

    double dist(IVec2I pt)

  distance to the closest point on a curve on 2D

### knot

    double knot(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.

### knot

    IDoubleI knot(IIntegerI i)

### knots

    double[] knots()

  all knot values

### knots

    double[] knots(ISwitchE e)

### knots

    IDoubleI[] knots(ISwitchR r)

### knotNum

    int knotNum()

### knotNum

    int knotNum(ISwitchE e)

### knotNum

    IIntegerI knotNum(ISwitchR r)

### isRational

    boolean isRational()

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

### isRational

    boolean isRational(ISwitchE e)

### isRational

    IBoolI isRational(ISwitchR r)

### deg

    int deg()

### deg

    int deg(ISwitchE e)

### deg

    IIntegerI deg(ISwitchR r)

### num

    int num()

  change degree. this operation is costly because it needs to rebuild the whole knots and basisFunction

### num

    int num(ISwitchE e)

### num

    IIntegerI num(ISwitchR r)

### cpNum

    int cpNum()

### cpNum

    int cpNum(ISwitchE e)

### cpNum

    IIntegerI cpNum(ISwitchR r)

### start

    IVecI start()

### end

    IVecI end()

### startCP

    IVecI startCP()

### endCP

    IVecI endCP()

### mid

    IVecI mid()

  parametrically mid point of a curve

### center

    IVecI center()

  returns center of geometry object

### epNum

    int epNum()

### epNum

    int epNum(ISwitchE e)

### epNum

    IIntegerI epNum(ISwitchR r)

### len

    double len()

### len

    double len(ISwitchE e)

### len

    IDouble len(ISwitchR r)

### u

    double u(int epIdx,
             double epFraction)

### u

    IDoubleI u(IInteger epIdx,
               IDouble epFraction)

### ustart

    double ustart()

### uend

    double uend()

### ustart

    double ustart(ISwitchE e)

### uend

    double uend(ISwitchE e)

### ustart

    IDoubleI ustart(ISwitchR r)

### uend

    IDoubleI uend(ISwitchR r)

### isClosed

    boolean isClosed()

### isClosed

    boolean isClosed(ISwitchE e)

### isClosed

    IBoolI isClosed(ISwitchR r)

### rev

    ICurveI rev()

  reverse U coordintates direction of curve, without creating a new object

### revU

    ICurveI revU()

  alias of rev()

### flipU

    ICurveI flipU()

  alias of rev()

### add

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

  transformation: API of ITransformable inteface

  Specified by:
    `add` in interface `ITransformable`

### add

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

  Specified by:
    `add` in interface `ITransformable`

### add

    ICurveI add(IVecI v)

  Specified by:
    `add` in interface `ITransformable`

### sub

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

  Specified by:
    `sub` in interface `ITransformable`

### sub

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

  Specified by:
    `sub` in interface `ITransformable`

### sub

    ICurveI sub(IVecI v)

  Specified by:
    `sub` in interface `ITransformable`

### mul

    ICurveI mul(IDoubleI v)

  Specified by:
    `mul` in interface `ITransformable`

### mul

    ICurveI mul(double v)

  Specified by:
    `mul` in interface `ITransformable`

### div

    ICurveI div(IDoubleI v)

  Specified by:
    `div` in interface `ITransformable`

### div

    ICurveI div(double v)

  Specified by:
    `div` in interface `ITransformable`

### neg

    ICurveI neg()

  Specified by:
    `neg` in interface `ITransformable`

### flip

    ICurveI flip()

  same with neg

  Specified by:
    `flip` in interface `ITransformable`

### add

    ICurveI add(IVecI v,
                double f)

  scale add

  Specified by:
    `add` in interface `ITransformable`

### add

    ICurveI add(IVecI v,
                IDoubleI f)

  Description copied from interface: `ITransformable`
  scale add

  Specified by:
    `add` in interface `ITransformable`

### rot

    ICurveI rot(IVecI axis,
                IDoubleI angle)

  Description copied from interface: `ITransformable`
  rotation around axis vector

  Specified by:
    `rot` in interface `ITransformable`

### rot

    ICurveI rot(IVecI axis,
                double angle)

  Specified by:
    `rot` in interface `ITransformable`

### rot

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

  Description copied from interface: `ITransformable`
  rotation around axis vector and center

  Specified by:
    `rot` in interface `ITransformable`

### rot

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

  Specified by:
    `rot` in interface `ITransformable`

### rot

    ICurveI rot(IVecI axis,
                IVecI destDir)

  rotate to destination direction vector

  Specified by:
    `rot` in interface `ITransformable`

### rot

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

  rotate to destination point location

  Specified by:
    `rot` in interface `ITransformable`

### scale

    ICurveI scale(IDoubleI f)

  alias of mul

  Specified by:
    `scale` in interface `ITransformable`

### scale

    ICurveI scale(double f)

  Specified by:
    `scale` in interface `ITransformable`

### scale

    ICurveI scale(IVecI center,
                  IDoubleI f)

  Specified by:
    `scale` in interface `ITransformable`

### scale

    ICurveI scale(IVecI center,
                  double f)

  Specified by:
    `scale` in interface `ITransformable`

### scale1d

    ICurveI scale1d(IVecI axis,
                    double f)

  scale only in 1 direction

  Specified by:
    `scale1d` in interface `ITransformable`

### scale1d

    ICurveI scale1d(IVecI axis,
                    IDoubleI f)

  Specified by:
    `scale1d` in interface `ITransformable`

### scale1d

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

  Specified by:
    `scale1d` in interface `ITransformable`

### scale1d

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

  Specified by:
    `scale1d` in interface `ITransformable`

### ref

    ICurveI ref(IVecI planeDir)

  reflect(mirror) 3 dimensionally to the other side of the plane

  Specified by:
    `ref` in interface `ITransformable`

### ref

    ICurveI ref(IVecI center,
                IVecI planeDir)

  Specified by:
    `ref` in interface `ITransformable`

### mirror

    ICurveI mirror(IVecI planeDir)

  mirror is alias of ref

  Specified by:
    `mirror` in interface `ITransformable`

### mirror

    ICurveI mirror(IVecI center,
                   IVecI planeDir)

  Specified by:
    `mirror` in interface `ITransformable`

### shear

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

  shear operation

  Specified by:
    `shear` in interface `ITransformable`

### shear

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

  Specified by:
    `shear` in interface `ITransformable`

### shear

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

  Specified by:
    `shear` in interface `ITransformable`

### shear

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

  Specified by:
    `shear` in interface `ITransformable`

### shearXY

    ICurveI shearXY(double sxy,
                    double syx)

  Specified by:
    `shearXY` in interface `ITransformable`

### shearXY

    ICurveI shearXY(IDoubleI sxy,
                    IDoubleI syx)

  Specified by:
    `shearXY` in interface `ITransformable`

### shearXY

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

  Specified by:
    `shearXY` in interface `ITransformable`

### shearXY

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

  Specified by:
    `shearXY` in interface `ITransformable`

### shearYZ

    ICurveI shearYZ(double syz,
                    double szy)

  Specified by:
    `shearYZ` in interface `ITransformable`

### shearYZ

    ICurveI shearYZ(IDoubleI syz,
                    IDoubleI szy)

  Specified by:
    `shearYZ` in interface `ITransformable`

### shearYZ

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

  Specified by:
    `shearYZ` in interface `ITransformable`

### shearYZ

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

  Specified by:
    `shearYZ` in interface `ITransformable`

### shearZX

    ICurveI shearZX(double szx,
                    double sxz)

  Specified by:
    `shearZX` in interface `ITransformable`

### shearZX

    ICurveI shearZX(IDoubleI szx,
                    IDoubleI sxz)

  Specified by:
    `shearZX` in interface `ITransformable`

### shearZX

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

  Specified by:
    `shearZX` in interface `ITransformable`

### shearZX

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

  Specified by:
    `shearZX` in interface `ITransformable`

### translate

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

  translate is alias of add()

  Specified by:
    `translate` in interface `ITransformable`

### translate

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

  Specified by:
    `translate` in interface `ITransformable`

### translate

    ICurveI translate(IVecI v)

  Specified by:
    `translate` in interface `ITransformable`

### transform

    ICurveI transform(IMatrix3I mat)

  Specified by:
    `transform` in interface `ITransformable`

### transform

    ICurveI transform(IMatrix4I mat)

  Specified by:
    `transform` in interface `ITransformable`

### transform

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

  Specified by:
    `transform` in interface `ITransformable`

### transform

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

  Specified by:
    `transform` in interface `ITransformable`

### mv

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

  mv() is alias of add()

  Specified by:
    `mv` in interface `ITransformable`

### mv

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

  Specified by:
    `mv` in interface `ITransformable`

### mv

    ICurveI mv(IVecI v)

  Specified by:
    `mv` in interface `ITransformable`

### cp

    ICurveI cp()

  cp() is alias of dup()

  Specified by:
    `cp` in interface `ITransformable`

### cp

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

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

  Specified by:
    `cp` in interface `ITransformable`

### cp

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

  Specified by:
    `cp` in interface `ITransformable`

### cp

    ICurveI cp(IVecI v)

  Specified by:
    `cp` in interface `ITransformable`

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