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

    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(igeo.gui.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(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,
                  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(igeo.gui.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`