igeo
Class IVec

java.lang.Object
  extended by igeo.IParameterObject
      extended by igeo.IVec
All Implemented Interfaces:
IEntityParameter, IParameter, ISubobject, ITransformable, IVecI, IVecOp
Direct Known Subclasses:
IVec4

public class IVec
extends IParameterObject
implements IVecI, IEntityParameter

Class of 3 dimensional vector.


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

Field Detail

origin

public static final IVec origin

xaxis

public static final IVec xaxis

yaxis

public static final IVec yaxis

zaxis

public static final IVec zaxis

x

public double x

y

public double y

z

public double z
Constructor Detail

IVec

public IVec()

IVec

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

IVec

public IVec(double x,
            double y)

IVec

public IVec(IVec v)

IVec

public IVec(IVecI v)

IVec

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

IVec

public IVec(IVec2I v)

IVec

public IVec(IServerI s)

IVec

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

IVec

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

IVec

public IVec(IServerI s,
            IVec v)

IVec

public IVec(IServerI s,
            IVecI v)

IVec

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

IVec

public IVec(IServerI s,
            IVec2I v)
Method Detail

x

public double x()
Specified by:
x in interface IVecI

y

public double y()
Specified by:
y in interface IVecI

z

public double z()
Specified by:
z in interface IVecI

get

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

dup

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

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

to2d

public IVec2 to2d()
Specified by:
to2d in interface IVecI

to4d

public IVec4 to4d()
Specified by:
to4d in interface IVecI

to4d

public IVec4 to4d(double w)
Specified by:
to4d in interface IVecI

to4d

public IVec4 to4d(IDoubleI w)
Specified by:
to4d in interface IVecI

getX

public IDouble getX()
Specified by:
getX in interface IVecI

getY

public IDouble getY()
Specified by:
getY in interface IVecI

getZ

public IDouble getZ()
Specified by:
getZ in interface IVecI

set

public IVec set(double x,
                double y,
                double z)
Specified by:
set in interface IVecI

set

public IVec set(IVec v)

set

public IVec set(IVecI v)
Specified by:
set in interface IVecI

set

public IVec set(IDoubleI x,
                IDoubleI y,
                IDoubleI z)
Specified by:
set in interface IVecI

add

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

add

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

add

public IVec add(IVec v)

add

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

sub

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

sub

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

sub

public IVec sub(IVec v)

sub

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

mul

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

mul

public IVec mul(IDouble v)

mul

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

div

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

div

public IVec div(IDouble v)

div

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

neg

public IVec neg()
Specified by:
neg in interface ITransformable
Specified by:
neg in interface IVecI

rev

public IVec rev()
alias of neg()

Specified by:
rev in interface IVecI

flip

public IVec flip()
alias of neg()

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

zero

public IVec zero()
setting all zero

Specified by:
zero in interface IVecI

add

public IVec add(IVec v,
                double f)
scale add


add

public IVec add(IVecI v,
                double f)
scale add

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

add

public IVec add(IVecI v,
                IDoubleI f)
scale add

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

add

public IVec add(double f,
                IVec v)
scale add; alias of add(IVec,double)


add

public IVec add(double f,
                IVecI v)
scale add; alias of add(IVecI,double)

Specified by:
add in interface ITransformable

add

public IVec add(IDoubleI f,
                IVecI v)
scale add; alias of add(IVec,IDouble)

Specified by:
add in interface ITransformable

dot

public double dot(IVec v)
dot product in double


dot

public double dot(IVecI v)
Specified by:
dot in interface IVecI

dot

public double dot(ISwitchE e,
                  IVecI v)
Specified by:
dot in interface IVecI

dot

public IDouble dot(ISwitchR r,
                   IVecI v)
Specified by:
dot in interface IVecI

cross

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


cross

public IVec cross(IVecI v)
Description copied from interface: IVecI
cross product creates a new instance

Specified by:
cross in interface IVecI

icross

public IVec icross(IVec v)
cross product, changing its values by itself. no new instance created.


len

public double len()
Specified by:
len in interface IVecI

len

public double len(ISwitchE e)
Specified by:
len in interface IVecI

len

public IDouble len(ISwitchR r)
Specified by:
len in interface IVecI

len2

public double len2()
Description copied from interface: IVecI
square of length

Specified by:
len2 in interface IVecI

len2

public double len2(ISwitchE e)
Specified by:
len2 in interface IVecI

len2

public IDouble len2(ISwitchR r)
Specified by:
len2 in interface IVecI

