igeo

## Class IVec4

- java.lang.Object
- - igeo.IParameterObject
  - - igeo.IVec
    - - igeo.IVec4

- All Implemented Interfaces:
    IArithmeticVal<IVecI,IDoubleI>, IEntityParameter, IParameter, ISubobject, ITransformable, IVal, IVec4I, IVec4Op, IVecI, IVecOp

      public class IVec4
      extends IVec
      implements IVec4I, IEntityParameter

  Class of 4 dimensional vector. 4 dimensional vector is mainly used for control points of NURBS geometry to include weights
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `double` | `w`

    - ### Fields inherited from class igeo.IVec

      `origin, x, xaxis, y, yaxis, z, zaxis`

    - ### Fields inherited from class igeo.IParameterObject

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IVec4()`
    `IVec4(double x, double y, double z)`
    `IVec4(double x, double y, double z, double w)`
    `IVec4(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVec4(IDoubleI x, IDoubleI y, IDoubleI z, IDoubleI w)`
    `IVec4(IServerI s)`
    `IVec4(IServerI s, double x, double y, double z)`
    `IVec4(IServerI s, double x, double y, double z, double w)`
    `IVec4(IServerI s, IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVec4(IServerI s, IDoubleI x, IDoubleI y, IDoubleI z, IDoubleI w)`
    `IVec4(IServerI s, IVec v)`
    `IVec4(IServerI s, IVec4 v)`
    `IVec4(IServerI s, IVec4I v)`
    `IVec4(IServerI s, IVec v, double w)`
    `IVec4(IServerI s, IVecI v)`
    `IVec4(IServerI s, IVecI v, double w)`
    `IVec4(IServerI s, IVecI v, IDoubleI w)`
    `IVec4(IVec v)`
    `IVec4(IVec4 v)`
    `IVec4(IVec4I v)`
    `IVec4(IVec v, double w)`
    `IVec4(IVecI v)`
    `IVec4(IVecI v, double w)`
    `IVec4(IVecI v, IDoubleI w)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `IVec4` | `add(double x, double y, double z)`
    `IVec4` | `add(double f, IVec v)` scale add alias
    `IVec4` | `add(double f, IVecI v)` scale add alias
    `IVec4` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVec4` | `add(IDoubleI f, IVecI v)` scale add alias
    `IVec4` | `add(IVec v)`
    `IVec4` | `add(IVec v, double f)` scale add
    `IVec4` | `add(IVecI v)`
    `IVec4` | `add(IVecI v, double f)` scale add
    `IVec4` | `add(IVecI v, IDoubleI f)` scale add
    `IVec4` | `bisect(double vx, double vy, double vz)` create a new instance of bisector
    `IVec4` | `bisect(IVec v)` create a new instance of bisector
    `IVec4` | `bisect(IVecI v)` create a new instance of bisector
    `IVec4` | `cp()` cp() is alias of dup()
    `IVec4` | `cp(double vx, double vy, double vz)` cp() is alias of dup().add()
    `IVec4` | `cp(IDoubleI vx, IDoubleI vy, IDoubleI vz)` cp() is alias of dup().add()
    `IVec4` | `cp(IVec v)` cp() is alias of dup().add()
    `IVec4` | `cp(IVecI v)` cp() is alias of dup().add()
    `IVec4` | `cross(double vx, double vy, double vz)` cross product, returning a new instance.
    `IVec4` | `cross(IVec v)` cross product, returning a new instance.
    `IVec4` | `cross(IVecI v)` cross product, creating a new instance
    `IVec4` | `dif(double vx, double vy, double vz)` create a new instance of difference
    `IVec4` | `dif(IVec v)` create a new instance of difference
    `IVec4` | `dif(IVecI v)` create a new instance of difference
    `IVec4` | `diff(double vx, double vy, double vz)` create a new instance of difference
    `IVec4` | `diff(IVec v)` create a new instance of difference
    `IVec4` | `diff(IVecI v)` create a new instance of difference
    `IVec4` | `div(double v)`
    `IVec4` | `div(IDoubleI v)`
    `IVec4` | `dup()` duplicate the instance
    `boolean` | `eqW(double vw)`
    `boolean` | `eqW(double vw, double tolerance)`
    `boolean` | `eqW(ISwitchE e, IVec4I v)`
    `boolean` | `eqW(ISwitchE e, IVec4I v, double tolerance)`
    `IBool` | `eqW(ISwitchR r, IVec4I v)`
    `IBool` | `eqW(ISwitchR r, IVec4I v, IDoubleI tolerance)`
    `boolean` | `eqW(IVec4 v)`
    `boolean` | `eqW(IVec4 v, double tolerance)`
    `boolean` | `eqW(IVec4I v)`
    `boolean` | `eqW(IVec4I v, double tolerance)`
    `IVec4` | `flip()` note that it's not negating w
    `IVec4` | `get()`
    `IDouble` | `getW()`
    `IVec4` | `icross(double vx, double vy, double vz)` cross product, changing the instance not creating a new instance
    `IVec4` | `icross(IVec v)` cross product, changing the instance not creating a new instance
    `IVec4` | `icross(IVecI v)` cross product, changing the instance not creating a new instance
    `boolean` | `isValid()` checking x, y, and z is valid number (not Infinite, nor NaN).
    `IVec4` | `len(double l)` setting length of vector, ignoring w
    `IVec4` | `len(IDoubleI l)` setting length of vector, ignoring w
    `IVec4` | `mid(double vx, double vy, double vz)` create a new instance of midpoint
    `IVec4` | `mid(IVec v)` create a new instance of midpoint
    `IVec4` | `mid(IVecI v)` create a new instance of midpoint
    `IVec4` | `mirror(double planeX, double planeY, double planeZ)` alias of ref
    `IVec4` | `mirror(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)` alias of ref
    `IVec4` | `mirror(IVec planeDir)` alias of ref
    `IVec4` | `mirror(IVecI planeDir)` alias of ref
    `IVec4` | `mirror(IVecI center, IVecI planeDir)` alias of ref
    `IVec4` | `mirror(IVec center, IVec planeDir)` alias of ref
    `IVec4` | `mul(double v)`
    `IVec4` | `mul(IDoubleI v)`
    `IVec4` | `mv(double vx, double vy, double vz)` mv() is alias of add()
    `IVec4` | `mv(IDoubleI vx, IDoubleI vy, IDoubleI vz)` mv() is alias of add()
    `IVec4` | `mv(IVecI v)` mv() is alias of add()
    `IVec4` | `neg()` note that it's not negating w
    `IVec4` | `nml(double vx, double vy, double vz)` alias of cross.
    `IVec4` | `nml(double vx1, double vy1, double vz1, double vx2, double vy2, double vz2)` create normal vector from 3 points of self, pt1 and pt2, not unitized
    `IVec4` | `nml(IVec v)` alias of cross.
    `IVec4` | `nml(IVecI v)` alias of cross.
    `IVec4` | `nml(IVecI pt1, IVecI pt2)` create normal vector from 3 points of self, pt1 and pt2, not unitized
    `IVec4` | `nml(IVec pt1, IVec pt2)` create normal vector from 3 points of self, pt1 and pt2, not unitized
    `IVec4` | `ref(double planeX, double planeY, double planeZ)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IVec4` | `ref(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)` reflect (mirror) 3 dimensionally to the other side of the plane at the center
    `IVec4` | `ref(IVec planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IVec4` | `ref(IVecI planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IVec4` | `ref(IVecI center, IVecI planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane at the center
    `IVec4` | `ref(IVec center, IVec planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane at the center
    `IVec4` | `rev()` note that it's not negating w
    `IVec4` | `rot(double angle)` rotation on xy-plane
    `IVec4` | `rot(double axisX, double axisY, double axisZ, double angle)` rotate the vector around the axis
    `IVec4` | `rot(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double angle)` rotation around axis vector and center point
    `IVec4` | `rot(IDoubleI angle)` rotation on xy-plane
    `IVec4` | `rot(IVec axis, double angle)` rotate the vector around the axis
    `IVec4` | `rot(IVecI axis, double angle)` rotation around axis vector
    `IVec4` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
    `IVec4` | `rot(IVecI axis, IVecI destDir)` rotation around axis towards destination direction
    `IVec4` | `rot(IVecI center, IVecI axis, double angle)` rotation around axis vector and center point
    `IVec4` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center point
    `IVec4` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotation around axis and center towards destination point
    `IVec4` | `rot(IVec axis, IVec destDir)` rotation around axis towards destination direction
    `IVec4` | `rot(IVec center, IVec axis, double angle)`
    `IVec4` | `rot(IVec center, IVec axis, IVec destPt)` rotation around axis and center towards destination point
    `IVec4` | `rot2(double angle)` alias of rot(double)
    `IVec4` | `rot2(double centerX, double centerY, double angle)` rotation on xy-plane
    `IVec4` | `rot2(IDoubleI angle)` alias of rot(IDoubleI)
    `IVec4` | `rot2(IVec destDir)` rotation on xy-plane towards destDir
    `IVec4` | `rot2(IVec center, double angle)` rotation on xy-plane
    `IVec4` | `rot2(IVecI destDir)` rotation on xy-plane towards destDir
    `IVec4` | `rot2(IVecI center, double angle)` rotation on xy-plane
    `IVec4` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane
    `IVec4` | `rot2(IVecI center, IVecI destPt)` rotation on xy-plane towards destPt
    `IVec4` | `rot2(IVec center, IVec destPt)` rotation on xy-plane towards destPt
    `IVec4` | `scale(double f)` alias of mul
    `IVec4` | `scale(double centerX, double centerY, double centerZ, double f)` scale from the center
    `IVec4` | `scale(IDoubleI f)` alias of mul
    `IVec4` | `scale(IVec center, double f)` scale from the center
    `IVec4` | `scale(IVecI center, double f)` scale from the center
    `IVec4` | `scale(IVecI center, IDoubleI f)` scale from the center
    `IVec4` | `scale1d(double axisX, double axisY, double axisZ, double f)` scale only in 1 direction
    `IVec4` | `scale1d(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double f)` scale only in 1 direction
    `IVec4` | `scale1d(IVec axis, double f)` scale only in 1 direction
    `IVec4` | `scale1d(IVecI axis, double f)` scale only in 1 direction
    `IVec4` | `scale1d(IVecI axis, IDoubleI f)` scale only in 1 direction
    `IVec4` | `scale1d(IVecI center, IVecI axis, double f)` scale only in 1 direction
    `IVec4` | `scale1d(IVecI center, IVecI axis, IDoubleI f)` scale only in 1 direction
    `IVec4` | `scale1d(IVec center, IVec axis, double f)` scale only in 1 direction
    `IVec4` | `set(double x, double y, double z)`
    `IVec4` | `set(double x, double y, double z, double w)`
    `IVec4` | `set(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVec4` | `set(IDoubleI x, IDoubleI y, IDoubleI z, IDoubleI w)`
    `IVec4` | `set(IVec v)`
    `IVec4` | `set(IVec4 v)`
    `IVec4` | `set(IVec4I v)`
    `IVec4` | `set(IVec v, double w)`
    `IVec4` | `set(IVecI v)`
    `IVec4` | `set(IVecI v, double w)`
    `IVec4` | `set(IVecI v, IDoubleI w)`
    `IVec4` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `IVec4` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)` shear operation
    `IVec4` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `IVec4` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)` shear operation
    `IVec4` | `shearXY(double sxy, double syx)` shear operation on XY
    `IVec4` | `shearXY(IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IVec4` | `shearXY(IVecI center, double sxy, double syx)` shear operation on XY
    `IVec4` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IVec4` | `shearYZ(double syz, double szy)` shear operation on YZ
    `IVec4` | `shearYZ(IDoubleI syz, IDoubleI szy)` shear operation on YZ
    `IVec4` | `shearYZ(IVecI center, double syz, double szy)` shear operation on YZ
    `IVec4` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)` shear operation on YZ
    `IVec4` | `shearZX(double szx, double sxz)` shear operation on ZX
    `IVec4` | `shearZX(IDoubleI szx, IDoubleI sxz)` shear operation on ZX
    `IVec4` | `shearZX(IVecI center, double szx, double sxz)` shear operation on ZX
    `IVec4` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)` shear operation on ZX
    `IVec4` | `sub(double x, double y, double z)`
    `IVec4` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IVec4` | `sub(IVec v)`
    `IVec4` | `sub(IVecI v)`
    `IVec4` | `sum(double vx, double vy, double vz)` create a new instance of summation
    `IVec4` | `sum(IVec... v)` create a new instance of summation
    `IVec4` | `sum(IVec v)` create a new instance of summation
    `IVec4` | `sum(IVec v2, double w2)` create a new instance of weighted summation
    `IVec4` | `sum(IVec v2, double w1, double w2)` create a new instance of weighted summation
    `IVec4` | `sum(IVecI... v)` create a new instance of summation
    `IVec4` | `sum(IVecI v)` create a new instance of summation
    `IVec4` | `sum(IVecI v2, double w2)` create a new instance of weighted summation
    `IVec4` | `sum(IVecI v2, double w1, double w2)` create a new instance of weighted summation
    `IVec4` | `sum(IVecI v2, IDoubleI w2)` create a new instance of weighted summation
    `IVec4` | `sum(IVecI v2, IDoubleI w1, IDoubleI w2)` create a new instance of weighted summation
    `IVec2` | `to2d()`
    `IVec2` | `to2d(IVecI projectionDir)`
    `IVec2` | `to2d(IVecI xaxis, IVecI yaxis)`
    `IVec2` | `to2d(IVecI xaxis, IVecI yaxis, IVecI origin)`
    `IVec` | `to3d()`
    `IVec4` | `to4d()`
    `IVec4` | `to4d(double w)`
    `IVec4` | `to4d(IDoubleI w)`
    `java.lang.String` | `toString()`
    `IVec4` | `transform(IMatrix3I mat)` transform with a transformation matrix
    `IVec4` | `transform(IMatrix4I mat)` transform with a transformation matrix
    `IVec4` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)` transform with a transformation vectors
    `IVec4` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)` transform with a transformation vectors
    `IVec4` | `transform(IVec xvec, IVec yvec, IVec zvec)`
    `IVec4` | `transform(IVec xvec, IVec yvec, IVec zvec, IVec translate)`
    `IVec4` | `translate(double x, double y, double z)` alias of add()
    `IVec4` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)` alias of add()
    `IVec4` | `translate(IVecI v)` alias of add()
    `IVec4` | `unit()` unitize, ignoring w
    `double` | `w()` getting w component
    `IVec4` | `w(double vw)` setting w component
    `IVec4` | `w(IDoubleI vw)` setting z component
    `double` | `w(ISwitchE e)` getting z component
    `IDouble` | `w(ISwitchR r)` getting z component
    `IVec4` | `w(IVec4I v)` setting w component by z component of input vector
    `IVec4` | `x(double vx)` setting x component
    `IVec4` | `x(IDoubleI vx)` setting x component
    `IVec4` | `x(IVec2I v)` setting x component by x component of input vector
    `IVec4` | `x(IVecI v)` setting x component by x component of input vector
    `IVec4` | `y(double vy)` setting y component
    `IVec4` | `y(IDoubleI vy)` setting y component
    `IVec4` | `y(IVec2I v)` setting y component by y component of input vector
    `IVec4` | `y(IVecI v)` setting y component by y component of input vector
    `IVec4` | `z(double vz)` setting z component
    `IVec4` | `z(IDoubleI vz)` setting z component
    `IVec4` | `z(IVecI v)` setting z component by z component of input vector
    `IVec4` | `zero()` note that w is not set zero

    - ### Methods inherited from class igeo.IVec

      `angle, angle, angle, angle, angle, angle, angle, angle, angle, angle, angle, angleOnPlane, angleOnPlane, angleOnPlane, angleOnPlane, angleOnPlane, angleOnPlane, angleOnPlane, angleOnPlane, area, averageNormal, averageNormal, bisectPlane, center, circumcenter, closestPointsOn2Lines, closestPointsOn2Lines, closestPointsOnLines, closestPointsOnLines, closestPointsOnSegments, closestPointsOnSegments, closestPtsOnLines, closestPtsOnLines, closestPtsOnSegments, closestPtsOnSegments, decompose, dist, dist, dist, dist, dist, dist2, dist2, dist2, dist2, dist2, distBetween2Lines, distBetween2Lines, distBetween2Segments, distBetween2Segments, distBetweenLines, distBetweenLines, distBetweenSegments, distToLine, distToLine, distToPlane, distToSegment, distToTriangle, div, dot, dot, dot, dot, dot, eq, eq, eq, eq, eq, eq, eq, eq, eq, eq, eqX, eqX, eqX, eqX, eqX, eqX, eqX, eqX, eqX, eqX, eqY, eqY, eqY, eqY, eqY, eqY, eqY, eqY, eqY, eqY, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, getNormal, getNormal, getNormal, getNormal, getNormal, getX, getY, getZ, intersect, intersect, intersect, intersect, intersectCircle, intersectCircleAndSphere, intersectInfiniteLine, intersectInfiniteLine, intersectInfiniteLine, intersectInfiniteLine, intersectInfiniteLines, intersectInfiniteLines, intersectInfiniteLines, intersectInfiniteLines, intersectInfLine, intersectInfLine, intersectInfLine, intersectInfLine, intersectInfLines, intersectInfLines, intersectInfLines, intersectInfLines, intersectLine, intersectLine, intersectLine, intersectLine, intersectLineAndSphere, intersectLines, intersectLines, intersectLines, intersectLines, intersectPlane, intersectPlane, intersectPlane, intersectPlaneAndLine, intersectPlaneAndLine, intersectPlaneAndLine, intersectPlaneAndSegment, intersectPlaneAndSegment, intersectPlaneAndSphere, intersectSeg, intersectSeg, intersectSeg, intersectSeg, intersectSegment, intersectSegment, intersectSegment, intersectSegment, intersectSegments, intersectSegments, intersectSegments, intersectSegments, intersectSphere, isArrayEqual, isArrayEqual, isFlat, isFlat, isFlat, isFlat, isInside2d, isInside2d, isInside2d, isInside2d, isInsideTriangle, isLinesCloserThan, isLinesCloserThan, isOnLine, isOnLine, isOnPlane, isOnPlane, isOnPlane, isOnPlane, isOnSegment, isOnSegment, isOnTriangle, isOnTriangle, isParallel, isParallel, isPerpendicular, isPerpendicular, isSegCloserThan, isSegCloserThan, isSegmentsCloserThan, isSegmentsCloserThan, isStraight, isStraight, isStraight, isStraight, len, len, len, len2, len2, len2, lineDist, lineDist, mul, nml, nml, nml, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offset, offsetNormal, perpendicularTo2Lines, perpendicularTo2Lines, perpendicularVecToLine, perpendicularVecToLine, projectTo2Vec, projectToLine, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToPlane, projectToSegment, projectToTriangle, projectToVec, ratioOnSegment, segDist, segDist, segmentDist, segmentDist, show, show, show, show, toIVecArray, x, x, x, y, y, y, z, z, z`

    - ### Methods inherited from class igeo.IParameterObject

      `createObject, parent, parent`

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

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

    - ### Methods inherited from interface igeo.IVec4I

      `getX, getY, getZ, x, x, x, y, y, y, z, z, z`

    - ### Methods inherited from interface igeo.IVecI

      `angle, angle, angle, angle, angle, angle, angle, angle, dist, dist, dist, dist, dist2, dist2, dist2, dist2, dot, dot, dot, dot, eq, eq, eq, eq, eq, eq, eq, eq, eqX, eqX, eqX, eqX, eqX, eqX, eqX, eqX, eqY, eqY, eqY, eqY, eqY, eqY, eqY, eqY, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, eqZ, len, len, len, len2, len2, len2`

- - ### Field Detail

    - #### w

          public double w

  - ### Constructor Detail

    - #### IVec4

          public IVec4()

    - #### IVec4

          public IVec4(double x,
                       double y,
                       double z,
                       double w)

    - #### IVec4

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

    - #### IVec4

          public IVec4(IVec4 v)

    - #### IVec4

          public IVec4(IVec4I v)

    - #### IVec4

          public IVec4(IVec v)

    - #### IVec4

          public IVec4(IVecI v)

    - #### IVec4

          public IVec4(IVec v,
                       double w)

    - #### IVec4

          public IVec4(IVecI v,
                       double w)

    - #### IVec4

          public IVec4(IVecI v,
                       IDoubleI w)

    - #### IVec4

          public IVec4(IDoubleI x,
                       IDoubleI y,
                       IDoubleI z,
                       IDoubleI w)

    - #### IVec4

          public IVec4(IDoubleI x,
                       IDoubleI y,
                       IDoubleI z)

    - #### IVec4

          public IVec4(IServerI s)

    - #### IVec4

          public IVec4(IServerI s,
                       double x,
                       double y,
                       double z,
                       double w)

    - #### IVec4

          public IVec4(IServerI s,
                       double x,
                       double y,
                       double z)

    - #### IVec4

          public IVec4(IServerI s,
                       IVec4 v)

    - #### IVec4

          public IVec4(IServerI s,
                       IVec4I v)

    - #### IVec4

          public IVec4(IServerI s,
                       IVec v)

    - #### IVec4

          public IVec4(IServerI s,
                       IVecI v)

    - #### IVec4

          public IVec4(IServerI s,
                       IVec v,
                       double w)

    - #### IVec4

          public IVec4(IServerI s,
                       IVecI v,
                       double w)

    - #### IVec4

          public IVec4(IServerI s,
                       IVecI v,
                       IDoubleI w)

    - #### IVec4

          public IVec4(IServerI s,
                       IDoubleI x,
                       IDoubleI y,
                       IDoubleI z,
                       IDoubleI w)

    - #### IVec4

          public IVec4(IServerI s,
                       IDoubleI x,
                       IDoubleI y,
                       IDoubleI z)

  - ### Method Detail

    - #### w

          public double w()

      Description copied from interface: `IVec4I`
      getting w component
      Specified by:
        `w` in interface `IVec4I`

    - #### x

          public IVec4 x(double vx)

      setting x component
      Specified by:
        `x` in interface `IVec4I`
      Specified by:
        `x` in interface `IVecI`
      Overrides:
        `x` in class `IVec`

    - #### y

          public IVec4 y(double vy)

      setting y component
      Specified by:
        `y` in interface `IVec4I`
      Specified by:
        `y` in interface `IVecI`
      Overrides:
        `y` in class `IVec`

    - #### z

          public IVec4 z(double vz)

      setting z component
      Specified by:
        `z` in interface `IVec4I`
      Specified by:
        `z` in interface `IVecI`
      Overrides:
        `z` in class `IVec`

    - #### w

          public IVec4 w(double vw)

      setting w component
      Specified by:
        `w` in interface `IVec4I`

    - #### x

          public IVec4 x(IDoubleI vx)

      setting x component
      Specified by:
        `x` in interface `IVec4I`
      Specified by:
        `x` in interface `IVecI`
      Overrides:
        `x` in class `IVec`

    - #### y

          public IVec4 y(IDoubleI vy)

      setting y component
      Specified by:
        `y` in interface `IVec4I`
      Specified by:
        `y` in interface `IVecI`
      Overrides:
        `y` in class `IVec`

    - #### z

          public IVec4 z(IDoubleI vz)

      setting z component
      Specified by:
        `z` in interface `IVec4I`
      Specified by:
        `z` in interface `IVecI`
      Overrides:
        `z` in class `IVec`

    - #### w

          public IVec4 w(IDoubleI vw)

      setting z component
      Specified by:
        `w` in interface `IVec4I`

    - #### x

          public IVec4 x(IVecI v)

      setting x component by x component of input vector
      Specified by:
        `x` in interface `IVec4I`
      Specified by:
        `x` in interface `IVecI`
      Overrides:
        `x` in class `IVec`

    - #### y

          public IVec4 y(IVecI v)

      setting y component by y component of input vector
      Specified by:
        `y` in interface `IVec4I`
      Specified by:
        `y` in interface `IVecI`
      Overrides:
        `y` in class `IVec`

    - #### z

          public IVec4 z(IVecI v)

      setting z component by z component of input vector
      Specified by:
        `z` in interface `IVec4I`
      Specified by:
        `z` in interface `IVecI`
      Overrides:
        `z` in class `IVec`

    - #### w

          public IVec4 w(IVec4I v)

      setting w component by z component of input vector
      Specified by:
        `w` in interface `IVec4I`

    - #### x

          public IVec4 x(IVec2I v)

      setting x component by x component of input vector
      Specified by:
        `x` in interface `IVec4I`
      Specified by:
        `x` in interface `IVecI`
      Overrides:
        `x` in class `IVec`

    - #### y

          public IVec4 y(IVec2I v)

      setting y component by y component of input vector
      Specified by:
        `y` in interface `IVec4I`
      Specified by:
        `y` in interface `IVecI`
      Overrides:
        `y` in class `IVec`

    - #### w

          public double w(ISwitchE e)

      getting z component
      Specified by:
        `w` in interface `IVec4I`

    - #### w

          public IDouble w(ISwitchR r)

      getting z component
      Specified by:
        `w` in interface `IVec4I`

    - #### get

          public IVec4 get()

      Specified by:
        `get` in interface `IParameter`
      Specified by:
        `get` in interface `IVec4I`
      Specified by:
        `get` in interface `IVec4Op`
      Specified by:
        `get` in interface `IVecI`
      Specified by:
        `get` in interface `IVecOp`
      Overrides:
        `get` in class `IVec`

    - #### dup

          public IVec4 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 `IVec4I`
      Specified by:
        `dup` in interface `IVecI`
      Overrides:
        `dup` in class `IVec`

    - #### to3d

          public IVec to3d()

      Specified by:
        `to3d` in interface `IVec4I`

    - #### to2d

          public IVec2 to2d()

      Specified by:
        `to2d` in interface `IVec4I`
      Specified by:
        `to2d` in interface `IVecI`
      Overrides:
        `to2d` in class `IVec`

    - #### to2d

          public IVec2 to2d(IVecI projectionDir)

      Specified by:
        `to2d` in interface `IVecI`
      Overrides:
        `to2d` in class `IVec`

    - #### to2d

          public IVec2 to2d(IVecI xaxis,
                            IVecI yaxis)

      Specified by:
        `to2d` in interface `IVecI`
      Overrides:
        `to2d` in class `IVec`

    - #### to2d

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

      Specified by:
        `to2d` in interface `IVecI`
      Overrides:
        `to2d` in class `IVec`

    - #### to4d

          public IVec4 to4d()

      Specified by:
        `to4d` in interface `IVecI`
      Overrides:
        `to4d` in class `IVec`

    - #### to4d

          public IVec4 to4d(double w)

      Specified by:
        `to4d` in interface `IVecI`
      Overrides:
        `to4d` in class `IVec`

    - #### to4d

          public IVec4 to4d(IDoubleI w)

      Specified by:
        `to4d` in interface `IVecI`
      Overrides:
        `to4d` in class `IVec`

    - #### getW

          public IDouble getW()

      Specified by:
        `getW` in interface `IVec4I`

    - #### set

          public IVec4 set(double x,
                           double y,
                           double z,
                           double w)

      Specified by:
        `set` in interface `IVec4I`

    - #### set

          public IVec4 set(IDoubleI x,
                           IDoubleI y,
                           IDoubleI z,
                           IDoubleI w)

      Specified by:
        `set` in interface `IVec4I`

    - #### set

          public IVec4 set(IVec4 v)

    - #### set

          public IVec4 set(IVec v,
                           double w)

    - #### set

          public IVec4 set(IVec4I v)

      Specified by:
        `set` in interface `IVec4I`

    - #### set

          public IVec4 set(IVecI v,
                           double w)

      Specified by:
        `set` in interface `IVec4I`

    - #### set

          public IVec4 set(IVecI v,
                           IDoubleI w)

      Specified by:
        `set` in interface `IVec4I`

    - #### set

          public IVec4 set(IVec v)

      Overrides:
        `set` in class `IVec`

    - #### set

          public IVec4 set(IVecI v)

      Specified by:
        `set` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `set` in interface `IVec4I`
      Specified by:
        `set` in interface `IVecI`
      Overrides:
        `set` in class `IVec`

    - #### set

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

      Specified by:
        `set` in interface `IVec4I`
      Specified by:
        `set` in interface `IVecI`
      Overrides:
        `set` in class `IVec`

    - #### set

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

      Specified by:
        `set` in interface `IVec4I`
      Specified by:
        `set` in interface `IVecI`
      Overrides:
        `set` in class `IVec`

    - #### add

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

      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVecI`
      Overrides:
        `add` in class `IVec`

    - #### add

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

      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVecI`
      Overrides:
        `add` in class `IVec`

    - #### add

          public IVec4 add(IVec v)

      Overrides:
        `add` in class `IVec`

    - #### add

          public IVec4 add(IVecI v)

      Specified by:
        `add` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVec4I`
      Specified by:
        `add` in interface `IVecI`
      Overrides:
        `add` in class `IVec`

    - #### sub

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

      Specified by:
        `sub` in interface `ITransformable`
      Specified by:
        `sub` in interface `IVecI`
      Overrides:
        `sub` in class `IVec`

    - #### sub

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

      Specified by:
        `sub` in interface `ITransformable`
      Specified by:
        `sub` in interface `IVecI`
      Overrides:
        `sub` in class `IVec`

    - #### sub

          public IVec4 sub(IVec v)

      Overrides:
        `sub` in class `IVec`

    - #### sub

          public IVec4 sub(IVecI v)

      Specified by:
        `sub` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `sub` in interface `ITransformable`
      Specified by:
        `sub` in interface `IVec4I`
      Specified by:
        `sub` in interface `IVecI`
      Overrides:
        `sub` in class `IVec`

    - #### mul

          public IVec4 mul(IDoubleI v)

      Specified by:
        `mul` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `mul` in interface `ITransformable`
      Specified by:
        `mul` in interface `IVec4I`
      Specified by:
        `mul` in interface `IVecI`
      Overrides:
        `mul` in class `IVec`

    - #### mul

          public IVec4 mul(double v)

      Specified by:
        `mul` in interface `ITransformable`
      Specified by:
        `mul` in interface `IVec4I`
      Specified by:
        `mul` in interface `IVecI`
      Overrides:
        `mul` in class `IVec`

    - #### div

          public IVec4 div(IDoubleI v)

      Specified by:
        `div` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `div` in interface `ITransformable`
      Specified by:
        `div` in interface `IVec4I`
      Specified by:
        `div` in interface `IVecI`
      Overrides:
        `div` in class `IVec`

    - #### div

          public IVec4 div(double v)

      Specified by:
        `div` in interface `ITransformable`
      Specified by:
        `div` in interface `IVec4I`
      Specified by:
        `div` in interface `IVecI`
      Overrides:
        `div` in class `IVec`

    - #### neg

          public IVec4 neg()

      note that it's not negating w
      Specified by:
        `neg` in interface `ITransformable`
      Specified by:
        `neg` in interface `IVec4I`
      Specified by:
        `neg` in interface `IVecI`
      Overrides:
        `neg` in class `IVec`

    - #### rev

          public IVec4 rev()

      note that it's not negating w
      Specified by:
        `rev` in interface `IVec4I`
      Specified by:
        `rev` in interface `IVecI`
      Overrides:
        `rev` in class `IVec`

    - #### flip

          public IVec4 flip()

      note that it's not negating w
      Specified by:
        `flip` in interface `ITransformable`
      Specified by:
        `flip` in interface `IVec4I`
      Specified by:
        `flip` in interface `IVecI`
      Overrides:
        `flip` in class `IVec`

    - #### zero

          public IVec4 zero()

      note that w is not set zero
      Specified by:
        `zero` in interface `IArithmeticVal<IVecI,IDoubleI>`
      Specified by:
        `zero` in interface `IVec4I`
      Specified by:
        `zero` in interface `IVecI`
      Overrides:
        `zero` in class `IVec`

    - #### add

          public IVec4 add(IVec v,
                           double f)

      scale add
      Overrides:
        `add` in class `IVec`

    - #### add

          public IVec4 add(IVecI v,
                           double f)

      scale add
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVec4I`
      Specified by:
        `add` in interface `IVecI`
      Overrides:
        `add` in class `IVec`

    - #### add

          public IVec4 add(IVecI v,
                           IDoubleI f)

      scale add
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVec4I`
      Specified by:
        `add` in interface `IVecI`
      Overrides:
        `add` in class `IVec`

    - #### add

          public IVec4 add(double f,
                           IVec v)

      scale add alias
      Overrides:
        `add` in class `IVec`

    - #### add

          public IVec4 add(double f,
                           IVecI v)

      scale add alias
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVec4I`
      Specified by:
        `add` in interface `IVecI`
      Overrides:
        `add` in class `IVec`

    - #### add

          public IVec4 add(IDoubleI f,
                           IVecI v)

      scale add alias
      Specified by:
        `add` in interface `ITransformable`
      Specified by:
        `add` in interface `IVec4I`
      Specified by:
        `add` in interface `IVecI`
      Overrides:
        `add` in class `IVec`

    - #### len

          public IVec4 len(IDoubleI l)

      setting length of vector, ignoring w
      Specified by:
        `len` in interface `IVec4I`
      Specified by:
        `len` in interface `IVecI`
      Overrides:
        `len` in class `IVec`

    - #### len

          public IVec4 len(double l)

      setting length of vector, ignoring w
      Specified by:
        `len` in interface `IVec4I`
      Specified by:
        `len` in interface `IVecI`
      Overrides:
        `len` in class `IVec`

    - #### unit

          public IVec4 unit()

      unitize, ignoring w
      Specified by:
        `unit` in interface `IVec4I`
      Specified by:
        `unit` in interface `IVecI`
      Overrides:
        `unit` in class `IVec`

    - #### cross

          public IVec4 cross(IVec v)

      cross product, returning a new instance. w is the original value
      Overrides:
        `cross` in class `IVec`

    - #### cross

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

      cross product, returning a new instance. w is the original value
      Specified by:
        `cross` in interface `IVec4I`
      Specified by:
        `cross` in interface `IVecI`
      Overrides:
        `cross` in class `IVec`

    - #### cross

          public IVec4 cross(IVecI v)

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

    - #### icross

          public IVec4 icross(IVec v)

      cross product, changing the instance not creating a new instance
      Overrides:
        `icross` in class `IVec`

    - #### icross

          public IVec4 icross(double vx,
                              double vy,
                              double vz)

      cross product, changing the instance not creating a new instance
      Overrides:
        `icross` in class `IVec`

    - #### icross

          public IVec4 icross(IVecI v)

      cross product, changing the instance not creating a new instance
      Overrides:
        `icross` in class `IVec`

    - #### eqW

          public boolean eqW(IVec4 v)

    - #### eqW

          public boolean eqW(double vw)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### eqW

          public boolean eqW(IVec4I v)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### eqW

          public boolean eqW(IVec4I v,
                             double tolerance)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### eqW

          public boolean eqW(IVec4 v,
                             double tolerance)

    - #### eqW

          public boolean eqW(double vw,
                             double tolerance)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### eqW

          public boolean eqW(ISwitchE e,
                             IVec4I v)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### eqW

          public boolean eqW(ISwitchE e,
                             IVec4I v,
                             double tolerance)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### eqW

          public IBool eqW(ISwitchR r,
                           IVec4I v)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### eqW

          public IBool eqW(ISwitchR r,
                           IVec4I v,
                           IDoubleI tolerance)

      Specified by:
        `eqW` in interface `IVec4I`

    - #### rot

          public IVec4 rot(IDoubleI angle)

      Description copied from class: `IVec`
      rotation on xy-plane
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 rot(double angle)

      Description copied from class: `IVec`
      rotation on xy-plane
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 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 `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 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 `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 rot(IVec axis,
                           double angle)

      Description copied from class: `IVec`
      rotate the vector around the axis
      Overrides:
        `rot` in class `IVec`

    - #### rot

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

      Description copied from class: `IVec`
      rotate the vector around the axis
      Specified by:
        `rot` in interface `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 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 `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 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 `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 rot(IVec center,
                           IVec axis,
                           double angle)

      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 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 `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 rot(IVec axis,
                           IVec destDir)

      Description copied from class: `IVec`
      rotation around axis towards destination direction
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 rot(IVecI axis,
                           IVecI destDir)

      Description copied from class: `IVec`
      rotation around axis towards destination direction
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

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

      Description copied from class: `IVec`
      rotation around axis and center towards destination point
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVec4I`
      Specified by:
        `rot` in interface `IVecI`
      Overrides:
        `rot` in class `IVec`

    - #### rot

          public IVec4 rot(IVec center,
                           IVec axis,
                           IVec destPt)

      Description copied from class: `IVec`
      rotation around axis and center towards destination point
      Overrides:
        `rot` in class `IVec`

    - #### rot2

          public IVec4 rot2(IDoubleI angle)

      alias of rot(IDoubleI)
      Specified by:
        `rot2` in interface `ITransformable`
      Specified by:
        `rot2` in interface `IVec4I`
      Specified by:
        `rot2` in interface `IVecI`
      Overrides:
        `rot2` in class `IVec`

    - #### rot2

          public IVec4 rot2(double angle)

      alias of rot(double)
      Specified by:
        `rot2` in interface `ITransformable`
      Specified by:
        `rot2` in interface `IVec4I`
      Specified by:
        `rot2` in interface `IVecI`
      Overrides:
        `rot2` in class `IVec`

    - #### rot2

          public IVec4 rot2(IVecI center,
                            IDoubleI angle)

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

    - #### rot2

          public IVec4 rot2(IVecI center,
                            double angle)

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

    - #### rot2

          public IVec4 rot2(IVec center,
                            double angle)

      Description copied from class: `IVec`
      rotation on xy-plane
      Overrides:
        `rot2` in class `IVec`

    - #### rot2

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

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

    - #### rot2

          public IVec4 rot2(IVec destDir)

      Description copied from class: `IVec`
      rotation on xy-plane towards destDir
      Overrides:
        `rot2` in class `IVec`

    - #### rot2

          public IVec4 rot2(IVecI destDir)

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

    - #### rot2

          public IVec4 rot2(IVecI center,
                            IVecI destPt)

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

    - #### rot2

          public IVec4 rot2(IVec center,
                            IVec destPt)

      Description copied from class: `IVec`
      rotation on xy-plane towards destPt
      Overrides:
        `rot2` in class `IVec`

    - #### scale

          public IVec4 scale(IDoubleI f)

      alias of mul
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVec4I`
      Specified by:
        `scale` in interface `IVecI`
      Overrides:
        `scale` in class `IVec`

    - #### scale

          public IVec4 scale(double f)

      Description copied from interface: `IVecI`
      alias of mul
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVec4I`
      Specified by:
        `scale` in interface `IVecI`
      Overrides:
        `scale` in class `IVec`

    - #### scale

          public IVec4 scale(IVecI center,
                             IDoubleI f)

      Description copied from class: `IVec`
      scale from the center
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVec4I`
      Specified by:
        `scale` in interface `IVecI`
      Overrides:
        `scale` in class `IVec`

    - #### scale

          public IVec4 scale(IVecI center,
                             double f)

      Description copied from class: `IVec`
      scale from the center
      Specified by:
        `scale` in interface `ITransformable`
      Specified by:
        `scale` in interface `IVec4I`
      Specified by:
        `scale` in interface `IVecI`
      Overrides:
        `scale` in class `IVec`

    - #### scale

          public IVec4 scale(IVec center,
                             double f)

      Description copied from class: `IVec`
      scale from the center
      Overrides:
        `scale` in class `IVec`

    - #### scale

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

      Description copied from class: `IVec`
      scale from the center
      Specified by:
        `scale` in interface `IVec4I`
      Specified by:
        `scale` in interface `IVecI`
      Overrides:
        `scale` in class `IVec`

    - #### scale1d

          public IVec4 scale1d(IVec axis,
                               double f)

      scale only in 1 direction
      Overrides:
        `scale1d` in class `IVec`

    - #### scale1d

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

      Description copied from class: `IVec`
      scale only in 1 direction
      Specified by:
        `scale1d` in interface `IVec4I`
      Specified by:
        `scale1d` in interface `IVecI`
      Overrides:
        `scale1d` in class `IVec`

    - #### scale1d

          public IVec4 scale1d(IVecI axis,
                               double f)

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

    - #### scale1d

          public IVec4 scale1d(IVecI axis,
                               IDoubleI f)

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

    - #### scale1d

          public IVec4 scale1d(IVec center,
                               IVec axis,
                               double f)

      Description copied from class: `IVec`
      scale only in 1 direction
      Overrides:
        `scale1d` in class `IVec`

    - #### scale1d

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

      Description copied from class: `IVec`
      scale only in 1 direction
      Specified by:
        `scale1d` in interface `IVec4I`
      Specified by:
        `scale1d` in interface `IVecI`
      Overrides:
        `scale1d` in class `IVec`

    - #### scale1d

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

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

    - #### scale1d

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

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

    - #### ref

          public IVec4 ref(IVec planeDir)

      Description copied from class: `IVec`
      reflect (mirror) 3 dimensionally to the other side of the plane
      Overrides:
        `ref` in class `IVec`

    - #### ref

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

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

    - #### ref

          public IVec4 ref(IVecI planeDir)

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

    - #### ref

          public IVec4 ref(IVec center,
                           IVec planeDir)

      Description copied from class: `IVec`
      reflect (mirror) 3 dimensionally to the other side of the plane at the center
      Overrides:
        `ref` in class `IVec`

    - #### ref

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

      Description copied from class: `IVec`
      reflect (mirror) 3 dimensionally to the other side of the plane at the center
      Specified by:
        `ref` in interface `IVec4I`
      Specified by:
        `ref` in interface `IVecI`
      Overrides:
        `ref` in class `IVec`

    - #### ref

          public IVec4 ref(IVecI center,
                           IVecI planeDir)

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

    - #### mirror

          public IVec4 mirror(IVec planeDir)

      Description copied from class: `IVec`
      alias of ref
      Overrides:
        `mirror` in class `IVec`

    - #### mirror

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

      Description copied from class: `IVec`
      alias of ref
      Specified by:
        `mirror` in interface `IVec4I`
      Specified by:
        `mirror` in interface `IVecI`
      Overrides:
        `mirror` in class `IVec`

    - #### mirror

          public IVec4 mirror(IVecI planeDir)

      Description copied from class: `IVec`
      alias of ref
      Specified by:
        `mirror` in interface `ITransformable`
      Specified by:
        `mirror` in interface `IVec4I`
      Specified by:
        `mirror` in interface `IVecI`
      Overrides:
        `mirror` in class `IVec`

    - #### mirror

          public IVec4 mirror(IVec center,
                              IVec planeDir)

      Description copied from class: `IVec`
      alias of ref
      Overrides:
        `mirror` in class `IVec`

    - #### mirror

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

      Description copied from class: `IVec`
      alias of ref
      Specified by:
        `mirror` in interface `IVec4I`
      Specified by:
        `mirror` in interface `IVecI`
      Overrides:
        `mirror` in class `IVec`

    - #### mirror

          public IVec4 mirror(IVecI center,
                              IVecI planeDir)

      Description copied from class: `IVec`
      alias of ref
      Specified by:
        `mirror` in interface `ITransformable`
      Specified by:
        `mirror` in interface `IVec4I`
      Specified by:
        `mirror` in interface `IVecI`
      Overrides:
        `mirror` in class `IVec`

    - #### shear

          public IVec4 shear(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 `IVec4I`
      Specified by:
        `shear` in interface `IVecI`
      Overrides:
        `shear` in class `IVec`

    - #### shear

          public IVec4 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 `IVec4I`
      Specified by:
        `shear` in interface `IVecI`
      Overrides:
        `shear` in class `IVec`

    - #### shear

          public IVec4 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 `IVec4I`
      Specified by:
        `shear` in interface `IVecI`
      Overrides:
        `shear` in class `IVec`

    - #### shear

          public IVec4 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 `IVec4I`
      Specified by:
        `shear` in interface `IVecI`
      Overrides:
        `shear` in class `IVec`

    - #### shearXY

          public IVec4 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 `IVec4I`
      Specified by:
        `shearXY` in interface `IVecI`
      Overrides:
        `shearXY` in class `IVec`

    - #### shearXY

          public IVec4 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 `IVec4I`
      Specified by:
        `shearXY` in interface `IVecI`
      Overrides:
        `shearXY` in class `IVec`

    - #### shearXY

          public IVec4 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 `IVec4I`
      Specified by:
        `shearXY` in interface `IVecI`
      Overrides:
        `shearXY` in class `IVec`

    - #### shearXY

          public IVec4 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 `IVec4I`
      Specified by:
        `shearXY` in interface `IVecI`
      Overrides:
        `shearXY` in class `IVec`

    - #### shearYZ

          public IVec4 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 `IVec4I`
      Specified by:
        `shearYZ` in interface `IVecI`
      Overrides:
        `shearYZ` in class `IVec`

    - #### shearYZ

          public IVec4 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 `IVec4I`
      Specified by:
        `shearYZ` in interface `IVecI`
      Overrides:
        `shearYZ` in class `IVec`

    - #### shearYZ

          public IVec4 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 `IVec4I`
      Specified by:
        `shearYZ` in interface `IVecI`
      Overrides:
        `shearYZ` in class `IVec`

    - #### shearYZ

          public IVec4 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 `IVec4I`
      Specified by:
        `shearYZ` in interface `IVecI`
      Overrides:
        `shearYZ` in class `IVec`

    - #### shearZX

          public IVec4 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 `IVec4I`
      Specified by:
        `shearZX` in interface `IVecI`
      Overrides:
        `shearZX` in class `IVec`

    - #### shearZX

          public IVec4 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 `IVec4I`
      Specified by:
        `shearZX` in interface `IVecI`
      Overrides:
        `shearZX` in class `IVec`

    - #### shearZX

          public IVec4 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 `IVec4I`
      Specified by:
        `shearZX` in interface `IVecI`
      Overrides:
        `shearZX` in class `IVec`

    - #### shearZX

          public IVec4 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 `IVec4I`
      Specified by:
        `shearZX` in interface `IVecI`
      Overrides:
        `shearZX` in class `IVec`

    - #### translate

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

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

    - #### translate

          public IVec4 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 `IVec4I`
      Specified by:
        `translate` in interface `IVecI`
      Overrides:
        `translate` in class `IVec`

    - #### translate

          public IVec4 translate(IVecI v)

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

    - #### transform

          public IVec4 transform(IMatrix3I mat)

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

    - #### transform

          public IVec4 transform(IMatrix4I mat)

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

    - #### transform

          public IVec4 transform(IVec xvec,
                                 IVec yvec,
                                 IVec zvec)

      Overrides:
        `transform` in class `IVec`

    - #### transform

          public IVec4 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 `IVec4I`
      Specified by:
        `transform` in interface `IVecI`
      Overrides:
        `transform` in class `IVec`

    - #### transform

          public IVec4 transform(IVec xvec,
                                 IVec yvec,
                                 IVec zvec,
                                 IVec translate)

      Overrides:
        `transform` in class `IVec`

    - #### transform

          public IVec4 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 `IVec4I`
      Specified by:
        `transform` in interface `IVecI`
      Overrides:
        `transform` in class `IVec`

    - #### mv

          public IVec4 mv(double vx,
                          double vy,
                          double vz)

      mv() is alias of add()
      Specified by:
        `mv` in interface `ITransformable`
      Specified by:
        `mv` in interface `IVec4I`
      Specified by:
        `mv` in interface `IVecI`
      Overrides:
        `mv` in class `IVec`

    - #### mv

          public IVec4 mv(IDoubleI vx,
                          IDoubleI vy,
                          IDoubleI vz)

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

    - #### mv

          public IVec4 mv(IVecI v)

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

    - #### cp

          public IVec4 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 `IVec4I`
      Specified by:
        `cp` in interface `IVecI`
      Overrides:
        `cp` in class `IVec`

    - #### cp

          public IVec4 cp(IVec v)

      cp() is alias of dup().add()
      Overrides:
        `cp` in class `IVec`

    - #### cp

          public IVec4 cp(double vx,
                          double vy,
                          double vz)

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

    - #### cp

          public IVec4 cp(IDoubleI vx,
                          IDoubleI vy,
                          IDoubleI vz)

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

    - #### cp

          public IVec4 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 `IVec4I`
      Specified by:
        `cp` in interface `IVecI`
      Overrides:
        `cp` in class `IVec`

    - #### dif

          public IVec4 dif(IVec v)

      Description copied from class: `IVec`
      create a new instance of difference
      Overrides:
        `dif` in class `IVec`

    - #### dif

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

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

    - #### dif

          public IVec4 dif(IVecI v)

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

    - #### diff

          public IVec4 diff(IVec v)

      Description copied from class: `IVec`
      create a new instance of difference
      Overrides:
        `diff` in class `IVec`

    - #### diff

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

      Description copied from class: `IVec`
      create a new instance of difference
      Specified by:
        `diff` in interface `IVec4I`
      Specified by:
        `diff` in interface `IVecI`
      Overrides:
        `diff` in class `IVec`

    - #### diff

          public IVec4 diff(IVecI v)

      Description copied from class: `IVec`
      create a new instance of difference
      Specified by:
        `diff` in interface `IVec4I`
      Specified by:
        `diff` in interface `IVecI`
      Overrides:
        `diff` in class `IVec`

    - #### mid

          public IVec4 mid(IVec v)

      Description copied from class: `IVec`
      create a new instance of midpoint
      Overrides:
        `mid` in class `IVec`

    - #### mid

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

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

    - #### mid

          public IVec4 mid(IVecI v)

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

    - #### sum

          public IVec4 sum(IVec v)

      Description copied from class: `IVec`
      create a new instance of summation
      Overrides:
        `sum` in class `IVec`

    - #### sum

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

      Description copied from class: `IVec`
      create a new instance of summation
      Specified by:
        `sum` in interface `IVec4I`
      Specified by:
        `sum` in interface `IVecI`
      Overrides:
        `sum` in class `IVec`

    - #### sum

          public IVec4 sum(IVecI v)

      Description copied from class: `IVec`
      create a new instance of summation
      Specified by:
        `sum` in interface `IVec4I`
      Specified by:
        `sum` in interface `IVecI`
      Overrides:
        `sum` in class `IVec`

    - #### sum

          public IVec4 sum(IVec... v)

      Description copied from class: `IVec`
      create a new instance of summation
      Overrides:
        `sum` in class `IVec`

    - #### sum

          public IVec4 sum(IVecI... v)

      Description copied from class: `IVec`
      create a new instance of summation
      Specified by:
        `sum` in interface `IVec4I`
      Specified by:
        `sum` in interface `IVecI`
      Overrides:
        `sum` in class `IVec`

    - #### bisect

          public IVec4 bisect(IVec v)

      Description copied from class: `IVec`
      create a new instance of bisector
      Overrides:
        `bisect` in class `IVec`

    - #### bisect

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

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

    - #### bisect

          public IVec4 bisect(IVecI v)

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

    - #### sum

          public IVec4 sum(IVec v2,
                           double w1,
                           double w2)

      Description copied from class: `IVec`
      create a new instance of weighted summation
      Overrides:
        `sum` in class `IVec`

    - #### sum

          public IVec4 sum(IVec v2,
                           double w2)

      Description copied from class: `IVec`
      create a new instance of weighted summation
      Overrides:
        `sum` in class `IVec`

    - #### sum

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

      Description copied from class: `IVec`
      create a new instance of weighted summation
      Specified by:
        `sum` in interface `IVec4I`
      Specified by:
        `sum` in interface `IVecI`
      Overrides:
        `sum` in class `IVec`

    - #### sum

          public IVec4 sum(IVecI v2,
                           double w2)

      Description copied from class: `IVec`
      create a new instance of weighted summation
      Specified by:
        `sum` in interface `IVec4I`
      Specified by:
        `sum` in interface `IVecI`
      Overrides:
        `sum` in class `IVec`

    - #### sum

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

      Description copied from class: `IVec`
      create a new instance of weighted summation
      Specified by:
        `sum` in interface `IVec4I`
      Specified by:
        `sum` in interface `IVecI`
      Overrides:
        `sum` in class `IVec`

    - #### sum

          public IVec4 sum(IVecI v2,
                           IDoubleI w2)

      Description copied from class: `IVec`
      create a new instance of weighted summation
      Specified by:
        `sum` in interface `IVec4I`
      Specified by:
        `sum` in interface `IVecI`
      Overrides:
        `sum` in class `IVec`

    - #### nml

          public IVec4 nml(IVec v)

      alias of cross. (not unitized ... )
      Overrides:
        `nml` in class `IVec`

    - #### nml

          public IVec4 nml(IVecI v)

      alias of cross. (not unitized ... )
      Specified by:
        `nml` in interface `IVec4I`
      Specified by:
        `nml` in interface `IVecI`
      Overrides:
        `nml` in class `IVec`

    - #### nml

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

      alias of cross. (not unitized ... )
      Specified by:
        `nml` in interface `IVec4I`
      Specified by:
        `nml` in interface `IVecI`
      Overrides:
        `nml` in class `IVec`

    - #### nml

          public IVec4 nml(IVec pt1,
                           IVec pt2)

      create normal vector from 3 points of self, pt1 and pt2, not unitized
      Overrides:
        `nml` in class `IVec`

    - #### nml

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

      create normal vector from 3 points of self, pt1 and pt2, not unitized
      Specified by:
        `nml` in interface `IVec4I`
      Specified by:
        `nml` in interface `IVecI`
      Overrides:
        `nml` in class `IVec`

    - #### nml

          public IVec4 nml(IVecI pt1,
                           IVecI pt2)

      create normal vector from 3 points of self, pt1 and pt2, not unitized
      Specified by:
        `nml` in interface `IVec4I`
      Specified by:
        `nml` in interface `IVecI`
      Overrides:
        `nml` in class `IVec`

    - #### isValid

          public boolean isValid()

      checking x, y, and z is valid number (not Infinite, nor NaN).
      Specified by:
        `isValid` in interface `IVecI`
      Overrides:
        `isValid` in class `IVec`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `IVec`