igeo
Interface IVecI

All Superinterfaces:
IParameter, ITransformable, IVecOp
All Known Subinterfaces:
IVec4I
All Known Implementing Classes:
IBoid, IParticle, IParticleAgent, IParticleOnCurve, IPoint, IPointAgent, IPointR, IVec, IVec4, IVec4R, IVecR, IVectorObject, IVertex

public interface IVecI
extends IVecOp, ITransformable

Abstract interface of 3 dimensional vector.


Method Summary
 IVecI add(double x, double y, double z)
           
 IVecI add(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI add(IVecI v)
           
 IVecI add(IVecI v, double f)
          scale add
 IVecI add(IVecI v, IDoubleI f)
           
 double angle(ISwitchE e, IVecI v)
           
 double angle(ISwitchE e, IVecI v, IVecI axis)
           
 IDoubleI angle(ISwitchR r, IVecI v)
           
 IDoubleI angle(ISwitchR r, IVecI v, IVecI axis)
           
 double angle(IVecI v)
           
 double angle(IVecI v, IVecI axis)
           
 IVecI bisect(IVecI v)
           
 IVecI cp()
          cp() is alias of dup()
 IVecI cp(double x, double y, double z)
          cp() is alias of dup().add()
 IVecI cp(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI cp(IVecI v)
           
 IVecI cross(IVecI v)
          cross product creates a new instance
 IVecI diff(IVecI v)
           
 double dist(ISwitchE e, IVecI v)
           
 IDoubleI dist(ISwitchR r, IVecI v)
           
 double dist(IVecI v)
           
 double dist2(ISwitchE e, IVecI v)
           
 IDoubleI dist2(ISwitchR r, IVecI v)
           
 double dist2(IVecI v)
          squared distance
 IVecI div(double v)
           
 IVecI div(IDoubleI v)
           
 double dot(ISwitchE e, IVecI v)
           
 IDoubleI dot(ISwitchR r, IVecI v)
           
 double dot(IVecI v)
           
 IVecI dup()
          duplicate the instance
 boolean eq(ISwitchE e, IVecI v)
           
 boolean eq(ISwitchE e, IVecI v, double resolution)
           
 IBoolI eq(ISwitchR r, IVecI v)
           
 IBoolI eq(ISwitchR r, IVecI v, IDoubleI 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)
           
 IBoolI eqX(ISwitchR r, IVecI v)
           
 IBoolI eqX(ISwitchR r, IVecI v, IDoubleI 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)
           
 IBoolI eqY(ISwitchR r, IVecI v)
           
 IBoolI eqY(ISwitchR r, IVecI v, IDoubleI 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)
           
 IBoolI eqZ(ISwitchR r, IVecI v)
           
 IBoolI eqZ(ISwitchR r, IVecI v, IDoubleI resolution)
           
 boolean eqZ(IVecI v)
           
 boolean eqZ(IVecI v, double resolution)
           
 IVecI flip()
          alias of neg()
 IVec get()
           
 IDoubleI getX()
           
 IDoubleI getY()
           
 IDoubleI getZ()
           
 boolean isValid()
           
 double len()
           
 IVecI len(double l)
           
 IVecI len(IDoubleI l)
           
 double len(ISwitchE e)
           
 IDoubleI len(ISwitchR r)
           
 double len2()
          square of length
 double len2(ISwitchE e)
           
 IDoubleI len2(ISwitchR r)
           
 IVecI mid(IVecI v)
           
 IVecI mirror(IVecI planeDir)
          mirror is alias of ref
 IVecI mirror(IVecI center, IVecI planeDir)
           
 IVecI mul(double v)
           
 IVecI mul(IDoubleI v)
           
 IVecI mv(double x, double y, double z)
          mv() is alias of add()
 IVecI mv(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI mv(IVecI v)
           
 IVecI neg()
           
 IVecI nml(IVecI v)
          alias of cross
 IVecI nml(IVecI pt1, IVecI pt2)
          create normal vector from 3 points of self, pt1 and pt2
 IVecI ref(IVecI planeDir)
          reflect(mirror) 3 dimensionally to the other side of the plane
 IVecI ref(IVecI center, IVecI planeDir)
           
 IVecI rev()
          alias of neg()
 IVecI rot(IVecI axis, double angle)
           
 IVecI rot(IVecI axis, IDoubleI angle)
           
 IVecI rot(IVecI axis, IVecI destDir)
          rotate to destination direction vector
 IVecI rot(IVecI center, IVecI axis, double angle)
           
 IVecI rot(IVecI center, IVecI axis, IDoubleI angle)
           
 IVecI rot(IVecI center, IVecI axis, IVecI destPt)
          rotate to destination point location
 IVecI scale(double f)
           
 IVecI scale(IDoubleI f)
          alias of mul
 IVecI scale(IVecI center, double f)
           
 IVecI scale(IVecI center, IDoubleI f)
           
 IVecI scale1d(IVecI axis, double f)
          scale only in 1 direction
 IVecI scale1d(IVecI axis, IDoubleI f)
           
 IVecI scale1d(IVecI center, IVecI axis, double f)
           
 IVecI scale1d(IVecI center, IVecI axis, IDoubleI f)
           
 IVecI set(double x, double y, double z)
           
 IVecI set(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI set(IVecI v)
           
 IVecI shear(double sxy, double syx, double syz, double szy, double szx, double sxz)
          shear operation
 IVecI shear(IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)
           
 IVecI shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)
           
 IVecI shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)
           
 IVecI shearXY(double sxy, double syx)
           
 IVecI shearXY(IDoubleI sxy, IDoubleI syx)
           
 IVecI shearXY(IVecI center, double sxy, double syx)
           
 IVecI shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)
           
 IVecI shearYZ(double syz, double szy)
           
 IVecI shearYZ(IDoubleI syz, IDoubleI szy)
           
 IVecI shearYZ(IVecI center, double syz, double szy)
           
 IVecI shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)
           
 IVecI shearZX(double szx, double sxz)
           
 IVecI shearZX(IDoubleI szx, IDoubleI sxz)
           
 IVecI shearZX(IVecI center, double szx, double sxz)
           
 IVecI shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)
           
 IVecI sub(double x, double y, double z)
           
 IVecI sub(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI sub(IVecI v)
           
 IVecI sum(IVecI... v)
           
 IVecI sum(IVecI v)
           
 IVecI sum(IVecI v2, double w2)
           
 IVecI sum(IVecI v2, double w1, double w2)
          weighted sum
 IVecI sum(IVecI v2, IDoubleI w2)
           
 IVecI sum(IVecI v2, IDoubleI w1, IDoubleI w2)
           
 IVec2I to2d()
           
 IVec4I to4d()
           
 IVec4I to4d(double w)
           
 IVec4I to4d(IDoubleI w)
           
 IVecI transform(IMatrix3I mat)
           
 IVecI transform(IMatrix4I mat)
           
 IVecI transform(IVecI xvec, IVecI yvec, IVecI zvec)
           
 IVecI transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)
           
 IVecI translate(double x, double y, double z)
          translate is alias of add()
 IVecI translate(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI translate(IVecI v)
           
 IVecI unit()
           
 double x()
           
 double y()
           
 double z()
           
 

Method Detail

x

double x()

y

double y()

z

double z()

get

IVec get()
Specified by:
get in interface IParameter
Specified by:
get in interface IVecOp

dup

IVecI dup()
Description copied from interface: ITransformable
duplicate the instance

Specified by:
dup in interface ITransformable

to2d

IVec2I to2d()

to4d

IVec4I to4d()

to4d

IVec4I to4d(double w)

to4d

IVec4I to4d(IDoubleI w)

getX

IDoubleI getX()

getY

IDoubleI getY()

getZ

IDoubleI getZ()

set

IVecI set(IVecI v)

set

IVecI set(double x,
          double y,
          double z)

set

IVecI set(IDoubleI x,
          IDoubleI y,
          IDoubleI z)

add

IVecI add(double x,
          double y,
          double z)
Specified by:
add in interface ITransformable

add

IVecI add(IDoubleI x,
          IDoubleI y,
          IDoubleI z)
Specified by:
add in interface ITransformable

add

IVecI add(IVecI v)
Specified by:
add in interface ITransformable

sub

IVecI sub(double x,
          double y,
          double z)
Specified by:
sub in interface ITransformable

sub

IVecI sub(IDoubleI x,
          IDoubleI y,
          IDoubleI z)
Specified by:
sub in interface ITransformable

sub

IVecI sub(IVecI v)
Specified by:
sub in interface ITransformable

mul

IVecI mul(IDoubleI v)
Specified by:
mul in interface ITransformable

mul

IVecI mul(double v)
Specified by:
mul in interface ITransformable

div

IVecI div(IDoubleI v)
Specified by:
div in interface ITransformable

div

IVecI div(double v)
Specified by:
div in interface ITransformable

neg

IVecI neg()
Specified by:
neg in interface ITransformable

rev

IVecI rev()
alias of neg()


flip

IVecI flip()
alias of neg()

Specified by:
flip in interface ITransformable

add

IVecI add(IVecI v,
          double f)
scale add

Specified by:
add in interface ITransformable

add

IVecI add(IVecI v,
          IDoubleI f)
Specified by:
add in interface ITransformable

dot

double dot(IVecI v)

dot

double dot(ISwitchE e,
           IVecI v)

dot

IDoubleI dot(ISwitchR r,
             IVecI v)

cross

IVecI cross(IVecI v)
cross product creates a new instance


len

double len()

len

double len(ISwitchE e)

len

IDoubleI len(ISwitchR r)

len2

double len2()
square of length


len2

double len2(ISwitchE e)

len2

IDoubleI len2(ISwitchR r)

len

IVecI len(IDoubleI l)

len

IVecI len(double l)

unit

IVecI unit()

dist

double dist(IVecI v)

dist

double dist(ISwitchE e,
            IVecI v)

dist

IDoubleI dist(ISwitchR r,
              IVecI v)

dist2

double dist2(IVecI v)
squared distance


dist2

double dist2(ISwitchE e,
             IVecI v)

dist2

IDoubleI dist2(ISwitchR r,
               IVecI v)

eq

boolean eq(IVecI v)
whether location is same or not


eq

boolean eq(ISwitchE e,
           IVecI v)

eq

IBoolI eq(ISwitchR r,
          IVecI v)

eq

boolean eq(IVecI v,
           double resolution)

eq

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

eq

IBoolI eq(ISwitchR r,
          IVecI v,
          IDoubleI resolution)

eqX

boolean eqX(IVecI v)

eqY

boolean eqY(IVecI v)

eqZ

boolean eqZ(IVecI v)

eqX

boolean eqX(ISwitchE e,
            IVecI v)

eqY

boolean eqY(ISwitchE e,
            IVecI v)

eqZ

boolean eqZ(ISwitchE e,
            IVecI v)

eqX

IBoolI eqX(ISwitchR r,
           IVecI v)

eqY

IBoolI eqY(ISwitchR r,
           IVecI v)

eqZ

IBoolI eqZ(ISwitchR r,
           IVecI v)

eqX

boolean eqX(IVecI v,
            double resolution)

eqY

boolean eqY(IVecI v,
            double resolution)

eqZ

boolean eqZ(IVecI v,
            double resolution)

eqX

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

eqY

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

eqZ

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

eqX

IBoolI eqX(ISwitchR r,
           IVecI v,
           IDoubleI resolution)

eqY

IBoolI eqY(ISwitchR r,
           IVecI v,
           IDoubleI resolution)

eqZ

IBoolI eqZ(ISwitchR r,
           IVecI v,
           IDoubleI resolution)

angle

double angle(IVecI v)
Returns:
angle between two vector from 0 to Pi

angle

double angle(ISwitchE e,
             IVecI v)

angle

IDoubleI angle(ISwitchR r,
               IVecI v)

angle

double angle(IVecI v,
             IVecI axis)
Parameters:
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

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

angle

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

rot

IVecI rot(IVecI axis,
          IDoubleI angle)
Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI axis,
          double angle)
Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI center,
          IVecI axis,
          IDoubleI angle)
Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI center,
          IVecI axis,
          double angle)
Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI axis,
          IVecI destDir)