len

public IVec len(double l)
Specified by:
len in interface IVecI

len

public IVec len(IDoubleI l)
Specified by:
len in interface IVecI

unit

public IVec unit()
Specified by:
unit in interface IVecI

dist

public double dist(IVec v)

dist

public double dist(IVecI v)
Specified by:
dist in interface IVecI

dist

public double dist(ISwitchE e,
                   IVecI v)
Specified by:
dist in interface IVecI

dist

public IDouble dist(ISwitchR r,
                    IVecI v)
Specified by:
dist in interface IVecI

dist2

public double dist2(IVec v)

dist2

public double dist2(IVecI v)
Description copied from interface: IVecI
squared distance

Specified by:
dist2 in interface IVecI

dist2

public double dist2(ISwitchE e,
                    IVecI v)
Specified by:
dist2 in interface IVecI

dist2

public IDouble dist2(ISwitchR r,
                     IVecI v)
Specified by:
dist2 in interface IVecI

eq

public boolean eq(IVec v)

eq

public boolean eq(IVecI v)
Description copied from interface: IVecI
whether location is same or not

Specified by:
eq in interface IVecI

eq

public boolean eq(ISwitchE e,
                  IVecI v)
Specified by:
eq in interface IVecI

eq

public IBool eq(ISwitchR r,
                IVecI v)
Specified by:
eq in interface IVecI

eq

public boolean eq(IVec v,
                  double resolution)

eq

public boolean eq(IVecI v,
                  double resolution)
Specified by:
eq in interface IVecI

eq

public boolean eq(ISwitchE e,
                  IVecI v,
                  double resolution)
Specified by:
eq in interface IVecI

eq

public IBool eq(ISwitchR r,
                IVecI v,
                IDoubleI resolution)
Specified by:
eq in interface IVecI

eqX

public boolean eqX(IVec v)

eqY

public boolean eqY(IVec v)

eqZ

public boolean eqZ(IVec v)

eqX

public boolean eqX(IVecI v)
Specified by:
eqX in interface IVecI

eqY

public boolean eqY(IVecI v)
Specified by:
eqY in interface IVecI

eqZ

public boolean eqZ(IVecI v)
Specified by:
eqZ in interface IVecI

eqX

public boolean eqX(ISwitchE e,
                   IVecI v)
Specified by:
eqX in interface IVecI

eqY

public boolean eqY(ISwitchE e,
                   IVecI v)
Specified by:
eqY in interface IVecI

eqZ

public boolean eqZ(ISwitchE e,
                   IVecI v)
Specified by:
eqZ in interface IVecI

eqX

public IBool eqX(ISwitchR r,
                 IVecI v)
Specified by:
eqX in interface IVecI

eqY

public IBool eqY(ISwitchR r,
                 IVecI v)
Specified by:
eqY in interface IVecI

eqZ

public IBool eqZ(ISwitchR r,
                 IVecI v)
Specified by:
eqZ in interface IVecI

eqX

public boolean eqX(IVec v,
                   double resolution)

eqY

public boolean eqY(IVec v,
                   double resolution)

eqZ

public boolean eqZ(IVec v,
                   double resolution)

eqX

public boolean eqX(IVecI v,
                   double resolution)
Specified by:
eqX in interface IVecI

eqY

public boolean eqY(IVecI v,
                   double resolution)
Specified by:
eqY in interface IVecI

eqZ

public boolean eqZ(IVecI v,
                   double resolution)
Specified by:
eqZ in interface IVecI

eqX

public boolean eqX(ISwitchE e,
                   IVecI v,
                   double resolution)
Specified by:
eqX in interface IVecI

eqY

public boolean eqY(ISwitchE e,
                   IVecI v,
                   double resolution)
Specified by:
eqY in interface IVecI

eqZ

public boolean eqZ(ISwitchE e,
                   IVecI v,
                   double resolution)
Specified by:
eqZ in interface IVecI

eqX

public IBool eqX(ISwitchR r,
                 IVecI v,
                 IDoubleI resolution)
Specified by:
eqX in interface IVecI

eqY

public IBool eqY(ISwitchR r,
                 IVecI v,
                 IDoubleI resolution)
Specified by:
eqY in interface IVecI

eqZ

public IBool eqZ(ISwitchR r,
                 IVecI v,
                 IDoubleI resolution)
Specified by:
eqZ in interface IVecI

angle

public double angle(IVec v)
angle in double


angle

