igeo

## Class IVertex

- java.lang.Object
- - igeo.IVertex

- All Implemented Interfaces:
    IArithmeticVal<IVecI,IDoubleI>, IParameter, ITransformable, IVal, IVecI, IVecOp

      public class IVertex
      extends java.lang.Object
      implements IVecI

  Class of a vertex of polygon mesh.
  Author:
    Satoru Sugihara

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `IVertex.ZComparator`
    `static class` | `IVertex.ZYXComparator`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `IColor` | `clr`
    `java.util.ArrayList<IEdge>` | `edges`
    `java.util.ArrayList<IFace>` | `faces`
    `int` | `index` index number in IMeshGeo vertices array list
    `java.util.ArrayList<IVertex>` | `linkedVertices`
    `IVecI` | `normal`
    `IVecI` | `pos`
    `IVec2I` | `texture`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IVertex()`
    `IVertex(double x, double y, double z)`
    `IVertex(IVec p)`
    `IVertex(IVec4 p)`
    `IVertex(IVecI p)`
    `IVertex(IVertex v)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `IVertex` | `add(double x, double y, double z)`
    `IVertex` | `add(double f, IVecI v)` scale add alias
    `IVertex` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVertex` | `add(IDoubleI f, IVecI v)` scale add alias
    `IVertex` | `add(IVecI v)`
    `IVertex` | `add(IVecI v, double f)` scale add
    `IVertex` | `add(IVecI v, IDoubleI f)` scale add
    `void` | `addEdge(IEdge e)`
    `void` | `addFace(IFace f)`
    `double` | `angle(double vx, double vy, double vz)` get angle between two vector from 0 to Pi
    `double` | `angle(double vx, double vy, double vz, double axisX, double axisY, double axisZ)`
    `double` | `angle(ISwitchE e, IVecI v)` get angle between two vector from 0 to Pi
    `double` | `angle(ISwitchE e, IVecI v, IVecI axis)`
    `IDoubleI` | `angle(ISwitchR r, IVecI v)` get angle between two vector from 0 to Pi
    `IDoubleI` | `angle(ISwitchR r, IVecI v, IVecI axis)`
    `double` | `angle(IVecI v)` get angle between two vector from 0 to Pi
    `double` | `angle(IVecI v, IVecI axis)`
    `IVecI` | `bisect(double vx, double vy, double vz)` create a new instance of bisector
    `IVecI` | `bisect(IVecI v)` create a new instance of bisector
    `void` | `calcNormal()`
    `IColor` | `clr()`
    `IVertex` | `clr(java.awt.Color c)`
    `IVertex` | `clr(java.awt.Color c, double alpha)`
    `IVertex` | `clr(java.awt.Color c, float alpha)`
    `IVertex` | `clr(java.awt.Color c, int alpha)`
    `IVertex` | `clr(double dgray)`
    `IVertex` | `clr(double dgray, double dalpha)`
    `IVertex` | `clr(double dr, double dg, double db)`
    `IVertex` | `clr(double dr, double dg, double db, double da)`
    `IVertex` | `clr(float fgray)`
    `IVertex` | `clr(float fgray, float falpha)`
    `IVertex` | `clr(float fr, float fg, float fb)`
    `IVertex` | `clr(float fr, float fg, float fb, float fa)`
    `IVertex` | `clr(IColor c)`
    `IVertex` | `clr(IColor c, double alpha)` to set color, with alpha value overwritten
    `IVertex` | `clr(IColor c, float alpha)` to set color, with alpha value overwritten
    `IVertex` | `clr(IColor c, int alpha)` to set color, with alpha value overwritten
    `IVertex` | `clr(int gray)`
    `IVertex` | `clr(int gray, int alpha)`
    `IVertex` | `clr(int r, int g, int b)`
    `IVertex` | `clr(int r, int g, int b, int a)`
    `IVertex` | `clr(IObject o)`
    `IVertex` | `clr(IVertex v)`
    `IVertex` | `cp()` cp() is alias of dup()
    `IVertex` | `cp(double x, double y, double z)` cp() is alias of dup().add()
    `IVertex` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)` cp() is alias of dup().add()
    `IVertex` | `cp(IVecI v)` cp() is alias of dup().add()
    `IEdge` | `createEdgeTo(IVertex v)`
    `IVecI` | `cross(double vx, double vy, double vz)` cross product, creating a new instance
    `IVecI` | `cross(IVecI v)` cross product, creating a new instance
    `void` | `del()`
    `void` | `del(IEdge e)`
    `IVecI` | `dif(double vx, double vy, double vz)` create a new instance of difference
    `IVecI` | `dif(IVecI v)` create a new instance of difference
    `IVecI` | `diff(double vx, double vy, double vz)` alias of dif
    `IVecI` | `diff(IVecI v)` alias of dif
    `double` | `dist(double vx, double vy, double vz)` distance of two vectors
    `double` | `dist(ISwitchE e, IVecI v)` distance of two vectors
    `IDoubleI` | `dist(ISwitchR r, IVecI v)` distance of two vectors
    `double` | `dist(IVecI v)` distance of two vectors
    `double` | `dist2(double vx, double vy, double vz)` squared distance of two vectors
    `double` | `dist2(ISwitchE e, IVecI v)` squared distance of two vectors
    `IDoubleI` | `dist2(ISwitchR r, IVecI v)` squared distance of two vectors
    `double` | `dist2(IVecI v)` squared distance of two vectors
    `IVertex` | `div(double v)`
    `IVertex` | `div(IDoubleI v)`
    `double` | `dot(double vx, double vy, double vz)` dot product
    `double` | `dot(ISwitchE e, IVecI v)` dot product
    `IDoubleI` | `dot(ISwitchR r, IVecI v)` dot product
    `double` | `dot(IVecI v)` dot product
    `IVertex` | `dup()` duplicate the instance
    `IEdge` | `edge(int i)`
    `int` | `edgeNum()`
    `boolean` | `eq(double vx, double vy, double vz)` check whether location is same or not
    `boolean` | `eq(double vx, double vy, double vz, double tolerance)` check whether location is same or not with tolerance
    `boolean` | `eq(ISwitchE e, IVecI v)` check whether location is same or not
    `boolean` | `eq(ISwitchE e, IVecI v, double tolerance)` check whether location is same or not with tolerance
    `IBoolI` | `eq(ISwitchR r, IVecI v)` check whether location is same or not
    `IBoolI` | `eq(ISwitchR r, IVecI v, IDoubleI tolerance)` check whether location is same or not with tolerance
    `boolean` | `eq(IVecI v)` check whether location is same or not
    `boolean` | `eq(IVecI v, double tolerance)` check whether location is same or not with tolerance
    `boolean` | `eqX(double vx)` check if same in X
    `boolean` | `eqX(double vx, double tolerance)` check if same in X with tolerance
    `boolean` | `eqX(ISwitchE e, IVecI v)` check if same in X
    `boolean` | `eqX(ISwitchE e, IVecI v, double tolerance)` check if same in X with tolerance
    `IBoolI` | `eqX(ISwitchR r, IVecI v)` check if same in X
    `IBoolI` | `eqX(ISwitchR r, IVecI v, IDoubleI tolerance)` check if same in X with tolerance
    `boolean` | `eqX(IVecI v)` check if same in X
    `boolean` | `eqX(IVecI v, double tolerance)` check if same in X with tolerance
    `boolean` | `eqY(double vy)` check if same in Y
    `boolean` | `eqY(double vy, double tolerance)` check if same in Y with tolerance
    `boolean` | `eqY(ISwitchE e, IVecI v)` check if same in Y
    `boolean` | `eqY(ISwitchE e, IVecI v, double tolerance)` check if same in Y with tolerance
    `IBoolI` | `eqY(ISwitchR r, IVecI v)` check if same in Y
    `IBoolI` | `eqY(ISwitchR r, IVecI v, IDoubleI tolerance)` check if same in Y with tolerance
    `boolean` | `eqY(IVecI v)` check if same in Y
    `boolean` | `eqY(IVecI v, double tolerance)` check if same in Y with tolerance
    `boolean` | `eqZ(double vz)` check if same in Z
    `boolean` | `eqZ(double vz, double tolerance)` check if same in Z with tolerance
    `boolean` | `eqZ(ISwitchE e, IVecI v)` check if same in Z
    `boolean` | `eqZ(ISwitchE e, IVecI v, double tolerance)` check if same in Z with tolerance
    `IBoolI` | `eqZ(ISwitchR r, IVecI v)` check if same in Z
    `IBoolI` | `eqZ(ISwitchR r, IVecI v, IDoubleI tolerance)` check if same in Z with tolerance
    `boolean` | `eqZ(IVecI v)` check if same in Z
    `boolean` | `eqZ(IVecI v, double tolerance)` check if same in Z with tolerance
    `IFace` | `face(int i)`
    `int` | `faceNum()`
    `static int` | `findLinkedVertexInArray(IVertex v, java.util.ArrayList<IVertex> vlist, boolean[] skiplist)` returns vertex index in arraylist
    `IVertex` | `flip()` alias of neg()
    `IVec` | `get()`
    `IVec` | `getAverageNormal()`
    `IColor` | `getColor()`
    `IEdge` | `getEdge(int i)`
    `IEdge` | `getEdgeTo(IVertex v)`
    `IFace` | `getFace(int i)`
    `IVecI` | `getNml()` getting normal (alias)
    `IVecI` | `getNormal()` getting normal (alias)
    `IEdge[]` | `getOtherEdges(IEdge edge)`
    `IDoubleI` | `getX()`
    `IDoubleI` | `getY()`
    `IDoubleI` | `getZ()`
    `IVertex` | `hsb(double dh, double ds, double db)`
    `IVertex` | `hsb(double dh, double ds, double db, double da)`
    `IVertex` | `hsb(float h, float s, float b)`
    `IVertex` | `hsb(float h, float s, float b, float a)`
    `void` | `init()`
    `boolean` | `isValid()` setting normal; this nml has different function from IVecI's nml
    `double` | `len()` getting length of the vector
    `IVertex` | `len(double l)` setting length
    `IVertex` | `len(IDoubleI l)` setting length
    `double` | `len(ISwitchE e)` getting length of the vector
    `IDoubleI` | `len(ISwitchR r)` getting length of the vector
    `double` | `len2()` getting squared length of the vector
    `double` | `len2(ISwitchE e)` getting squared length of the vector
    `IDoubleI` | `len2(ISwitchR r)` getting squared length of the vector
    `IVertex` | `linkedVertex(int i)`
    `int` | `linkedVertexNum()`
    `IVecI` | `mid(double vx, double vy, double vz)` create a new instance of midpoint
    `IVecI` | `mid(IVecI v)` create a new instance of midpoint
    `IVertex` | `mirror(double planeX, double planeY, double planeZ)` alias of ref
    `IVertex` | `mirror(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)` alias of ref
    `IVertex` | `mirror(IVecI planeDir)` alias of ref
    `IVertex` | `mirror(IVecI center, IVecI planeDir)` alias of ref
    `IVertex` | `mul(double v)`
    `IVertex` | `mul(IDoubleI v)`
    `IVertex` | `mv(double x, double y, double z)` mv() is alias of add()
    `IVertex` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)` mv() is alias of add()
    `IVertex` | `mv(IVecI v)` mv() is alias of add()
    `IVertex` | `neg()`
    `IVecI` | `nml()` getting normal
    `IVecI` | `nml(double vx, double vy, double vz)` alias of cross
    `IVecI` | `nml(double vx1, double vy1, double vz1, double vx2, double vy2, double vz2)` create normal vector from 3 points of self, pt1 and pt2
    `IVecI` | `nml(IVecI v)` alias of cross.
    `IVecI` | `nml(IVecI pt1, IVecI pt2)` create normal vector from 3 points of self, pt1 and pt2
    `IVecI` | `normal()` getting normal (alias)
    `IVecI` | `pos()` passing position field
    `IVertex` | `ref(double planeX, double planeY, double planeZ)` reflect(mirror) 3 dimensionally to the other side of the plane
    `IVertex` | `ref(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)` reflect(mirror) 3 dimensionally to the other side of the plane
    `IVertex` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
    `IVertex` | `ref(IVecI center, IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
    `void` | `replaceLinkedVertex(IVertex oldVertex, IVertex newVertex)`
    `void` | `replaceVertex(IVertex newVertex)`
    `IVertex` | `rev()` alias of neg()
    `IVertex` | `rot(double angle)` rotation on XY plane
    `IVertex` | `rot(double axisX, double axisY, double axisZ, double angle)` rotation around axis vector
    `IVertex` | `rot(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double angle)` rotation around axis vector and center point
    `IVertex` | `rot(IDoubleI angle)` rotation on XY plane
    `IVertex` | `rot(IVecI axis, double angle)` rotation around axis vector
    `IVertex` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
    `IVertex` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
    `IVertex` | `rot(IVecI center, IVecI axis, double angle)` rotation around axis vector and center point
    `IVertex` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center point
    `IVertex` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
    `IVertex` | `rot2(double angle)` rotation on xy-plane; alias of rot(double)
    `IVertex` | `rot2(double centerX, double centerY, double angle)` rotation on xy-plane
    `IVertex` | `rot2(IDoubleI angle)` rotation on xy-plane; alias of rot(IDoubleI)
    `IVertex` | `rot2(IVecI destDir)` rotation on xy-plane towards destDir
    `IVertex` | `rot2(IVecI center, double angle)` rotation on xy-plane
    `IVertex` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane
    `IVertex` | `rot2(IVecI center, IVecI destPt)` rotation on xy-plane towards destPt
    `IVertex` | `scale(double f)` alias of mul
    `IVertex` | `scale(double centerX, double centerY, double centerZ, double f)` scale from a center
    `IVertex` | `scale(IDoubleI f)` alias of mul
    `IVertex` | `scale(IVecI center, double f)` scale from a center
    `IVertex` | `scale(IVecI center, IDoubleI f)` scale from a center
    `IVertex` | `scale1d(double axisX, double axisY, double axisZ, double f)` scale only in 1 direction
    `IVertex` | `scale1d(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double f)` scale only in 1 direction from a center
    `IVertex` | `scale1d(IVecI axis, double f)` scale only in 1 direction
    `IVertex` | `scale1d(IVecI axis, IDoubleI f)` scale only in 1 direction
    `IVertex` | `scale1d(IVecI center, IVecI axis, double f)` scale only in 1 direction from a center
    `IVertex` | `scale1d(IVecI center, IVecI axis, IDoubleI f)` scale only in 1 direction from a center
    `IVertex` | `set(double x, double y, double z)`
    `IVertex` | `set(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVertex` | `set(IVecI v)`
    `IVertex` | `setNml(double x, double y, double z)`
    `IVertex` | `setNml(IVecI n)`
    `IVertex` | `setNormal(double x, double y, double z)`
    `IVertex` | `setNormal(IVecI n)`
    `IVertex` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `IVertex` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)` shear operation
    `IVertex` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `IVertex` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)` shear operation
    `IVertex` | `shearXY(double sxy, double syx)` shear operation on XY
    `IVertex` | `shearXY(IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IVertex` | `shearXY(IVecI center, double sxy, double syx)` shear operation on XY
    `IVertex` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IVertex` | `shearYZ(double syz, double szy)` shear operation on YZ
    `IVertex` | `shearYZ(IDoubleI syz, IDoubleI szy)` shear operation on YZ
    `IVertex` | `shearYZ(IVecI center, double syz, double szy)` shear operation on YZ
    `IVertex` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)` shear operation on YZ
    `IVertex` | `shearZX(double szx, double sxz)` shear operation on ZX
    `IVertex` | `shearZX(IDoubleI szx, IDoubleI sxz)` shear operation on ZX
    `IVertex` | `shearZX(IVecI center, double szx, double sxz)` shear operation on ZX
    `IVertex` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)` shear operation on ZX
    `static java.util.ArrayList<IVertex>` | `sortByEdge(java.util.ArrayList<IVertex> vtx)` list of vertices are sorted by tracing edge connection.
    `static java.util.ArrayList<IVertex>` | `sortByEdge(java.util.ArrayList<IVertex> vtx, int startIdx)` list of vertices are sorted by tracing edge connection.
    `static java.util.ArrayList<IVertex>` | `sortByEdge(java.util.ArrayList<IVertex> vtx, IVertex v)` list of vertices are sorted by tracing edge connection.
    `IVertex` | `sub(double x, double y, double z)`
    `IVertex` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVertex` | `sub(IVecI v)`
    `IVecI` | `sum(double vx, double vy, double vz)` create a new instance of total summation
    `IVecI` | `sum(IVecI... v)` create a new instance of total summation
    `IVecI` | `sum(IVecI v)` create a new instance of total summation
    `IVecI` | `sum(IVecI v2, double w2)` create a new instance of weighted sum
    `IVecI` | `sum(IVecI v2, double w1, double w2)` create a new instance of weighted sum
    `IVecI` | `sum(IVecI v2, IDoubleI w2)` create a new instance of weighted sum
    `IVecI` | `sum(IVecI v2, IDoubleI w1, IDoubleI w2)` create a new instance of weighted sum
    `IVec2I` | `texture()`
    `IVertex` | `texture(double u, double v)`
    `IVertex` | `texture(IVec2I t)`
    `IVec2I` | `to2d()`
    `IVec2I` | `to2d(IVecI projectionDir)`
    `IVec2I` | `to2d(IVecI xaxis, IVecI yaxis)`
    `IVec2I` | `to2d(IVecI xaxis, IVecI yaxis, IVecI origin)`
    `IVec4I` | `to4d()`
    `IVec4I` | `to4d(double w)`
    `IVec4I` | `to4d(IDoubleI w)`
    `java.lang.String` | `toString()`
    `IVertex` | `transform(IMatrix3I mat)` transform with a transformation matrix
    `IVertex` | `transform(IMatrix4I mat)` transform with a transformation matrix
    `IVertex` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)` transform with a transformation vectors
    `IVertex` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)` transform with a transformation vectors
    `IVertex` | `translate(double x, double y, double z)` translate is alias of add()
    `IVertex` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)` alias of add()
    `IVertex` | `translate(IVecI v)` alias of add()
    `IVertex` | `unit()` unitize
    `double` | `x()` getting x component
    `IVertex` | `x(double vx)` setting x component
    `IVertex` | `x(IDoubleI vx)` setting x component
    `double` | `x(ISwitchE e)` getting x component
    `IDoubleI` | `x(ISwitchR r)` getting x component
    `IVertex` | `x(IVec2I vx)` setting x component by x component of input vector
    `IVertex` | `x(IVecI vx)` setting x component by x component of input vector
    `double` | `y()` getting y component
    `IVertex` | `y(double vy)` setting y component
    `IVertex` | `y(IDoubleI vy)` setting y component
    `double` | `y(ISwitchE e)` getting y component
    `IDoubleI` | `y(ISwitchR r)` getting y component
    `IVertex` | `y(IVec2I vy)` setting y component by y component of input vector
    `IVertex` | `y(IVecI vy)` setting y component by y component of input vector
    `double` | `z()` getting z component
    `IVertex` | `z(double vz)` setting z component
    `IVertex` | `z(IDoubleI vz)` setting z component
    `double` | `z(ISwitchE e)` getting z component
    `IDoubleI` | `z(ISwitchR r)` getting z component
    `IVertex` | `z(IVecI vz)` setting z component by z component of input vector
    `IVertex` | `zero()` setting all zero

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

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

- - ### Field Detail

    - #### edges

          public java.util.ArrayList<IEdge> edges

    - #### faces

          public java.util.ArrayList<IFace> faces

    - #### linkedVertices

          public java.util.ArrayList<IVertex> linkedVertices

    - #### pos

          public IVecI pos

    - #### normal

          public IVecI normal

    - #### texture

          public IVec2I texture

    - #### clr

          public IColor clr

    - #### index

          public int index

      index number in IMeshGeo vertices array list

  - ### Constructor Detail

    - #### IVertex

          public IVertex()

    - #### IVertex

          public IVertex(double x,
                 double y,
                 double z)

    - #### IVertex

          public IVertex(IVec p)

    - #### IVertex

          public IVertex(IVec4 p)

    - #### IVertex

          public IVertex(IVecI p)

    - #### IVertex

          public IVertex(IVertex v)

  - ### Method Detail

    - #### init

          public void init()

    - #### del

          public void del()

    - #### del

          public void del(IEdge e)

    - #### x

          public double x()

      Description copied from interface: `IVecI`
      getting x component
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public double y()

      Description copied from interface: `IVecI`
      getting y component
      Specified by:
        `y` in interface `IVecI`

    - #### z

          public double z()

      Description copied from interface: `IVecI`
      getting z component
      Specified by:
        `z` in interface `IVecI`

    - #### x

          public IVertex x(double vx)

      Description copied from interface: `IVecI`
      setting x component
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public IVertex y(double vy)

      Description copied from interface: `IVecI`
      setting y component
      Specified by:
        `y` in interface `IVecI`

    - #### z

          public IVertex z(double vz)

      Description copied from interface: `IVecI`
      setting z component
      Specified by:
        `z` in interface `IVecI`

    - #### x

          public IVertex x(IDoubleI vx)

      Description copied from interface: `IVecI`
      setting x component
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public IVertex y(IDoubleI vy)

      Description copied from interface: `IVecI`
      setting y component
      Specified by:
        `y` in interface `IVecI`

    - #### z

          public IVertex z(IDoubleI vz)

      Description copied from interface: `IVecI`
      setting z component
      Specified by:
        `z` in interface `IVecI`

    - #### x

          public IVertex x(IVecI vx)

      Description copied from interface: `IVecI`
      setting x component by x component of input vector
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public IVertex y(IVecI vy)

      Description copied from interface: `IVecI`
      setting y component by y component of input vector
      Specified by:
        `y` in interface `IVecI`

    - #### z

          public IVertex z(IVecI vz)

      Description copied from interface: `IVecI`
      setting z component by z component of input vector
      Specified by:
        `z` in interface `IVecI`

    - #### x

          public IVertex x(IVec2I vx)

      Description copied from interface: `IVecI`
      setting x component by x component of input vector
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public IVertex y(IVec2I vy)

      Description copied from interface: `IVecI`
      setting y component by y component of input vector
      Specified by:
        `y` in interface `IVecI`

    - #### x

          public double x(ISwitchE e)

      Description copied from interface: `IVecI`
      getting x component
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public double y(ISwitchE e)

      Description copied from interface: `IVecI`
      getting y component
      Specified by:
        `y` in interface `IVecI`

    - #### z

          public double z(ISwitchE e)

      Description copied from interface: `IVecI`
      getting z component
      Specified by:
        `z` in interface `IVecI`

    - #### x

          public IDoubleI x(ISwitchR r)

      Description copied from interface: `IVecI`
      getting x component
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public IDoubleI y(ISwitchR r)

      Description copied from interface: `IVecI`
      getting y component
      Specified by:
        `y` in interface `IVecI`

    - #### z

          public IDoubleI z(ISwitchR r)

      Description copied from interface: `IVecI`
      getting z component
      Specified by:
        `z` in interface `IVecI`

    - #### get

          public IVec get()

      Specified by:
        `get` in interface `IParameter`
      Specified by:
        `get` in interface `IVecI`
      Specified by:
        `get` in interface `IVecOp`

    - #### pos

          public IVecI pos()

      passing position field

    - #### dup

          public IVertex dup()

      Description copied from interface: `ITransformable`
      duplicate the instance
      Specified by:
        `dup` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `dup` in interface `ITransformable`
      Specified by:
        `dup` in interface `IVecI`

    - #### to2d

          public IVec2I to2d()

      Specified by:
        `to2d` in interface `IVecI`

    - #### to2d

          public IVec2I to2d(IVecI projectionDir)

      Specified by:
        `to2d` in interface `IVecI`

    - #### to2d

          public IVec2I to2d(IVecI xaxis,
                    IVecI yaxis)

      Specified by:
        `to2d` in interface `IVecI`

    - #### to2d

          public IVec2I to2d(IVecI xaxis,
                    IVecI yaxis,
                    IVecI origin)

      Specified by:
        `to2d` in interface `IVecI`

    - #### to4d

          public IVec4I to4d()

      Specified by:
        `to4d` in interface `IVecI`

    - #### to4d

          public IVec4I to4d(double w)

      Specified by:
        `to4d` in interface `IVecI`

    - #### to4d

          public IVec4I to4d(IDoubleI w)

      Specified by:
        `to4d` in interface `IVecI`

    - #### getX

          public IDoubleI getX()

      Specified by:
        `getX` in interface `IVecI`

    - #### getY

          public IDoubleI getY()

      Specified by:
        `getY` in interface `IVecI`

    - #### getZ

          public IDoubleI getZ()

      Specified by:
        `getZ` in interface `IVecI`

    - #### set

          public IVertex set(IVecI v)

      Specified by:
        `set` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `set` in interface `IVecI`

    - #### set

          public IVertex set(double x,
                    double y,
                    double z)

      Specified by:
        `set` in interface `IVecI`

    - #### set

          public IVertex set(IDoubleI x,
                    IDoubleI y,
                    IDoubleI z)

      Specified by:
        `set` in interface `IVecI`

    - #### add

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

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

    - #### add

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

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

    - #### add

          public IVertex add(IVecI v)

      Specified by:
        `add` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVecI`

    - #### sub

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

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

    - #### sub

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

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

    - #### sub

          public IVertex sub(IVecI v)

      Specified by:
        `sub` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `sub` in interface `ITransformable`
      Specified by:
        `sub` in interface `IVecI`

    - #### mul

          public IVertex mul(IDoubleI v)

      Specified by:
        `mul` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `mul` in interface `ITransformable`
      Specified by:
        `mul` in interface `IVecI`

    - #### mul

          public IVertex mul(double v)

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

    - #### div

          public IVertex div(IDoubleI v)

      Specified by:
        `div` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `div` in interface `ITransformable`
      Specified by:
        `div` in interface `IVecI`

    - #### div

          public IVertex div(double v)

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

    - #### neg

          public IVertex neg()

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

    - #### rev

          public IVertex rev()

      Description copied from interface: `IVecI`
      alias of neg()
      Specified by:
        `rev` in interface `IVecI`

    - #### flip

          public IVertex flip()

      Description copied from interface: `IVecI`
      alias of neg()
      Specified by:
        `flip` in interface `ITransformable`
      Specified by:
        `flip` in interface `IVecI`

    - #### zero

          public IVertex zero()

      Description copied from interface: `IVecI`
      setting all zero
      Specified by:
        `zero` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `zero` in interface `IVecI`

    - #### add

          public IVertex add(IVecI v,
                    double f)

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

    - #### add

          public IVertex add(IVecI v,
                    IDoubleI f)

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

    - #### add

          public IVertex add(double f,
                    IVecI v)

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

    - #### add

          public IVertex add(IDoubleI f,
                    IVecI v)

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

    - #### dot

          public double dot(IVecI v)

      Description copied from interface: `IVecI`
      dot product
      Specified by:
        `dot` in interface `IVecI`

    - #### dot

          public double dot(double vx,
                   double vy,
                   double vz)

      Description copied from interface: `IVecI`
      dot product
      Specified by:
        `dot` in interface `IVecI`

    - #### dot

          public double dot(ISwitchE e,
                   IVecI v)

      Description copied from interface: `IVecI`
      dot product
      Specified by:
        `dot` in interface `IVecI`

    - #### dot

          public IDoubleI dot(ISwitchR r,
                     IVecI v)

      Description copied from interface: `IVecI`
      dot product
      Specified by:
        `dot` in interface `IVecI`

    - #### cross

          public IVecI cross(IVecI v)

      Description copied from interface: `IVecI`
      cross product, creating a new instance
      Specified by:
        `cross` in interface `IVecI`

    - #### cross

          public IVecI cross(double vx,
                    double vy,
                    double vz)

      Description copied from interface: `IVecI`
      cross product, creating a new instance
      Specified by:
        `cross` in interface `IVecI`

    - #### len

          public double len()

      Description copied from interface: `IVecI`
      getting length of the vector
      Specified by:
        `len` in interface `IVecI`

    - #### len

          public double len(ISwitchE e)

      Description copied from interface: `IVecI`
      getting length of the vector
      Specified by:
        `len` in interface `IVecI`

    - #### len

          public IDoubleI len(ISwitchR r)

      Description copied from interface: `IVecI`
      getting length of the vector
      Specified by:
        `len` in interface `IVecI`

    - #### len2

          public double len2()

      Description copied from interface: `IVecI`
      getting squared length of the vector
      Specified by:
        `len2` in interface `IVecI`

    - #### len2

          public double len2(ISwitchE e)

      Description copied from interface: `IVecI`
      getting squared length of the vector
      Specified by:
        `len2` in interface `IVecI`

    - #### len2

          public IDoubleI len2(ISwitchR r)

      Description copied from interface: `IVecI`
      getting squared length of the vector
      Specified by:
        `len2` in interface `IVecI`

    - #### len

          public IVertex len(IDoubleI l)

      Description copied from interface: `IVecI`
      setting length
      Specified by:
        `len` in interface `IVecI`

    - #### len

          public IVertex len(double l)

      Description copied from interface: `IVecI`
      setting length
      Specified by:
        `len` in interface `IVecI`

    - #### unit

          public IVertex unit()

      Description copied from interface: `IVecI`
      unitize
      Specified by:
        `unit` in interface `IVecI`

    - #### dist

          public double dist(IVecI v)

      Description copied from interface: `IVecI`
      distance of two vectors
      Specified by:
        `dist` in interface `IVecI`

    - #### dist

          public double dist(double vx,
                    double vy,
                    double vz)

      Description copied from interface: `IVecI`
      distance of two vectors
      Specified by:
        `dist` in interface `IVecI`

    - #### dist

          public double dist(ISwitchE e,
                    IVecI v)

      Description copied from interface: `IVecI`
      distance of two vectors
      Specified by:
        `dist` in interface `IVecI`

    - #### dist

          public IDoubleI dist(ISwitchR r,
                      IVecI v)

      Description copied from interface: `IVecI`
      distance of two vectors
      Specified by:
        `dist` in interface `IVecI`

    - #### dist2

          public double dist2(IVecI v)

      Description copied from interface: `IVecI`
      squared distance of two vectors
      Specified by:
        `dist2` in interface `IVecI`

    - #### dist2

          public double dist2(double vx,
                     double vy,
                     double vz)

      Description copied from interface: `IVecI`
      squared distance of two vectors
      Specified by:
        `dist2` in interface `IVecI`

    - #### dist2

          public double dist2(ISwitchE e,
                     IVecI v)

      Description copied from interface: `IVecI`
      squared distance of two vectors
      Specified by:
        `dist2` in interface `IVecI`

    - #### dist2

          public IDoubleI dist2(ISwitchR r,
                       IVecI v)

      Description copied from interface: `IVecI`
      squared distance of two vectors
      Specified by:
        `dist2` in interface `IVecI`

    - #### eq

          public boolean eq(IVecI v)

      Description copied from interface: `IVecI`
      check whether location is same or not
      Specified by:
        `eq` in interface `IVecI`

    - #### eq

          public boolean eq(double vx,
                   double vy,
                   double vz)

      Description copied from interface: `IVecI`
      check whether location is same or not
      Specified by:
        `eq` in interface `IVecI`

    - #### eq

          public boolean eq(ISwitchE e,
                   IVecI v)

      Description copied from interface: `IVecI`
      check whether location is same or not
      Specified by:
        `eq` in interface `IVecI`

    - #### eq

          public IBoolI eq(ISwitchR r,
                  IVecI v)

      Description copied from interface: `IVecI`
      check whether location is same or not
      Specified by:
        `eq` in interface `IVecI`

    - #### eq

          public boolean eq(IVecI v,
                   double tolerance)

      Description copied from interface: `IVecI`
      check whether location is same or not with tolerance
      Specified by:
        `eq` in interface `IVecI`

    - #### eq

          public boolean eq(double vx,
                   double vy,
                   double vz,
                   double tolerance)

      Description copied from interface: `IVecI`
      check whether location is same or not with tolerance
      Specified by:
        `eq` in interface `IVecI`

    - #### eq

          public boolean eq(ISwitchE e,
                   IVecI v,
                   double tolerance)

      Description copied from interface: `IVecI`
      check whether location is same or not with tolerance
      Specified by:
        `eq` in interface `IVecI`

    - #### eq

          public IBoolI eq(ISwitchR r,
                  IVecI v,
                  IDoubleI tolerance)

      Description copied from interface: `IVecI`
      check whether location is same or not with tolerance
      Specified by:
        `eq` in interface `IVecI`

    - #### eqX

          public boolean eqX(IVecI v)

      Description copied from interface: `IVecI`
      check if same in X
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public boolean eqY(IVecI v)

      Description copied from interface: `IVecI`
      check if same in Y
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public boolean eqZ(IVecI v)

      Description copied from interface: `IVecI`
      check if same in Z
      Specified by:
        `eqZ` in interface `IVecI`

    - #### eqX

          public boolean eqX(double vx)

      Description copied from interface: `IVecI`
      check if same in X
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public boolean eqY(double vy)

      Description copied from interface: `IVecI`
      check if same in Y
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public boolean eqZ(double vz)

      Description copied from interface: `IVecI`
      check if same in Z
      Specified by:
        `eqZ` in interface `IVecI`

    - #### eqX

          public boolean eqX(ISwitchE e,
                    IVecI v)

      Description copied from interface: `IVecI`
      check if same in X
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public boolean eqY(ISwitchE e,
                    IVecI v)

      Description copied from interface: `IVecI`
      check if same in Y
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public boolean eqZ(ISwitchE e,
                    IVecI v)

      Description copied from interface: `IVecI`
      check if same in Z
      Specified by:
        `eqZ` in interface `IVecI`

    - #### eqX

          public IBoolI eqX(ISwitchR r,
                   IVecI v)

      Description copied from interface: `IVecI`
      check if same in X
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public IBoolI eqY(ISwitchR r,
                   IVecI v)

      Description copied from interface: `IVecI`
      check if same in Y
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public IBoolI eqZ(ISwitchR r,
                   IVecI v)

      Description copied from interface: `IVecI`
      check if same in Z
      Specified by:
        `eqZ` in interface `IVecI`

    - #### eqX

          public boolean eqX(IVecI v,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in X with tolerance
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public boolean eqY(IVecI v,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in Y with tolerance
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public boolean eqZ(IVecI v,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in Z with tolerance
      Specified by:
        `eqZ` in interface `IVecI`

    - #### eqX

          public boolean eqX(double vx,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in X with tolerance
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public boolean eqY(double vy,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in Y with tolerance
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public boolean eqZ(double vz,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in Z with tolerance
      Specified by:
        `eqZ` in interface `IVecI`

    - #### eqX

          public boolean eqX(ISwitchE e,
                    IVecI v,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in X with tolerance
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public boolean eqY(ISwitchE e,
                    IVecI v,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in Y with tolerance
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public boolean eqZ(ISwitchE e,
                    IVecI v,
                    double tolerance)

      Description copied from interface: `IVecI`
      check if same in Z with tolerance
      Specified by:
        `eqZ` in interface `IVecI`

    - #### eqX

          public IBoolI eqX(ISwitchR r,
                   IVecI v,
                   IDoubleI tolerance)

      Description copied from interface: `IVecI`
      check if same in X with tolerance
      Specified by:
        `eqX` in interface `IVecI`

    - #### eqY

          public IBoolI eqY(ISwitchR r,
                   IVecI v,
                   IDoubleI tolerance)

      Description copied from interface: `IVecI`
      check if same in Y with tolerance
      Specified by:
        `eqY` in interface `IVecI`

    - #### eqZ

          public IBoolI eqZ(ISwitchR r,
                   IVecI v,
                   IDoubleI tolerance)

      Description copied from interface: `IVecI`
      check if same in Z with tolerance
      Specified by:
        `eqZ` in interface `IVecI`

    - #### angle

          public double angle(IVecI v)

      Description copied from interface: `IVecI`
      get angle between two vector from 0 to Pi
      Specified by:
        `angle` in interface `IVecI`

    - #### angle

          public double angle(double vx,
                     double vy,
                     double vz)

      Description copied from interface: `IVecI`
      get angle between two vector from 0 to Pi
      Specified by:
        `angle` in interface `IVecI`

    - #### angle

          public double angle(ISwitchE e,
                     IVecI v)

      Description copied from interface: `IVecI`
      get angle between two vector from 0 to Pi
      Specified by:
        `angle` in interface `IVecI`

    - #### angle

          public IDoubleI angle(ISwitchR r,
                       IVecI v)

      Description copied from interface: `IVecI`
      get angle between two vector from 0 to Pi
      Specified by:
        `angle` in interface `IVecI`

    - #### angle

          public double angle(IVecI v,
                     IVecI axis)

      Specified by:
        `angle` in interface `IVecI`
        `axis` - axis to determin sign of angle following right-handed screw rule.
      Returns:
        angle between two vector from -Pi to Pi. Sign follows right-handed screw rule along axis

    - #### angle

          public double angle(double vx,
                     double vy,
                     double vz,
                     double axisX,
                     double axisY,
                     double axisZ)

      Specified by:
        `angle` in interface `IVecI`
      Returns:
        angle between two vector from -Pi to Pi. Sign follows right-handed screw rule along axis

    - #### angle

          public double angle(ISwitchE e,
                     IVecI v,
                     IVecI axis)

      Specified by:
        `angle` in interface `IVecI`
        `axis` - axis to determin sign of angle following right-handed screw rule.
      Returns:
        angle between two vector from -Pi to Pi. Sign follows right-handed screw rule along axis

    - #### angle

          public IDoubleI angle(ISwitchR r,
                       IVecI v,
                       IVecI axis)

      Specified by:
        `angle` in interface `IVecI`
        `axis` - axis to determin sign of angle following right-handed screw rule.
      Returns:
        angle between two vector from -Pi to Pi. Sign follows right-handed screw rule along axis

    - #### rot

          public IVertex rot(IDoubleI angle)

      Description copied from interface: `IVecI`
      rotation on XY plane
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVecI`

    - #### rot

          public IVertex rot(double angle)

      Description copied from interface: `IVecI`
      rotation on XY plane
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVecI`

    - #### rot

          public IVertex rot(IVecI axis,
                    IDoubleI angle)

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

    - #### rot

          public IVertex rot(IVecI axis,
                    double angle)

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

    - #### rot

          public IVertex rot(double axisX,
                    double axisY,
                    double axisZ,
                    double angle)

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

    - #### rot

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

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

    - #### rot

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

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

    - #### rot

          public IVertex rot(double centerX,
                    double centerY,
                    double centerZ,
                    double axisX,
                    double axisY,
                    double axisZ,
                    double angle)

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

    - #### rot

          public IVertex rot(IVecI axis,
                    IVecI destDir)

      Description copied from interface: `IVecI`
      rotate to destination direction vector
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVecI`

    - #### rot

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

      Description copied from interface: `IVecI`
      rotate to destination point location
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVecI`

    - #### rot2

          public IVertex rot2(IDoubleI angle)

      Description copied from interface: `IVecI`
      rotation on xy-plane; alias of rot(IDoubleI)
      Specified by:
        `rot2` in interface `ITransformable`
      Specified by:
        `rot2` in interface `IVecI`

    - #### rot2

          public IVertex rot2(double angle)

      Description copied from interface: `IVecI`
      rotation on xy-plane; alias of rot(double)
      Specified by:
        `rot2` in interface `ITransformable`
      Specified by:
        `rot2` in interface `IVecI`

    - #### rot2

          public IVertex rot2(IVecI center,
                     IDoubleI angle)

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

    - #### rot2

          public IVertex rot2(IVecI center,
                     double angle)

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

    - #### rot2

          public IVertex rot2(double centerX,
                     double centerY,
                     double angle)

      Description copied from interface: `IVecI`
      rotation on xy-plane
      Specified by:
        `rot2` in interface `IVecI`

    - #### rot2

          public IVertex rot2(IVecI destDir)

      Description copied from interface: `IVecI`
      rotation on xy-plane towards destDir
      Specified by:
        `rot2` in interface `ITransformable`
      Specified by:
        `rot2` in interface `IVecI`

    - #### rot2

          public IVertex rot2(IVecI center,
                     IVecI destPt)

      Description copied from interface: `IVecI`
      rotation on xy-plane towards destPt
      Specified by:
        `rot2` in interface `ITransformable`
      Specified by:
        `rot2` in interface `IVecI`

    - #### scale

          public IVertex scale(IDoubleI f)

      Description copied from interface: `IVecI`
      alias of mul
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVecI`

    - #### scale

          public IVertex scale(double f)

      Description copied from interface: `IVecI`
      alias of mul
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVecI`

    - #### scale

          public IVertex scale(IVecI center,
                      IDoubleI f)

      Description copied from interface: `IVecI`
      scale from a center
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVecI`

    - #### scale

          public IVertex scale(IVecI center,
                      double f)

      Description copied from interface: `IVecI`
      scale from a center
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVecI`

    - #### scale

          public IVertex scale(double centerX,
                      double centerY,
                      double centerZ,
                      double f)

      Description copied from interface: `IVecI`
      scale from a center
      Specified by:
        `scale` in interface `IVecI`

    - #### scale1d

          public IVertex scale1d(IVecI axis,
                        double f)

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

    - #### scale1d

          public IVertex scale1d(IVecI axis,
                        IDoubleI f)

      Description copied from interface: `IVecI`
      scale only in 1 direction
      Specified by:
        `scale1d` in interface `ITransformable`
      Specified by:
        `scale1d` in interface `IVecI`

    - #### scale1d

          public IVertex scale1d(double axisX,
                        double axisY,
                        double axisZ,
                        double f)

      Description copied from interface: `IVecI`
      scale only in 1 direction
      Specified by:
        `scale1d` in interface `IVecI`

    - #### scale1d

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

      Description copied from interface: `IVecI`
      scale only in 1 direction from a center
      Specified by:
        `scale1d` in interface `ITransformable`
      Specified by:
        `scale1d` in interface `IVecI`

    - #### scale1d

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

      Description copied from interface: `IVecI`
      scale only in 1 direction from a center
      Specified by:
        `scale1d` in interface `ITransformable`
      Specified by:
        `scale1d` in interface `IVecI`

    - #### scale1d

          public IVertex scale1d(double centerX,
                        double centerY,
                        double centerZ,
                        double axisX,
                        double axisY,
                        double axisZ,
                        double f)

      Description copied from interface: `IVecI`
      scale only in 1 direction from a center
      Specified by:
        `scale1d` in interface `IVecI`

    - #### ref

          public IVertex ref(IVecI planeDir)

      Description copied from interface: `IVecI`
      reflect(mirror) 3 dimensionally to the other side of the plane
      Specified by:
        `ref` in interface `ITransformable`
      Specified by:
        `ref` in interface `IVecI`

    - #### ref

          public IVertex ref(double planeX,
                    double planeY,
                    double planeZ)

      Description copied from interface: `IVecI`
      reflect(mirror) 3 dimensionally to the other side of the plane
      Specified by:
        `ref` in interface `IVecI`

    - #### ref

          public IVertex ref(IVecI center,
                    IVecI planeDir)

      Description copied from interface: `IVecI`
      reflect(mirror) 3 dimensionally to the other side of the plane
      Specified by:
        `ref` in interface `ITransformable`
      Specified by:
        `ref` in interface `IVecI`

    - #### ref

          public IVertex ref(double centerX,
                    double centerY,
                    double centerZ,
                    double planeX,
                    double planeY,
                    double planeZ)

      Description copied from interface: `IVecI`
      reflect(mirror) 3 dimensionally to the other side of the plane
      Specified by:
        `ref` in interface `IVecI`

    - #### mirror

          public IVertex mirror(IVecI planeDir)

      Description copied from interface: `IVecI`
      alias of ref
      Specified by:
        `mirror` in interface `ITransformable`
      Specified by:
        `mirror` in interface `IVecI`

    - #### mirror

          public IVertex mirror(double planeX,
                       double planeY,
                       double planeZ)

      Description copied from interface: `IVecI`
      alias of ref
      Specified by:
        `mirror` in interface `IVecI`

    - #### mirror

          public IVertex mirror(IVecI center,
                       IVecI planeDir)

      Description copied from interface: `IVecI`
      alias of ref
      Specified by:
        `mirror` in interface `ITransformable`
      Specified by:
        `mirror` in interface `IVecI`

    - #### mirror

          public IVertex mirror(double centerX,
                       double centerY,
                       double centerZ,
                       double planeX,
                       double planeY,
                       double planeZ)

      Description copied from interface: `IVecI`
      alias of ref
      Specified by:
        `mirror` in interface `IVecI`

    - #### shear

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

      shear operation
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in interface `IVecI`

    - #### shear

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

      Description copied from interface: `IVecI`
      shear operation
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in interface `IVecI`

    - #### shear

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

      Description copied from interface: `IVecI`
      shear operation
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in interface `IVecI`

    - #### shear

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

      Description copied from interface: `IVecI`
      shear operation
      Specified by:
        `shear` in interface `ITransformable`
      Specified by:
        `shear` in interface `IVecI`

    - #### shearXY

          public IVertex shearXY(double sxy,
                        double syx)

      Description copied from interface: `IVecI`
      shear operation on XY
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in interface `IVecI`

    - #### shearXY

          public IVertex shearXY(IDoubleI sxy,
                        IDoubleI syx)

      Description copied from interface: `IVecI`
      shear operation on XY
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in interface `IVecI`

    - #### shearXY

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

      Description copied from interface: `IVecI`
      shear operation on XY
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in interface `IVecI`

    - #### shearXY

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

      Description copied from interface: `IVecI`
      shear operation on XY
      Specified by:
        `shearXY` in interface `ITransformable`
      Specified by:
        `shearXY` in interface `IVecI`

    - #### shearYZ

          public IVertex shearYZ(double syz,
                        double szy)

      Description copied from interface: `IVecI`
      shear operation on YZ
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in interface `IVecI`

    - #### shearYZ

          public IVertex shearYZ(IDoubleI syz,
                        IDoubleI szy)

      Description copied from interface: `IVecI`
      shear operation on YZ
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in interface `IVecI`

    - #### shearYZ

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

      Description copied from interface: `IVecI`
      shear operation on YZ
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in interface `IVecI`

    - #### shearYZ

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

      Description copied from interface: `IVecI`
      shear operation on YZ
      Specified by:
        `shearYZ` in interface `ITransformable`
      Specified by:
        `shearYZ` in interface `IVecI`

    - #### shearZX

          public IVertex shearZX(double szx,
                        double sxz)

      Description copied from interface: `IVecI`
      shear operation on ZX
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in interface `IVecI`

    - #### shearZX

          public IVertex shearZX(IDoubleI szx,
                        IDoubleI sxz)

      Description copied from interface: `IVecI`
      shear operation on ZX
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in interface `IVecI`

    - #### shearZX

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

      Description copied from interface: `IVecI`
      shear operation on ZX
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in interface `IVecI`

    - #### shearZX

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

      Description copied from interface: `IVecI`
      shear operation on ZX
      Specified by:
        `shearZX` in interface `ITransformable`
      Specified by:
        `shearZX` in interface `IVecI`

    - #### translate

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

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

    - #### translate

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

      Description copied from interface: `IVecI`
      alias of add()
      Specified by:
        `translate` in interface `ITransformable`
      Specified by:
        `translate` in interface `IVecI`

    - #### translate

          public IVertex translate(IVecI v)

      Description copied from interface: `IVecI`
      alias of add()
      Specified by:
        `translate` in interface `ITransformable`
      Specified by:
        `translate` in interface `IVecI`

    - #### transform

          public IVertex transform(IMatrix3I mat)

      Description copied from interface: `IVecI`
      transform with a transformation matrix
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in interface `IVecI`

    - #### transform

          public IVertex transform(IMatrix4I mat)

      Description copied from interface: `IVecI`
      transform with a transformation matrix
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in interface `IVecI`

    - #### transform

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

      Description copied from interface: `IVecI`
      transform with a transformation vectors
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in interface `IVecI`

    - #### transform

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

      Description copied from interface: `IVecI`
      transform with a transformation vectors
      Specified by:
        `transform` in interface `ITransformable`
      Specified by:
        `transform` in interface `IVecI`

    - #### mv

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

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

    - #### mv

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

      Description copied from interface: `IVecI`
      mv() is alias of add()
      Specified by:
        `mv` in interface `ITransformable`
      Specified by:
        `mv` in interface `IVecI`

    - #### mv

          public IVertex mv(IVecI v)

      Description copied from interface: `IVecI`
      mv() is alias of add()
      Specified by:
        `mv` in interface `ITransformable`
      Specified by:
        `mv` in interface `IVecI`

    - #### cp

          public IVertex cp()

      cp() is alias of dup()
      Specified by:
        `cp` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `cp` in interface `ITransformable`
      Specified by:
        `cp` in interface `IVecI`

    - #### cp

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

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

    - #### cp

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

      Description copied from interface: `IVecI`
      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `ITransformable`
      Specified by:
        `cp` in interface `IVecI`

    - #### cp

          public IVertex cp(IVecI v)

      Description copied from interface: `IVecI`
      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `ITransformable`
      Specified by:
        `cp` in interface `IVecI`

    - #### dif

          public IVecI dif(IVecI v)

      Description copied from interface: `IVecI`
      create a new instance of difference
      Specified by:
        `dif` in interface `IVecI`

    - #### dif

          public IVecI dif(double vx,
                  double vy,
                  double vz)

      Description copied from interface: `IVecI`
      create a new instance of difference
      Specified by:
        `dif` in interface `IVecI`

    - #### diff

          public IVecI diff(IVecI v)

      Description copied from interface: `IVecI`
      alias of dif
      Specified by:
        `diff` in interface `IVecI`

    - #### diff

          public IVecI diff(double vx,
                   double vy,
                   double vz)

      Description copied from interface: `IVecI`
      alias of dif
      Specified by:
        `diff` in interface `IVecI`

    - #### mid

          public IVecI mid(IVecI v)

      Description copied from interface: `IVecI`
      create a new instance of midpoint
      Specified by:
        `mid` in interface `IVecI`

    - #### mid

          public IVecI mid(double vx,
                  double vy,
                  double vz)

      Description copied from interface: `IVecI`
      create a new instance of midpoint
      Specified by:
        `mid` in interface `IVecI`

    - #### sum

          public IVecI sum(IVecI v)

      Description copied from interface: `IVecI`
      create a new instance of total summation
      Specified by:
        `sum` in interface `IVecI`

    - #### sum

          public IVecI sum(double vx,
                  double vy,
                  double vz)

      Description copied from interface: `IVecI`
      create a new instance of total summation
      Specified by:
        `sum` in interface `IVecI`

    - #### sum

          public IVecI sum(IVecI... v)

      Description copied from interface: `IVecI`
      create a new instance of total summation
      Specified by:
        `sum` in interface `IVecI`

    - #### bisect

          public IVecI bisect(IVecI v)

      Description copied from interface: `IVecI`
      create a new instance of bisector
      Specified by:
        `bisect` in interface `IVecI`

    - #### bisect

          public IVecI bisect(double vx,
                     double vy,
                     double vz)

      Description copied from interface: `IVecI`
      create a new instance of bisector
      Specified by:
        `bisect` in interface `IVecI`

    - #### sum

          public IVecI sum(IVecI v2,
                  double w1,
                  double w2)

      Description copied from interface: `IVecI`
      create a new instance of weighted sum
      Specified by:
        `sum` in interface `IVecI`

    - #### sum

          public IVecI sum(IVecI v2,
                  double w2)

      Description copied from interface: `IVecI`
      create a new instance of weighted sum
      Specified by:
        `sum` in interface `IVecI`

    - #### sum

          public IVecI sum(IVecI v2,
                  IDoubleI w1,
                  IDoubleI w2)

      Description copied from interface: `IVecI`
      create a new instance of weighted sum
      Specified by:
        `sum` in interface `IVecI`

    - #### sum

          public IVecI sum(IVecI v2,
                  IDoubleI w2)

      Description copied from interface: `IVecI`
      create a new instance of weighted sum
      Specified by:
        `sum` in interface `IVecI`

    - #### nml

          public IVecI nml(IVecI v)

      alias of cross. (not unitized ... ?) returns IVecI
      Specified by:
        `nml` in interface `IVecI`

    - #### nml

          public IVecI nml(double vx,
                  double vy,
                  double vz)

      Description copied from interface: `IVecI`
      alias of cross
      Specified by:
        `nml` in interface `IVecI`

    - #### nml

          public IVecI nml(IVecI pt1,
                  IVecI pt2)

      create normal vector from 3 points of self, pt1 and pt2
      Specified by:
        `nml` in interface `IVecI`

    - #### nml

          public IVecI nml(double vx1,
                  double vy1,
                  double vz1,
                  double vx2,
                  double vy2,
                  double vz2)

      Description copied from interface: `IVecI`
      create normal vector from 3 points of self, pt1 and pt2
      Specified by:
        `nml` in interface `IVecI`

    - #### getAverageNormal

          public IVec getAverageNormal()

    - #### calcNormal

          public void calcNormal()

    - #### normal

          public IVecI normal()

      getting normal (alias)

    - #### nml

          public IVecI nml()

      getting normal

    - #### getNormal

          public IVecI getNormal()

      getting normal (alias)

    - #### getNml

          public IVecI getNml()

      getting normal (alias)

    - #### setNormal

          public IVertex setNormal(IVecI n)

    - #### setNormal

          public IVertex setNormal(double x,
                          double y,
                          double z)

    - #### setNml

          public IVertex setNml(IVecI n)

    - #### setNml

          public IVertex setNml(double x,
                       double y,
                       double z)

    - #### isValid

          public boolean isValid()

      setting normal; this nml has different function from IVecI's nml
      Specified by:
        `isValid` in interface `IVecI`

    - #### texture

          public IVec2I texture()

    - #### texture

          public IVertex texture(IVec2I t)

    - #### texture

          public IVertex texture(double u,
                        double v)

    - #### addEdge

          public void addEdge(IEdge e)

    - #### getEdge

          public IEdge getEdge(int i)

    - #### edge

          public IEdge edge(int i)

    - #### edgeNum

          public int edgeNum()

    - #### getEdgeTo

          public IEdge getEdgeTo(IVertex v)

    - #### createEdgeTo

          public IEdge createEdgeTo(IVertex v)

    - #### addFace

          public void addFace(IFace f)

    - #### getFace

          public IFace getFace(int i)

    - #### face

          public IFace face(int i)

    - #### faceNum

          public int faceNum()

    - #### linkedVertex

          public IVertex linkedVertex(int i)

    - #### linkedVertexNum

          public int linkedVertexNum()

    - #### replaceLinkedVertex

          public void replaceLinkedVertex(IVertex oldVertex,
                                 IVertex newVertex)

    - #### replaceVertex

          public void replaceVertex(IVertex newVertex)

    - #### getOtherEdges

          public IEdge[] getOtherEdges(IEdge edge)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### sortByEdge

          public static java.util.ArrayList<IVertex> sortByEdge(java.util.ArrayList<IVertex> vtx,
                                                int startIdx)

      list of vertices are sorted by tracing edge connection. ideally vertices are connected as a circle by edges this works only when all triangulated. quad mesh might not work.

    - #### sortByEdge

          public static java.util.ArrayList<IVertex> sortByEdge(java.util.ArrayList<IVertex> vtx,
                                                IVertex v)

      list of vertices are sorted by tracing edge connection. ideally vertices are connected as a circle by edges this works only when all triangulated. quad mesh might not work.

    - #### sortByEdge

          public static java.util.ArrayList<IVertex> sortByEdge(java.util.ArrayList<IVertex> vtx)

      list of vertices are sorted by tracing edge connection. ideally vertices are connected as a circle by edges this works only when all triangulated. quad mesh might not work.

    - #### findLinkedVertexInArray

          public static int findLinkedVertexInArray(IVertex v,
                                    java.util.ArrayList<IVertex> vlist,
                                    boolean[] skiplist)

      returns vertex index in arraylist

    - #### clr

          public IColor clr()

    - #### clr

          public IVertex clr(IColor c)

    - #### clr

          public IVertex clr(IColor c,
                    int alpha)

      to set color, with alpha value overwritten

    - #### clr

          public IVertex clr(IColor c,
                    float alpha)

      to set color, with alpha value overwritten

    - #### clr

          public IVertex clr(IColor c,
                    double alpha)

      to set color, with alpha value overwritten

    - #### clr

          public IVertex clr(IObject o)

    - #### clr

          public IVertex clr(IVertex v)

    - #### clr

          public IVertex clr(java.awt.Color c)

    - #### clr

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

    - #### clr

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

    - #### clr

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

    - #### getColor

          public IColor getColor()

      Returns:
        returns whatever Color of any graphics member. (first found)

    - #### clr

          public IVertex clr(int gray)

    - #### clr

          public IVertex clr(double dgray)

    - #### clr

          public IVertex clr(float fgray)

    - #### clr

          public IVertex clr(int gray,
                    int alpha)

    - #### clr

          public IVertex clr(double dgray,
                    double dalpha)

    - #### clr

          public IVertex clr(float fgray,
                    float falpha)

    - #### clr

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

    - #### clr

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

    - #### clr

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

    - #### clr

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

    - #### clr

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

    - #### clr

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

    - #### hsb

          public IVertex hsb(double dh,
                    double ds,
                    double db,
                    double da)

    - #### hsb

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

    - #### hsb

          public IVertex hsb(double dh,
                    double ds,
                    double db)

    - #### hsb

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