rotate to destination direction vector

Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI center,
          IVecI axis,
          IVecI destPt)
rotate to destination point location

Specified by:
rot in interface ITransformable

scale

IVecI scale(IDoubleI f)
alias of mul

Specified by:
scale in interface ITransformable

scale

IVecI scale(double f)
Specified by:
scale in interface ITransformable

scale

IVecI scale(IVecI center,
            IDoubleI f)
Specified by:
scale in interface ITransformable

scale

IVecI scale(IVecI center,
            double f)
Specified by:
scale in interface ITransformable

scale1d

IVecI scale1d(IVecI axis,
              double f)
scale only in 1 direction

Specified by:
scale1d in interface ITransformable

scale1d

IVecI scale1d(IVecI axis,
              IDoubleI f)
Specified by:
scale1d in interface ITransformable

scale1d

IVecI scale1d(IVecI center,
              IVecI axis,
              double f)
Specified by:
scale1d in interface ITransformable

scale1d

IVecI scale1d(IVecI center,
              IVecI axis,
              IDoubleI f)
Specified by:
scale1d in interface ITransformable

ref

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

Specified by:
ref in interface ITransformable

ref

IVecI ref(IVecI center,
          IVecI planeDir)
Specified by:
ref in interface ITransformable

mirror

IVecI mirror(IVecI planeDir)
Description copied from interface: ITransformable
mirror is alias of ref

Specified by:
mirror in interface ITransformable

mirror

IVecI mirror(IVecI center,
             IVecI planeDir)
Specified by:
mirror in interface ITransformable

shear

IVecI shear(double sxy,
            double syx,
            double syz,
            double szy,
            double szx,
            double sxz)
shear operation

Specified by:
shear in interface ITransformable

shear

IVecI shear(IDoubleI sxy,
            IDoubleI syx,
            IDoubleI syz,
            IDoubleI szy,
            IDoubleI szx,
            IDoubleI sxz)
Specified by:
shear in interface ITransformable

shear

IVecI shear(IVecI center,
            double sxy,
            double syx,
            double syz,
            double szy,
            double szx,
            double sxz)
Specified by:
shear in interface ITransformable

shear

IVecI shear(IVecI center,
            IDoubleI sxy,
            IDoubleI syx,
            IDoubleI syz,
            IDoubleI szy,
            IDoubleI szx,
            IDoubleI sxz)
Specified by:
shear in interface ITransformable

shearXY

IVecI shearXY(double sxy,
              double syx)
Specified by:
shearXY in interface ITransformable

shearXY

IVecI shearXY(IDoubleI sxy,
              IDoubleI syx)
Specified by:
shearXY in interface ITransformable

shearXY

IVecI shearXY(IVecI center,
              double sxy,
              double syx)
Specified by:
shearXY in interface ITransformable

shearXY

IVecI shearXY(IVecI center,
              IDoubleI sxy,
              IDoubleI syx)
Specified by:
shearXY in interface ITransformable

shearYZ

IVecI shearYZ(double syz,
              double szy)
Specified by:
shearYZ in interface ITransformable

shearYZ

IVecI shearYZ(IDoubleI syz,
              IDoubleI szy)
Specified by:
shearYZ in interface ITransformable

shearYZ

IVecI shearYZ(IVecI center,
              double syz,
              double szy)
Specified by:
shearYZ in interface ITransformable

shearYZ

IVecI shearYZ(IVecI center,
              IDoubleI syz,
              IDoubleI szy)
Specified by:
shearYZ in interface ITransformable

shearZX

IVecI shearZX(double szx,
              double sxz)
Specified by:
shearZX in interface ITransformable

shearZX

IVecI shearZX(IDoubleI szx,
              IDoubleI sxz)
Specified by:
shearZX in interface ITransformable

shearZX

IVecI shearZX(IVecI center,
              double szx,
              double sxz)
Specified by:
shearZX in interface ITransformable

shearZX

IVecI shearZX(IVecI center,
              IDoubleI szx,
              IDoubleI sxz)
Specified by:
shearZX in interface ITransformable

translate

IVecI translate(double x,
                double y,
                double z)
translate is alias of add()

Specified by:
translate in interface ITransformable

translate

IVecI translate(IDoubleI x,
                IDoubleI y,
                IDoubleI z)
Specified by:
translate in interface ITransformable

translate

IVecI translate(IVecI v)
Specified by:
translate in interface ITransformable

transform

IVecI transform(IMatrix3I mat)
Specified by:
transform in interface ITransformable

transform

IVecI transform(IMatrix4I mat)
Specified by:
transform in interface ITransformable

transform

IVecI transform(IVecI xvec,
                IVecI yvec,
                IVecI zvec)
Specified by:
transform in interface ITransformable

transform

IVecI transform(IVecI xvec,
                IVecI yvec,
                IVecI zvec,
                IVecI translate)
Specified by:
transform in interface ITransformable

mv

IVecI mv(double x,
         double y,
         double z)
mv() is alias of add()

Specified by:
mv in interface ITransformable

mv

IVecI mv(IDoubleI x,
         IDoubleI y,
         IDoubleI z)
Specified by:
mv in interface ITransformable

mv

IVecI mv(IVecI v)
Specified by:
mv in interface ITransformable

cp

IVecI cp()
cp() is alias of dup()

Specified by:
cp in interface ITransformable

cp

IVecI cp(double x,
         double y,
         double z)
cp() is alias of dup().add()

Specified by:
cp in interface ITransformable

cp

IVecI cp(IDoubleI x,
         IDoubleI y,
         IDoubleI z)
Specified by:
cp in interface ITransformable

cp

IVecI cp(IVecI v)
Specified by:
cp in interface ITransformable

diff

IVecI diff(IVecI v)

mid

IVecI mid(IVecI v)

sum

IVecI sum(IVecI v)

sum

IVecI sum(IVecI... v)

bisect

IVecI bisect(IVecI v)

sum

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


sum

IVecI sum(IVecI v2,
          double w2)

sum

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

sum

IVecI sum(IVecI v2,
          IDoubleI w2)

nml

IVecI nml(IVecI v)
alias of cross


nml

IVecI nml(IVecI pt1,
          IVecI pt2)
create normal vector from 3 points of self, pt1 and pt2


isValid

boolean isValid()