public double angle(IVecI v)
Specified by:
angle in interface IVecI
Returns:
angle between two vector from 0 to Pi

angle

public double angle(ISwitchE e,
                    IVecI v)
Specified by:
angle in interface IVecI

angle

public IDouble angle(ISwitchR r,
                     IVecI v)
Specified by:
angle in interface IVecI

angle

public double angle(IVec v,
                    IVec axis)

angle

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

angle

public double angle(ISwitchE e,
                    IVecI v,
                    IVecI axis)
Specified by:
angle in interface IVecI

angle

public IDouble angle(ISwitchR r,
                     IVecI v,
                     IVecI axis)
Specified by:
angle in interface IVecI

rot

public IVec rot(IVec axis,
                double angle)

rot

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

rot

public IVec rot(IVecI axis,
                IDoubleI angle)
Description copied from interface: ITransformable
rotation around axis vector

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

rot

public IVec rot(double angle)
rotation on xy-plane

Specified by:
rot in interface ITransformable

rot

public IVec rot(IDoubleI angle)
rotation on xy-plane

Specified by:
rot in interface ITransformable

rot

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

rot

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

rot

public IVec rot(IVecI center,
                IVecI axis,
                IDoubleI angle)
Description copied from interface: ITransformable
rotation around axis vector and center

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

rot

public IVec rot(IVec axis,
                IVec destDir)

rot

public IVec rot(IVecI axis,
                IVecI destDir)
Description copied from interface: ITransformable
rotate to destination direction vector

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

rot

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

rot

public IVec rot(IVecI center,
                IVecI axis,
                IVecI destPt)
Description copied from interface: ITransformable
rotate to destination point location

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

rot2

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

Specified by:
rot2 in interface ITransformable

rot2

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

Specified by:
rot2 in interface ITransformable

rot2

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


rot2

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

Specified by:
rot2 in interface ITransformable

rot2

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

Specified by:
rot2 in interface ITransformable

rot2

public IVec rot2(IVec destDir)
rotation on xy-plane towards destDir


rot2

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

Specified by:
rot2 in interface ITransformable

rot2

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


rot2

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

Specified by:
rot2 in interface ITransformable

scale

public IVec scale(IDoubleI f)
alias of mul

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

scale

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

scale

public IVec scale(IVec center,
                  double f)

scale

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

scale

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

scale1d

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


scale1d

public IVec scale1d(IVecI axis,
                    double f)
Description copied from interface: ITransformable
scale only in 1 direction

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

scale1d

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

scale1d

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

scale1d

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

ref

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


ref

public IVec ref(IVecI planeDir)
Description copied from interface: ITransformable
reflect(mirror) 3 dimensionally to the other side of the plane

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

ref

public IVec ref(IVec center,
                IVec planeDir)

ref

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

mirror

public IVec mirror(IVec planeDir)

mirror

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

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

mirror

public IVec mirror(IVec center,
                   IVec planeDir)

mirror

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

shear

public IVec shear(double sxy,
                  double syx,
                  double syz,
                  double szy,
                  double szx,
                  double sxz)
Description copied from interface: ITransformable
shear operation

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

shear

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

shear

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

shear

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

shearXY

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

shearXY

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

shearXY

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

shearXY

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

shearYZ

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

shearYZ

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

shearYZ

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

shearYZ

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

shearZX

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

shearZX

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

shearZX

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

shearZX

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

translate

public IVec translate(double x,
                      double y,
                      double z)
Description copied from interface: ITransformable
translate() is alias of add()

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

translate

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

translate

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

transform

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

transform

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

transform

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

transform

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

transform

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

transform

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

mv

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

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

mv

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

mv

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

cp

public IVec cp()
cp() is alias of dup()

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

cp

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

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

cp

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

cp

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

dif

public IVec dif(IVec v)
methods creating new instance


dif

public IVec dif(IVecI v)
Description copied from interface: IVecI
create a new instance of difference

Specified by:
dif in interface IVecI

diff

public IVec diff(IVec v)

diff

public IVec diff(IVecI v)
Description copied from interface: IVecI
alias of dif

Specified by:
diff in interface IVecI

mid

public IVec mid(IVec v)

mid

public IVec mid(IVecI v)
Description copied from interface: IVecI
create a new instance of midpoint

Specified by:
mid in interface IVecI

sum

public IVec sum(IVec v)

sum

public IVec sum(IVecI v)
Description copied from interface: IVecI
create a new instance of total summation

Specified by:
sum in interface IVecI

sum

public IVec sum(IVec... v)

