igeo

## Class ISurface

- java.lang.Object
- - igeo.IObject
  - - igeo.IGeometry
    - - igeo.ISurface

- All Implemented Interfaces:
    IParameter, ISurfaceI, ISurfaceOp, ITransformable, IVal
  Direct Known Subclasses:
    ICylinder, ISphere

      public class ISurface
      extends IGeometry
      implements ISurfaceI

  Class of NURBS surface object. It contains ISurfaceGeo instance inside.
  Author:
    Satoru Sugihara

- - ### Field Summary

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

    - ### Fields inherited from class igeo.IObject

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ISurface()`
    `ISurface(double[][][] xyzValues)`
    `ISurface(double[][][] xyzValues, boolean closeU, boolean closeV)`
    `ISurface(double[][][] xyzValues, int udeg, int vdeg)`
    `ISurface(double[][][] xyzValues, int udeg, int vdeg, boolean closeU, boolean closeV)`
    `ISurface(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)`
    `ISurface(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double x4, double y4, double z4)`
    `ISurface(ICurveI trimCurve)`
    `ISurface(ICurveI[] trimCurves)`
    `ISurface(ICurveI[] outerTrimCurves, ICurveI[][] innerTrimCurves)`
    `ISurface(ICurveI trimCurve, ICurveI innerTrimCurve)`
    `ISurface(ICurveI trimCurve, ICurveI[] innerTrimCurves)`
    `ISurface(IServerI s)`
    `ISurface(IServerI s, double[][][] xyzValues)`
    `ISurface(IServerI s, double[][][] xyzValues, boolean closeU, boolean closeV)`
    `ISurface(IServerI s, double[][][] xyzValues, int udeg, int vdeg)`
    `ISurface(IServerI s, double[][][] xyzValues, int udeg, int vdeg, boolean closeU, boolean closeV)`
    `ISurface(IServerI s, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)`
    `ISurface(IServerI s, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double x4, double y4, double z4)`
    `ISurface(IServerI s, ICurveI trimCurve)`
    `ISurface(IServerI s, ICurveI[] trimCurves)`
    `ISurface(IServerI s, ICurveI[] outerTrimCurves, ICurveI[][] innerTrimCurves)`
    `ISurface(IServerI s, ICurveI trimCurve, ICurveI innerTrimCurve)`
    `ISurface(IServerI s, ICurveI trimCurve, ICurveI[] innerTrimCurves)`
    `ISurface(IServerI s, ISurface srf)`
    `ISurface(IServerI s, ISurfaceGeo srf)`
    `ISurface(IServerI s, ISurfaceI srf)`
    `ISurface(IServerI s, IVecI[] trimCrvPts)`
    `ISurface(IServerI s, IVecI[][] cpts)`
    `ISurface(IServerI s, IVecI[][] cpts, boolean closeU, boolean closeV)`
    `ISurface(IServerI s, IVecI[][] cpts, int udegree, int vdegree)`
    `ISurface(IServerI s, IVecI[][] cpts, int udegree, int vdegree, boolean closeU, boolean closeV)`
    `ISurface(IServerI s, IVecI[][] cpts, int udegree, int vdegree, boolean closeU, double[] vk)`
    `ISurface(IServerI s, IVecI[][] cpts, int udegree, int vdegree, double[] uk, boolean closeV)`
    `ISurface(IServerI s, IVecI[][] cpts, int udegree, int vdegree, double[] uknots, double[] vknots)`
    `ISurface(IServerI s, IVecI[][] cpts, int udegree, int vdegree, double[] uknots, double[] vknots, double ustart, double uend, double vstart, double vend)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, int trimCrvDeg)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots, IVecI[][] innerTrimCrvPts, int[] innerTrimCrvDeg, double[][] innerTrimCrvKnots)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots, IVecI[] innerTrimCrvPts, int innerTrimCrvDeg, double[] innerTrimCrvKnots)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, int trimCrvDeg, IVecI[][] innerTrimCrvPts, int[] innerTrimCrvDeg)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, int trimCrvDeg, IVecI[] innerTrimCrvPts, int innerTrimCrvDeg)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, IVecI[] innerTrimCrvPts)`
    `ISurface(IServerI s, IVecI[] trimCrvPts, IVecI[][] innerTrimCrvPts)`
    `ISurface(IServerI s, IVecI pt1, IVecI pt2, IVecI pt3)`
    `ISurface(IServerI s, IVecI pt1, IVecI pt2, IVecI pt3, IVecI pt4)`
    `ISurface(ISurface srf)`
    `ISurface(ISurfaceGeo srf)`
    `ISurface(ISurfaceI srf)`
    `ISurface(IVecI[] trimCrvPts)`
    `ISurface(IVecI[][] cpts)`
    `ISurface(IVecI[][] cpts, boolean closeU, boolean closeV)`
    `ISurface(IVecI[][] cpts, int udegree, int vdegree)`
    `ISurface(IVecI[][] cpts, int udegree, int vdegree, boolean closeU, boolean closeV)`
    `ISurface(IVecI[][] cpts, int udegree, int vdegree, boolean closeU, double[] vk)`
    `ISurface(IVecI[][] cpts, int udegree, int vdegree, double[] uk, boolean closeV)`
    `ISurface(IVecI[][] cpts, int udegree, int vdegree, double[] uknots, double[] vknots)`
    `ISurface(IVecI[][] cpts, int udegree, int vdegree, double[] uknots, double[] vknots, double ustart, double uend, double vstart, double vend)`
    `ISurface(IVecI[] trimCrvPts, int trimCrvDeg)`
    `ISurface(IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots)`
    `ISurface(IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots, IVecI[][] innerTrimCrvPts, int[] innerTrimCrvDeg, double[][] innerTrimCrvKnots)`
    `ISurface(IVecI[] trimCrvPts, int trimCrvDeg, double[] trimCrvKnots, IVecI[] innerTrimCrvPts, int innerTrimCrvDeg, double[] innerTrimCrvKnots)`
    `ISurface(IVecI[] trimCrvPts, int trimCrvDeg, IVecI[][] innerTrimCrvPts, int[] innerTrimCrvDeg)`
    `ISurface(IVecI[] trimCrvPts, int trimCrvDeg, IVecI[] innerTrimCrvPts, int innerTrimCrvDeg)`
    `ISurface(IVecI[] trimCrvPts, IVecI[] innerTrimCrvPts)`
    `ISurface(IVecI[] trimCrvPts, IVecI[][] innerTrimCrvPts)`
    `ISurface(IVecI pt1, IVecI pt2, IVecI pt3)` triangle
    `ISurface(IVecI pt1, IVecI pt2, IVecI pt3, IVecI pt4)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ISurface` | `add(double x, double y, double z)` transformation methods; API of ITransformable interface
    `ISurface` | `add(double f, IVecI v)` scale add alias
    `ISurface` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ISurface` | `add(IDoubleI f, IVecI v)` scale add alias
    `ISurface` | `add(IVecI v)`
    `ISurface` | `add(IVecI v, double f)` scale add
    `ISurface` | `add(IVecI v, IDoubleI f)` scale add
    `ISurface` | `addInnerTrimLoop(ICurveI trim)` input trim curves is deleted as default if it inherits IObject like ICurve or ICurveR
    `ISurface` | `addInnerTrimLoop(ICurveI[] trim)` input trim curves is deleted as default if it inherits IObject like ICurve or ICurveR
    `ISurface` | `addInnerTrimLoop(ICurveI[] trim, boolean deleteInput)`
    `ISurface` | `addInnerTrimLoop(ICurveI trim, boolean deleteInput)`
    `ISurface` | `addInnerTrimLoop(ITrimCurveI trim)`
    `ISurface` | `addInnerTrimLoop(ITrimCurveI[] trim)`
    `ISurface` | `addOuterTrimLoop(ICurveI trim)`
    `ISurface` | `addOuterTrimLoop(ICurveI[] trim)`
    `ISurface` | `addOuterTrimLoop(ICurveI[] trim, boolean deleteInput)`
    `ISurface` | `addOuterTrimLoop(ICurveI trim, boolean deleteInput)`
    `ISurface` | `addOuterTrimLoop(ITrimCurveI trim)`
    `ISurface` | `addOuterTrimLoop(ITrimCurveI[] trim)`
    `ISurface` | `addUCP(IVecI[] pts)` add u control point at the end and rebuild the surface.
    `ISurface` | `addVCP(IVecI[] pts)` add v control point at the end and rebuild the surface.
    `ISurface` | `attr(IAttribute at)` set attributes
    `IVec` | `center()` returns center of geometry object
    `ISurface` | `clearInnerTrim()`
    `ISurface` | `clearOuterTrim()`
    `ISurface` | `clearTrim()`
    `IVec` | `closePt(IVec2I pt)` find approximately closest point on a surface on 2D
    `IVec` | `closePt(IVecI pt)` find approximately closest point on a surface
    `ISurface` | `clr(java.awt.Color c)`
    `ISurface` | `clr(java.awt.Color c, double alpha)`
    `ISurface` | `clr(java.awt.Color c, float alpha)`
    `ISurface` | `clr(java.awt.Color c, int alpha)`
    `ISurface` | `clr(double dgray)`
    `ISurface` | `clr(double dgray, double dalpha)`
    `ISurface` | `clr(double dr, double dg, double db)`
    `ISurface` | `clr(double dr, double dg, double db, double da)`
    `ISurface` | `clr(float fgray)`
    `ISurface` | `clr(float fgray, float falpha)`
    `ISurface` | `clr(float fr, float fg, float fb)`
    `ISurface` | `clr(float fr, float fg, float fb, float fa)`
    `ISurface` | `clr(IColor c)` to set an object color
    `ISurface` | `clr(IColor c, double alpha)` to set color, with alpha value overwritten
    `ISurface` | `clr(IColor c, float alpha)` to set color, with alpha value overwritten
    `ISurface` | `clr(IColor c, int alpha)` to set color, with alpha value overwritten
    `ISurface` | `clr(int gray)`
    `ISurface` | `clr(int gray, int alpha)`
    `ISurface` | `clr(int r, int g, int b)`
    `ISurface` | `clr(int r, int g, int b, int a)`
    `ISurface` | `clr(IObject o)` to set the same color with the object
    `IVec` | `corner(IIntegerI i, IIntegerI j)`
    `IVec` | `corner(int i, int j)`
    `IVecI` | `cornerCP(IIntegerI i, IIntegerI j)`
    `IVec` | `cornerCP(int i, int j)`
    `ISurface` | `cp()` cp() is alias of dup()
    `ISurface` | `cp(double x, double y, double z)` cp() is alias of dup().add()
    `ISurface` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)` cp() is alias of dup().add()
    `IVecI` | `cp(IIntegerI i, IIntegerI j)` getting control point at i and j
    `IVec` | `cp(int i, int j)` getting control point at i and j
    `ISurface` | `cp(IVecI v)` cp() is alias of dup().add()
    `IVecI[][]` | `cps()`
    `IGraphicObject` | `createGraphic(IGraphicMode m)`
    `double` | `dist(IVec2I pt)` distance to the closest point on a surface on 2D
    `double` | `dist(IVecI pt)` distance to the closest point on a surface
    `ISurface` | `div(double v)`
    `ISurface` | `div(IDoubleI v)`
    `ISurface` | `dup()` duplicate object
    `IVec` | `ep(IIntegerI i, IIntegerI j)` getting edit point at i and j
    `IVec` | `ep(int i, int j)` getting edit point at i and j
    `ISurface` | `flip()` alias of neg
    `ISurface` | `flipN()` alias of flipN()
    `ISurface` | `flipU()` alias of revU()
    `ISurface` | `flipUV()` alias of revUV()
    `ISurface` | `flipV()` alias of revV()
    `ISurfaceGeo` | `get()`
    `boolean` | `hasDefaultTrim()` check if it has default rectangular outer trim
    `boolean` | `hasDefaultTrim(ISwitchE e)`
    `IBool` | `hasDefaultTrim(ISwitchR r)`
    `boolean` | `hasInnerTrim()`
    `boolean` | `hasInnerTrim(ISwitchE e)`
    `IBool` | `hasInnerTrim(ISwitchR r)`
    `boolean` | `hasOuterTrim()`
    `boolean` | `hasOuterTrim(ISwitchE e)`
    `IBool` | `hasOuterTrim(ISwitchR r)`
    `boolean` | `hasTrim()`
    `boolean` | `hasTrim(ISwitchE e)`
    `IBool` | `hasTrim(ISwitchR r)`
    `ISurface` | `hide()`
    `ISurface` | `hsb(double h, double s, double b)`
    `ISurface` | `hsb(double h, double s, double b, double a)`
    `ISurface` | `hsb(float h, float s, float b)`
    `ISurface` | `hsb(float h, float s, float b, float a)`
    `void` | `initSurface(IServerI s)`
    `ITrimCurveI` | `innerTrim(IIntegerI i, IIntegerI j)`
    `ITrimCurveI` | `innerTrim(int i, int j)`
    `ITrimCurveI[]` | `innerTrimLoop(IIntegerI i)`
    `ITrimCurveI[]` | `innerTrimLoop(int i)`
    `int` | `innerTrimLoopNum()`
    `int` | `innerTrimLoopNum(ISwitchE e)`
    `IInteger` | `innerTrimLoopNum(ISwitchR r)`
    `IInteger` | `innerTrimNum(IIntegerI i)`
    `int` | `innerTrimNum(int i)`
    `boolean` | `isFlat()`
    `boolean` | `isFlat(ISwitchE e)`
    `IBool` | `isFlat(ISwitchR r)`
    `boolean` | `isInsideTrim(double u, double v)`
    `boolean` | `isInsideTrim(IVec2 v)`
    `boolean` | `isInsideTrim(IVec2I v)`
    `boolean` | `isRational()`
    `boolean` | `isRational(ISwitchE e)`
    `IBool` | `isRational(ISwitchR r)`
    `boolean` | `isUClosed()`
    `boolean` | `isUClosed(ISwitchE e)`
    `IBool` | `isUClosed(ISwitchR r)`
    `boolean` | `isValid()` checking parameters validity.
    `boolean` | `isVClosed()`
    `boolean` | `isVClosed(ISwitchE e)`
    `IBool` | `isVClosed(ISwitchR r)`
    `ISurface` | `layer(ILayer l)` Set layer by ILayer object
    `ISurface` | `layer(java.lang.String l)` Set layer by layer name.
    `IVec` | `mid()` mid in UV parameter (u=0.5, v=0.5) point on a surface
    `ISurface` | `mirror(IVecI planeDir)` mirror is alias of ref
    `ISurface` | `mirror(IVecI center, IVecI planeDir)`
    `ISurface` | `mul(double v)`
    `ISurface` | `mul(IDoubleI v)`
    `ISurface` | `mv(double x, double y, double z)` mv() is alias of add()
    `ISurface` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ISurface` | `mv(IVecI v)`
    `ISurface` | `name(java.lang.String nm)` methods of IObject
    `ISurface` | `neg()`
    `IVec` | `nml(double u, double v)` getting normal vector
    `IVec` | `nml(IDoubleI u, IDoubleI v)` getting normal vector
    `IVec` | `nml(IVec2I v)` getting normal vector
    `IVec` | `normal(double u, double v)` alias of nml
    `IVec` | `normal(IDoubleI u, IDoubleI v)` alias of nml
    `IVec` | `normal(IVec2I v)` alias of nml
    `IVec` | `nrml(double u, double v)` alias of nml
    `IVec` | `nrml(IDoubleI u, IDoubleI v)` alias of nml
    `IVec` | `nrml(IVec2I v)` alias of nml
    `ITrimCurveI` | `outerTrim(IIntegerI i, IIntegerI j)`
    `ITrimCurveI` | `outerTrim(int i, int j)`
    `ITrimCurveI[]` | `outerTrimLoop(IIntegerI i)`
    `ITrimCurveI[]` | `outerTrimLoop(int i)`
    `int` | `outerTrimLoopNum()`
    `int` | `outerTrimLoopNum(ISwitchE e)`
    `IInteger` | `outerTrimLoopNum(ISwitchR r)`
    `IIntegerI` | `outerTrimNum(IIntegerI i)`
    `int` | `outerTrimNum(int i)`
    `IVec` | `pt(double u, double v)`
    `IVec` | `pt(double u, double v, double n)`
    `IVec` | `pt(IDoubleI u, IDoubleI v)`
    `IVec` | `pt(IDoubleI u, IDoubleI v, IDoubleI n)`
    `IVec` | `pt(IVec2I v)`
    `IVec` | `pt(IVecI v)`
    `ISurface` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
    `ISurface` | `ref(IVecI center, IVecI planeDir)`
    `ISurface` | `revN()` reverse normal direction by reversing V direction (UV and normal is dependent
    `ISurface` | `revU()` reverse U parameter internally without creating a new instance
    `ISurface` | `revUV()` reverse U and V parameter internally without creating a new instance
    `ISurface` | `revV()` reverse V parameter internally without creating a new instance
    `ISurface` | `rot(double angle)`
    `ISurface` | `rot(IDoubleI angle)` rotation around z-axis and origin
    `ISurface` | `rot(IVecI axis, double angle)`
    `ISurface` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
    `ISurface` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
    `ISurface` | `rot(IVecI center, IVecI axis, double angle)`
    `ISurface` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center
    `ISurface` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
    `ISurface` | `rot2(double angle)` rotation on xy-plane around origin; same with rot(double)
    `ISurface` | `rot2(IDoubleI angle)` rotation on xy-plane around origin; same with rot(IDoubleI)
    `ISurface` | `rot2(IVecI destDir)` rotation on xy-plane to destination direction vector
    `ISurface` | `rot2(IVecI center, double angle)`
    `ISurface` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane around center
    `ISurface` | `rot2(IVecI center, IVecI destPt)` rotation on xy-plane to destination point location
    `ISurface` | `scale(double f)`
    `ISurface` | `scale(IDoubleI f)` alias of mul
    `ISurface` | `scale(IVecI center, double f)`
    `ISurface` | `scale(IVecI center, IDoubleI f)`
    `ISurface` | `scale1d(IVecI axis, double f)` scale only in 1 direction
    `ISurface` | `scale1d(IVecI axis, IDoubleI f)`
    `ISurface` | `scale1d(IVecI center, IVecI axis, double f)`
    `ISurface` | `scale1d(IVecI center, IVecI axis, IDoubleI f)`
    `ISurface` | `setColor(java.awt.Color c)`
    `ISurface` | `setColor(java.awt.Color c, double alpha)`
    `ISurface` | `setColor(java.awt.Color c, float alpha)`
    `ISurface` | `setColor(java.awt.Color c, int alpha)`
    `ISurface` | `setColor(double dgray)`
    `ISurface` | `setColor(double dgray, double dalpha)`
    `ISurface` | `setColor(double dr, double dg, double db)`
    `ISurface` | `setColor(double dr, double dg, double db, double da)`
    `ISurface` | `setColor(float fgray)`
    `ISurface` | `setColor(float fgray, float falpha)`
    `ISurface` | `setColor(float fr, float fg, float fb)`
    `ISurface` | `setColor(float fr, float fg, float fb, float fa)`
    `ISurface` | `setColor(IColor c)`
    `ISurface` | `setColor(IColor c, double alpha)`
    `ISurface` | `setColor(IColor c, float alpha)`
    `ISurface` | `setColor(IColor c, int alpha)`
    `ISurface` | `setColor(int gray)`
    `ISurface` | `setColor(int gray, int alpha)`
    `ISurface` | `setColor(int r, int g, int b)`
    `ISurface` | `setColor(int r, int g, int b, int a)`
    `ISurface` | `setHSBColor(double h, double s, double b)`
    `ISurface` | `setHSBColor(double h, double s, double b, double a)`
    `ISurface` | `setHSBColor(float h, float s, float b)`
    `ISurface` | `setHSBColor(float h, float s, float b, float a)`
    `ISurface` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `ISurface` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `ISurface` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)`
    `ISurface` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
    `ISurface` | `shearXY(double sxy, double syx)`
    `ISurface` | `shearXY(IDoubleI sxy, IDoubleI syx)`
    `ISurface` | `shearXY(IVecI center, double sxy, double syx)`
    `ISurface` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)`
    `ISurface` | `shearYZ(double syz, double szy)`
    `ISurface` | `shearYZ(IDoubleI syz, IDoubleI szy)`
    `ISurface` | `shearYZ(IVecI center, double syz, double szy)`
    `ISurface` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)`
    `ISurface` | `shearZX(double szx, double sxz)`
    `ISurface` | `shearZX(IDoubleI szx, IDoubleI sxz)`
    `ISurface` | `shearZX(IVecI center, double szx, double sxz)`
    `ISurface` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)`
    `ISurface` | `show()`
    `ISurface` | `sub(double x, double y, double z)`
    `ISurface` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ISurface` | `sub(IVecI v)`
    `ISurface` | `swapUV()` swap U and V parameter
    `ISurface` | `transform(IMatrix3I mat)`
    `ISurface` | `transform(IMatrix4I mat)`
    `ISurface` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)`
    `ISurface` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)`
    `ISurface` | `translate(double x, double y, double z)` translate() is alias of add()
    `ISurface` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)`
    `ISurface` | `translate(IVecI v)`
    `IDouble` | `u(IIntegerI epIdx, IDoubleI epFraction)`
    `double` | `u(int epIdx, double epFraction)`
    `int` | `ucpNum()`
    `int` | `ucpNum(ISwitchE e)`
    `IInteger` | `ucpNum(ISwitchR r)`
    `int` | `udeg()`
    `int` | `udeg(ISwitchE e)`
    `IInteger` | `udeg(ISwitchR r)`
    `double` | `uend()`
    `double` | `uend(ISwitchE e)`
    `IDouble` | `uend(ISwitchR r)`
    `int` | `uepNum()`
    `int` | `uepNum(ISwitchE e)`
    `IInteger` | `uepNum(ISwitchR r)`
    `IDouble` | `uknot(IIntegerI i)`
    `double` | `uknot(int i)`
    `int` | `uknotNum()`
    `int` | `uknotNum(ISwitchE e)`
    `IInteger` | `uknotNum(ISwitchR r)`
    `double[]` | `uknots()`
    `double[]` | `uknots(ISwitchE e)`
    `IDoubleI[]` | `uknots(ISwitchR r)`
    `int` | `unum()`
    `int` | `unum(ISwitchE e)`
    `IInteger` | `unum(ISwitchR r)`
    `double` | `ustart()` original knots start value and end value
    `double` | `ustart(ISwitchE e)`
    `IDouble` | `ustart(ISwitchR r)`
    `IVec` | `utan(double u, double v)`
    `IVec` | `utan(IDoubleI u, IDoubleI v)`
    `IVec` | `utan(IVec2I v)`
    `IVec2` | `uv(IVec2I pt)` approximate invert projection from 2D location to interanl UV parameter (closest point on surface)
    `IVec2` | `uv(IVecI pt)` approximate invert projection from 3D location to interanl UV parameter (closest point on surface)
    `IDouble` | `v(IIntegerI epIdx, IDoubleI epFraction)`
    `double` | `v(int epIdx, double epFraction)`
    `int` | `vcpNum()`
    `int` | `vcpNum(ISwitchE e)`
    `IInteger` | `vcpNum(ISwitchR r)`
    `int` | `vdeg()`
    `int` | `vdeg(ISwitchE e)`
    `IInteger` | `vdeg(ISwitchR r)`
    `double` | `vend()`
    `double` | `vend(ISwitchE e)`
    `IDouble` | `vend(ISwitchR r)`
    `int` | `vepNum()`
    `int` | `vepNum(ISwitchE e)`
    `IInteger` | `vepNum(ISwitchR r)`
    `IDouble` | `vknot(IIntegerI i)`
    `double` | `vknot(int i)`
    `int` | `vknotNum()`
    `int` | `vknotNum(ISwitchE e)`
    `IInteger` | `vknotNum(ISwitchR r)`
    `double[]` | `vknots()`
    `double[]` | `vknots(ISwitchE e)`
    `IDoubleI[]` | `vknots(ISwitchR r)`
    `int` | `vnum()`
    `int` | `vnum(ISwitchE e)`
    `IInteger` | `vnum(ISwitchR r)`
    `double` | `vstart()`
    `double` | `vstart(ISwitchE e)`
    `IDouble` | `vstart(ISwitchR r)`
    `IVec` | `vtan(double u, double v)`
    `IVec` | `vtan(IDoubleI u, IDoubleI v)`
    `IVec` | `vtan(IVec2I v)`
    `ISurface` | `weight(double w)`
    `ISurface` | `weight(float w)`

    - ### Methods inherited from class igeo.IObject

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

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

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

