Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## igeo
Class IVec

    java.lang.Object
      igeo.IParameterObject
          igeo.IVec

All Implemented Interfaces:
  IEntityParameter, IParameter, ISubobject, ITransformable, IVecI, IVecOp

Direct Known Subclasses:
  IVec4

    public class IVec

extends IParameterObject
implements IVecI, IEntityParameter

Class of 3 dimensional vector.

Field Summary
`static IVec` | `origin`
`double` | `x`
`static IVec` | `xaxis`
`double` | `y`
`static IVec` | `yaxis`
`double` | `z`
`static IVec` | `zaxis`

Fields inherited from class igeo.IParameterObject
`parent`

Constructor Summary
`IVec()`
`IVec(double x, double y)`
`IVec(double x, double y, double z)`
`IVec(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec(IServerI s)`
`IVec(IServerI s, double x, double y)`
`IVec(IServerI s, double x, double y, double z)`
`IVec(IServerI s, IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec(IServerI s, IVec v)`
`IVec(IServerI s, IVec2I v)`
`IVec(IServerI s, IVecI v)`
`IVec(IVec v)`
`IVec(IVec2I v)`
`IVec(IVecI v)`

Method Summary
`IVec` | `add(double x, double y, double z)`
`IVec` | `add(double f, IVec v)` scale add; alias of add(IVec,double)
`IVec` | `add(double f, IVecI v)` scale add; alias of add(IVecI,double)
`IVec` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec` | `add(IDoubleI f, IVecI v)` scale add; alias of add(IVec,IDouble)
`IVec` | `add(IVec v)`
`IVec` | `add(IVec v, double f)` scale add
`IVec` | `add(IVecI v)`
`IVec` | `add(IVecI v, double f)` scale add
`IVec` | `add(IVecI v, IDoubleI f)` scale add
`double` | `angle(ISwitchE e, IVecI v)`
`double` | `angle(ISwitchE e, IVecI v, IVecI axis)`
`IDouble` | `angle(ISwitchR r, IVecI v)`
`IDouble` | `angle(ISwitchR r, IVecI v, IVecI axis)`
`double` | `angle(IVec v)` angle in double (P for Primitive)
`double` | `angle(IVecI v)`
`double` | `angle(IVecI v, IVecI axis)`
`static double` | `angle(IVecI pt1, IVecI pt2, IVecI pt3)` measure angle of polyline of pt1,pt2 and pt3 at pt2, which is equivalent to measure angle between vectors from pt2 to pt1 and pt2 to pt3.
`double` | `angle(IVec v, IVec axis)`
`static IVec` | `averageNormal(IVecI[] pts)` average normal of point array in form of a polyline.
`static IVec` | `averageNormal(IVecI[][] pts)` average normal of point array in form of a matrix.
`IVec` | `bisect(IVec v)`
`IVec` | `bisect(IVecI v)` create a new instance of bisector
`IVec` | `cp()` cp() is alias of dup()
`IVec` | `cp(double x, double y, double z)` cp() is alias of dup().add()
`IVec` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec` | `cp(IVecI v)`
`IVec` | `cross(IVec v)` cross product changed to return a new instance, not changing own content.
`IVec` | `cross(IVecI v)` cross product creates a new instance
`IVec[]` | `decompose(IVecI uaxis, IVecI vaxis)` decompose the vector to two input vectors and another perpendicular vector of those two and returns three decomposed vector.
`IVec` | `dif(IVec v)` methods creating new instance
`IVec` | `dif(IVecI v)` create a new instance of difference
`IVec` | `diff(IVec v)`
`IVec` | `diff(IVecI v)` alias of dif
`double` | `dist(ISwitchE e, IVecI v)`
`IDouble` | `dist(ISwitchR r, IVecI v)`
`double` | `dist(IVec v)`
`double` | `dist(IVecI v)`
`double` | `dist2(ISwitchE e, IVecI v)`
`IDouble` | `dist2(ISwitchR r, IVecI v)`
`double` | `dist2(IVec v)`
`double` | `dist2(IVecI v)` squared distance
`double` | `distanceToPlane(IVecI planeDir, IVecI planePt)`
`IVec` | `div(double v)`
`IVec` | `div(IDouble v)`
`IVec` | `div(IDoubleI v)`
`double` | `dot(ISwitchE e, IVecI v)`
`IDouble` | `dot(ISwitchR r, IVecI v)`
`double` | `dot(IVec v)` dot product in double (P for Primitive)
`double` | `dot(IVecI v)`
`IVec` | `dup()` duplicate the instance
`boolean` | `eq(ISwitchE e, IVecI v)`
`boolean` | `eq(ISwitchE e, IVecI v, double resolution)`
`IBool` | `eq(ISwitchR r, IVecI v)`
`IBool` | `eq(ISwitchR r, IVecI v, IDoubleI resolution)`
`boolean` | `eq(IVec v)`
`boolean` | `eq(IVec v, double resolution)`
`boolean` | `eq(IVecI v)` whether location is same or not
`boolean` | `eq(IVecI v, double resolution)`
`boolean` | `eqX(ISwitchE e, IVecI v)`
`boolean` | `eqX(ISwitchE e, IVecI v, double resolution)`
`IBool` | `eqX(ISwitchR r, IVecI v)`
`IBool` | `eqX(ISwitchR r, IVecI v, IDoubleI resolution)`
`boolean` | `eqX(IVec v)`
`boolean` | `eqX(IVec v, double resolution)`
`boolean` | `eqX(IVecI v)`
`boolean` | `eqX(IVecI v, double resolution)`
`boolean` | `eqY(ISwitchE e, IVecI v)`
`boolean` | `eqY(ISwitchE e, IVecI v, double resolution)`
`IBool` | `eqY(ISwitchR r, IVecI v)`
`IBool` | `eqY(ISwitchR r, IVecI v, IDoubleI resolution)`
`boolean` | `eqY(IVec v)`
`boolean` | `eqY(IVec v, double resolution)`
`boolean` | `eqY(IVecI v)`
`boolean` | `eqY(IVecI v, double resolution)`
`boolean` | `eqZ(ISwitchE e, IVecI v)`
`boolean` | `eqZ(ISwitchE e, IVecI v, double resolution)`
`IBool` | `eqZ(ISwitchR r, IVecI v)`
`IBool` | `eqZ(ISwitchR r, IVecI v, IDoubleI resolution)`
`boolean` | `eqZ(IVec v)`
`boolean` | `eqZ(IVec v, double resolution)`
`boolean` | `eqZ(IVecI v)`
`boolean` | `eqZ(IVecI v, double resolution)`
`IVec` | `flip()` alias of neg()
`IVec` | `get()`
`IVecI` | `getNormal(IVecI pt2, IVecI pt3)`
`static IVecI` | `getNormal(IVecI pt1, IVecI pt2, IVecI pt3)`
`IVec` | `getNormal(IVec pt2, IVec pt3)`
`static IVec` | `getNormal(IVec pt1, IVec pt2, IVec pt3)`
`IDouble` | `getX()`
`IDouble` | `getY()`
`IDouble` | `getZ()`
`IVec` | `icross(IVec v)` cross product, changing its values by itself.
`static IVec` | `intersect(IVec line1Pt1, IVec line1Pt2, IVec line2Pt1, IVec line2Pt2)` intersection of two infinite lines.
`static IVec` | `intersectSegments(IVec line1Pt1, IVec line1Pt2, IVec line2Pt1, IVec line2Pt2)` intersection of line segments.
`static boolean` | `isArrayEqual(IVec[] pts1, IVec[] pts2, boolean cyclic, boolean reverse)`
`static boolean` | `isArrayEqual(IVec[] pts1, IVec[] pts2, boolean cyclic, boolean reverse, double resolution)`
`static boolean` | `isFlat(IVecI pt1, IVecI pt2, IVecI pt3, IVecI pt4)` static methods
`static boolean` | `isFlat(IVecI pt1, IVecI pt2, IVecI pt3, IVecI pt4, double resolution)`
`boolean` | `isOnPlane(IVecI planeDir, IVecI planePt)`
`boolean` | `isOnPlane(IVecI planeDir, IVecI planePt, double resolution)`
`boolean` | `isOnPlane(IVecI planePt1, IVecI planePt2, IVecI planePt3)`
`boolean` | `isOnPlane(IVecI planePt1, IVecI planePt2, IVecI planePt3, double resolution)`
`boolean` | `isParallel(IVecI v)`
`boolean` | `isParallel(IVecI v, double angleReso)`
`boolean` | `isStraight(IVecI v1, IVecI v2)`
`boolean` | `isStraight(IVecI v1, IVecI v2, double angleReso)`
`boolean` | `isValid()` checking x, y, and z is valid number (not Infinite, nor NaN).
`double` | `len()`
`IVec` | `len(double l)`
`IVec` | `len(IDoubleI l)`
`double` | `len(ISwitchE e)`
`IDouble` | `len(ISwitchR r)`
`double` | `len2()` square of length
`double` | `len2(ISwitchE e)`
`IDouble` | `len2(ISwitchR r)`
`IVec` | `mid(IVec v)`
`IVec` | `mid(IVecI v)` create a new instance of midpoint
`IVec` | `mirror(IVec planeDir)`
`IVec` | `mirror(IVecI planeDir)` mirror is alias of ref
`IVec` | `mirror(IVecI center, IVecI planeDir)`
`IVec` | `mirror(IVec center, IVec planeDir)`
`IVec` | `mul(double v)`
`IVec` | `mul(IDouble v)`
`IVec` | `mul(IDoubleI v)`
`IVec` | `mv(double x, double y, double z)` mv() is alias of add()
`IVec` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec` | `mv(IVecI v)`
`IVec` | `neg()`
`IVec` | `nml(IVecI v)` alias of cross.
`IVec` | `nml(IVecI pt1, IVecI pt2)` create normal vector from 3 points of self, pt1 and pt2
`IVec` | `nml(IVec pt1, IVec pt2)`
`static IVec[]` | `offset(IVec[] pts, double width)`
`static IVec[]` | `offset(IVec[] pts, double width, boolean close)`
`static IVec[]` | `offset(IVec[] pts, double width, IVecI planeNormal)`
`static IVec[]` | `offset(IVec[] pts, double width, IVecI planeNormal, boolean close)`
`static IVecI[]` | `offset(IVecI[] pts, double width)`
`static IVecI[]` | `offset(IVecI[] pts, double width, boolean close)`
`static IVecI[]` | `offset(IVecI[] pts, double width, IVecI planeNormal)`
`static IVecI[]` | `offset(IVecI[] pts, double width, IVecI planeNormal, boolean close)`
`static IVecI[]` | `offset(IVecI[] pts, IDoubleI width)`
`static IVecI[]` | `offset(IVecI[] pts, IDoubleI width, boolean close)`
`static IVecI[]` | `offset(IVecI[] pts, IDoubleI width, IVecI planeNormal)`
`static IVecI[]` | `offset(IVecI[] pts, IDoubleI width, IVecI planeNormal, boolean close)`
`static IVecI[]` | `offset(IVecI[] pts, IVecI[] normal, double width)`
`static IVecI[]` | `offset(IVecI[] pts, IVecI[] normal, IDoubleI width)`
`IVec` | `perpendicularVectorToLine(IVecI lineDir, IVecI linePt)` create a new vector from this point to the line in parpendicular direction.
`IVec` | `perpendicularVectorToVector(IVecI axisDir)` create a new vector from line to this point perpendicular to the axis
`double[]` | `projectTo2Vec(IVecI v1, IVecI v2)` project the vector to the plane defined by two input vector and decompose vector to two vector and another perpendicular vector and returns coefficient of them.
`IVec` | `projectToLine(IVecI linePt, IVecI lineDir)`
`static void` | `projectToPlane(IVecI[] pts)` project point array to a plane.
`static void` | `projectToPlane(IVecI[][] pts)` project point array to a plane.
`static void` | `projectToPlane(IVecI[][] pts, IVecI planeNormal)` project point array to a plane.
`static void` | `projectToPlane(IVecI[][] pts, IVecI planeNormal, IVecI planePt)` project point array to a plane.
`static void` | `projectToPlane(IVecI[][] pts, IVecI projectDir, IVecI planeNormal, IVecI planePt)` project point array to a plane.
`static void` | `projectToPlane(IVecI[] pts, IVecI planeNormal)` project point array to a plane.
`static void` | `projectToPlane(IVecI[] pts, IVecI planeNormal, IVecI planePt)` project point array to a plane.
`static void` | `projectToPlane(IVecI[] pts, IVecI projectDir, IVecI planeNormal, IVecI planePt)` project point array to a plane.
`IVec` | `projectToPlane(IVecI projectDir, IVecI planeNormal)`
`IVec` | `projectToPlane(IVecI projectDir, IVecI planeNormal, IVecI planePoint)`
`static IVecI` | `projectToPlane(IVecI pt, IVecI projectDir, IVecI planeNormal, IVecI planePt)` project point a plane.
`double` | `projectToVec(IVecI v)` project this vector to the input vector and returns projection coefficient.
`IVec` | `ref(IVec planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane
`IVec` | `ref(IVecI planeDir)` reflect(mirror) 3 dimensionally to the other side of the plane
`IVec` | `ref(IVecI center, IVecI planeDir)`
`IVec` | `ref(IVec center, IVec planeDir)`
`IVec` | `rev()` alias of neg()
`IVec` | `rot(double angle)` rotation on xy-plane
`IVec` | `rot(IDoubleI angle)` rotation on xy-plane
`IVec` | `rot(IVec axis, double angle)`
`IVec` | `rot(IVecI axis, double angle)`
`IVec` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
`IVec` | `rot(IVecI axis, IVecI destDir)` rotate to destination direction vector
`IVec` | `rot(IVecI center, IVecI axis, double angle)`
`IVec` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center
`IVec` | `rot(IVecI center, IVecI axis, IVecI destPt)` rotate to destination point location
`IVec` | `rot(IVec axis, IVec destDir)`
`IVec` | `rot(IVec center, IVec axis, double angle)`
`IVec` | `rot(IVec center, IVec axis, IVec destPt)`
`IVec` | `rot2(double angle)` rotation on xy-plane; alias of rot(double)
`IVec` | `rot2(IDoubleI angle)` rotation on xy-plane; alias of rot(IDoubleI)
`IVec` | `rot2(IVec destDir)` rotation on xy-plane towards destDir
`IVec` | `rot2(IVec center, double angle)` rotation on xy-plane
`IVec` | `rot2(IVecI destDir)` rotation on xy-plane towards destDir
`IVec` | `rot2(IVecI center, double angle)` rotation on xy-plane
`IVec` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane
`IVec` | `rot2(IVecI center, IVecI destPt)` rotation on xy-plane towards destPt
`IVec` | `rot2(IVec center, IVec destPt)` rotation on xy-plane towards destPt
`IVec` | `scale(double f)`
`IVec` | `scale(IDoubleI f)` alias of mul
`IVec` | `scale(IVec center, double f)`
`IVec` | `scale(IVecI center, double f)`
`IVec` | `scale(IVecI center, IDoubleI f)`
`IVec` | `scale1d(IVec axis, double f)` scale only in 1 direction
`IVec` | `scale1d(IVecI axis, double f)` scale only in 1 direction
`IVec` | `scale1d(IVecI axis, IDoubleI f)`
`IVec` | `scale1d(IVecI center, IVecI axis, double f)`
`IVec` | `scale1d(IVecI center, IVecI axis, IDoubleI f)`
`IVec` | `set(double x, double y, double z)`
`IVec` | `set(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec` | `set(IVec v)`
`IVec` | `set(IVecI v)`
`IVec` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
`IVec` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
`IVec` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)`
`IVec` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)`
`IVec` | `shearXY(double sxy, double syx)`
`IVec` | `shearXY(IDoubleI sxy, IDoubleI syx)`
`IVec` | `shearXY(IVecI center, double sxy, double syx)`
`IVec` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)`
`IVec` | `shearYZ(double syz, double szy)`
`IVec` | `shearYZ(IDoubleI syz, IDoubleI szy)`
`IVec` | `shearYZ(IVecI center, double syz, double szy)`
`IVec` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)`
`IVec` | `shearZX(double szx, double sxz)`
`IVec` | `shearZX(IDoubleI szx, IDoubleI sxz)`
`IVec` | `shearZX(IVecI center, double szx, double sxz)`
`IVec` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)`
`IVectorObject` | `show()` visualize a vector as an arrow.
`IVectorObject` | `show(IServerI s)` visualize a vector as an arrow.
`IVectorObject` | `show(IServerI s, IVecI root)` visualize a vector as an arrow.
`IVectorObject` | `show(IVecI root)` visualize a vector as an arrow.
`IVec` | `sub(double x, double y, double z)`
`IVec` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec` | `sub(IVec v)`
`IVec` | `sub(IVecI v)`
`IVec` | `sum(IVec... v)`
`IVec` | `sum(IVec v)`
`IVec` | `sum(IVec v2, double w2)`
`IVec` | `sum(IVec v2, double w1, double w2)` weighted sum, creating new instance
`IVec` | `sum(IVecI... v)` create a new instance of total summation
`IVec` | `sum(IVecI v)` create a new instance of total summation
`IVec` | `sum(IVecI v2, double w2)`
`IVec` | `sum(IVecI v2, double w1, double w2)` weighted sum
`IVec` | `sum(IVecI v2, IDoubleI w2)`
`IVec` | `sum(IVecI v2, IDoubleI w1, IDoubleI w2)`
`IVec2` | `to2d()`
`IVec4` | `to4d()`
`IVec4` | `to4d(double w)`
`IVec4` | `to4d(IDoubleI w)`
`java.lang.String` | `toString()`
`IVec` | `transform(IMatrix3I mat)`
`IVec` | `transform(IMatrix4I mat)`
`IVec` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)`
`IVec` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)`
`IVec` | `transform(IVec xvec, IVec yvec, IVec zvec)`
`IVec` | `transform(IVec xvec, IVec yvec, IVec zvec, IVec translate)`
`IVec` | `translate(double x, double y, double z)` translate() is alias of add()
`IVec` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)`
`IVec` | `translate(IVecI v)`
`IVec` | `unit()`
`double` | `x()`
`double` | `y()`
`double` | `z()`
`IVec` | `zero()` setting all zero

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`