sum

public IVec sum(IVecI... v)
Description copied from interface: IVecI
create a new instance of total summation

Specified by:
sum in interface IVecI

bisect

public IVec bisect(IVec v)

bisect

public IVec bisect(IVecI v)
Description copied from interface: IVecI
create a new instance of bisector

Specified by:
bisect in interface IVecI

sum

public IVec sum(IVec v2,
                double w1,
                double w2)
weighted sum, creating new instance


sum

public IVec sum(IVec v2,
                double w2)

sum

public IVec sum(IVecI v2,
                double w1,
                double w2)
Description copied from interface: IVecI
weighted sum

Specified by:
sum in interface IVecI

sum

public IVec sum(IVecI v2,
                double w2)
Specified by:
sum in interface IVecI

sum

public IVec sum(IVecI v2,
                IDoubleI w1,
                IDoubleI w2)
Specified by:
sum in interface IVecI

sum

public IVec sum(IVecI v2,
                IDoubleI w2)
Specified by:
sum in interface IVecI

isValid

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

Specified by:
isValid in interface IVecI

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

isParallel

public boolean isParallel(IVecI v)

isParallel

public boolean isParallel(IVecI v,
                          double angleReso)

isStraight

public boolean isStraight(IVecI v1,
                          IVecI v2)

isStraight

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

nml

public IVec nml(IVecI v)
alias of cross. (not unitized ... ?)

Specified by:
nml in interface IVecI

nml

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

Specified by:
nml in interface IVecI

nml

public IVec nml(IVec pt1,
                IVec pt2)

getNormal

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

getNormal

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

getNormal

public IVecI getNormal(IVecI pt2,
                       IVecI pt3)

getNormal

public IVec getNormal(IVec pt2,
                      IVec pt3)

projectToPlane

public IVec projectToPlane(IVecI projectDir,
                           IVecI planeNormal)

projectToPlane

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

projectToLine

public IVec projectToLine(IVecI linePt,
                          IVecI lineDir)

projectTo2Vec

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

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

projectToVec

public double projectToVec(IVecI v)
project this vector to the input vector and returns projection coefficient.

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

decompose

public IVec[] decompose(IVecI uaxis,
                        IVecI vaxis)
decompose the vector to two input vectors and another perpendicular vector of those two and returns three decomposed vector. the vector itself doensn't change. this = return[0] + return[1] + return[2];

Returns:
array of three decomposed vectors

distanceToPlane

public double distanceToPlane(IVecI planeDir,
                              IVecI planePt)

perpendicularVectorToLine

public IVec perpendicularVectorToLine(IVecI lineDir,
                                      IVecI linePt)
create a new vector from this point to the line in parpendicular direction.


perpendicularVectorToVector

public IVec perpendicularVectorToVector(IVecI axisDir)
create a new vector from line to this point perpendicular to the axis


isOnPlane

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

isOnPlane

public boolean isOnPlane(IVecI planeDir,
                         IVecI planePt)

isOnPlane

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

isOnPlane

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

show

public IVectorObject show(IVecI root)
visualize a vector as an arrow.

Parameters:
root - A root position of the arrow.

show

public IVectorObject show()
visualize a vector as an arrow. The root position of the arrow is the origin.


show

public IVectorObject show(IServerI s,
                          IVecI root)
visualize a vector as an arrow.

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

show

public IVectorObject show(IServerI s)
visualize a vector as an arrow. The root position of the arrow is the origin.

Parameters:
s - A server to store the object.

isFlat

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


isFlat

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

isArrayEqual

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

isArrayEqual

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

averageNormal

public static IVec averageNormal(IVecI[] pts)
average normal of point array in form of a polyline. It return IVec, not IVecI. (Should it return IVecI?)


averageNormal

public static IVec averageNormal(IVecI[][] pts)
average normal of point array in form of a matrix. It return IVec, not IVecI. (Should it return IVecI?)


offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

offset

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

projectToPlane

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


projectToPlane

public static void projectToPlane(IVecI[] pts,
                                  IVecI projectDir,
                                  IVecI planeNormal,
                                  IVecI planePt)
project point array to a plane. input points are changed.


projectToPlane

public static void projectToPlane(IVecI[][] pts,
                                  IVecI projectDir,
                                  IVecI planeNormal,
                                  IVecI planePt)
project point array to a plane. input points are changed.


projectToPlane

public static void projectToPlane(IVecI[] pts,
                                  IVecI planeNormal,
                                  IVecI planePt)
