igeo

## Class IParticleGeo

- java.lang.Object
- - igeo.IDynamicsBase
  - - igeo.IParticleGeo

- All Implemented Interfaces:
    IArithmeticVal<IVecI,IDoubleI>, IDynamics, IParameter, IParticleI, ISubobject, ITransformable, IVal, IVecI, IVecOp
  Direct Known Subclasses:
    IBoidGeo, IParticleOnCurveGeo, IParticleOnMeshGeo, IParticleOnPlaneGeo

      public class IParticleGeo
      extends IDynamicsBase
      implements IParticleI, IVecI

  Class of an implementation of IDynamics to have physical attributes of point. It has attributes of position, velocity, acceleration, force, and mass. Position is provided from outside to be linked.
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) static double` | `defaultFriction`
    `boolean` | `fixed`
    `IVec` | `frc`
    `double` | `friction`
    `double` | `mass`
    `IVec` | `pos`
    `boolean` | `skipUpdateOnce` when other agent set locatin, this skips to update the position by the velocity
    `IVec` | `vel`

    - ### Fields inherited from class igeo.IDynamicsBase

      `parent, targets`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IParticleGeo()`
    `IParticleGeo(double x, double y, double z)`
    `IParticleGeo(double x, double y, double z, double vx, double vy, double vz)`
    `IParticleGeo(double x, double y, double z, double vx, double vy, double vz, IObject parent)`
    `IParticleGeo(double x, double y, double z, IObject parent)`
    `IParticleGeo(IParticleGeo ptcl)`
    `IParticleGeo(IParticleGeo ptcl, IObject parent)`
    `IParticleGeo(IParticleGeo ptcl, IVecI v)`
    `IParticleGeo(IParticleGeo ptcl, IVecI v, IObject parent)`
    `IParticleGeo(IPoint pt)`
    `IParticleGeo(IPoint pt, IVecI v)`
    `IParticleGeo(IPointR pt)`
    `IParticleGeo(IPointR pt, IVecI v)`
    `IParticleGeo(IVec pos)`
    `IParticleGeo(IVecI p)`
    `IParticleGeo(IVecI p, IObject parent)`
    `IParticleGeo(IVecI p, IVecI v)`
    `IParticleGeo(IVecI p, IVecI v, IObject parent)`
    `IParticleGeo(IVec pos, IObject parent)`
    `IParticleGeo(IVec pos, IVec vel)`
    `IParticleGeo(IVec pos, IVec vel, IObject parent)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `IVec` | `acc()` get acceleration; acceleration is calculated from frc and mass
    `IVec` | `acceleration()` get acceleration; acceleration is calculated from frc and mass
    `IParticleGeo` | `add(double x, double y, double z)`
    `IParticleGeo` | `add(double f, IVecI v)` scale add
    `IParticleGeo` | `add(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IParticleGeo` | `add(IDoubleI f, IVecI v)` scale add
    `IParticleGeo` | `add(IVecI v)`
    `IParticleGeo` | `add(IVecI v, double f)` scale add
    `IParticleGeo` | `add(IVecI v, IDoubleI f)` scale add
    `IParticleGeo` | `addForce(double fx, double fy, double fz)` adding force (alias of push)
    `IParticleGeo` | `addForce(IVecI f)` adding force (alias of push)
    `double` | `angle(double vx, double vy, double vz)` get angle between two vector from 0 to Pi
    `double` | `angle(double vx, double vy, double vz, double axisX, double axisY, double axisZ)`
    `double` | `angle(ISwitchE e, IVecI v)` get angle between two vector from 0 to Pi
    `double` | `angle(ISwitchE e, IVecI v, IVecI axis)`
    `IDouble` | `angle(ISwitchR r, IVecI v)` get angle between two vector from 0 to Pi
    `IDouble` | `angle(ISwitchR r, IVecI v, IVecI axis)`
    `double` | `angle(IVecI v)` get angle between two vector from 0 to Pi
    `double` | `angle(IVecI v, IVecI axis)`
    `IVec` | `bisect(double vx, double vy, double vz)` create a new instance of bisector
    `IVec` | `bisect(IVecI v)` create a new instance of bisector
    `IParticleGeo` | `cp()` cp() is alias of dup()
    `IParticleGeo` | `cp(double x, double y, double z)` cp() is alias of dup().add()
    `IParticleGeo` | `cp(IDoubleI x, IDoubleI y, IDoubleI z)` cp() is alias of dup().add()
    `IParticleGeo` | `cp(IVecI v)` cp() is alias of dup().add()
    `IVec` | `cross(double vx, double vy, double vz)` cross product, creating a new instance
    `IVec` | `cross(IVecI v)` cross product, creating a new instance
    `double` | `decay()`
    `IParticleGeo` | `decay(double d)`
    `IVec` | `dif(double vx, double vy, double vz)` create a new instance of difference
    `IVec` | `dif(IVecI v)` create a new instance of difference
    `IVec` | `diff(double vx, double vy, double vz)` alias of dif
    `IVec` | `diff(IVecI v)` alias of dif
    `double` | `dist(double vx, double vy, double vz)` distance of two vectors
    `double` | `dist(ISwitchE e, IVecI v)` distance of two vectors
    `IDouble` | `dist(ISwitchR r, IVecI v)` distance of two vectors
    `double` | `dist(IVecI v)` distance of two vectors
    `double` | `dist2(double vx, double vy, double vz)` squared distance of two vectors
    `double` | `dist2(ISwitchE e, IVecI v)` squared distance of two vectors
    `IDouble` | `dist2(ISwitchR r, IVecI v)` squared distance of two vectors
    `double` | `dist2(IVecI v)` squared distance of two vectors
    `IParticleGeo` | `div(double v)`
    `IParticleGeo` | `div(IDoubleI v)`
    `double` | `dot(double vx, double vy, double vz)` dot product
    `double` | `dot(ISwitchE e, IVecI v)` dot product
    `IDouble` | `dot(ISwitchR r, IVecI v)` dot product
    `double` | `dot(IVecI v)` dot product
    `IParticleGeo` | `dup()` duplicate the instance
    `boolean` | `eq(double vx, double vy, double vz)` check whether location is same or not
    `boolean` | `eq(double vx, double vy, double vz, double tolerance)` check whether location is same or not with tolerance
    `boolean` | `eq(ISwitchE e, IVecI v)` check whether location is same or not
    `boolean` | `eq(ISwitchE e, IVecI v, double tolerance)` check whether location is same or not with tolerance
    `IBool` | `eq(ISwitchR r, IVecI v)` check whether location is same or not
    `IBool` | `eq(ISwitchR r, IVecI v, IDoubleI tolerance)` check whether location is same or not with tolerance
    `boolean` | `eq(IVecI v)` check whether location is same or not
    `boolean` | `eq(IVecI v, double tolerance)` check whether location is same or not with tolerance
    `boolean` | `eqX(double vx)` check if same in X
    `boolean` | `eqX(double vx, double tolerance)` check if same in X with tolerance
    `boolean` | `eqX(ISwitchE e, IVecI v)` check if same in X
    `boolean` | `eqX(ISwitchE e, IVecI v, double tolerance)` check if same in X with tolerance
    `IBool` | `eqX(ISwitchR r, IVecI v)` check if same in X
    `IBool` | `eqX(ISwitchR r, IVecI v, IDoubleI tolerance)` check if same in X with tolerance
    `boolean` | `eqX(IVecI v)` check if same in X
    `boolean` | `eqX(IVecI v, double tolerance)` check if same in X with tolerance
    `boolean` | `eqY(double vy)` check if same in Y
    `boolean` | `eqY(double vy, double tolerance)` check if same in Y with tolerance
    `boolean` | `eqY(ISwitchE e, IVecI v)` check if same in Y
    `boolean` | `eqY(ISwitchE e, IVecI v, double tolerance)` check if same in Y with tolerance
    `IBool` | `eqY(ISwitchR r, IVecI v)` check if same in Y
    `IBool` | `eqY(ISwitchR r, IVecI v, IDoubleI tolerance)` check if same in Y with tolerance
    `boolean` | `eqY(IVecI v)` check if same in Y
    `boolean` | `eqY(IVecI v, double tolerance)` check if same in Y with tolerance
    `boolean` | `eqZ(double vz)` check if same in Z
    `boolean` | `eqZ(double vz, double tolerance)` check if same in Z with tolerance
    `boolean` | `eqZ(ISwitchE e, IVecI v)` check if same in Z
    `boolean` | `eqZ(ISwitchE e, IVecI v, double tolerance)` check if same in Z with tolerance
    `IBool` | `eqZ(ISwitchR r, IVecI v)` check if same in Z
    `IBool` | `eqZ(ISwitchR r, IVecI v, IDoubleI tolerance)` check if same in Z with tolerance
    `boolean` | `eqZ(IVecI v)` check if same in Z
    `boolean` | `eqZ(IVecI v, double tolerance)` check if same in Z with tolerance
    `IParticleGeo` | `fix()` fix movement
    `boolean` | `fixed()` check if it's fixed
    `IParticleGeo` | `flip()` alias of neg()
    `IVec` | `force()` get force
    `IParticleGeo` | `force(IVecI v)` set force
    `IVec` | `frc()` get force
    `IParticleGeo` | `frc(IVecI v)` set force
    `double` | `fric()` get friction
    `IParticleGeo` | `fric(double friction)` set friction
    `double` | `friction()` get friction
    `IParticleGeo` | `friction(double friction)` set friction
    `IVec` | `get()`
    `IDouble` | `getX()`
    `IDouble` | `getY()`
    `IDouble` | `getZ()`
    `void` | `initParticle()`
    `void` | `initParticle(IVec v)`
    `void` | `initParticle(IVecI v)`
    `boolean` | `isValid()` checking x, y, and z is valid number (not Infinite, nor NaN).
    `double` | `len()` getting length of the vector
    `IParticleGeo` | `len(double l)` setting length
    `IParticleGeo` | `len(IDoubleI l)` setting length
    `double` | `len(ISwitchE e)` getting length of the vector
    `IDouble` | `len(ISwitchR r)` getting length of the vector
    `double` | `len2()` getting squared length of the vector
    `double` | `len2(ISwitchE e)` getting squared length of the vector
    `IDouble` | `len2(ISwitchR r)` getting squared length of the vector
    `double` | `mass()` get mass
    `IParticleGeo` | `mass(double mass)` set mass
    `IVec` | `mid(double vx, double vy, double vz)` create a new instance of midpoint
    `IVec` | `mid(IVecI v)` create a new instance of midpoint
    `IParticleGeo` | `mirror(double planeX, double planeY, double planeZ)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `mirror(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `mirror(IVecI planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `mirror(IVecI center, IVecI planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `mul(double v)`
    `IParticleGeo` | `mul(IDoubleI v)`
    `IParticleGeo` | `mv(double x, double y, double z)` mv() is alias of add()
    `IParticleGeo` | `mv(IDoubleI x, IDoubleI y, IDoubleI z)` mv() is alias of add()
    `IParticleGeo` | `mv(IVecI v)` mv() is alias of add()
    `IParticleGeo` | `neg()`
    `IVec` | `nml(double vx, double vy, double vz)` alias of cross
    `IVec` | `nml(double vx1, double vy1, double vz1, double vx2, double vy2, double vz2)` create normal vector from 3 points of self, pt1 and pt2
    `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` | `pos()` get position
    `IParticleGeo` | `pos(IVecI v)` set position
    `IVec` | `position()` get position
    `IParticleGeo` | `position(IVecI v)` set position
    `void` | `postupdate()` this is changed again because force in update cannot be reflected (updated 2014/03/10)
    `void` | `preupdate()` update of velocity is done in preupdate (updated 2012/08/26)
    `IParticleGeo` | `pull(double fx, double fy, double fz)` adding negative force
    `IParticleGeo` | `pull(IVecI f)` adding negative force
    `IParticleGeo` | `push(double fx, double fy, double fz)` adding force
    `IParticleGeo` | `push(IVecI f)` adding force
    `IParticleGeo` | `ref(double planeX, double planeY, double planeZ)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `ref(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `ref(IVecI planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `ref(IVecI center, IVecI planeDir)` reflect (mirror) 3 dimensionally to the other side of the plane
    `IParticleGeo` | `removeTarget(int i)` remove target object.
    `IParticleGeo` | `removeTarget(IObject obj)` remove target object.
    `IParticleGeo` | `reset()` setting force zero
    `IParticleGeo` | `resetForce()` setting force zero (alias of reset())
    `IParticleGeo` | `rev()` alias of neg()
    `IParticleGeo` | `rot(double angle)` rotation on XY plane
    `IParticleGeo` | `rot(double axisX, double axisY, double axisZ, double angle)` rotation around axis vector
    `IParticleGeo` | `rot(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double angle)` rotation around axis vector and center point
    `IParticleGeo` | `rot(IDoubleI angle)` rotation on XY plane
    `IParticleGeo` | `rot(IVecI axis, double angle)` rotation around axis vector
    `IParticleGeo` | `rot(IVecI axis, IDoubleI angle)` rotation around axis vector
    `IParticleGeo` | `rot(IVecI axis, IVecI destDir)` Rotate to destination direction vector.
    `IParticleGeo` | `rot(IVecI center, IVecI axis, double angle)` rotation around axis vector and center point
    `IParticleGeo` | `rot(IVecI center, IVecI axis, IDoubleI angle)` rotation around axis vector and center point
    `IParticleGeo` | `rot(IVecI center, IVecI axis, IVecI destPt)` Rotate to destination point location.
    `IParticleGeo` | `rot2(double angle)` rotation on xy-plane; alias of rot(double)
    `IParticleGeo` | `rot2(double centerX, double centerY, double angle)` rotation on xy-plane
    `IParticleGeo` | `rot2(IDoubleI angle)` rotation on xy-plane; alias of rot(IDoubleI)
    `IParticleGeo` | `rot2(IVecI destDir)` Rotation on xy-plane to destination direction vector.
    `IParticleGeo` | `rot2(IVecI center, double angle)` rotation on xy-plane
    `IParticleGeo` | `rot2(IVecI center, IDoubleI angle)` rotation on xy-plane
    `IParticleGeo` | `rot2(IVecI center, IVecI destPt)` Rotation on xy-plane to destination point location.
    `IParticleGeo` | `scale(double f)` alias of mul
    `IParticleGeo` | `scale(double centerX, double centerY, double centerZ, double f)` scale from a center
    `IParticleGeo` | `scale(IDoubleI f)` alias of mul
    `IParticleGeo` | `scale(IVecI center, double f)` scale from a center
    `IParticleGeo` | `scale(IVecI center, IDoubleI f)` scale from a center
    `IParticleGeo` | `scale1d(double axisX, double axisY, double axisZ, double f)` scale only in 1 direction
    `IParticleGeo` | `scale1d(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double f)` scale only in 1 direction from a center
    `IParticleGeo` | `scale1d(IVecI axis, double f)` scale only in 1 direction
    `IParticleGeo` | `scale1d(IVecI axis, IDoubleI f)` scale only in 1 direction
    `IParticleGeo` | `scale1d(IVecI center, IVecI axis, double f)` scale only in 1 direction from a center
    `IParticleGeo` | `scale1d(IVecI center, IVecI axis, IDoubleI f)` scale only in 1 direction from a center
    `IParticleGeo` | `set(double x, double y, double z)`
    `IParticleGeo` | `set(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IParticleGeo` | `set(IVecI v)`
    `IParticleGeo` | `shear(double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `IParticleGeo` | `shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)` shear operation
    `IParticleGeo` | `shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)` shear operation
    `IParticleGeo` | `shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)` shear operation
    `IParticleGeo` | `shearXY(double sxy, double syx)` shear operation on XY
    `IParticleGeo` | `shearXY(IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IParticleGeo` | `shearXY(IVecI center, double sxy, double syx)` shear operation on XY
    `IParticleGeo` | `shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IParticleGeo` | `shearYZ(double syz, double szy)` shear operation on YZ
    `IParticleGeo` | `shearYZ(IDoubleI syz, IDoubleI szy)` shear operation on YZ
    `IParticleGeo` | `shearYZ(IVecI center, double syz, double szy)` shear operation on YZ
    `IParticleGeo` | `shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)` shear operation on YZ
    `IParticleGeo` | `shearZX(double szx, double sxz)` shear operation on ZX
    `IParticleGeo` | `shearZX(IDoubleI szx, IDoubleI sxz)` shear operation on ZX
    `IParticleGeo` | `shearZX(IVecI center, double szx, double sxz)` shear operation on ZX
    `IParticleGeo` | `shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)` shear operation on ZX
    `boolean` | `skipUpdateOnce()` for other agent to control particle
    `IParticleGeo` | `skipUpdateOnce(boolean f)` for other agent to control particle
    `IParticleGeo` | `sub(double x, double y, double z)`
    `IParticleGeo` | `sub(IDoubleI x, IDoubleI y, IDoubleI z)`
    `IParticleGeo` | `sub(IVecI v)`
    `IVec` | `sum(double vx, double vy, double vz)` create a new instance of total summation
    `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)` create a new instance of weighted sum
    `IVec` | `sum(IVecI v2, double w1, double w2)` weighted sum.
    `IVec` | `sum(IVecI v2, IDoubleI w2)` create a new instance of weighted sum
    `IVec` | `sum(IVecI v2, IDoubleI w1, IDoubleI w2)` create a new instance of weighted sum
    `IParticleGeo` | `target(IObject targetObj)` add terget object to be updated by this dynamic object.
    `IVec2` | `to2d()`
    `IVec2` | `to2d(IVecI projectionDir)`
    `IVec2` | `to2d(IVecI xaxis, IVecI yaxis)`
    `IVec2` | `to2d(IVecI xaxis, IVecI yaxis, IVecI origin)`
    `IVec4` | `to4d()`
    `IVec4` | `to4d(double w)`
    `IVec4` | `to4d(IDoubleI w)`
    `java.lang.String` | `toString()`
    `IParticleGeo` | `transform(IMatrix3I mat)` transform with a transformation matrix
    `IParticleGeo` | `transform(IMatrix4I mat)` transform with a transformation matrix
    `IParticleGeo` | `transform(IVecI xvec, IVecI yvec, IVecI zvec)` transform with a transformation vectors
    `IParticleGeo` | `transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)` transform with a transformation vectors
    `IParticleGeo` | `translate(double x, double y, double z)` translate is alias of add()
    `IParticleGeo` | `translate(IDoubleI x, IDoubleI y, IDoubleI z)` alias of add()
    `IParticleGeo` | `translate(IVecI v)` alias of add()
    `IParticleGeo` | `unfix()` unfix movement
    `IParticleGeo` | `unit()` unitize
    `void` | `update()` update of velocity is done in preupdate and update of position is done in update() (updated 2012/08/26)
    `IVec` | `vel()` get velocity
    `IParticleGeo` | `vel(IVecI v)` set velocity
    `IVec` | `velocity()` get velocity
    `IParticleGeo` | `velocity(IVecI v)` set velocity
    `double` | `x()` implements of IVecI
    `IParticleGeo` | `x(double vx)` setting x component
    `IParticleGeo` | `x(IDoubleI vx)` setting x component
    `double` | `x(ISwitchE e)` getting x component
    `IDoubleI` | `x(ISwitchR r)` getting x component
    `IParticleGeo` | `x(IVec2I v)` setting x component by x component of input vector
    `IParticleGeo` | `x(IVecI v)` setting x component by x component of input vector
    `double` | `y()` getting y component
    `IParticleGeo` | `y(double vy)` setting y component
    `IParticleGeo` | `y(IDoubleI vy)` setting y component
    `double` | `y(ISwitchE e)` getting y component
    `IDoubleI` | `y(ISwitchR r)` getting y component
    `IParticleGeo` | `y(IVec2I v)` setting y component by y component of input vector
    `IParticleGeo` | `y(IVecI v)` setting y component by y component of input vector
    `double` | `z()` getting z component
    `IParticleGeo` | `z(double vz)` setting z component
    `IParticleGeo` | `z(IDoubleI vz)` setting z component
    `double` | `z(ISwitchE e)` getting z component
    `IDoubleI` | `z(ISwitchR r)` getting z component
    `IParticleGeo` | `z(IVecI v)` setting z component by z component of input vector
    `IParticleGeo` | `zero()` setting all zero

    - ### Methods inherited from class igeo.IDynamicsBase

      `initDynamicsBase, initDynamicsBase, initDynamicsBase, interact, localDynamics, parent, parent, postinteract, preinteract, target, targetNum, targets, updateTarget`

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

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

    - ### Methods inherited from interface igeo.IParticleI

      `target, targetNum, targets, updateTarget`

- - ### Field Detail

    - #### defaultFriction

          static double defaultFriction

    - #### mass

          public double mass

    - #### pos

          public IVec pos

    - #### vel

          public IVec vel

    - #### frc

          public IVec frc

    - #### fixed

          public boolean fixed

    - #### friction

          public double friction

    - #### skipUpdateOnce

          public boolean skipUpdateOnce

      when other agent set locatin, this skips to update the position by the velocity

  - ### Constructor Detail

    - #### IParticleGeo

          public IParticleGeo()

    - #### IParticleGeo

          public IParticleGeo(IVec pos)

    - #### IParticleGeo

          public IParticleGeo(IVec pos,
                      IObject parent)

    - #### IParticleGeo

          public IParticleGeo(IVecI p)

    - #### IParticleGeo

          public IParticleGeo(IVecI p,
                      IObject parent)

    - #### IParticleGeo

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

    - #### IParticleGeo

          public IParticleGeo(double x,
                      double y,
                      double z,
                      IObject parent)

    - #### IParticleGeo

          public IParticleGeo(IPoint pt)

    - #### IParticleGeo

          public IParticleGeo(IPointR pt)

    - #### IParticleGeo

          public IParticleGeo(IParticleGeo ptcl)

    - #### IParticleGeo

          public IParticleGeo(IParticleGeo ptcl,
                      IObject parent)

    - #### IParticleGeo

          public IParticleGeo(IVec pos,
                      IVec vel)

    - #### IParticleGeo

          public IParticleGeo(IVec pos,
                      IVec vel,
                      IObject parent)

    - #### IParticleGeo

          public IParticleGeo(IVecI p,
                      IVecI v)

    - #### IParticleGeo

          public IParticleGeo(IVecI p,
                      IVecI v,
                      IObject parent)

    - #### IParticleGeo

          public IParticleGeo(double x,
                      double y,
                      double z,
                      double vx,
                      double vy,
                      double vz)

    - #### IParticleGeo

          public IParticleGeo(double x,
                      double y,
                      double z,
                      double vx,
                      double vy,
                      double vz,
                      IObject parent)

    - #### IParticleGeo

          public IParticleGeo(IPoint pt,
                      IVecI v)

    - #### IParticleGeo

          public IParticleGeo(IPointR pt,
                      IVecI v)

    - #### IParticleGeo

          public IParticleGeo(IParticleGeo ptcl,
                      IVecI v)

    - #### IParticleGeo

          public IParticleGeo(IParticleGeo ptcl,
                      IVecI v,
                      IObject parent)

  - ### Method Detail

    - #### initParticle

          public void initParticle()

    - #### initParticle

          public void initParticle(IVec v)

    - #### initParticle

          public void initParticle(IVecI v)

    - #### dup

          public IParticleGeo dup()

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

    - #### fix

          public IParticleGeo fix()

      Description copied from interface: `IParticleI`
      fix movement
      Specified by:
        `fix` in interface `IParticleI`

    - #### unfix

          public IParticleGeo unfix()

      Description copied from interface: `IParticleI`
      unfix movement
      Specified by:
        `unfix` in interface `IParticleI`

    - #### fixed

          public boolean fixed()

      check if it's fixed
      Specified by:
        `fixed` in interface `IParticleI`

    - #### skipUpdateOnce

          public IParticleGeo skipUpdateOnce(boolean f)

      for other agent to control particle
      Specified by:
        `skipUpdateOnce` in interface `IParticleI`

    - #### skipUpdateOnce

          public boolean skipUpdateOnce()

      for other agent to control particle
      Specified by:
        `skipUpdateOnce` in interface `IParticleI`

    - #### mass

          public double mass()

      Description copied from interface: `IParticleI`
      get mass
      Specified by:
        `mass` in interface `IParticleI`

    - #### mass

          public IParticleGeo mass(double mass)

      Description copied from interface: `IParticleI`
      set mass
      Specified by:
        `mass` in interface `IParticleI`

    - #### position

          public IVec position()

      Description copied from interface: `IParticleI`
      get position
      Specified by:
        `position` in interface `IParticleI`

    - #### position

          public IParticleGeo position(IVecI v)

      Description copied from interface: `IParticleI`
      set position
      Specified by:
        `position` in interface `IParticleI`

    - #### pos

          public IVec pos()

      Description copied from interface: `IParticleI`
      get position
      Specified by:
        `pos` in interface `IParticleI`

    - #### pos

          public IParticleGeo pos(IVecI v)

      Description copied from interface: `IParticleI`
      set position
      Specified by:
        `pos` in interface `IParticleI`

    - #### velocity

          public IVec velocity()

      Description copied from interface: `IParticleI`
      get velocity
      Specified by:
        `velocity` in interface `IParticleI`

    - #### velocity

          public IParticleGeo velocity(IVecI v)

      Description copied from interface: `IParticleI`
      set velocity
      Specified by:
        `velocity` in interface `IParticleI`

    - #### vel

          public IVec vel()

      Description copied from interface: `IParticleI`
      get velocity
      Specified by:
        `vel` in interface `IParticleI`

    - #### vel

          public IParticleGeo vel(IVecI v)

      Description copied from interface: `IParticleI`
      set velocity
      Specified by:
        `vel` in interface `IParticleI`

    - #### acceleration

          public IVec acceleration()

      get acceleration; acceleration is calculated from frc and mass
      Specified by:
        `acceleration` in interface `IParticleI`

    - #### acc

          public IVec acc()

      get acceleration; acceleration is calculated from frc and mass
      Specified by:
        `acc` in interface `IParticleI`

    - #### force

          public IVec force()

      Description copied from interface: `IParticleI`
      get force
      Specified by:
        `force` in interface `IParticleI`

    - #### force

          public IParticleGeo force(IVecI v)

      Description copied from interface: `IParticleI`
      set force
      Specified by:
        `force` in interface `IParticleI`

    - #### frc

          public IVec frc()

      Description copied from interface: `IParticleI`
      get force
      Specified by:
        `frc` in interface `IParticleI`

    - #### frc

          public IParticleGeo frc(IVecI v)

      Description copied from interface: `IParticleI`
      set force
      Specified by:
        `frc` in interface `IParticleI`

    - #### friction

          public double friction()

      Description copied from interface: `IParticleI`
      get friction
      Specified by:
        `friction` in interface `IParticleI`

    - #### friction

          public IParticleGeo friction(double friction)

      Description copied from interface: `IParticleI`
      set friction
      Specified by:
        `friction` in interface `IParticleI`

    - #### fric

          public double fric()

      Description copied from interface: `IParticleI`
      get friction
      Specified by:
        `fric` in interface `IParticleI`

    - #### fric

          public IParticleGeo fric(double friction)

      Description copied from interface: `IParticleI`
      set friction
      Specified by:
        `fric` in interface `IParticleI`

    - #### decay

          public double decay()

      Specified by:
        `decay` in interface `IParticleI`

    - #### decay

          public IParticleGeo decay(double d)

      Specified by:
        `decay` in interface `IParticleI`

    - #### push

          public IParticleGeo push(IVecI f)

      adding force
      Specified by:
        `push` in interface `IParticleI`

    - #### push

          public IParticleGeo push(double fx,
                          double fy,
                          double fz)

      adding force
      Specified by:
        `push` in interface `IParticleI`

    - #### pull

          public IParticleGeo pull(IVecI f)

      adding negative force
      Specified by:
        `pull` in interface `IParticleI`

    - #### pull

          public IParticleGeo pull(double fx,
                          double fy,
                          double fz)

      adding negative force
      Specified by:
        `pull` in interface `IParticleI`

    - #### addForce

          public IParticleGeo addForce(IVecI f)

      adding force (alias of push)
      Specified by:
        `addForce` in interface `IParticleI`

    - #### addForce

          public IParticleGeo addForce(double fx,
                              double fy,
                              double fz)

      adding force (alias of push)
      Specified by:
        `addForce` in interface `IParticleI`

    - #### reset

          public IParticleGeo reset()

      setting force zero
      Specified by:
        `reset` in interface `IParticleI`

    - #### resetForce

          public IParticleGeo resetForce()

      setting force zero (alias of reset())
      Specified by:
        `resetForce` in interface `IParticleI`

    - #### preupdate

          public void preupdate()

      update of velocity is done in preupdate (updated 2012/08/26)
      Specified by:
        `preupdate` in interface `IDynamics`
      Overrides:
        `preupdate` in class `IDynamicsBase`

    - #### update

          public void update()

      update of velocity is done in preupdate and update of position is done in update() (updated 2012/08/26)
      Specified by:
        `update` in interface `IDynamics`
      Overrides:
        `update` in class `IDynamicsBase`

    - #### postupdate

          public void postupdate()

      this is changed again because force in update cannot be reflected (updated 2014/03/10)
      Specified by:
        `postupdate` in interface `IDynamics`
      Overrides:
        `postupdate` in class `IDynamicsBase`

    - #### x

          public double x()

      implements of IVecI
      Specified by:
        `x` in interface `IVecI`

    - #### y

          public double y()

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

    - #### z

          public double z()

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

    - #### x

          public IParticleGeo x(double vx)

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

    - #### y

          public IParticleGeo y(double vy)

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

    - #### z

          public IParticleGeo z(double vz)

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

    - #### x

          public IParticleGeo x(IDoubleI vx)

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

    - #### y

          public IParticleGeo y(IDoubleI vy)

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

    - #### z

          public IParticleGeo z(IDoubleI vz)

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

    - #### x

          public IParticleGeo x(IVecI v)

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

    - #### y

          public IParticleGeo y(IVecI v)

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

    - #### z

          public IParticleGeo z(IVecI v)

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

    - #### x

          public IParticleGeo x(IVec2I v)

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

    - #### y

          public IParticleGeo y(IVec2I v)

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

    - #### x

          public double x(ISwitchE e)

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

    - #### y

          public double y(ISwitchE e)

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

    - #### z

          public double z(ISwitchE e)

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

    - #### x

          public IDoubleI x(ISwitchR r)

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

    - #### y

          public IDoubleI y(ISwitchR r)

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

    - #### z

          public IDoubleI z(ISwitchR r)

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

    - #### get

          public IVec get()

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

    - #### to2d

          public IVec2 to2d()

      Specified by:
        `to2d` in interface `IVecI`

    - #### to2d

          public IVec2 to2d(IVecI projectionDir)

      Specified by:
        `to2d` in interface `IVecI`

    - #### to2d

          public IVec2 to2d(IVecI xaxis,
                   IVecI yaxis)

      Specified by:
        `to2d` in interface `IVecI`

    - #### to2d

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

      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 IParticleGeo set(IVecI v)

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

    - #### set

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

      Specified by:
        `set` in interface `IVecI`

    - #### set

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

      Specified by:
        `set` in interface `IVecI`

    - #### add

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

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

    - #### add

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

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

    - #### add

          public IParticleGeo add(IVecI v)

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

    - #### sub

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

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

    - #### sub

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

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

    - #### sub

          public IParticleGeo sub(IVecI v)

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

    - #### mul

          public IParticleGeo mul(IDoubleI v)

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

    - #### mul

          public IParticleGeo mul(double v)

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

    - #### div

          public IParticleGeo div(IDoubleI v)

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

    - #### div

          public IParticleGeo div(double v)

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

    - #### neg

          public IParticleGeo neg()

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

    - #### rev

          public IParticleGeo rev()

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

    - #### flip

          public IParticleGeo flip()

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

    - #### zero

          public IParticleGeo zero()

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

    - #### add

          public IParticleGeo add(IVecI v,
                         double f)

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

    - #### add

          public IParticleGeo add(IVecI v,
                         IDoubleI f)

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

    - #### add

          public IParticleGeo add(double f,
                         IVecI v)

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

    - #### add

          public IParticleGeo add(IDoubleI f,
                         IVecI v)

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

    - #### dot

          public double dot(IVecI v)

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

    - #### dot

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

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

    - #### dot

          public double dot(ISwitchE e,
                   IVecI v)

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

    - #### dot

          public IDouble dot(ISwitchR r,
                    IVecI v)

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

    - #### cross

          public IVec cross(IVecI v)

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

    - #### cross

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

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

    - #### len

          public double len()

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

    - #### len

          public double len(ISwitchE e)

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

    - #### len

          public IDouble len(ISwitchR r)

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

    - #### len2

          public double len2()

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

    - #### len2

          public double len2(ISwitchE e)

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

    - #### len2

          public IDouble len2(ISwitchR r)

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

    - #### len

          public IParticleGeo len(IDoubleI l)

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

    - #### len

          public IParticleGeo len(double l)

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

    - #### unit

          public IParticleGeo unit()

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

    - #### dist

          public double dist(IVecI v)

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

    - #### dist

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

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

    - #### dist

          public double dist(ISwitchE e,
                    IVecI v)

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

    - #### dist

          public IDouble dist(ISwitchR r,
                     IVecI v)

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

    - #### dist2

          public double dist2(IVecI v)

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

    - #### dist2

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

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

    - #### dist2

          public double dist2(ISwitchE e,
                     IVecI v)

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

    - #### dist2

          public IDouble dist2(ISwitchR r,
                      IVecI v)

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

    - #### eq

          public boolean eq(IVecI v)

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

    - #### eq

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

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

    - #### eq

          public boolean eq(ISwitchE e,
                   IVecI v)

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

    - #### eq

          public IBool eq(ISwitchR r,
                 IVecI v)

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

    - #### eq

          public boolean eq(IVecI v,
                   double tolerance)

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

    - #### eq

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

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

    - #### eq

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

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

    - #### eq

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

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

    - #### eqX

          public boolean eqX(IVecI v)

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

    - #### eqY

          public boolean eqY(IVecI v)

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

    - #### eqZ

          public boolean eqZ(IVecI v)

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

    - #### eqX

          public boolean eqX(double vx)

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

    - #### eqY

          public boolean eqY(double vy)

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

    - #### eqZ

          public boolean eqZ(double vz)

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

    - #### eqX

          public boolean eqX(ISwitchE e,
                    IVecI v)

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

    - #### eqY

          public boolean eqY(ISwitchE e,
                    IVecI v)

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

    - #### eqZ

          public boolean eqZ(ISwitchE e,
                    IVecI v)

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

    - #### eqX

          public IBool eqX(ISwitchR r,
                  IVecI v)

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

    - #### eqY

          public IBool eqY(ISwitchR r,
                  IVecI v)

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

    - #### eqZ

          public IBool eqZ(ISwitchR r,
                  IVecI v)

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

    - #### eqX

          public boolean eqX(IVecI v,
                    double tolerance)

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

    - #### eqY

          public boolean eqY(IVecI v,
                    double tolerance)

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

    - #### eqZ

          public boolean eqZ(IVecI v,
                    double tolerance)

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

    - #### eqX

          public boolean eqX(double vx,
                    double tolerance)

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

    - #### eqY

          public boolean eqY(double vy,
                    double tolerance)

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

    - #### eqZ

          public boolean eqZ(double vz,
                    double tolerance)

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

    - #### eqX

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

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

    - #### eqY

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

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

    - #### eqZ

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

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

    - #### eqX

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

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

    - #### eqY

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

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

    - #### eqZ

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

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

    - #### angle

          public double angle(IVecI v)

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

    - #### angle

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

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

    - #### angle

          public double angle(ISwitchE e,
                     IVecI v)

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

    - #### angle

          public IDouble angle(ISwitchR r,
                      IVecI v)

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

    - #### angle

          public double angle(IVecI v,
                     IVecI axis)

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

    - #### angle

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

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

    - #### angle

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

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

    - #### angle

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

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

    - #### rot

          public IParticleGeo rot(IDoubleI angle)

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

    - #### rot

          public IParticleGeo rot(double angle)

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

    - #### rot

          public IParticleGeo rot(IVecI axis,
                         IDoubleI angle)

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

    - #### rot

          public IParticleGeo rot(IVecI axis,
                         double angle)

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

    - #### rot

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

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

    - #### rot

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

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

    - #### rot

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

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

    - #### rot

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

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

    - #### rot

          public IParticleGeo rot(IVecI axis,
                         IVecI destDir)

      Rotate to destination direction vector.
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVecI`

    - #### rot

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

      Rotate to destination point location.
      Specified by:
        `rot` in interface `ITransformable`
      Specified by:
        `rot` in interface `IVecI`

    - #### rot2

          public IParticleGeo rot2(IDoubleI angle)

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

    - #### rot2

          public IParticleGeo rot2(double angle)

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

    - #### rot2

          public IParticleGeo rot2(IVecI center,
                          double angle)

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

    - #### rot2

          public IParticleGeo rot2(IVecI center,
                          IDoubleI angle)

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

    - #### rot2

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

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

    - #### rot2

          public IParticleGeo rot2(IVecI destDir)

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

    - #### rot2

          public IParticleGeo rot2(IVecI center,
                          IVecI destPt)

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

    - #### scale

          public IParticleGeo scale(IDoubleI f)

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

    - #### scale

          public IParticleGeo scale(double f)

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

    - #### scale

          public IParticleGeo scale(IVecI center,
                           IDoubleI f)

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

    - #### scale

          public IParticleGeo scale(IVecI center,
                           double f)

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

    - #### scale

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

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

    - #### scale1d

          public IParticleGeo scale1d(IVecI axis,
                             double f)

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

    - #### scale1d

          public IParticleGeo scale1d(IVecI axis,
                             IDoubleI f)

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

    - #### scale1d

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

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

    - #### scale1d

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

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

    - #### scale1d

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

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

    - #### scale1d

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

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

    - #### ref

          public IParticleGeo ref(IVecI planeDir)

      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 IParticleGeo ref(double planeX,
                         double planeY,
                         double planeZ)

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

    - #### ref

          public IParticleGeo ref(IVecI center,
                         IVecI planeDir)

      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 IParticleGeo ref(double centerX,
                         double centerY,
                         double centerZ,
                         double planeX,
                         double planeY,
                         double planeZ)

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

    - #### mirror

          public IParticleGeo mirror(IVecI planeDir)

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

    - #### mirror

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

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

    - #### mirror

          public IParticleGeo mirror(IVecI center,
                            IVecI planeDir)

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

    - #### mirror

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

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

    - #### shear

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

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

    - #### shear

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

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

    - #### shear

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

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

    - #### shear

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

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

    - #### shearXY

          public IParticleGeo shearXY(double sxy,
                             double syx)

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

    - #### shearXY

          public IParticleGeo shearXY(IDoubleI sxy,
                             IDoubleI syx)

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

    - #### shearXY

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

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

    - #### shearXY

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

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

    - #### shearYZ

          public IParticleGeo shearYZ(double syz,
                             double szy)

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

    - #### shearYZ

          public IParticleGeo shearYZ(IDoubleI syz,
                             IDoubleI szy)

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

    - #### shearYZ

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

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

    - #### shearYZ

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

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

    - #### shearZX

          public IParticleGeo shearZX(double szx,
                             double sxz)

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

    - #### shearZX

          public IParticleGeo shearZX(IDoubleI szx,
                             IDoubleI sxz)

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

    - #### shearZX

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

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

    - #### shearZX

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

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

    - #### translate

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

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

    - #### translate

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

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

    - #### translate

          public IParticleGeo translate(IVecI v)

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

    - #### transform

          public IParticleGeo transform(IMatrix3I mat)

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

    - #### transform

          public IParticleGeo transform(IMatrix4I mat)

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

    - #### transform

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

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

    - #### transform

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

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

    - #### mv

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

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

    - #### mv

          public IParticleGeo mv(IVecI v)

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

    - #### cp

          public IParticleGeo cp()

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

    - #### cp

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

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

    - #### cp

          public IParticleGeo cp(IVecI v)

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

    - #### dif

          public IVec dif(IVecI v)

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

    - #### dif

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

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

    - #### diff

          public IVec diff(IVecI v)

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

    - #### diff

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

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

    - #### mid

          public IVec mid(IVecI v)

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

    - #### mid

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

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

    - #### sum

          public 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(double vx,
                 double vy,
                 double vz)

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

    - #### sum

          public 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(IVecI v)

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

    - #### bisect

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

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

    - #### sum

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

      weighted sum.
      Specified by:
        `sum` in interface `IVecI`
      Returns:
        IVec

    - #### sum

          public IVec sum(IVecI v2,
                 double w2)

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

    - #### sum

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

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

    - #### sum

          public IVec sum(IVecI v2,
                 IDoubleI w2)

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

    - #### nml

          public IVec nml(IVecI v)

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

    - #### nml

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

      Description copied from interface: `IVecI`
      alias of cross
      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(double vx1,
                 double vy1,
                 double vz1,
                 double vx2,
                 double vy2,
                 double vz2)

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

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

    - #### target

          public IParticleGeo target(IObject targetObj)

      add terget object to be updated by this dynamic object.
      Specified by:
        `target` in interface `IDynamics`
      Specified by:
        `target` in interface `IParticleI`
      Overrides:
        `target` in class `IDynamicsBase`

    - #### removeTarget

          public IParticleGeo removeTarget(int i)

      remove target object.
      Specified by:
        `removeTarget` in interface `IDynamics`
      Specified by:
        `removeTarget` in interface `IParticleI`
      Overrides:
        `removeTarget` in class `IDynamicsBase`

    - #### removeTarget

          public IParticleGeo removeTarget(IObject obj)

      remove target object.
      Specified by:
        `removeTarget` in interface `IDynamics`
      Specified by:
        `removeTarget` in interface `IParticleI`
      Overrides:
        `removeTarget` in class `IDynamicsBase`