igeo
Interface ICurveI

All Superinterfaces:
ICurveOp, IParameter, ITransformable
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.

Version:
0.7.0.0;
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 cp(IIntegerI i)
           
 IVecI cp(int i)
           
 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)
           
 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
 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)
           
 ICurveI mirror(IVecI planeDir)
          mirror is alias of ref
 ICurveI mirror(IVecI center, IVecI planeDir)
           
 ICurveI mul(double v)
           
 ICurveI mul(IDoubleI 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 self curve ; not creating a new object
 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 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, cp, cp, cp, cp, mv, mv, mv, 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


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()

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 self curve ; not creating a new object


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