- - ### Field Detail

    - #### surface

          public ISurfaceGeo surface

  - ### Constructor Detail

    - #### ISurface

          public ISurface()

    - #### ISurface

          public ISurface(IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          double[] uknots,
                          double[] vknots,
                          double ustart,
                          double uend,
                          double vstart,
                          double vend)

    - #### ISurface

          public ISurface(IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          double[] uknots,
                          double[] vknots)

    - #### ISurface

          public ISurface(IVecI[][] cpts,
                          int udegree,
                          int vdegree)

    - #### ISurface

          public ISurface(IVecI[][] cpts)

    - #### ISurface

          public ISurface(IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          boolean closeU,
                          double[] vk)

    - #### ISurface

          public ISurface(IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          double[] uk,
                          boolean closeV)

    - #### ISurface

          public ISurface(IVecI[][] cpts,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(IVecI pt1,
                          IVecI pt2,
                          IVecI pt3,
                          IVecI pt4)

    - #### ISurface

          public ISurface(IVecI pt1,
                          IVecI pt2,
                          IVecI pt3)

      triangle

    - #### ISurface

          public ISurface(double x1,
                          double y1,
                          double z1,
                          double x2,
                          double y2,
                          double z2,
                          double x3,
                          double y3,
                          double z3,
                          double x4,
                          double y4,
                          double z4)

    - #### ISurface

          public ISurface(double x1,
                          double y1,
                          double z1,
                          double x2,
                          double y2,
                          double z2,
                          double x3,
                          double y3,
                          double z3)

    - #### ISurface

          public ISurface(double[][][] xyzValues)

    - #### ISurface

          public ISurface(double[][][] xyzValues,
                          int udeg,
                          int vdeg)

    - #### ISurface

          public ISurface(double[][][] xyzValues,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(double[][][] xyzValues,
                          int udeg,
                          int vdeg,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(ICurveI trimCurve)

    - #### ISurface

          public ISurface(ICurveI trimCurve,
                          ICurveI[] innerTrimCurves)

    - #### ISurface

          public ISurface(ICurveI trimCurve,
                          ICurveI innerTrimCurve)

    - #### ISurface

          public ISurface(ICurveI[] trimCurves)

    - #### ISurface

          public ISurface(ICurveI[] outerTrimCurves,
                          ICurveI[][] innerTrimCurves)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          int trimCrvDeg)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          double[] trimCrvKnots)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          IVecI[] innerTrimCrvPts)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          IVecI[] innerTrimCrvPts,
                          int innerTrimCrvDeg)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          double[] trimCrvKnots,
                          IVecI[] innerTrimCrvPts,
                          int innerTrimCrvDeg,
                          double[] innerTrimCrvKnots)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          IVecI[][] innerTrimCrvPts)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          IVecI[][] innerTrimCrvPts,
                          int[] innerTrimCrvDeg)

    - #### ISurface

          public ISurface(IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          double[] trimCrvKnots,
                          IVecI[][] innerTrimCrvPts,
                          int[] innerTrimCrvDeg,
                          double[][] innerTrimCrvKnots)

    - #### ISurface

          public ISurface(ISurfaceGeo srf)

    - #### ISurface

          public ISurface(ISurfaceI srf)

    - #### ISurface

          public ISurface(IServerI s)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          double[] uknots,
                          double[] vknots,
                          double ustart,
                          double uend,
                          double vstart,
                          double vend)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          double[] uknots,
                          double[] vknots)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts,
                          int udegree,
                          int vdegree)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          boolean closeU,
                          double[] vk)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts,
                          int udegree,
                          int vdegree,
                          double[] uk,
                          boolean closeV)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[][] cpts,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI pt1,
                          IVecI pt2,
                          IVecI pt3,
                          IVecI pt4)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI pt1,
                          IVecI pt2,
                          IVecI pt3)

    - #### ISurface

          public ISurface(IServerI s,
                          double x1,
                          double y1,
                          double z1,
                          double x2,
                          double y2,
                          double z2,
                          double x3,
                          double y3,
                          double z3,
                          double x4,
                          double y4,
                          double z4)

    - #### ISurface

          public ISurface(IServerI s,
                          double x1,
                          double y1,
                          double z1,
                          double x2,
                          double y2,
                          double z2,
                          double x3,
                          double y3,
                          double z3)

    - #### ISurface

          public ISurface(IServerI s,
                          double[][][] xyzValues)

    - #### ISurface

          public ISurface(IServerI s,
                          double[][][] xyzValues,
                          int udeg,
                          int vdeg)

    - #### ISurface

          public ISurface(IServerI s,
                          double[][][] xyzValues,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(IServerI s,
                          double[][][] xyzValues,
                          int udeg,
                          int vdeg,
                          boolean closeU,
                          boolean closeV)

    - #### ISurface

          public ISurface(IServerI s,
                          ICurveI trimCurve)

    - #### ISurface

          public ISurface(IServerI s,
                          ICurveI trimCurve,
                          ICurveI[] innerTrimCurves)

    - #### ISurface

          public ISurface(IServerI s,
                          ICurveI trimCurve,
                          ICurveI innerTrimCurve)

    - #### ISurface

          public ISurface(IServerI s,
                          ICurveI[] trimCurves)

    - #### ISurface

          public ISurface(IServerI s,
                          ICurveI[] outerTrimCurves,
                          ICurveI[][] innerTrimCurves)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          int trimCrvDeg)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          double[] trimCrvKnots)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          IVecI[] innerTrimCrvPts)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          IVecI[] innerTrimCrvPts,
                          int innerTrimCrvDeg)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          double[] trimCrvKnots,
                          IVecI[] innerTrimCrvPts,
                          int innerTrimCrvDeg,
                          double[] innerTrimCrvKnots)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          IVecI[][] innerTrimCrvPts)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          IVecI[][] innerTrimCrvPts,
                          int[] innerTrimCrvDeg)

    - #### ISurface

          public ISurface(IServerI s,
                          IVecI[] trimCrvPts,
                          int trimCrvDeg,
                          double[] trimCrvKnots,
                          IVecI[][] innerTrimCrvPts,
                          int[] innerTrimCrvDeg,
                          double[][] innerTrimCrvKnots)

    - #### ISurface

          public ISurface(IServerI s,
                          ISurfaceGeo srf)

    - #### ISurface

          public ISurface(IServerI s,
                          ISurfaceI srf)

    - #### ISurface

          public ISurface(ISurface srf)

    - #### ISurface

          public ISurface(IServerI s,
                          ISurface srf)

  - ### Method Detail

    - #### initSurface

          public void initSurface(IServerI s)

    - #### createGraphic

          public IGraphicObject createGraphic(IGraphicMode m)

      Overrides:
        `createGraphic` in class `IObject`

    - #### isValid

          public boolean isValid()

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

    - #### get

          public ISurfaceGeo get()

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

    - #### dup

          public ISurface dup()

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

    - #### pt

          public IVec pt(IVec2I v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVec pt(IDoubleI u,
                         IDoubleI v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVec pt(double u,
                         double v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVec pt(double u,
                         double v,
                         double n)

      Specified by:
        `pt` in interface `ISurfaceI`
      Parameters:
        `u` - u coordinates in uv parameter space
        `v` - v coordinates in uv parameter space
        `n` - length in normal direction in 3D space

    - #### pt

          public IVec pt(IDoubleI u,
                         IDoubleI v,
                         IDoubleI n)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVec pt(IVecI v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### utan

          public IVec utan(IVec2I v)

      Specified by:
        `utan` in interface `ISurfaceI`

    - #### utan

          public IVec utan(IDoubleI u,
                           IDoubleI v)

      Specified by:
        `utan` in interface `ISurfaceI`

    - #### utan

          public IVec utan(double u,
                           double v)

      Specified by:
        `utan` in interface `ISurfaceI`

    - #### vtan

          public IVec vtan(IVec2I v)

      Specified by:
        `vtan` in interface `ISurfaceI`

    - #### vtan

          public IVec vtan(IDoubleI u,
                           IDoubleI v)

      Specified by:
        `vtan` in interface `ISurfaceI`

    - #### vtan

          public IVec vtan(double u,
                           double v)

      Specified by:
        `vtan` in interface `ISurfaceI`

    - #### normal

          public IVec normal(IVec2I v)

      alias of nml
      Specified by:
        `normal` in interface `ISurfaceI`

    - #### normal

          public IVec normal(IDoubleI u,
                             IDoubleI v)

      alias of nml
      Specified by:
        `normal` in interface `ISurfaceI`

    - #### normal

          public IVec normal(double u,
                             double v)

      alias of nml
      Specified by:
        `normal` in interface `ISurfaceI`

    - #### nrml

          public IVec nrml(IVec2I v)

      alias of nml
      Specified by:
        `nrml` in interface `ISurfaceI`

    - #### nrml

          public IVec nrml(IDoubleI u,
                           IDoubleI v)

      alias of nml
      Specified by:
        `nrml` in interface `ISurfaceI`

    - #### nrml

          public IVec nrml(double u,
                           double v)

      alias of nml
      Specified by:
        `nrml` in interface `ISurfaceI`

    - #### nml

          public IVec nml(IVec2I v)

      getting normal vector
      Specified by:
        `nml` in interface `ISurfaceI`

    - #### nml

          public IVec nml(IDoubleI u,
                          IDoubleI v)

      getting normal vector
      Specified by:
        `nml` in interface `ISurfaceI`

    - #### nml

          public IVec nml(double u,
                          double v)

      getting normal vector
      Specified by:
        `nml` in interface `ISurfaceI`

    - #### cp

          public IVec cp(int i,
                         int j)

      getting control point at i and j
      Specified by:
        `cp` in interface `ISurfaceI`

    - #### cp

          public IVecI cp(IIntegerI i,
                          IIntegerI j)

      getting control point at i and j
      Specified by:
        `cp` in interface `ISurfaceI`

    - #### cps

          public IVecI[][] cps()

      Specified by:
        `cps` in interface `ISurfaceI`

    - #### ep

          public IVec ep(int i,
                         int j)

      getting edit point at i and j
      Specified by:
        `ep` in interface `ISurfaceI`

    - #### ep

          public IVec ep(IIntegerI i,
                         IIntegerI j)

      getting edit point at i and j
      Specified by:
        `ep` in interface `ISurfaceI`

    - #### corner

          public IVec corner(int i,
                             int j)

      Specified by:
        `corner` in interface `ISurfaceI`

    - #### corner

          public IVec corner(IIntegerI i,
                             IIntegerI j)

      Specified by:
        `corner` in interface `ISurfaceI`

    - #### cornerCP

          public IVec cornerCP(int i,
                               int j)

      Specified by:
        `cornerCP` in interface `ISurfaceI`

    - #### cornerCP

          public IVecI cornerCP(IIntegerI i,
                                IIntegerI j)

      Specified by:
        `cornerCP` in interface `ISurfaceI`

    - #### addUCP

          public ISurface addUCP(IVecI[] pts)

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

    - #### addVCP

          public ISurface addVCP(IVecI[] pts)

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

    - #### mid

          public IVec mid()

      mid in UV parameter (u=0.5, v=0.5) point on a surface
      Specified by:
        `mid` in interface `ISurfaceI`

    - #### center

          public IVec center()

      returns center of geometry object
      Specified by:
        `center` in interface `ISurfaceI`
      Specified by:
        `center` in class `IGeometry`

    - #### uv

          public IVec2 uv(IVecI pt)

      approximate invert projection from 3D location to interanl UV parameter (closest point on surface)
      Specified by:
        `uv` in interface `ISurfaceI`

    - #### uv

          public IVec2 uv(IVec2I pt)

      approximate invert projection from 2D location to interanl UV parameter (closest point on surface)
      Specified by:
        `uv` in interface `ISurfaceI`

    - #### closePt

          public IVec closePt(IVecI pt)

      find approximately closest point on a surface
      Specified by:
        `closePt` in interface `ISurfaceI`

    - #### closePt

          public IVec closePt(IVec2I pt)

      find approximately closest point on a surface on 2D
      Specified by:
        `closePt` in interface `ISurfaceI`

    - #### dist

          public double dist(IVecI pt)

      distance to the closest point on a surface
      Specified by:
        `dist` in interface `ISurfaceI`

    - #### dist

          public double dist(IVec2I pt)

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

    - #### uknot

          public double uknot(int i)

      Specified by:
        `uknot` in interface `ISurfaceI`

    - #### uknot

          public IDouble uknot(IIntegerI i)

      Specified by:
        `uknot` in interface `ISurfaceI`

    - #### vknot

          public double vknot(int i)

      Specified by:
        `vknot` in interface `ISurfaceI`

    - #### vknot

          public IDouble vknot(IIntegerI i)

      Specified by:
        `vknot` in interface `ISurfaceI`

    - #### uknots

          public double[] uknots()

      Specified by:
        `uknots` in interface `ISurfaceI`

    - #### vknots

          public double[] vknots()

      Specified by:
        `vknots` in interface `ISurfaceI`

    - #### uknots

          public double[] uknots(ISwitchE e)

      Specified by:
        `uknots` in interface `ISurfaceI`

    - #### vknots

          public double[] vknots(ISwitchE e)

      Specified by:
        `vknots` in interface `ISurfaceI`

    - #### uknots

          public IDoubleI[] uknots(ISwitchR r)

      Specified by:
        `uknots` in interface `ISurfaceI`

    - #### vknots

          public IDoubleI[] vknots(ISwitchR r)

      Specified by:
        `vknots` in interface `ISurfaceI`

    - #### uknotNum

          public int uknotNum()

      Specified by:
        `uknotNum` in interface `ISurfaceI`

    - #### vknotNum

          public int vknotNum()

      Specified by:
        `vknotNum` in interface `ISurfaceI`

    - #### uknotNum

          public int uknotNum(ISwitchE e)

      Specified by:
        `uknotNum` in interface `ISurfaceI`

    - #### vknotNum

          public int vknotNum(ISwitchE e)

      Specified by:
        `vknotNum` in interface `ISurfaceI`

    - #### uknotNum

          public IInteger uknotNum(ISwitchR r)

      Specified by:
        `uknotNum` in interface `ISurfaceI`

    - #### vknotNum

          public IInteger vknotNum(ISwitchR r)

      Specified by:
        `vknotNum` in interface `ISurfaceI`

    - #### isRational

          public boolean isRational()

      Specified by:
        `isRational` in interface `ISurfaceI`
      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 `ISurfaceI`

    - #### isRational

          public IBool isRational(ISwitchR r)

      Specified by:
        `isRational` in interface `ISurfaceI`

    - #### udeg

          public int udeg()

      Specified by:
        `udeg` in interface `ISurfaceI`

    - #### vdeg

          public int vdeg()

      Specified by:
        `vdeg` in interface `ISurfaceI`

    - #### udeg

          public int udeg(ISwitchE e)

      Specified by:
        `udeg` in interface `ISurfaceI`

    - #### vdeg

          public int vdeg(ISwitchE e)

      Specified by:
        `vdeg` in interface `ISurfaceI`

    - #### udeg

          public IInteger udeg(ISwitchR r)

      Specified by:
        `udeg` in interface `ISurfaceI`

    - #### vdeg

          public IInteger vdeg(ISwitchR r)

      Specified by:
        `vdeg` in interface `ISurfaceI`

    - #### unum

          public int unum()

      Specified by:
        `unum` in interface `ISurfaceI`

    - #### vnum

          public int vnum()

      Specified by:
        `vnum` in interface `ISurfaceI`

    - #### unum

          public int unum(ISwitchE e)

      Specified by:
        `unum` in interface `ISurfaceI`

    - #### vnum

          public int vnum(ISwitchE e)

      Specified by:
        `vnum` in interface `ISurfaceI`

    - #### unum

          public IInteger unum(ISwitchR r)

      Specified by:
        `unum` in interface `ISurfaceI`

    - #### vnum

          public IInteger vnum(ISwitchR r)

      Specified by:
        `vnum` in interface `ISurfaceI`

    - #### ucpNum

          public int ucpNum()

      Specified by:
        `ucpNum` in interface `ISurfaceI`

    - #### vcpNum

          public int vcpNum()

      Specified by:
        `vcpNum` in interface `ISurfaceI`

    - #### ucpNum

          public int ucpNum(ISwitchE e)

      Specified by:
        `ucpNum` in interface `ISurfaceI`

    - #### vcpNum

          public int vcpNum(ISwitchE e)

      Specified by:
        `vcpNum` in interface `ISurfaceI`

    - #### ucpNum

          public IInteger ucpNum(ISwitchR r)

      Specified by:
        `ucpNum` in interface `ISurfaceI`

    - #### vcpNum

          public IInteger vcpNum(ISwitchR r)

      Specified by:
        `vcpNum` in interface `ISurfaceI`

    - #### uepNum

          public int uepNum()

      Specified by:
        `uepNum` in interface `ISurfaceI`

    - #### vepNum

          public int vepNum()

      Specified by:
        `vepNum` in interface `ISurfaceI`

    - #### uepNum

          public int uepNum(ISwitchE e)

      Specified by:
        `uepNum` in interface `ISurfaceI`

    - #### vepNum

          public int vepNum(ISwitchE e)

      Specified by:
        `vepNum` in interface `ISurfaceI`

    - #### uepNum

          public IInteger uepNum(ISwitchR r)

      Specified by:
        `uepNum` in interface `ISurfaceI`

    - #### vepNum

          public IInteger vepNum(ISwitchR r)

      Specified by:
        `vepNum` in interface `ISurfaceI`

    - #### u

          public double u(int epIdx,
                          double epFraction)

      Specified by:
        `u` in interface `ISurfaceI`

    - #### u

          public IDouble u(IIntegerI epIdx,
                           IDoubleI epFraction)

      Specified by:
        `u` in interface `ISurfaceI`

    - #### v

          public double v(int epIdx,
                          double epFraction)

      Specified by:
        `v` in interface `ISurfaceI`

    - #### v

          public IDouble v(IIntegerI epIdx,
                           IDoubleI epFraction)

      Specified by:
        `v` in interface `ISurfaceI`

    - #### ustart

          public double ustart()

      Description copied from interface: `ISurfaceI`
      original knots start value and end value
      Specified by:
        `ustart` in interface `ISurfaceI`

    - #### uend

          public double uend()

      Specified by:
        `uend` in interface `ISurfaceI`

    - #### vstart

          public double vstart()

      Specified by:
        `vstart` in interface `ISurfaceI`

    - #### vend

          public double vend()

      Specified by:
        `vend` in interface `ISurfaceI`

    - #### ustart

          public double ustart(ISwitchE e)

      Specified by:
        `ustart` in interface `ISurfaceI`

    - #### uend

          public double uend(ISwitchE e)

      Specified by:
        `uend` in interface `ISurfaceI`

    - #### vstart

          public double vstart(ISwitchE e)

      Specified by:
        `vstart` in interface `ISurfaceI`

    - #### vend

          public double vend(ISwitchE e)

      Specified by:
        `vend` in interface `ISurfaceI`

    - #### ustart

          public IDouble ustart(ISwitchR r)

      Specified by:
        `ustart` in interface `ISurfaceI`

    - #### uend

          public IDouble uend(ISwitchR r)

      Specified by:
        `uend` in interface `ISurfaceI`

    - #### vstart

          public IDouble vstart(ISwitchR r)

      Specified by:
        `vstart` in interface `ISurfaceI`

    - #### vend

          public IDouble vend(ISwitchR r)

      Specified by:
        `vend` in interface `ISurfaceI`

    - #### revU

          public ISurface revU()

      reverse U parameter internally without creating a new instance
      Specified by:
        `revU` in interface `ISurfaceI`

    - #### revV

          public ISurface revV()

      reverse V parameter internally without creating a new instance
      Specified by:
        `revV` in interface `ISurfaceI`

    - #### revUV

          public ISurface revUV()

      reverse U and V parameter internally without creating a new instance
      Specified by:
        `revUV` in interface `ISurfaceI`

    - #### revN

          public ISurface revN()

      reverse normal direction by reversing V direction (UV and normal is dependent
      Specified by:
        `revN` in interface `ISurfaceI`

    - #### flipU

          public ISurface flipU()

      alias of revU()
      Specified by:
        `flipU` in interface `ISurfaceI`

    - #### flipV

          public ISurface flipV()

      alias of revV()
      Specified by:
        `flipV` in interface `ISurfaceI`

    - #### flipUV

          public ISurface flipUV()

      alias of revUV()
      Specified by:
        `flipUV` in interface `ISurfaceI`

    - #### flipN

          public ISurface flipN()

      alias of flipN()
      Specified by:
        `flipN` in interface `ISurfaceI`

    - #### swapUV

          public ISurface swapUV()

      swap U and V parameter
      Specified by:
        `swapUV` in interface `ISurfaceI`

    - #### hasTrim

          public boolean hasTrim()

      Specified by:
        `hasTrim` in interface `ISurfaceI`

    - #### hasTrim

          public boolean hasTrim(ISwitchE e)

      Specified by:
        `hasTrim` in interface `ISurfaceI`

    - #### hasTrim

          public IBool hasTrim(ISwitchR r)

      Specified by:
        `hasTrim` in interface `ISurfaceI`

    - #### hasInnerTrim

          public boolean hasInnerTrim()

      Specified by:
        `hasInnerTrim` in interface `ISurfaceI`

    - #### hasInnerTrim

          public boolean hasInnerTrim(ISwitchE e)

      Specified by:
        `hasInnerTrim` in interface `ISurfaceI`

    - #### hasInnerTrim

          public IBool hasInnerTrim(ISwitchR r)

      Specified by:
        `hasInnerTrim` in interface `ISurfaceI`

    - #### hasOuterTrim

          public boolean hasOuterTrim()

      Specified by:
        `hasOuterTrim` in interface `ISurfaceI`

    - #### hasOuterTrim

          public boolean hasOuterTrim(ISwitchE e)

      Specified by:
        `hasOuterTrim` in interface `ISurfaceI`

    - #### hasOuterTrim

          public IBool hasOuterTrim(ISwitchR r)

      Specified by:
        `hasOuterTrim` in interface `ISurfaceI`

    - #### innerTrimLoopNum

          public int innerTrimLoopNum()

      Specified by:
        `innerTrimLoopNum` in interface `ISurfaceI`

    - #### innerTrimLoopNum

          public int innerTrimLoopNum(ISwitchE e)

      Specified by:
        `innerTrimLoopNum` in interface `ISurfaceI`

    - #### innerTrimLoopNum

          public IInteger innerTrimLoopNum(ISwitchR r)

      Specified by:
        `innerTrimLoopNum` in interface `ISurfaceI`

    - #### innerTrimNum

          public int innerTrimNum(int i)

      Specified by:
        `innerTrimNum` in interface `ISurfaceI`

    - #### innerTrimNum

          public IInteger innerTrimNum(IIntegerI i)

      Specified by:
        `innerTrimNum` in interface `ISurfaceI`

    - #### innerTrimLoop

          public ITrimCurveI[] innerTrimLoop(int i)

      Specified by:
        `innerTrimLoop` in interface `ISurfaceI`

    - #### innerTrimLoop

          public ITrimCurveI[] innerTrimLoop(IIntegerI i)

      Specified by:
        `innerTrimLoop` in interface `ISurfaceI`

    - #### innerTrim

          public ITrimCurveI innerTrim(int i,
                                       int j)

      Specified by:
        `innerTrim` in interface `ISurfaceI`

    - #### innerTrim

          public ITrimCurveI innerTrim(IIntegerI i,
                                       IIntegerI j)

      Specified by:
        `innerTrim` in interface `ISurfaceI`

    - #### outerTrimLoopNum

          public int outerTrimLoopNum()

      Specified by:
        `outerTrimLoopNum` in interface `ISurfaceI`

    - #### outerTrimLoopNum

          public int outerTrimLoopNum(ISwitchE e)

      Specified by:
        `outerTrimLoopNum` in interface `ISurfaceI`

    - #### outerTrimLoopNum

          public IInteger outerTrimLoopNum(ISwitchR r)

      Specified by:
        `outerTrimLoopNum` in interface `ISurfaceI`

    - #### outerTrimNum

          public int outerTrimNum(int i)

      Specified by:
        `outerTrimNum` in interface `ISurfaceI`

    - #### outerTrimNum

          public IIntegerI outerTrimNum(IIntegerI i)

      Specified by:
        `outerTrimNum` in interface `ISurfaceI`

    - #### outerTrimLoop

          public ITrimCurveI[] outerTrimLoop(int i)

      Specified by:
        `outerTrimLoop` in interface `ISurfaceI`

    - #### outerTrimLoop

          public ITrimCurveI[] outerTrimLoop(IIntegerI i)

      Specified by:
        `outerTrimLoop` in interface `ISurfaceI`

    - #### outerTrim

          public ITrimCurveI outerTrim(int i,
                                       int j)

      Specified by:
        `outerTrim` in interface `ISurfaceI`

    - #### outerTrim

          public ITrimCurveI outerTrim(IIntegerI i,
                                       IIntegerI j)

      Specified by:
        `outerTrim` in interface `ISurfaceI`

    - #### hasDefaultTrim

          public boolean hasDefaultTrim()

      Description copied from interface: `ISurfaceI`
      check if it has default rectangular outer trim
      Specified by:
        `hasDefaultTrim` in interface `ISurfaceI`

    - #### hasDefaultTrim

          public boolean hasDefaultTrim(ISwitchE e)

      Specified by:
        `hasDefaultTrim` in interface `ISurfaceI`

    - #### hasDefaultTrim

          public IBool hasDefaultTrim(ISwitchR r)

      Specified by:
        `hasDefaultTrim` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurface addInnerTrimLoop(ITrimCurveI trim)

      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`
      Parameters:
        `trim` - trim curve needs to be closed

    - #### addOuterTrimLoop

          public ISurface addOuterTrimLoop(ITrimCurveI trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurface addInnerTrimLoop(ITrimCurveI[] trim)

      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`
      Parameters:
        `trim` - array of trim curves need to form closed loop

    - #### addOuterTrimLoop

          public ISurface addOuterTrimLoop(ITrimCurveI[] trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurface addInnerTrimLoop(ICurveI trim)

      Description copied from interface: `ISurfaceI`
      input trim curves is deleted as default if it inherits IObject like ICurve or ICurveR
      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`

    - #### addOuterTrimLoop

          public ISurface addOuterTrimLoop(ICurveI trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurface addInnerTrimLoop(ICurveI trim,
                                           boolean deleteInput)

      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`

    - #### addOuterTrimLoop

          public ISurface addOuterTrimLoop(ICurveI trim,
                                           boolean deleteInput)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurface addInnerTrimLoop(ICurveI[] trim)

      Description copied from interface: `ISurfaceI`
      input trim curves is deleted as default if it inherits IObject like ICurve or ICurveR
      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`

    - #### addOuterTrimLoop

          public ISurface addOuterTrimLoop(ICurveI[] trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurface addInnerTrimLoop(ICurveI[] trim,
                                           boolean deleteInput)

      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`

    - #### addOuterTrimLoop

          public ISurface addOuterTrimLoop(ICurveI[] trim,
                                           boolean deleteInput)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### clearInnerTrim

          public ISurface clearInnerTrim()

      Specified by:
        `clearInnerTrim` in interface `ISurfaceI`

    - #### clearOuterTrim

          public ISurface clearOuterTrim()

      Specified by:
        `clearOuterTrim` in interface `ISurfaceI`

    - #### clearTrim

          public ISurface clearTrim()

      Specified by:
        `clearTrim` in interface `ISurfaceI`

    - #### isFlat

          public boolean isFlat()

      Specified by:
        `isFlat` in interface `ISurfaceI`

    - #### isFlat

          public boolean isFlat(ISwitchE e)

      Specified by:
        `isFlat` in interface `ISurfaceI`

    - #### isFlat

          public IBool isFlat(ISwitchR r)

      Specified by:
        `isFlat` in interface `ISurfaceI`

    - #### isUClosed

          public boolean isUClosed()

      Specified by:
        `isUClosed` in interface `ISurfaceI`

    - #### isUClosed

          public boolean isUClosed(ISwitchE e)

      Specified by:
        `isUClosed` in interface `ISurfaceI`

    - #### isUClosed

          public IBool isUClosed(ISwitchR r)

      Specified by:
        `isUClosed` in interface `ISurfaceI`

    - #### isVClosed

          public boolean isVClosed()

      Specified by:
        `isVClosed` in interface `ISurfaceI`

    - #### isVClosed

          public boolean isVClosed(ISwitchE e)

      Specified by:
        `isVClosed` in interface `ISurfaceI`

    - #### isVClosed

          public IBool isVClosed(ISwitchR r)

      Specified by:
        `isVClosed` in interface `ISurfaceI`

    - #### isInsideTrim

          public boolean isInsideTrim(double u,
                                      double v)

    - #### isInsideTrim

          public boolean isInsideTrim(IVec2 v)

    - #### isInsideTrim

          public boolean isInsideTrim(IVec2I v)

    - #### add

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

      transformation methods; API of ITransformable interface
      Specified by:
        `add` in interface `ISurfaceI`
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in class `IGeometry`

    - #### add

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

      Specified by:
        `add` in interface `ISurfaceI`
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in class `IGeometry`

    - #### add

          public ISurface add(IVecI v)

      Specified by:
        `add` in interface `ISurfaceI`
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in class `IGeometry`

    - #### sub

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

      Specified by:
        `sub` in interface `ISurfaceI`
      Specified by:
        `sub` in interface `ITransformable`
      Specified by:
        `sub` in class `IGeometry`

    - #### sub

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

      Specified by:
        `sub` in interface `ISurfaceI`
      Specified by:
        `sub` in interface `ITransformable`
      Specified by:
        `sub` in class `IGeometry`

    - #### sub

          public ISurface sub(IVecI v)

      Specified by:
        `sub` in interface `ISurfaceI`
      Specified by:
        `sub` in interface `ITransformable`
      Specified by:
        `sub` in class `IGeometry`

    - #### mul

          public ISurface mul(IDoubleI v)

      Specified by:
        `mul` in interface `ISurfaceI`
      Specified by:
        `mul` in interface `ITransformable`
      Specified by:
        `mul` in class `IGeometry`

    - #### mul

          public ISurface mul(double v)

      Specified by:
        `mul` in interface `ISurfaceI`
      Specified by:
        `mul` in interface `ITransformable`
      Specified by:
        `mul` in class `IGeometry`

    - #### div

          public ISurface div(IDoubleI v)

      Specified by:
        `div` in interface `ISurfaceI`
      Specified by:
        `div` in interface `ITransformable`
      Specified by:
        `div` in class `IGeometry`

    - #### div

          public ISurface div(double v)

      Specified by:
        `div` in interface `ISurfaceI`
      Specified by:
        `div` in interface `ITransformable`
      Specified by:
        `div` in class `IGeometry`

    - #### neg

          public ISurface neg()

      Specified by:
        `neg` in interface `ISurfaceI`
      Specified by:
        `neg` in interface `ITransformable`
      Specified by:
        `neg` in class `IGeometry`

    - #### flip

          public ISurface flip()

      alias of neg
      Specified by:
        `flip` in interface `ISurfaceI`
      Specified by:
        `flip` in interface `ITransformable`
      Specified by:
        `flip` in class `IGeometry`

    - #### add

          public ISurface add(IVecI v,
                              double f)

      scale add
      Specified by:
        `add` in interface `ISurfaceI`
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in class `IGeometry`

    - #### add

          public ISurface add(IVecI v,
                              IDoubleI f)

      Description copied from class: `IGeometry`
      scale add
      Specified by:
        `add` in interface `ISurfaceI`
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in class `IGeometry`

    - #### add

          public ISurface add(double f,
                              IVecI v)

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

    - #### add

          public ISurface add(IDoubleI f,
                              IVecI v)

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

    - #### rot

          public ISurface rot(IDoubleI angle)

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

    - #### rot

          public ISurface rot(double angle)

      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in class `IGeometry`

    - #### rot

          public ISurface rot(IVecI axis,
                              IDoubleI angle)

      Description copied from class: `IGeometry`
      rotation around axis vector
      Specified by:
        `rot` in interface `ISurfaceI`
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in class `IGeometry`

    - #### rot

          public ISurface rot(IVecI axis,
                              double angle)

      Specified by:
        `rot` in interface `ISurfaceI`
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in class `IGeometry`

    - #### rot

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

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

    - #### rot

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

      Specified by:
        `rot` in interface `ISurfaceI`
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in class `IGeometry`

    - #### rot

          public ISurface rot(IVecI axis,
                              IVecI destDir)

      rotate to destination direction vector
      Specified by:
        `rot` in interface `ISurfaceI`
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in class `IGeometry`

    - #### rot

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

      rotate to destination point location
      Specified by:
        `rot` in interface `ISurfaceI`
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in class `IGeometry`

    - #### rot2

          public ISurface rot2(IDoubleI angle)

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

    - #### rot2

          public ISurface rot2(double angle)

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

    - #### rot2

          public ISurface rot2(IVecI center,
                               IDoubleI angle)

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

    - #### rot2

          public ISurface rot2(IVecI center,
                               double angle)

      Specified by:
        `rot2` in interface `ITransformable`
      Specified by:
        `rot2` in class `IGeometry`

    - #### rot2

          public ISurface rot2(IVecI destDir)

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

    - #### rot2

          public ISurface rot2(IVecI center,
                               IVecI destPt)

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

    - #### scale

          public ISurface scale(IDoubleI f)

      alias of mul
      Specified by:
        `scale` in interface `ISurfaceI`
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in class `IGeometry`

    - #### scale

          public ISurface scale(double f)

      Specified by:
        `scale` in interface `ISurfaceI`
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in class `IGeometry`

    - #### scale

          public ISurface scale(IVecI center,
                                IDoubleI f)

      Specified by:
        `scale` in interface `ISurfaceI`
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in class `IGeometry`

    - #### scale

          public ISurface scale(IVecI center,
                                double f)

      Specified by:
        `scale` in interface `ISurfaceI`
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in class `IGeometry`

    - #### scale1d

          public ISurface scale1d(IVecI axis,
                                  double f)

      scale only in 1 direction
      Specified by:
        `scale1d` in interface `ISurfaceI`
      Specified by:
        `scale1d` in interface `ITransformable`
      Specified by:
        `scale1d` in class `IGeometry`

    - #### scale1d

          public ISurface scale1d(IVecI axis,
                                  IDoubleI f)

      Specified by:
        `scale1d` in interface `ISurfaceI`
      Specified by:
        `scale1d` in interface `ITransformable`
      Specified by:
        `scale1d` in class `IGeometry`

    - #### scale1d

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

      Specified by:
        `scale1d` in interface `ISurfaceI`
      Specified by:
        `scale1d` in interface `ITransformable`
      Specified by:
        `scale1d` in class `IGeometry`

    - #### scale1d

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

      Specified by:
        `scale1d` in interface `ISurfaceI`
      Specified by:
        `scale1d` in interface `ITransformable`
      Specified by:
        `scale1d` in class `IGeometry`

    - #### ref

          public ISurface ref(IVecI planeDir)

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

    - #### ref

          public ISurface ref(IVecI center,
                              IVecI planeDir)

      Specified by:
        `ref` in interface `ISurfaceI`
      Specified by:
        `ref` in interface `ITransformable`
      Specified by:
        `ref` in class `IGeometry`

    - #### mirror

          public ISurface mirror(IVecI planeDir)

      mirror is alias of ref
      Specified by:
        `mirror` in interface `ISurfaceI`
      Specified by:
        `mirror` in interface `ITransformable`
      Specified by:
        `mirror` in class `IGeometry`

    - #### mirror

          public ISurface mirror(IVecI center,
                                 IVecI planeDir)

      Specified by:
        `mirror` in interface `ISurfaceI`
      Specified by:
        `mirror` in interface `ITransformable`
      Specified by:
        `mirror` in class `IGeometry`

    - #### shear

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

      shear operation
      Specified by:
        `shear` in interface `ISurfaceI`
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in class `IGeometry`

    - #### shear

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

      Specified by:
        `shear` in interface `ISurfaceI`
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in class `IGeometry`

    - #### shear

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

      Specified by:
        `shear` in interface `ISurfaceI`
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in class `IGeometry`

    - #### shear

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

      Specified by:
        `shear` in interface `ISurfaceI`
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in class `IGeometry`

    - #### shearXY

          public ISurface shearXY(double sxy,
                                  double syx)

      Specified by:
        `shearXY` in interface `ISurfaceI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in class `IGeometry`

    - #### shearXY

          public ISurface shearXY(IDoubleI sxy,
                                  IDoubleI syx)

      Specified by:
        `shearXY` in interface `ISurfaceI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in class `IGeometry`

    - #### shearXY

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

      Specified by:
        `shearXY` in interface `ISurfaceI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in class `IGeometry`

    - #### shearXY

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

      Specified by:
        `shearXY` in interface `ISurfaceI`
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in class `IGeometry`

    - #### shearYZ

          public ISurface shearYZ(double syz,
                                  double szy)

      Specified by:
        `shearYZ` in interface `ISurfaceI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in class `IGeometry`

    - #### shearYZ

          public ISurface shearYZ(IDoubleI syz,
                                  IDoubleI szy)

      Specified by:
        `shearYZ` in interface `ISurfaceI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in class `IGeometry`

    - #### shearYZ

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

      Specified by:
        `shearYZ` in interface `ISurfaceI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in class `IGeometry`

    - #### shearYZ

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

      Specified by:
        `shearYZ` in interface `ISurfaceI`
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in class `IGeometry`

    - #### shearZX

          public ISurface shearZX(double szx,
                                  double sxz)

      Specified by:
        `shearZX` in interface `ISurfaceI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in class `IGeometry`

    - #### shearZX

          public ISurface shearZX(IDoubleI szx,
                                  IDoubleI sxz)

      Specified by:
        `shearZX` in interface `ISurfaceI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in class `IGeometry`

    - #### shearZX

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

      Specified by:
        `shearZX` in interface `ISurfaceI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in class `IGeometry`

    - #### shearZX

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

      Specified by:
        `shearZX` in interface `ISurfaceI`
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in class `IGeometry`

    - #### mv

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

      mv() is alias of add()
      Specified by:
        `mv` in interface `ISurfaceI`
      Specified by:
        `mv` in interface `ITransformable`
      Specified by:
        `mv` in class `IGeometry`

    - #### mv

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

      Specified by:
        `mv` in interface `ISurfaceI`
      Specified by:
        `mv` in interface `ITransformable`
      Specified by:
        `mv` in class `IGeometry`

    - #### mv

          public ISurface mv(IVecI v)

      Specified by:
        `mv` in interface `ISurfaceI`
      Specified by:
        `mv` in interface `ITransformable`
      Specified by:
        `mv` in class `IGeometry`

    - #### cp

          public ISurface cp()

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

    - #### cp

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

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

    - #### cp

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

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

    - #### cp

          public ISurface cp(IVecI v)

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

    - #### translate

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

      translate() is alias of add()
      Specified by:
        `translate` in interface `ISurfaceI`
      Specified by:
        `translate` in interface `ITransformable`
      Specified by:
        `translate` in class `IGeometry`

    - #### translate

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

      Specified by:
        `translate` in interface `ISurfaceI`
      Specified by:
        `translate` in interface `ITransformable`
      Specified by:
        `translate` in class `IGeometry`

    - #### translate

          public ISurface translate(IVecI v)

      Specified by:
        `translate` in interface `ISurfaceI`
      Specified by:
        `translate` in interface `ITransformable`
      Specified by:
        `translate` in class `IGeometry`

    - #### transform

          public ISurface transform(IMatrix3I mat)

      Specified by:
        `transform` in interface `ISurfaceI`
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in class `IGeometry`

    - #### transform

          public ISurface transform(IMatrix4I mat)

      Specified by:
        `transform` in interface `ISurfaceI`
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in class `IGeometry`

    - #### transform

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

      Specified by:
        `transform` in interface `ISurfaceI`
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in class `IGeometry`

    - #### transform

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

      Specified by:
        `transform` in interface `ISurfaceI`
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in class `IGeometry`

    - #### name

          public ISurface name(java.lang.String nm)

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

    - #### layer

          public ISurface layer(ILayer l)

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

    - #### layer

          public ISurface layer(java.lang.String l)

      Description copied from class: `IGeometry`
      Set layer by layer name. If the layer specified by the name is not existing in the server, a new layer is automatically created in the server
      Overrides:
        `layer` in class `IGeometry`

    - #### attr

          public ISurface attr(IAttribute at)

      Description copied from class: `IObject`
      set attributes
      Overrides:
        `attr` in class `IGeometry`

    - #### hide

          public ISurface hide()

      Overrides:
        `hide` in class `IGeometry`

    - #### show

          public ISurface show()

      Overrides:
        `show` in class `IGeometry`

    - #### clr

          public ISurface clr(IColor c)

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

    - #### clr

          public ISurface clr(IColor c,
                              int alpha)

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

    - #### clr

          public ISurface clr(IColor c,
                              float alpha)

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

    - #### clr

          public ISurface clr(IColor c,
                              double alpha)

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

    - #### clr

          public ISurface clr(IObject o)

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

    - #### clr

          public ISurface clr(java.awt.Color c)

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

          public ISurface clr(int gray)

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

          public ISurface clr(float fgray)

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

          public ISurface clr(double dgray)

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

          public ISurface clr(int gray,
                              int alpha)

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

          public ISurface clr(float fgray,
                              float falpha)

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

          public ISurface clr(double dgray,
                              double dalpha)

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### clr

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

      Overrides:
        `clr` in class `IGeometry`

    - #### hsb

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

      Overrides:
        `hsb` in class `IGeometry`

    - #### hsb

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

      Overrides:
        `hsb` in class `IGeometry`

    - #### hsb

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

      Overrides:
        `hsb` in class `IGeometry`

    - #### hsb

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

      Overrides:
        `hsb` in class `IGeometry`

    - #### setColor

          public ISurface setColor(IColor c)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurface setColor(IColor c,
                                   int alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurface setColor(IColor c,
                                   float alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurface setColor(IColor c,
                                   double alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurface setColor(java.awt.Color c)

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

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

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

          public ISurface setColor(java.awt.Color c,
                                   float alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurface setColor(java.awt.Color c,
                                   double alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurface setColor(int gray)

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

          public ISurface setColor(float fgray)

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

          public ISurface setColor(double dgray)

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

          public ISurface setColor(int gray,
                                   int alpha)

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

          public ISurface setColor(float fgray,
                                   float falpha)

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

          public ISurface setColor(double dgray,
                                   double dalpha)

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

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

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

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

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

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

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

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

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

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

      Overrides:
        `setColor` in class `IGeometry`

    - #### setColor

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

      Overrides:
        `setColor` in class `IGeometry`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IGeometry`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IGeometry`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IGeometry`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IGeometry`

    - #### weight

          public ISurface weight(double w)

      Overrides:
        `weight` in class `IGeometry`

    - #### weight

          public ISurface weight(float w)

      Overrides:
        `weight` in class `IGeometry`