igeo

## Class ISurfaceR

- java.lang.Object
- - igeo.IObject
  - - igeo.ISurfaceR

- All Implemented Interfaces:
    IParameter, ISurfaceI, ISurfaceOp, ITransformable, IVal

      public class ISurfaceR
      extends IObject
      implements ISurfaceI

  Reference class of NURBS surface to contain any instance of ISurfaceI.
  Author:
    Satoru Sugihara

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ISurfaceR.IsFlat`
    `static class` | `ISurfaceR.IsUClosed`
    `static class` | `ISurfaceR.IsVClosed`
    `static class` | `ISurfaceR.Normal`
    `static class` | `ISurfaceR.Pt`
    `static class` | `ISurfaceR.UTan`
    `static class` | `ISurfaceR.UV`
    `static class` | `ISurfaceR.UV2`
    `static class` | `ISurfaceR.VTan`

  - ### Field Summary

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

    - ### Fields inherited from class igeo.IObject

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ISurfaceR()`
    `ISurfaceR(IServerI s)`
    `ISurfaceR(IServerI s, ISurfaceI srf)`
    `ISurfaceR(IServerI s, ISurfaceR srf)`
    `ISurfaceR(ISurfaceI srf)`
    `ISurfaceR(ISurfaceR srf)`

  - ### Method Summary

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

    - ### Methods inherited from class igeo.IObject

      `addDynamics, addUserData, addUserData, alpha, alphaInt, attr, 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, layer, name, red, redInt, resetGraphic, saturation, server, setColor, setColor, setColor, setColor, setColor, setColor, 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 ISurfaceI surface

  - ### Constructor Detail

    - #### ISurfaceR

          public ISurfaceR()

    - #### ISurfaceR

          public ISurfaceR(ISurfaceI srf)

    - #### ISurfaceR

          public ISurfaceR(IServerI s)

    - #### ISurfaceR

          public ISurfaceR(IServerI s,
                           ISurfaceI srf)

    - #### ISurfaceR

          public ISurfaceR(ISurfaceR srf)

    - #### ISurfaceR

          public ISurfaceR(IServerI s,
                           ISurfaceR 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 ISurfaceR dup()

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

    - #### pt

          public IVecR pt(IVec2I v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVecR pt(IDoubleI u,
                          IDoubleI v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVecR pt(double u,
                          double v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVecR 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 IVecR pt(IDoubleI u,
                          IDoubleI v,
                          IDoubleI n)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### pt

          public IVecR pt(IVecI v)

      Specified by:
        `pt` in interface `ISurfaceI`

    - #### utan

          public IVecR utan(IVec2I v)

      Specified by:
        `utan` in interface `ISurfaceI`

    - #### utan

          public IVecR utan(IDoubleI u,
                            IDoubleI v)

      Specified by:
        `utan` in interface `ISurfaceI`

    - #### utan

          public IVecR utan(double u,
                            double v)

      Specified by:
        `utan` in interface `ISurfaceI`

    - #### vtan

          public IVecR vtan(IVec2I v)

      Specified by:
        `vtan` in interface `ISurfaceI`

    - #### vtan

          public IVecR vtan(IDoubleI u,
                            IDoubleI v)

      Specified by:
        `vtan` in interface `ISurfaceI`

    - #### vtan

          public IVecR vtan(double u,
                            double v)

      Specified by:
        `vtan` in interface `ISurfaceI`

    - #### normal

          public IVecR normal(IVec2I v)

      Specified by:
        `normal` in interface `ISurfaceI`

    - #### normal

          public IVecR normal(IDoubleI u,
                              IDoubleI v)

      Specified by:
        `normal` in interface `ISurfaceI`

    - #### normal

          public IVecR normal(double u,
                              double v)

      Specified by:
        `normal` in interface `ISurfaceI`

    - #### nrml

          public IVecR nrml(IVec2I v)

      Specified by:
        `nrml` in interface `ISurfaceI`

    - #### nrml

          public IVecR nrml(IDoubleI u,
                            IDoubleI v)

      Specified by:
        `nrml` in interface `ISurfaceI`

    - #### nrml

          public IVecR nrml(double u,
                            double v)

      Specified by:
        `nrml` in interface `ISurfaceI`

    - #### nml

          public IVecR nml(IVec2I v)

      Specified by:
        `nml` in interface `ISurfaceI`

    - #### nml

          public IVecR nml(IDoubleI u,
                           IDoubleI v)

      Specified by:
        `nml` in interface `ISurfaceI`

    - #### nml

          public IVecR nml(double u,
                           double v)

      Description copied from interface: `ISurfaceI`
      alias of normal
      Specified by:
        `nml` in interface `ISurfaceI`

    - #### cp

          public IVecI cp(int i,
                          int j)

      Specified by:
        `cp` in interface `ISurfaceI`

    - #### cp

          public IVecI cp(IIntegerI i,
                          IIntegerI j)

      Specified by:
        `cp` in interface `ISurfaceI`

    - #### cps

          public IVecI[][] cps()

      Specified by:
        `cps` in interface `ISurfaceI`

    - #### ep

          public IVecR ep(int i,
                          int j)

      Specified by:
        `ep` in interface `ISurfaceI`

    - #### ep

          public IVecR ep(IIntegerI i,
                          IIntegerI j)

      Specified by:
        `ep` in interface `ISurfaceI`

    - #### corner

          public IVecR corner(int i,
                              int j)

      Specified by:
        `corner` in interface `ISurfaceI`

    - #### corner

          public IVecR corner(IIntegerI i,
                              IIntegerI j)

      Specified by:
        `corner` in interface `ISurfaceI`

    - #### cornerCP

          public IVecI 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`

    - #### mid

          public IVecR mid()

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

    - #### center

          public IVecI center()

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

    - #### uv

          public IVec2R 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 IVec2R 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 IVecR closePt(IVecI pt)

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

    - #### closePt

          public IVecR 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 IDoubleI uknot(IIntegerI i)

      Specified by:
        `uknot` in interface `ISurfaceI`

    - #### vknot

          public double vknot(int i)

      Specified by:
        `vknot` in interface `ISurfaceI`

    - #### vknot

          public IDoubleI 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 IIntegerI uknotNum(ISwitchR r)

      Specified by:
        `uknotNum` in interface `ISurfaceI`

    - #### vknotNum

          public IIntegerI 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 IBoolI 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 IIntegerI udeg(ISwitchR r)

      Specified by:
        `udeg` in interface `ISurfaceI`

    - #### vdeg

          public IIntegerI 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 IIntegerI unum(ISwitchR r)

      Specified by:
        `unum` in interface `ISurfaceI`

    - #### vnum

          public IIntegerI 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 IIntegerI ucpNum(ISwitchR r)

      Specified by:
        `ucpNum` in interface `ISurfaceI`

    - #### vcpNum

          public IIntegerI 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 IIntegerI uepNum(ISwitchR r)

      Specified by:
        `uepNum` in interface `ISurfaceI`

    - #### vepNum

          public IIntegerI 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 IDoubleI 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 IDoubleI 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 IDoubleI ustart(ISwitchR r)

      Specified by:
        `ustart` in interface `ISurfaceI`

    - #### uend

          public IDoubleI uend(ISwitchR r)

      Specified by:
        `uend` in interface `ISurfaceI`

    - #### vstart

          public IDoubleI vstart(ISwitchR r)

      Specified by:
        `vstart` in interface `ISurfaceI`

    - #### vend

          public IDoubleI vend(ISwitchR r)

      Specified by:
        `vend` in interface `ISurfaceI`

    - #### revU

          public ISurfaceR revU()

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

    - #### revV

          public ISurfaceR revV()

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

    - #### revUV

          public ISurfaceR revUV()

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

    - #### revN

          public ISurfaceR revN()

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

    - #### flipU

          public ISurfaceR flipU()

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

    - #### flipV

          public ISurfaceR flipV()

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

    - #### flipUV

          public ISurfaceR flipUV()

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

    - #### flipN

          public ISurfaceR flipN()

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

    - #### swapUV

          public ISurfaceR 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 IBoolI 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 IBoolI 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 IBoolI 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 IIntegerI innerTrimLoopNum(ISwitchR r)

      Specified by:
        `innerTrimLoopNum` in interface `ISurfaceI`

    - #### innerTrimNum

          public int innerTrimNum(int i)

      Specified by:
        `innerTrimNum` in interface `ISurfaceI`

    - #### innerTrimNum

          public IIntegerI 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 IIntegerI 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 IBoolI hasDefaultTrim(ISwitchR r)

      Specified by:
        `hasDefaultTrim` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurfaceR addInnerTrimLoop(ITrimCurveI trim)

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

    - #### addOuterTrimLoop

          public ISurfaceR addOuterTrimLoop(ITrimCurveI trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurfaceR addInnerTrimLoop(ITrimCurveI[] trim)

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

    - #### addOuterTrimLoop

          public ISurfaceR addOuterTrimLoop(ITrimCurveI[] trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurfaceR 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 ISurfaceR addOuterTrimLoop(ICurveI trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurfaceR addInnerTrimLoop(ICurveI trim,
                                            boolean deleteInput)

      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`

    - #### addOuterTrimLoop

          public ISurfaceR addOuterTrimLoop(ICurveI trim,
                                            boolean deleteInput)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

          public ISurfaceR 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 ISurfaceR addOuterTrimLoop(ICurveI[] trim)

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### addInnerTrimLoop

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

      Specified by:
        `addInnerTrimLoop` in interface `ISurfaceI`

    - #### addOuterTrimLoop

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

      Specified by:
        `addOuterTrimLoop` in interface `ISurfaceI`

    - #### clearInnerTrim

          public ISurfaceR clearInnerTrim()

      Specified by:
        `clearInnerTrim` in interface `ISurfaceI`

    - #### clearOuterTrim

          public ISurfaceR clearOuterTrim()

      Specified by:
        `clearOuterTrim` in interface `ISurfaceI`

    - #### clearTrim

          public ISurfaceR 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 IBoolI 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 IBoolI 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 IBoolI isVClosed(ISwitchR r)

      Specified by:
        `isVClosed` in interface `ISurfaceI`

    - #### add

          public ISurfaceR 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`

    - #### add

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

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

    - #### add

          public ISurfaceR add(IVecI v)

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

    - #### sub

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

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

    - #### sub

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

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

    - #### sub

          public ISurfaceR sub(IVecI v)

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

    - #### mul

          public ISurfaceR mul(IDoubleI v)

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

    - #### mul

          public ISurfaceR mul(double v)

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

    - #### div

          public ISurfaceR div(IDoubleI v)

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

    - #### div

          public ISurfaceR div(double v)

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

    - #### neg

          public ISurfaceR neg()

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

    - #### flip

          public ISurfaceR flip()

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

    - #### add

          public ISurfaceR add(IVecI v,
                               double f)

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

    - #### add

          public ISurfaceR add(IVecI v,
                               IDoubleI f)

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

    - #### add

          public ISurfaceR add(double f,
                               IVecI v)

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

    - #### add

          public ISurfaceR add(IDoubleI f,
                               IVecI v)

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

    - #### rot

          public ISurfaceR rot(IDoubleI angle)

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

    - #### rot

          public ISurfaceR rot(double angle)

      Specified by:
        `rot` in interface `ITransformable`

    - #### rot

          public ISurfaceR rot(IVecI axis,
                               IDoubleI angle)

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

    - #### rot

          public ISurfaceR rot(IVecI axis,
                               double angle)

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

    - #### rot

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

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

    - #### rot

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

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

    - #### rot

          public ISurfaceR rot(IVecI axis,
                               IVecI destDir)

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

    - #### rot

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

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

    - #### rot2

          public ISurfaceR rot2(IDoubleI angle)

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

    - #### rot2

          public ISurfaceR rot2(double angle)

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

    - #### rot2

          public ISurfaceR rot2(IVecI center,
                                IDoubleI angle)

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

    - #### rot2

          public ISurfaceR rot2(IVecI center,
                                double angle)

      Specified by:
        `rot2` in interface `ITransformable`

    - #### rot2

          public ISurfaceR rot2(IVecI destDir)

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

    - #### rot2

          public ISurfaceR rot2(IVecI center,
                                IVecI destPt)

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

    - #### scale

          public ISurfaceR scale(IDoubleI f)

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

    - #### scale

          public ISurfaceR scale(double f)

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

    - #### scale

          public ISurfaceR scale(IVecI center,
                                 IDoubleI f)

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

    - #### scale

          public ISurfaceR scale(IVecI center,
                                 double f)

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

    - #### scale1d

          public ISurfaceR scale1d(IVecI axis,
                                   double f)

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

    - #### scale1d

          public ISurfaceR scale1d(IVecI axis,
                                   IDoubleI f)

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

    - #### scale1d

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

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

    - #### scale1d

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

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

    - #### ref

          public ISurfaceR 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`

    - #### ref

          public ISurfaceR ref(IVecI center,
                               IVecI planeDir)

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

    - #### mirror

          public ISurfaceR mirror(IVecI planeDir)

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

    - #### mirror

          public ISurfaceR mirror(IVecI center,
                                  IVecI planeDir)

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

    - #### shear

          public ISurfaceR 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`

    - #### shear

          public ISurfaceR 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`

    - #### shear

          public ISurfaceR 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`

    - #### shear

          public ISurfaceR 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`

    - #### shearXY

          public ISurfaceR shearXY(double sxy,
                                   double syx)

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

    - #### shearXY

          public ISurfaceR shearXY(IDoubleI sxy,
                                   IDoubleI syx)

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

    - #### shearXY

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

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

    - #### shearXY

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

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

    - #### shearYZ

          public ISurfaceR shearYZ(double syz,
                                   double szy)

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

    - #### shearYZ

          public ISurfaceR shearYZ(IDoubleI syz,
                                   IDoubleI szy)

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

    - #### shearYZ

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

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

    - #### shearYZ

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

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

    - #### shearZX

          public ISurfaceR shearZX(double szx,
                                   double sxz)

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

    - #### shearZX

          public ISurfaceR shearZX(IDoubleI szx,
                                   IDoubleI sxz)

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

    - #### shearZX

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

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

    - #### shearZX

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

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

    - #### mv

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

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

    - #### mv

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

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

    - #### mv

          public ISurfaceR mv(IVecI v)

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

    - #### cp

          public ISurfaceR cp()

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

    - #### cp

          public ISurfaceR 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`

    - #### cp

          public ISurfaceR 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`

    - #### cp

          public ISurfaceR cp(IVecI v)

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

    - #### translate

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

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

    - #### translate

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

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

    - #### translate

          public ISurfaceR translate(IVecI v)

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

    - #### transform

          public ISurfaceR transform(IMatrix3I mat)

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

    - #### transform

          public ISurfaceR transform(IMatrix4I mat)

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

    - #### transform

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

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

    - #### transform

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

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

    - #### name

          public ISurfaceR name(java.lang.String nm)

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

    - #### layer

          public ISurfaceR layer(ILayer l)

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

    - #### hide

          public ISurfaceR hide()

      Overrides:
        `hide` in class `IObject`

    - #### show

          public ISurfaceR show()

      Overrides:
        `show` in class `IObject`

    - #### clr

          public ISurfaceR clr(IColor c)

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

    - #### clr

          public ISurfaceR clr(IColor c,
                               int alpha)

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

    - #### clr

          public ISurfaceR clr(IColor c,
                               float alpha)

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

    - #### clr

          public ISurfaceR clr(IColor c,
                               double alpha)

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

    - #### clr

          public ISurfaceR clr(java.awt.Color c)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ISurfaceR clr(IObject o)

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

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ISurfaceR clr(int gray)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ISurfaceR clr(float fgray)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ISurfaceR clr(double dgray)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ISurfaceR clr(int gray,
                               int alpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ISurfaceR clr(float fgray,
                               float falpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

          public ISurfaceR clr(double dgray,
                               double dalpha)

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### clr

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

      Overrides:
        `clr` in class `IObject`

    - #### hsb

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

      Overrides:
        `hsb` in class `IObject`

    - #### hsb

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

      Overrides:
        `hsb` in class `IObject`

    - #### hsb

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

      Overrides:
        `hsb` in class `IObject`

    - #### hsb

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

      Overrides:
        `hsb` in class `IObject`

    - #### setColor

          public ISurfaceR setColor(java.awt.Color c)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

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

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurfaceR setColor(int gray)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurfaceR setColor(float fgray)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurfaceR setColor(double dgray)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurfaceR setColor(int gray,
                                    int alpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurfaceR setColor(float fgray,
                                    float falpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

          public ISurfaceR setColor(double dgray,
                                    double dalpha)

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

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

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

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

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

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

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

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

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

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

      Overrides:
        `setColor` in class `IObject`

    - #### setColor

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

      Overrides:
        `setColor` in class `IObject`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IObject`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IObject`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IObject`

    - #### setHSBColor

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

      Overrides:
        `setHSBColor` in class `IObject`

    - #### weight

          public ISurfaceR weight(double w)

      Overrides:
        `weight` in class `IObject`

    - #### weight

          public ISurfaceR weight(float w)

      Overrides:
        `weight` in class `IObject`