project point array to a plane. input points are changed.


projectToPlane

public static void projectToPlane(IVecI[][] pts,
                                  IVecI planeNormal,
                                  IVecI planePt)
project point array to a plane. input points are changed.


projectToPlane

public static void projectToPlane(IVecI[] pts,
                                  IVecI planeNormal)
project point array to a plane. input points are changed. projection plane point is the first element in the array. (should it be center?)


projectToPlane

public static void projectToPlane(IVecI[][] pts,
                                  IVecI planeNormal)
project point array to a plane. input points are changed. projection plane point is the first element in the array. (should it be center?)


projectToPlane

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


projectToPlane

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


intersect

public static IVec intersect(IVecI line1Pt1,
                             IVecI line1Pt2,
                             IVecI line2Pt1,
                             IVecI line2Pt2)
intersection of two infinite lines.


intersect

public static IVec intersect(IVecI line1Pt1,
                             IVecI line1Pt2,
                             IVecI line2Pt1,
                             IVecI line2Pt2,
                             double tolerance)
intersection of two infinite lines.


intersect

public static IVec intersect(IVec line1Pt1,
                             IVec line1Pt2,
                             IVec line2Pt1,
                             IVec line2Pt2)
intersection of two infinite lines.


intersect

public static IVec intersect(IVec line1Pt1,
                             IVec line1Pt2,
                             IVec line2Pt1,
                             IVec line2Pt2,
                             double tolerance)
intersection of two infinite lines. If two lines are skew and 4 points are not on the same plane and the gap is less than tolerance, intersection points is projected onto the line. If the gap is too big or lines are parallel, it returns null.

Returns:
intersection point or null if it cannot find intersection

intersectInfiniteLines

public static IVec intersectInfiniteLines(IVecI line1Pt1,
                                          IVecI line1Pt2,
                                          IVecI line2Pt1,
                                          IVecI line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfiniteLines

public static IVec intersectInfiniteLines(IVecI line1Pt1,
                                          IVecI line1Pt2,
                                          IVecI line2Pt1,
                                          IVecI line2Pt2,
                                          double tolerance)
intersect infinite lines; alias of intersect()


intersectInfiniteLines

public static IVec intersectInfiniteLines(IVec line1Pt1,
                                          IVec line1Pt2,
                                          IVec line2Pt1,
                                          IVec line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfiniteLines

public static IVec intersectInfiniteLines(IVec line1Pt1,
                                          IVec line1Pt2,
                                          IVec line2Pt1,
                                          IVec line2Pt2,
                                          double tolerance)
intersect infinite lines; alias of intersect()


intersectInfiniteLine

public static IVec intersectInfiniteLine(IVecI line1Pt1,
                                         IVecI line1Pt2,
                                         IVecI line2Pt1,
                                         IVecI line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfiniteLine

public static IVec intersectInfiniteLine(IVecI line1Pt1,
                                         IVecI line1Pt2,
                                         IVecI line2Pt1,
                                         IVecI line2Pt2,
                                         double tolerance)
intersect infinite lines; alias of intersect()


intersectInfiniteLine

public static IVec intersectInfiniteLine(IVec line1Pt1,
                                         IVec line1Pt2,
                                         IVec line2Pt1,
                                         IVec line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfiniteLine

public static IVec intersectInfiniteLine(IVec line1Pt1,
                                         IVec line1Pt2,
                                         IVec line2Pt1,
                                         IVec line2Pt2,
                                         double tolerance)
intersect infinite lines; alias of intersect()


intersectInfLines

public static IVec intersectInfLines(IVecI line1Pt1,
                                     IVecI line1Pt2,
                                     IVecI line2Pt1,
                                     IVecI line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfLines

public static IVec intersectInfLines(IVecI line1Pt1,
                                     IVecI line1Pt2,
                                     IVecI line2Pt1,
                                     IVecI line2Pt2,
                                     double tolerance)
intersect infinite lines; alias of intersect()


intersectInfLines

public static IVec intersectInfLines(IVec line1Pt1,
                                     IVec line1Pt2,
                                     IVec line2Pt1,
                                     IVec line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfLines

public static IVec intersectInfLines(IVec line1Pt1,
                                     IVec line1Pt2,
                                     IVec line2Pt1,
                                     IVec line2Pt2,
                                     double tolerance)
intersect infinite lines; alias of intersect()


intersectInfLine

public static IVec intersectInfLine(IVecI line1Pt1,
                                    IVecI line1Pt2,
                                    IVecI line2Pt1,
                                    IVecI line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfLine

public static IVec intersectInfLine(IVecI line1Pt1,
                                    IVecI line1Pt2,
                                    IVecI line2Pt1,
                                    IVecI line2Pt2,
                                    double tolerance)
intersect infinite lines; alias of intersect()


intersectInfLine

public static IVec intersectInfLine(IVec line1Pt1,
                                    IVec line1Pt2,
                                    IVec line2Pt1,
                                    IVec line2Pt2)
intersect infinite lines; alias of intersect()


intersectInfLine

public static IVec intersectInfLine(IVec line1Pt1,
                                    IVec line1Pt2,
                                    IVec line2Pt1,
                                    IVec line2Pt2,
                                    double tolerance)
intersect infinite lines; alias of intersect()


intersectSegment

public static IVec intersectSegment(IVecI line1Pt1,
                                    IVecI line1Pt2,
                                    IVecI line2Pt1,
                                    IVecI line2Pt2)

intersectSegment

public static IVec intersectSegment(IVecI line1Pt1,
                                    IVecI line1Pt2,
                                    IVecI line2Pt1,
                                    IVecI line2Pt2,
                                    double tolerance)

intersectSegment

public static IVec intersectSegment(IVec line1Pt1,
                                    IVec line1Pt2,
                                    IVec line2Pt1,
                                    IVec line2Pt2)
intersection of line segments. If intersection point is not on line, it returns null.


intersectSegment

public static IVec intersectSegment(IVec line1Pt1,
                                    IVec line1Pt2,
                                    IVec line2Pt1,
                                    IVec line2Pt2,
                                    double tolerance)
intersection of line segments. If intersection point is not on line, it returns null.

Returns:
intersection point or null if it cannot find intersection

intersectSegments

public static IVec intersectSegments(IVecI line1Pt1,
                                     IVecI line1Pt2,
                                     IVecI line2Pt1,
                                     IVecI line2Pt2)
intersection of line segments; alias of intersectSegment


intersectSegments

public static IVec intersectSegments(IVecI line1Pt1,
                                     IVecI line1Pt2,
                                     IVecI line2Pt1,
                                     IVecI line2Pt2,
                                     double tolerance)

intersectSegments

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

intersectSegments

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

intersectSeg

public static IVec intersectSeg(IVecI line1Pt1,
                                IVecI line1Pt2,
                                IVecI line2Pt1,
                                IVecI line2Pt2)
intersection of line segments; alias of intersectSegment


intersectSeg

public static IVec intersectSeg(IVecI line1Pt1,
                                IVecI line1Pt2,
                                IVecI line2Pt1,
                                IVecI line2Pt2,
                                double tolerance)

intersectSeg

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

intersectSeg

public static IVec intersectSeg(IVec line1Pt1,
                                IVec line1Pt2,
                                IVec line2Pt1,
                                IVec line2Pt2,
                                double tolerance)

intersectLines

public static IVec intersectLines(IVecI line1Pt1,
                                  IVecI line1Pt2,
                                  IVecI line2Pt1,
                                  IVecI line2Pt2)
intersection of line segments; alias of intersectSegment


intersectLines

public static IVec intersectLines(IVecI line1Pt1,
                                  IVecI line1Pt2,
                                  IVecI line2Pt1,
                                  IVecI line2Pt2,
                                  double tolerance)

intersectLines

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

intersectLines

public static IVec intersectLines(IVec line1Pt1,
                                  IVec line1Pt2,
                                  IVec line2Pt1,
                                  IVec line2Pt2,
                                  double tolerance)

intersectLine

public static IVec intersectLine(IVecI line1Pt1,
                                 IVecI line1Pt2,
                                 IVecI line2Pt1,
                                 IVecI line2Pt2)
intersection of line segments; alias of intersectSegment


intersectLine

public static IVec intersectLine(IVecI line1Pt1,
                                 IVecI line1Pt2,
                                 IVecI line2Pt1,
                                 IVecI line2Pt2,
                                 double tolerance)

intersectLine

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

intersectLine

public static IVec intersectLine(IVec line1Pt1,
                                 IVec line1Pt2,
                                 IVec line2Pt1,
                                 IVec line2Pt2,
                                 double tolerance)

angle

public static double angle(IVecI pt1,
                           IVecI pt2,
                           IVecI pt3)
measure angle of polyline of pt1,pt2 and pt3 at pt2, which is equivalent to measure angle between vectors from pt2 to pt1 and pt2 to pt3.