Field Detail

### origin

    public static final IVec origin

### xaxis

    public static final IVec xaxis

### yaxis

    public static final IVec yaxis

### zaxis

    public static final IVec zaxis

### x

    public double x

### y

    public double y

### z

    public double z

Constructor Detail

### IVec

    public IVec()

### IVec

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

### IVec

    public IVec(double x,
                double y)

### IVec

    public IVec(IVec v)

### IVec

    public IVec(IVecI v)

### IVec

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

### IVec

    public IVec(IVec2I v)

### IVec

    public IVec(IServerI s)

### IVec

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

### IVec

    public IVec(IServerI s,
                double x,
                double y)

### IVec

    public IVec(IServerI s,
                IVec v)

### IVec

    public IVec(IServerI s,
                IVecI v)

### IVec

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

### IVec

    public IVec(IServerI s,
                IVec2I v)

Method Detail

### x

    public double x()

  Specified by:
    `x` in interface `IVecI`

### y

    public double y()

  Specified by:
    `y` in interface `IVecI`

### z

    public double z()

  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`

### dup

    public IVec dup()

  Description copied from interface: `ITransformable`
  duplicate the instance

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

### to2d

    public IVec2 to2d()

  Specified by:
    `to2d` in interface `IVecI`

### to4d

    public IVec4 to4d()

  Specified by:
    `to4d` in interface `IVecI`

### to4d

    public IVec4 to4d(double w)

  Specified by:
    `to4d` in interface `IVecI`

### to4d

    public IVec4 to4d(IDoubleI w)

  Specified by:
    `to4d` in interface `IVecI`

### getX

    public IDouble getX()

  Specified by:
    `getX` in interface `IVecI`

### getY

    public IDouble getY()

  Specified by:
    `getY` in interface `IVecI`

### getZ

    public IDouble getZ()

  Specified by:
    `getZ` in interface `IVecI`

### set

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

  Specified by:
    `set` in interface `IVecI`

### set

    public IVec set(IVec v)

### set

    public IVec set(IVecI v)

  Specified by:
    `set` in interface `IVecI`

### set

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

  Specified by:
    `set` in interface `IVecI`

### add

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

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

### add

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

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

### add

    public IVec add(IVec v)

### add

    public IVec add(IVecI v)

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

### sub

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

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

### sub

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

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

### sub

    public IVec sub(IVec v)

### sub

    public IVec sub(IVecI v)

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

### mul

    public IVec mul(double v)

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

### mul

    public IVec mul(IDouble v)

### mul

    public IVec mul(IDoubleI v)

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

### div

    public IVec div(double v)

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

### div

    public IVec div(IDouble v)

### div

    public IVec div(IDoubleI v)

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

### neg

    public IVec neg()

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

### rev

    public IVec rev()

  alias of neg()

  Specified by:
    `rev` in interface `IVecI`

### flip

    public IVec flip()

  alias of neg()

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

### zero

    public IVec zero()

  setting all zero

  Specified by:
    `zero` in interface `IVecI`

### add

    public IVec add(IVec v,
                    double f)

  scale add

### add

    public IVec add(IVecI v,
                    double f)

  scale add

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

### add

    public IVec add(IVecI v,
                    IDoubleI f)

  scale add

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

### add

    public IVec add(double f,
                    IVec v)

  scale add; alias of add(IVec,double)

### add

    public IVec add(double f,
                    IVecI v)

  scale add; alias of add(IVecI,double)

  Specified by:
    `add` in interface `ITransformable`

### add

    public IVec add(IDoubleI f,
                    IVecI v)

  scale add; alias of add(IVec,IDouble)

  Specified by:
    `add` in interface `ITransformable`

### dot

    public double dot(IVec v)

  dot product in double (P for Primitive)

### dot

    public double dot(IVecI v)

  Specified by:
    `dot` in interface `IVecI`

### dot

    public double dot(ISwitchE e,
                      IVecI v)

  Specified by:
    `dot` in interface `IVecI`

### dot

    public IDouble dot(ISwitchR r,
                       IVecI v)

  Specified by:
    `dot` in interface `IVecI`

### cross

    public IVec cross(IVec v)

  cross product changed to return a new instance, not changing own content. (!!!!) 2011/08/03

### cross

    public IVec cross(IVecI v)

  Description copied from interface: `IVecI`
  cross product creates a new instance

  Specified by:
    `cross` in interface `IVecI`

### icross

    public IVec icross(IVec v)

  cross product, changing its values by itself. no new instance created.

### len

    public double len()

  Specified by:
    `len` in interface `IVecI`

### len

    public double len(ISwitchE e)

  Specified by:
    `len` in interface `IVecI`

### len

    public IDouble len(ISwitchR r)

  Specified by:
    `len` in interface `IVecI`

### len2

    public double len2()

  Description copied from interface: `IVecI`
  square of length

  Specified by:
    `len2` in interface `IVecI`

### len2

    public double len2(ISwitchE e)

  Specified by:
    `len2` in interface `IVecI`

### len2

    public IDouble len2(ISwitchR r)

  Specified by:
    `len2` in interface `IVecI`

### len

    public IVec len(double l)

  Specified by:
    `len` in interface `IVecI`

### len

    public IVec len(IDoubleI l)

  Specified by:
    `len` in interface `IVecI`

### unit

    public IVec unit()

  Specified by:
    `unit` in interface `IVecI`

### dist

    public double dist(IVec v)

### dist

    public double dist(IVecI v)

  Specified by:
    `dist` in interface `IVecI`

### dist

    public double dist(ISwitchE e,
                       IVecI v)

  Specified by:
    `dist` in interface `IVecI`

### dist

    public IDouble dist(ISwitchR r,
                        IVecI v)

  Specified by:
    `dist` in interface `IVecI`

### dist2

    public double dist2(IVec v)

### dist2

    public double dist2(IVecI v)

  Description copied from interface: `IVecI`
  squared distance

  Specified by:
    `dist2` in interface `IVecI`

### dist2

    public double dist2(ISwitchE e,
                        IVecI v)

  Specified by:
    `dist2` in interface `IVecI`

### dist2

    public IDouble dist2(ISwitchR r,
                         IVecI v)

  Specified by:
    `dist2` in interface `IVecI`

### eq

    public boolean eq(IVec v)

### eq

    public boolean eq(IVecI v)

  Description copied from interface: `IVecI`
  whether location is same or not

  Specified by:
    `eq` in interface `IVecI`

### eq

    public boolean eq(ISwitchE e,
                      IVecI v)

  Specified by:
    `eq` in interface `IVecI`

### eq

    public IBool eq(ISwitchR r,
                    IVecI v)

  Specified by:
    `eq` in interface `IVecI`

### eq

    public boolean eq(IVec v,
                      double resolution)

### eq

    public boolean eq(IVecI v,
                      double resolution)

  Specified by:
    `eq` in interface `IVecI`

### eq

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

  Specified by:
    `eq` in interface `IVecI`

### eq

    public IBool eq(ISwitchR r,
                    IVecI v,
                    IDoubleI resolution)

  Specified by:
    `eq` in interface `IVecI`

### eqX

    public boolean eqX(IVec v)

### eqY

    public boolean eqY(IVec v)

### eqZ

    public boolean eqZ(IVec v)

### eqX

    public boolean eqX(IVecI v)

  Specified by:
    `eqX` in interface `IVecI`

### eqY

    public boolean eqY(IVecI v)

  Specified by:
    `eqY` in interface `IVecI`

### eqZ

    public boolean eqZ(IVecI v)

  Specified by:
    `eqZ` in interface `IVecI`

### eqX

    public boolean eqX(ISwitchE e,
                       IVecI v)

  Specified by:
    `eqX` in interface `IVecI`

### eqY

    public boolean eqY(ISwitchE e,
                       IVecI v)

  Specified by:
    `eqY` in interface `IVecI`

### eqZ

    public boolean eqZ(ISwitchE e,
                       IVecI v)

  Specified by:
    `eqZ` in interface `IVecI`

### eqX

    public IBool eqX(ISwitchR r,
                     IVecI v)

  Specified by:
    `eqX` in interface `IVecI`

### eqY

    public IBool eqY(ISwitchR r,
                     IVecI v)

  Specified by:
    `eqY` in interface `IVecI`

### eqZ

    public IBool eqZ(ISwitchR r,
                     IVecI v)

  Specified by:
    `eqZ` in interface `IVecI`

### eqX

    public boolean eqX(IVec v,
                       double resolution)

### eqY

    public boolean eqY(IVec v,
                       double resolution)

### eqZ

    public boolean eqZ(IVec v,
                       double resolution)

### eqX

    public boolean eqX(IVecI v,
                       double resolution)

  Specified by:
    `eqX` in interface `IVecI`

### eqY

    public boolean eqY(IVecI v,
                       double resolution)

  Specified by:
    `eqY` in interface `IVecI`

### eqZ

    public boolean eqZ(IVecI v,
                       double resolution)

  Specified by:
    `eqZ` in interface `IVecI`

### eqX

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

  Specified by:
    `eqX` in interface `IVecI`

### eqY

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

  Specified by:
    `eqY` in interface `IVecI`

### eqZ

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

  Specified by:
    `eqZ` in interface `IVecI`

### eqX

    public IBool eqX(ISwitchR r,
                     IVecI v,
                     IDoubleI resolution)

  Specified by:
    `eqX` in interface `IVecI`

### eqY

    public IBool eqY(ISwitchR r,
                     IVecI v,
                     IDoubleI resolution)

  Specified by:
    `eqY` in interface `IVecI`

### eqZ

    public IBool eqZ(ISwitchR r,
                     IVecI v,
                     IDoubleI resolution)

  Specified by:
    `eqZ` in interface `IVecI`

### angle

    public double angle(IVec v)

  angle in double (P for Primitive)

### angle

    public double angle(IVecI v)

  Specified by:
    `angle` in interface `IVecI`
  Returns:
    angle between two vector from 0 to Pi

### angle

    public double angle(ISwitchE e,
                        IVecI v)

  Specified by:
    `angle` in interface `IVecI`

### angle

    public IDouble angle(ISwitchR r,
                         IVecI v)

  Specified by:
    `angle` in interface `IVecI`

### angle

    public double angle(IVec v,
                        IVec axis)

### 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(ISwitchE e,
                        IVecI v,
                        IVecI axis)

  Specified by:
    `angle` in interface `IVecI`

### angle

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

  Specified by:
    `angle` in interface `IVecI`

### rot

    public IVec rot(IVec axis,
                    double angle)

### rot

    public IVec rot(IVecI axis,
                    double angle)

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

### rot

    public IVec rot(IVecI axis,
                    IDoubleI angle)

  Description copied from interface: `ITransformable`
  rotation around axis vector

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

### rot

    public IVec rot(double angle)

  rotation on xy-plane

  Specified by:
    `rot` in interface `ITransformable`

### rot

    public IVec rot(IDoubleI angle)

  rotation on xy-plane

  Specified by:
    `rot` in interface `ITransformable`

### rot

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

### rot

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

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

### rot

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

  Description copied from interface: `ITransformable`
  rotation around axis vector and center

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

### rot

    public IVec rot(IVec axis,
                    IVec destDir)

### rot

    public IVec rot(IVecI axis,
                    IVecI destDir)

  Description copied from interface: `ITransformable`
  rotate to destination direction vector

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

### rot

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

### rot

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

  Description copied from interface: `ITransformable`
  rotate to destination point location

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

### rot2

    public IVec rot2(double angle)

  rotation on xy-plane; alias of rot(double)

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public IVec rot2(IDoubleI angle)

  rotation on xy-plane; alias of rot(IDoubleI)

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public IVec rot2(IVec center,
                     double angle)

  rotation on xy-plane

### rot2

    public IVec rot2(IVecI center,
                     double angle)

  rotation on xy-plane

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public IVec rot2(IVecI center,
                     IDoubleI angle)

  rotation on xy-plane

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public IVec rot2(IVec destDir)

  rotation on xy-plane towards destDir

### rot2

    public IVec rot2(IVecI destDir)

  rotation on xy-plane towards destDir

  Specified by:
    `rot2` in interface `ITransformable`

### rot2

    public IVec rot2(IVec center,
                     IVec destPt)

  rotation on xy-plane towards destPt

### rot2

    public IVec rot2(IVecI center,
                     IVecI destPt)

  rotation on xy-plane towards destPt

  Specified by:
    `rot2` in interface `ITransformable`

### scale

    public IVec scale(IDoubleI f)

  alias of mul

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

### scale

    public IVec scale(double f)

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

### scale

    public IVec scale(IVec center,
                      double f)

### scale

    public IVec scale(IVecI center,
                      double f)

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

### scale

    public IVec scale(IVecI center,
                      IDoubleI f)

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

### scale1d

    public IVec scale1d(IVec axis,
                        double f)

  scale only in 1 direction

### scale1d

    public IVec scale1d(IVecI axis,
                        double f)

  Description copied from interface: `ITransformable`
  scale only in 1 direction

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

### scale1d

    public IVec scale1d(IVecI axis,
                        IDoubleI f)

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

### scale1d

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

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

### scale1d

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

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

### ref

    public IVec ref(IVec planeDir)

  reflect (mirror) 3 dimensionally to the other side of the plane

### ref

    public IVec ref(IVecI planeDir)

  Description copied from interface: `ITransformable`
  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 IVec ref(IVec center,
                    IVec planeDir)

### ref

    public IVec ref(IVecI center,
                    IVecI planeDir)

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

### mirror

    public IVec mirror(IVec planeDir)

### mirror

    public IVec mirror(IVecI planeDir)

  Description copied from interface: `ITransformable`
  mirror is alias of ref

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

### mirror

    public IVec mirror(IVec center,
                       IVec planeDir)

### mirror

    public IVec mirror(IVecI center,
                       IVecI planeDir)

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

### shear

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

  Description copied from interface: `ITransformable`
  shear operation

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

### shear

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

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

### shear

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

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

### shear

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

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

### shearXY

    public IVec shearXY(double sxy,
                        double syx)

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

### shearXY

    public IVec shearXY(IDoubleI sxy,
                        IDoubleI syx)

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

### shearXY

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

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

### shearXY

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

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

### shearYZ

    public IVec shearYZ(double syz,
                        double szy)

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

### shearYZ

    public IVec shearYZ(IDoubleI syz,
                        IDoubleI szy)

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

### shearYZ

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

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

### shearYZ

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

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

### shearZX

    public IVec shearZX(double szx,
                        double sxz)

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

### shearZX

    public IVec shearZX(IDoubleI szx,
                        IDoubleI sxz)

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

### shearZX

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

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

### shearZX

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

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

### translate

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

  Description copied from interface: `ITransformable`
  translate() is alias of add()

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

### translate

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

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

### translate

    public IVec translate(IVecI v)

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

### transform

    public IVec transform(IMatrix3I mat)

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

### transform

    public IVec transform(IMatrix4I mat)

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

### transform

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

### transform

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

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

### transform

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

### transform

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

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

### mv

    public IVec 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 IVec mv(IDoubleI x,
                   IDoubleI y,
                   IDoubleI z)

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

### mv

    public IVec mv(IVecI v)

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

### cp

    public IVec cp()

  cp() is alias of dup()

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

### cp

    public IVec 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 IVec cp(IDoubleI x,
                   IDoubleI y,
                   IDoubleI z)

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

### cp

    public IVec cp(IVecI v)

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

### dif

    public IVec dif(IVec v)

  methods creating new instance

### dif

    public IVec dif(IVecI v)

  Description copied from interface: `IVecI`
  create a new instance of difference

  Specified by:
    `dif` in interface `IVecI`

### diff

    public IVec diff(IVec v)

### diff

    public IVec diff(IVecI v)

  Description copied from interface: `IVecI`
  alias of dif

  Specified by:
    `diff` in interface `IVecI`

### mid

    public IVec mid(IVec v)

### mid

    public IVec mid(IVecI v)

  Description copied from interface: `IVecI`
  create a new instance of midpoint

  Specified by:
    `mid` in interface `IVecI`

### sum

    public IVec sum(IVec v)

### sum

    public IVec sum(IVecI v)

  Description copied from interface: `IVecI`
  create a new instance of total summation

  Specified by:
    `sum` in interface `IVecI`

### sum

    public IVec sum(IVec... v)

### sum

    public IVec sum(IVecI... v)

  Description copied from interface: `IVecI`
  create a new instance of total summation

  Specified by:
    `sum` in interface `IVecI`

### bisect

    public IVec bisect(IVec v)

### bisect

    public IVec bisect(IVecI v)

  Description copied from interface: `IVecI`
  create a new instance of bisector

  Specified by:
    `bisect` in interface `IVecI`

### sum

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

  weighted sum, creating new instance

### sum

    public IVec sum(IVec v2,
                    double w2)

### sum

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

  Description copied from interface: `IVecI`
  weighted sum

  Specified by:
    `sum` in interface `IVecI`

### sum

    public IVec sum(IVecI v2,
                    double w2)

  Specified by:
    `sum` in interface `IVecI`

### sum

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

  Specified by:
    `sum` in interface `IVecI`

### sum

    public IVec sum(IVecI v2,
                    IDoubleI w2)

  Specified by:
    `sum` in interface `IVecI`

### isValid

    public boolean isValid()

  checking x, y, and z is valid number (not Infinite, nor NaN).

  Specified by:
    `isValid` in interface `IVecI`

### toString

    public java.lang.String toString()

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

### isParallel

    public boolean isParallel(IVecI v)

### isParallel

    public boolean isParallel(IVecI v,
                              double angleReso)

### isStraight

    public boolean isStraight(IVecI v1,
                              IVecI v2)

### isStraight

    public boolean isStraight(IVecI v1,
                              IVecI v2,
                              double angleReso)

### nml

    public IVec nml(IVecI v)

  alias of cross. (not unitized ... ?)

  Specified by:
    `nml` in interface `IVecI`

### nml

    public IVec nml(IVecI pt1,
                    IVecI pt2)

  create normal vector from 3 points of self, pt1 and pt2

  Specified by:
    `nml` in interface `IVecI`

### nml

    public IVec nml(IVec pt1,
                    IVec pt2)

### getNormal

    public static IVecI getNormal(IVecI pt1,
                                  IVecI pt2,
                                  IVecI pt3)

### getNormal

    public static IVec getNormal(IVec pt1,
                                 IVec pt2,
                                 IVec pt3)

### getNormal

    public IVecI getNormal(IVecI pt2,
                           IVecI pt3)

### getNormal

    public IVec getNormal(IVec pt2,
                          IVec pt3)

### projectToPlane

    public IVec projectToPlane(IVecI projectDir,
                               IVecI planeNormal)

### projectToPlane

    public IVec projectToPlane(IVecI projectDir,
                               IVecI planeNormal,
                               IVecI planePoint)

### projectToLine

    public IVec projectToLine(IVecI linePt,
                              IVecI lineDir)

### projectTo2Vec

    public double[] projectTo2Vec(IVecI v1,
                                  IVecI v2)

  project the vector to the plane defined by two input vector and decompose vector to two vector and another perpendicular vector and returns coefficient of them. relationship of them is like below. this = return[0] * v1 + return[1] * v2 + return[2] * v1.cross(v2);

  Returns:
    array of three double number, first is coefficient of uvec, second is of vvec and third is of uvec.cross(vvec)

### projectToVec

    public double projectToVec(IVecI v)

  project this vector to the input vector and returns projection coefficient.

  Parameters:
    `v` - a vector for this vector to project on.

### decompose

    public IVec[] decompose(IVecI uaxis,
                            IVecI vaxis)

  decompose the vector to two input vectors and another perpendicular vector of those two and returns three decomposed vector. the vector itself doensn't change. this = return[0] + return[1] + return[2];

  Returns:
    array of three decomposed vectors

### distanceToPlane

    public double distanceToPlane(IVecI planeDir,
                                  IVecI planePt)

### perpendicularVectorToLine

    public IVec perpendicularVectorToLine(IVecI lineDir,
                                          IVecI linePt)

  create a new vector from this point to the line in parpendicular direction.

### perpendicularVectorToVector

    public IVec perpendicularVectorToVector(IVecI axisDir)

  create a new vector from line to this point perpendicular to the axis

### isOnPlane

    public boolean isOnPlane(IVecI planePt1,
                             IVecI planePt2,
                             IVecI planePt3)

### isOnPlane

    public boolean isOnPlane(IVecI planeDir,
                             IVecI planePt)

### isOnPlane

    public boolean isOnPlane(IVecI planePt1,
                             IVecI planePt2,
                             IVecI planePt3,
                             double resolution)

### isOnPlane

    public boolean isOnPlane(IVecI planeDir,
                             IVecI planePt,
                             double resolution)

### show

    public IVectorObject show(IVecI root)

  visualize a vector as an arrow.

  Parameters:
    `root` - A root position of the arrow.

### show

    public IVectorObject show()

  visualize a vector as an arrow. The root position of the arrow is the origin.

### show

    public IVectorObject show(IServerI s,
                              IVecI root)

  visualize a vector as an arrow.

  Parameters:
    `s` - A server to store the object.
    `root` - A root position of the arrow.

### show

    public IVectorObject show(IServerI s)

  visualize a vector as an arrow. The root position of the arrow is the origin.

  Parameters:
    `s` - A server to store the object.

### isFlat

    public static boolean isFlat(IVecI pt1,
                                 IVecI pt2,
                                 IVecI pt3,
                                 IVecI pt4)

  static methods

### isFlat

    public static boolean isFlat(IVecI pt1,
                                 IVecI pt2,
                                 IVecI pt3,
                                 IVecI pt4,
                                 double resolution)

### isArrayEqual

    public static boolean isArrayEqual(IVec[] pts1,
                                       IVec[] pts2,
                                       boolean cyclic,
                                       boolean reverse)

### isArrayEqual

    public static boolean isArrayEqual(IVec[] pts1,
                                       IVec[] pts2,
                                       boolean cyclic,
                                       boolean reverse,
                                       double resolution)

### averageNormal

    public static IVec averageNormal(IVecI[] pts)

  average normal of point array in form of a polyline. It return IVec, not IVecI. (Should it return IVecI?)

### averageNormal

    public static IVec averageNormal(IVecI[][] pts)

  average normal of point array in form of a matrix. It return IVec, not IVecI. (Should it return IVecI?)

### offset

    public static IVec[] offset(IVec[] pts,
                                double width,
                                IVecI planeNormal)

### offset

    public static IVec[] offset(IVec[] pts,
                                double width,
                                IVecI planeNormal,
                                boolean close)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 double width,
                                 IVecI planeNormal,
                                 boolean close)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 double width,
                                 IVecI planeNormal)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 IDoubleI width,
                                 IVecI planeNormal,
                                 boolean close)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 IDoubleI width,
                                 IVecI planeNormal)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 IVecI[] normal,
                                 double width)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 IVecI[] normal,
                                 IDoubleI width)

### offset

    public static IVec[] offset(IVec[] pts,
                                double width)

### offset

    public static IVec[] offset(IVec[] pts,
                                double width,
                                boolean close)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 double width,
                                 boolean close)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 double width)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 IDoubleI width,
                                 boolean close)

### offset

    public static IVecI[] offset(IVecI[] pts,
                                 IDoubleI width)

### projectToPlane

    public static IVecI projectToPlane(IVecI pt,
                                       IVecI projectDir,
                                       IVecI planeNormal,
                                       IVecI planePt)

  project point a plane. input IVecI point pt is changed. doing same thing with projectToPlane(IVecI,IVecI,IVecI) but this is for IVecI.

### projectToPlane

    public static void projectToPlane(IVecI[] pts,
                                      IVecI projectDir,
                                      IVecI planeNormal,
                                      IVecI planePt)

  project point array to a plane. input points are changed.

### projectToPlane

    public static void projectToPlane(IVecI[][] pts,
                                      IVecI projectDir,
                                      IVecI planeNormal,
                                      IVecI planePt)

  project point array to a plane. input points are changed.

### projectToPlane

    public static void projectToPlane(IVecI[] pts,
                                      IVecI planeNormal,
                                      IVecI planePt)

  project point array to a plane. input points are changed.

### projectToPlane

    public static void projectToPlane(IVecI[][] pts,
                                      IVecI planeNormal,
                                      IVecI planePt)

  project point array to a plane. input points are changed.

### projectToPlane

    public static void projectToPlane(IVecI[] pts,
                                      IVecI planeNormal)

  project point array to a plane. input points are changed. projection plane point is the first element in the array. (should it be center?)

### projectToPlane

    public static void projectToPlane(IVecI[][] pts,
                                      IVecI planeNormal)

  project point array to a plane. input points are changed. projection plane point is the first element in the array. (should it be center?)

### projectToPlane

    public static void projectToPlane(IVecI[] pts)

  project point array to a plane. input points are changed. projection plane normal is average normal of pts. projection plane point is the first element in the array. (should it be center?)

### projectToPlane

    public static void projectToPlane(IVecI[][] pts)

  project point array to a plane. input points are changed. projection plane normal is average normal of pts. projection plane point is the first element in the array. (should it be center?)

### intersect

    public static IVec intersect(IVec line1Pt1,
                                 IVec line1Pt2,
                                 IVec line2Pt1,
                                 IVec line2Pt2)

  intersection of two infinite lines. If two lines are skew and 4 points are not on the same plane, line2Pt2 is projected on plane of line1Pt1,line1Pt2,line2Pt1.

### intersectSegments

    public static IVec intersectSegments(IVec line1Pt1,
                                         IVec line1Pt2,
                                         IVec line2Pt1,
                                         IVec line2Pt2)

  intersection of line segments. If intersection point is not on line, it returns null.

### angle

    public static double angle(IVecI pt1,
                               IVecI pt2,
                               IVecI pt3)

  measure angle of polyline of pt1,pt2 and pt3 at pt2, which is equivalent to measure angle between vectors from pt2 to pt1 and pt2 to pt3.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD