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.

Version:
0.7.0.0;
Author:
Satoru Sugihara

Method Summary
 IVecI add(double x, double y, double z)
           
 IVecI add(double f, IVecI v)
          scale add
 IVecI add(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI add(IDoubleI f, IVecI v)
          scale add
 IVecI add(IVecI v)
           
 IVecI add(IVecI v, double f)
          scale add
 IVecI add(IVecI v, IDoubleI f)
          scale add
 double angle(double vx, double vy, double vz)
          get angle between two vector from 0 to Pi
 double angle(double vx, double vy, double vz, double axisX, double axisY, double axisZ)
           
 double angle(ISwitchE e, IVecI v)
          get angle between two vector from 0 to Pi
 double angle(ISwitchE e, IVecI v, IVecI axis)
           
 IDoubleI angle(ISwitchR r, IVecI v)
          get angle between two vector from 0 to Pi
 IDoubleI angle(ISwitchR r, IVecI v, IVecI axis)
           
 double angle(IVecI v)
          get angle between two vector from 0 to Pi
 double angle(IVecI v, IVecI axis)
           
 IVecI bisect(double vx, double vy, double vz)
          create a new instance of bisector
 IVecI bisect(IVecI v)
          create a new instance of bisector
 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)
          cp() is alias of dup().add()
 IVecI cp(IVecI v)
          cp() is alias of dup().add()
 IVecI cross(double vx, double vy, double vz)
          cross product, creating a new instance
 IVecI cross(IVecI v)
          cross product, creating a new instance
 IVecI dif(double vx, double vy, double vz)
          create a new instance of difference
 IVecI dif(IVecI v)
          create a new instance of difference
 IVecI diff(double vx, double vy, double vz)
          alias of dif
 IVecI diff(IVecI v)
          alias of dif
 double dist(double vx, double vy, double vz)
          distance of two vectors
 double dist(ISwitchE e, IVecI v)
          distance of two vectors
 IDoubleI dist(ISwitchR r, IVecI v)
          distance of two vectors
 double dist(IVecI v)
          distance of two vectors
 double dist2(double vx, double vy, double vz)
          squared distance of two vectors
 double dist2(ISwitchE e, IVecI v)
          squared distance of two vectors
 IDoubleI dist2(ISwitchR r, IVecI v)
          squared distance of two vectors
 double dist2(IVecI v)
          squared distance of two vectors
 IVecI div(double v)
           
 IVecI div(IDoubleI v)
           
 double dot(double vx, double vy, double vz)
          dot product
 double dot(ISwitchE e, IVecI v)
          dot product
 IDoubleI dot(ISwitchR r, IVecI v)
          dot product
 double dot(IVecI v)
          dot product
 IVecI 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
 IBoolI eq(ISwitchR r, IVecI v)
          check whether location is same or not
 IBoolI eq(ISwitchR r, IVecI v, IDoubleI tolerance)
          check whether location is same or not with tolerance
 boolean eq(IVecI v)
          check whether location is same or not
 boolean eq(IVecI v, double tolerance)
          check whether location is same or not with tolerance
 boolean eqX(double vx)
          check if same in X
 boolean eqX(double vx, double tolerance)
          check if same in X with tolerance
 boolean eqX(ISwitchE e, IVecI v)
          check if same in X
 boolean eqX(ISwitchE e, IVecI v, double tolerance)
          check if same in X with tolerance
 IBoolI eqX(ISwitchR r, IVecI v)
          check if same in X
 IBoolI eqX(ISwitchR r, IVecI v, IDoubleI tolerance)
          check if same in X with tolerance
 boolean eqX(IVecI v)
          check if same in X
 boolean eqX(IVecI v, double tolerance)
          check if same in X with tolerance
 boolean eqY(double vy)
          check if same in Y
 boolean eqY(double vy, double tolerance)
          check if same in Y with tolerance
 boolean eqY(ISwitchE e, IVecI v)
          check if same in Y
 boolean eqY(ISwitchE e, IVecI v, double tolerance)
          check if same in Y with tolerance
 IBoolI eqY(ISwitchR r, IVecI v)
          check if same in Y
 IBoolI eqY(ISwitchR r, IVecI v, IDoubleI tolerance)
          check if same in Y with tolerance
 boolean eqY(IVecI v)
          check if same in Y
 boolean eqY(IVecI v, double tolerance)
          check if same in Y with tolerance
 boolean eqZ(double vz)
          check if same in Z
 boolean eqZ(double vz, double tolerance)
          check if same in Z with tolerance
 boolean eqZ(ISwitchE e, IVecI v)
          check if same in Z
 boolean eqZ(ISwitchE e, IVecI v, double tolerance)
          check if same in Z with tolerance
 IBoolI eqZ(ISwitchR r, IVecI v)
          check if same in Z
 IBoolI eqZ(ISwitchR r, IVecI v, IDoubleI tolerance)
          check if same in Z with tolerance
 boolean eqZ(IVecI v)
          check if same in Z
 boolean eqZ(IVecI v, double tolerance)
          check if same in Z with tolerance
 IVecI flip()
          alias of neg()
 IVec get()
           
 IDoubleI getX()
           
 IDoubleI getY()
           
 IDoubleI getZ()
           
 boolean isValid()
          check if the content of vector is valid; no NaN value
 double len()
          getting length of the vector
 IVecI len(double l)
          setting length
 IVecI len(IDoubleI l)
          setting length
 double len(ISwitchE e)
          getting length of the vector
 IDoubleI len(ISwitchR r)
          getting length of the vector
 double len2()
          getting squared length of the vector
 double len2(ISwitchE e)
          getting squared length of the vector
 IDoubleI len2(ISwitchR r)
          getting squared length of the vector
 IVecI mid(double vx, double vy, double vz)
          create a new instance of midpoint
 IVecI mid(IVecI v)
          create a new instance of midpoint
 IVecI mirror(double planeX, double planeY, double planeZ)
          alias of ref
 IVecI mirror(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)
          alias of ref
 IVecI mirror(IVecI planeDir)
          alias of ref
 IVecI mirror(IVecI center, IVecI planeDir)
          alias of ref
 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)
          mv() is alias of add()
 IVecI mv(IVecI v)
          mv() is alias of add()
 IVecI neg()
           
 IVecI nml(double vx, double vy, double vz)
          alias of cross
 IVecI nml(double vx1, double vy1, double vz1, double vx2, double vy2, double vz2)
          create normal vector from 3 points of self, pt1 and pt2
 IVecI nml(IVecI v)
          alias of cross
 IVecI nml(IVecI pt1, IVecI pt2)
          create normal vector from 3 points of self, pt1 and pt2
 IVecI ref(double planeX, double planeY, double planeZ)
          reflect(mirror) 3 dimensionally to the other side of the plane
 IVecI ref(double centerX, double centerY, double centerZ, double planeX, double planeY, double planeZ)
          reflect(mirror) 3 dimensionally to the other side of the plane
 IVecI ref(IVecI planeDir)
          reflect(mirror) 3 dimensionally to the other side of the plane
 IVecI ref(IVecI center, IVecI planeDir)
          reflect(mirror) 3 dimensionally to the other side of the plane
 IVecI rev()
          alias of neg()
 IVecI rot(double angle)
          rotation on XY plane
 IVecI rot(double axisX, double axisY, double axisZ, double angle)
          rotation around axis vector
 IVecI rot(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double angle)
          rotation around axis vector and center point
 IVecI rot(IDoubleI angle)
          rotation on XY plane
 IVecI rot(IVecI axis, double angle)
          rotation around axis vector
 IVecI rot(IVecI axis, IDoubleI angle)
          rotation around axis vector
 IVecI rot(IVecI axis, IVecI destDir)
          rotate to destination direction vector
 IVecI rot(IVecI center, IVecI axis, double angle)
          rotation around axis vector and center point
 IVecI rot(IVecI center, IVecI axis, IDoubleI angle)
          rotation around axis vector and center point
 IVecI rot(IVecI center, IVecI axis, IVecI destPt)
          rotate to destination point location
 IVecI rot2(double angle)
          rotation on xy-plane; alias of rot(double)
 IVecI rot2(double centerX, double centerY, double angle)
          rotation on xy-plane
 IVecI rot2(IDoubleI angle)
          rotation on xy-plane; alias of rot(IDoubleI)
 IVecI rot2(IVecI destDir)
          rotation on xy-plane towards destDir
 IVecI rot2(IVecI center, double angle)
          rotation on xy-plane
 IVecI rot2(IVecI center, IDoubleI angle)
          rotation on xy-plane
 IVecI rot2(IVecI center, IVecI destPt)
          rotation on xy-plane towards destPt
 IVecI scale(double f)
          alias of mul
 IVecI scale(double centerX, double centerY, double centerZ, double f)
          scale from a center
 IVecI scale(IDoubleI f)
          alias of mul
 IVecI scale(IVecI center, double f)
          scale from a center
 IVecI scale(IVecI center, IDoubleI f)
          scale from a center
 IVecI scale1d(double axisX, double axisY, double axisZ, double f)
          scale only in 1 direction
 IVecI scale1d(double centerX, double centerY, double centerZ, double axisX, double axisY, double axisZ, double f)
          scale only in 1 direction from a center
 IVecI scale1d(IVecI axis, double f)
          scale only in 1 direction
 IVecI scale1d(IVecI axis, IDoubleI f)
          scale only in 1 direction
 IVecI scale1d(IVecI center, IVecI axis, double f)
          scale only in 1 direction from a center
 IVecI scale1d(IVecI center, IVecI axis, IDoubleI f)
          scale only in 1 direction from a center
 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)
          shear operation
 IVecI shear(IVecI center, double sxy, double syx, double syz, double szy, double szx, double sxz)
          shear operation
 IVecI shear(IVecI center, IDoubleI sxy, IDoubleI syx, IDoubleI syz, IDoubleI szy, IDoubleI szx, IDoubleI sxz)
          shear operation
 IVecI shearXY(double sxy, double syx)
          shear operation on XY
 IVecI shearXY(IDoubleI sxy, IDoubleI syx)
          shear operation on XY
 IVecI shearXY(IVecI center, double sxy, double syx)
          shear operation on XY
 IVecI shearXY(IVecI center, IDoubleI sxy, IDoubleI syx)
          shear operation on XY
 IVecI shearYZ(double syz, double szy)
          shear operation on YZ
 IVecI shearYZ(IDoubleI syz, IDoubleI szy)
          shear operation on YZ
 IVecI shearYZ(IVecI center, double syz, double szy)
          shear operation on YZ
 IVecI shearYZ(IVecI center, IDoubleI syz, IDoubleI szy)
          shear operation on YZ
 IVecI shearZX(double szx, double sxz)
          shear operation on ZX
 IVecI shearZX(IDoubleI szx, IDoubleI sxz)
          shear operation on ZX
 IVecI shearZX(IVecI center, double szx, double sxz)
          shear operation on ZX
 IVecI shearZX(IVecI center, IDoubleI szx, IDoubleI sxz)
          shear operation on ZX
 IVecI sub(double x, double y, double z)
           
 IVecI sub(IDoubleI x, IDoubleI y, IDoubleI z)
           
 IVecI sub(IVecI v)
           
 IVecI sum(double vx, double vy, double vz)
          create a new instance of total summation
 IVecI sum(IVecI... v)
          create a new instance of total summation
 IVecI sum(IVecI v)
          create a new instance of total summation
 IVecI sum(IVecI v2, double w2)
          create a new instance of weighted sum
 IVecI sum(IVecI v2, double w1, double w2)
          create a new instance of weighted sum
 IVecI sum(IVecI v2, IDoubleI w2)
          create a new instance of weighted sum
 IVecI sum(IVecI v2, IDoubleI w1, IDoubleI w2)
          create a new instance of weighted sum
 IVec2I to2d()
           
 IVec4I to4d()
           
 IVec4I to4d(double w)
           
 IVec4I to4d(IDoubleI w)
           
 IVecI transform(IMatrix3I mat)
          transform with a transformation matrix
 IVecI transform(IMatrix4I mat)
          transform with a transformation matrix
 IVecI transform(IVecI xvec, IVecI yvec, IVecI zvec)
          transform with a transformation vectors
 IVecI transform(IVecI xvec, IVecI yvec, IVecI zvec, IVecI translate)
          transform with a transformation vectors
 IVecI translate(double x, double y, double z)
          alias of add()
 IVecI translate(IDoubleI x, IDoubleI y, IDoubleI z)
          alias of add()
 IVecI translate(IVecI v)
          alias of add()
 IVecI unit()
          unitize
 double x()
          getting x component
 IVecI x(double vx)
          setting x component
 IVecI x(IDoubleI vx)
          setting x component
 double x(ISwitchE e)
          getting x component
 IDoubleI x(ISwitchR r)
          getting x component
 double y()
          getting y component
 IVecI y(double vy)
          setting y component
 IVecI y(IDoubleI vy)
          setting y component
 double y(ISwitchE e)
          getting y component
 IDoubleI y(ISwitchR r)
          getting y component
 double z()
          getting z component
 IVecI z(double vz)
          setting z component
 IVecI z(IDoubleI vz)
          setting z component
 double z(ISwitchE e)
          getting z component
 IDoubleI z(ISwitchR r)
          getting z component
 IVecI zero()
          setting all zero
 

Method Detail

x

double x()
getting x component


y

double y()
getting y component


z

double z()
getting z component


x

IVecI x(double vx)
setting x component


y

IVecI y(double vy)
setting y component


z

IVecI z(double vz)
setting z component


x

IVecI x(IDoubleI vx)
setting x component


y

IVecI y(IDoubleI vy)
setting y component


z

IVecI z(IDoubleI vz)
setting z component


x

double x(ISwitchE e)
getting x component


y

double y(ISwitchE e)
getting y component


z

double z(ISwitchE e)
getting z component


x

IDoubleI x(ISwitchR r)
getting x component


y

IDoubleI y(ISwitchR r)
getting y component


z

IDoubleI z(ISwitchR r)
getting z component


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

zero

IVecI zero()
setting all zero


add

IVecI add(IVecI v,
          double f)
scale add

Specified by:
add in interface ITransformable

add

IVecI add(IVecI v,
          IDoubleI f)
scale add

Specified by:
add in interface ITransformable

add

IVecI add(double f,
          IVecI v)
scale add

Specified by:
add in interface ITransformable

add

IVecI add(IDoubleI f,
          IVecI v)
scale add

Specified by:
add in interface ITransformable

dot

double dot(IVecI v)
dot product


dot

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


dot

double dot(ISwitchE e,
           IVecI v)
dot product


dot

IDoubleI dot(ISwitchR r,
             IVecI v)
dot product


cross

IVecI cross(IVecI v)
cross product, creating a new instance


cross

IVecI cross(double vx,
            double vy,
            double vz)
cross product, creating a new instance


len

double len()
getting length of the vector


len

double len(ISwitchE e)
getting length of the vector


len

IDoubleI len(ISwitchR r)
getting length of the vector


len2

double len2()
getting squared length of the vector


len2

double len2(ISwitchE e)
getting squared length of the vector


len2

IDoubleI len2(ISwitchR r)
getting squared length of the vector


len

IVecI len(IDoubleI l)
setting length


len

IVecI len(double l)
setting length


unit

IVecI unit()
unitize


dist

double dist(IVecI v)
distance of two vectors


dist

double dist(double vx,
            double vy,
            double vz)
distance of two vectors


dist

double dist(ISwitchE e,
            IVecI v)
distance of two vectors


dist

IDoubleI dist(ISwitchR r,
              IVecI v)
distance of two vectors


dist2

double dist2(IVecI v)
squared distance of two vectors


dist2

double dist2(double vx,
             double vy,
             double vz)
squared distance of two vectors


dist2

double dist2(ISwitchE e,
             IVecI v)
squared distance of two vectors


dist2

IDoubleI dist2(ISwitchR r,
               IVecI v)
squared distance of two vectors


eq

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


eq

boolean eq(double vx,
           double vy,
           double vz)
check whether location is same or not


eq

boolean eq(ISwitchE e,
           IVecI v)
check whether location is same or not


eq

IBoolI eq(ISwitchR r,
          IVecI v)
check whether location is same or not


eq

boolean eq(IVecI v,
           double tolerance)
check whether location is same or not with tolerance


eq

boolean eq(double vx,
           double vy,
           double vz,
           double tolerance)
check whether location is same or not with tolerance


eq

boolean eq(ISwitchE e,
           IVecI v,
           double tolerance)
check whether location is same or not with tolerance


eq

IBoolI eq(ISwitchR r,
          IVecI v,
          IDoubleI tolerance)
check whether location is same or not with tolerance


eqX

boolean eqX(IVecI v)
check if same in X


eqY

boolean eqY(IVecI v)
check if same in Y


eqZ

boolean eqZ(IVecI v)
check if same in Z


eqX

boolean eqX(double vx)
check if same in X


eqY

boolean eqY(double vy)
check if same in Y


eqZ

boolean eqZ(double vz)
check if same in Z


eqX

boolean eqX(ISwitchE e,
            IVecI v)
check if same in X


eqY

boolean eqY(ISwitchE e,
            IVecI v)
check if same in Y


eqZ

boolean eqZ(ISwitchE e,
            IVecI v)
check if same in Z


eqX

IBoolI eqX(ISwitchR r,
           IVecI v)
check if same in X


eqY

IBoolI eqY(ISwitchR r,
           IVecI v)
check if same in Y


eqZ

IBoolI eqZ(ISwitchR r,
           IVecI v)
check if same in Z


eqX

boolean eqX(IVecI v,
            double tolerance)
check if same in X with tolerance


eqY

boolean eqY(IVecI v,
            double tolerance)
check if same in Y with tolerance


eqZ

boolean eqZ(IVecI v,
            double tolerance)
check if same in Z with tolerance


eqX

boolean eqX(double vx,
            double tolerance)
check if same in X with tolerance


eqY

boolean eqY(double vy,
            double tolerance)
check if same in Y with tolerance


eqZ

boolean eqZ(double vz,
            double tolerance)
check if same in Z with tolerance


eqX

boolean eqX(ISwitchE e,
            IVecI v,
            double tolerance)
check if same in X with tolerance


eqY

boolean eqY(ISwitchE e,
            IVecI v,
            double tolerance)
check if same in Y with tolerance


eqZ

boolean eqZ(ISwitchE e,
            IVecI v,
            double tolerance)
check if same in Z with tolerance


eqX

IBoolI eqX(ISwitchR r,
           IVecI v,
           IDoubleI tolerance)
check if same in X with tolerance


eqY

IBoolI eqY(ISwitchR r,
           IVecI v,
           IDoubleI tolerance)
check if same in Y with tolerance


eqZ

IBoolI eqZ(ISwitchR r,
           IVecI v,
           IDoubleI tolerance)
check if same in Z with tolerance


angle

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


angle

double angle(double vx,
             double vy,
             double vz)
get angle between two vector from 0 to Pi


angle

double angle(ISwitchE e,
             IVecI v)
get angle between two vector from 0 to Pi


angle

IDoubleI angle(ISwitchR r,
               IVecI v)
get angle between two vector from 0 to Pi


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(double vx,
             double vy,
             double vz,
             double axisX,
             double axisY,
             double axisZ)
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)
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

IDoubleI angle(ISwitchR r,
               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

rot

IVecI rot(IVecI axis,
          IDoubleI angle)
rotation around axis vector

Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI axis,
          double angle)
rotation around axis vector

Specified by:
rot in interface ITransformable

rot

IVecI rot(double axisX,
          double axisY,
          double axisZ,
          double angle)
rotation around axis vector


rot

IVecI rot(double angle)
rotation on XY plane

Specified by:
rot in interface ITransformable

rot

IVecI rot(IDoubleI angle)
rotation on XY plane

Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI center,
          IVecI axis,
          IDoubleI angle)
rotation around axis vector and center point

Specified by:
rot in interface ITransformable

rot

IVecI rot(IVecI center,
          IVecI axis,
          double angle)
rotation around axis vector and center point

Specified by:
rot in interface ITransformable

rot

IVecI rot(double centerX,
          double centerY,
          double centerZ,
          double axisX,
          double axisY,
          double axisZ,
          double angle)
rotation around axis vector and center point


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

rot2

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

Specified by:
rot2 in interface ITransformable

rot2

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

Specified by:
rot2 in interface ITransformable

rot2

IVecI rot2(IVecI center,
           double angle)
rotation on xy-plane

Specified by:
rot2 in interface ITransformable

rot2

IVecI rot2(IVecI center,
           IDoubleI angle)
rotation on xy-plane

Specified by:
rot2 in interface ITransformable

rot2

IVecI rot2(double centerX,
           double centerY,
           double angle)
rotation on xy-plane


rot2

IVecI rot2(IVecI destDir)
rotation on xy-plane towards destDir

Specified by:
rot2 in interface ITransformable

rot2

IVecI rot2(IVecI center,
           IVecI destPt)
rotation on xy-plane towards destPt

Specified by:
rot2 in interface ITransformable

scale

IVecI scale(IDoubleI f)
alias of mul

Specified by:
scale in interface ITransformable

scale

IVecI scale(double f)
alias of mul

Specified by:
scale in interface ITransformable

scale

IVecI scale(IVecI center,
            IDoubleI f)
scale from a center

Specified by:
scale in interface ITransformable

scale

IVecI scale(IVecI center,
            double f)
scale from a center

Specified by:
scale in interface ITransformable

scale

IVecI scale(double centerX,
            double centerY,
            double centerZ,
            double f)
scale from a center


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)
scale only in 1 direction

Specified by:
scale1d in interface ITransformable

scale1d

IVecI scale1d(double axisX,
              double axisY,
              double axisZ,
              double f)
scale only in 1 direction


scale1d

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

Specified by:
scale1d in interface ITransformable

scale1d

IVecI scale1d(IVecI center,
              IVecI axis,
              IDoubleI f)
scale only in 1 direction from a center

Specified by:
scale1d in interface ITransformable

scale1d

IVecI scale1d(double centerX,
              double centerY,
              double centerZ,
              double axisX,
              double axisY,
              double axisZ,
              double f)
scale only in 1 direction from a center


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(double planeX,
          double planeY,
          double planeZ)
reflect(mirror) 3 dimensionally to the other side of the plane


ref

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

Specified by:
ref in interface ITransformable

ref

IVecI ref(double centerX,
          double centerY,
          double centerZ,
          double planeX,
          double planeY,
          double planeZ)
reflect(mirror) 3 dimensionally to the other side of the plane


mirror

IVecI mirror(IVecI planeDir)
alias of ref

Specified by:
mirror in interface ITransformable

mirror

IVecI mirror(double planeX,
             double planeY,
             double planeZ)
alias of ref


mirror

IVecI mirror(IVecI center,
             IVecI planeDir)
alias of ref

Specified by:
mirror in interface ITransformable

mirror

IVecI mirror(double centerX,
             double centerY,
             double centerZ,
             double planeX,
             double planeY,
             double planeZ)
alias of ref


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)
shear operation

Specified by:
shear in interface ITransformable

shear

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

Specified by:
shear in interface ITransformable

shear

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

Specified by:
shear in interface ITransformable

shearXY

IVecI shearXY(double sxy,
              double syx)
shear operation on XY

Specified by:
shearXY in interface ITransformable

shearXY

IVecI shearXY(IDoubleI sxy,
              IDoubleI syx)
shear operation on XY

Specified by:
shearXY in interface ITransformable

shearXY

IVecI shearXY(IVecI center,
              double sxy,
              double syx)
shear operation on XY

Specified by:
shearXY in interface ITransformable

shearXY

IVecI shearXY(IVecI center,
              IDoubleI sxy,
              IDoubleI syx)
shear operation on XY

Specified by:
shearXY in interface ITransformable

shearYZ

IVecI shearYZ(double syz,
              double szy)
shear operation on YZ

Specified by:
shearYZ in interface ITransformable

shearYZ

IVecI shearYZ(IDoubleI syz,
              IDoubleI szy)
shear operation on YZ

Specified by:
shearYZ in interface ITransformable

shearYZ

IVecI shearYZ(IVecI center,
              double syz,
              double szy)
shear operation on YZ

Specified by:
shearYZ in interface ITransformable

shearYZ

IVecI shearYZ(IVecI center,
              IDoubleI syz,
              IDoubleI szy)
shear operation on YZ

Specified by:
shearYZ in interface ITransformable

shearZX

IVecI shearZX(double szx,
              double sxz)
shear operation on ZX

Specified by:
shearZX in interface ITransformable

shearZX

IVecI shearZX(IDoubleI szx,
              IDoubleI sxz)
shear operation on ZX

Specified by:
shearZX in interface ITransformable

shearZX

IVecI shearZX(IVecI center,
              double szx,
              double sxz)
shear operation on ZX

Specified by:
shearZX in interface ITransformable

shearZX

IVecI shearZX(IVecI center,
              IDoubleI szx,
              IDoubleI sxz)
shear operation on ZX

Specified by:
shearZX in interface ITransformable

translate

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

Specified by:
translate in interface ITransformable

translate

IVecI translate(IDoubleI x,
                IDoubleI y,
                IDoubleI z)
alias of add()

Specified by:
translate in interface ITransformable

translate

IVecI translate(IVecI v)
alias of add()

Specified by:
translate in interface ITransformable

transform

IVecI transform(IMatrix3I mat)
transform with a transformation matrix

Specified by:
transform in interface ITransformable

transform

IVecI transform(IMatrix4I mat)
transform with a transformation matrix

Specified by:
transform in interface ITransformable

transform

IVecI transform(IVecI xvec,
                IVecI yvec,
                IVecI zvec)
transform with a transformation vectors

Specified by:
transform in interface ITransformable

transform

IVecI transform(IVecI xvec,
                IVecI yvec,
                IVecI zvec,
                IVecI translate)
transform with a transformation vectors

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)
mv() is alias of add()

Specified by:
mv in interface ITransformable

mv

IVecI mv(IVecI v)
mv() is alias of add()

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)
cp() is alias of dup().add()

Specified by:
cp in interface ITransformable

cp

IVecI cp(IVecI v)
cp() is alias of dup().add()

Specified by:
cp in interface ITransformable

dif

IVecI dif(IVecI v)
create a new instance of difference


dif

IVecI dif(double vx,
          double vy,
          double vz)
create a new instance of difference


diff

IVecI diff(IVecI v)
alias of dif


diff

IVecI diff(double vx,
           double vy,
           double vz)
alias of dif


mid

IVecI mid(IVecI v)
create a new instance of midpoint


mid

IVecI mid(double vx,
          double vy,
          double vz)
create a new instance of midpoint


sum

IVecI sum(IVecI v)
create a new instance of total summation


sum

IVecI sum(double vx,
          double vy,
          double vz)
create a new instance of total summation


sum

IVecI sum(IVecI... v)
create a new instance of total summation


bisect

IVecI bisect(IVecI v)
create a new instance of bisector


bisect

IVecI bisect(double vx,
             double vy,
             double vz)
create a new instance of bisector


sum

IVecI sum(IVecI v2,
          double w1,
          double w2)
create a new instance of weighted sum


sum

IVecI sum(IVecI v2,
          double w2)
create a new instance of weighted sum


sum

IVecI sum(IVecI v2,
          IDoubleI w1,
          IDoubleI w2)
create a new instance of weighted sum


sum

IVecI sum(IVecI v2,
          IDoubleI w2)
create a new instance of weighted sum


nml

IVecI nml(IVecI v)
alias of cross


nml

IVecI nml(double vx,
          double vy,
          double vz)
alias of cross


nml

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


nml

IVecI nml(double vx1,
          double vy1,
          double vz1,
          double vx2,
          double vy2,
          double vz2)
create normal vector from 3 points of self, pt1 and pt2


isValid

boolean isValid()
check if the content of vector is valid; no NaN value