igeo

## Class IVec2f

- java.lang.Object
- - igeo.IParameterObject
  - - igeo.IVec2f

- All Implemented Interfaces:
    IArithmeticVal<IVec2I,IDoubleI>, IParameter, ISubobject, IVal, IVec2I, IVec2Op

      public class IVec2f
      extends IParameterObject
      implements IVec2I

  Class of 2 dimensional vector in float.
  Author:
    Satoru Sugihara

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `float` | `x`
    `float` | `y`

    - ### Fields inherited from class igeo.IParameterObject

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `IVec2f()`
    `IVec2f(double x, double y)`
    `IVec2f(float x, float y)`
    `IVec2f(IDoubleI x, IDoubleI y)`
    `IVec2f(IServerI s)`
    `IVec2f(IServerI s, double x, double y)`
    `IVec2f(IServerI s, float x, float y)`
    `IVec2f(IServerI s, IDoubleI x, IDoubleI y)`
    `IVec2f(IServerI s, IVec2 v)`
    `IVec2f(IServerI s, IVec2f v)`
    `IVec2f(IServerI s, IVec2I v)`
    `IVec2f(IVec2 v)`
    `IVec2f(IVec2f v)`
    `IVec2f(IVec2I v)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `IVec2f` | `add(double x, double y)`
    `IVec2f` | `add(double f, IVec2I v)` scale add; alias
    `IVec2f` | `add(float x, float y)`
    `IVec2f` | `add(float f, IVec2f v)` scale add; alias
    `IVec2f` | `add(IDoubleI x, IDoubleI y)`
    `IVec2f` | `add(IDoubleI f, IVec2I v)` scale add; alias
    `IVec2f` | `add(IVec2 v)`
    `IVec2f` | `add(IVec2f v)`
    `IVec2f` | `add(IVec2f v, float f)` scale add
    `IVec2f` | `add(IVec2I v)`
    `IVec2f` | `add(IVec2I v, double f)` scale add
    `IVec2f` | `add(IVec2I v, IDoubleI f)` scale add
    `double` | `angle(double vx, double vy)` angle between two vectors
    `float` | `angle(float vx, float vy)`
    `double` | `angle(ISwitchE e, IVec2I v)` angle between two vectors
    `IDouble` | `angle(ISwitchR r, IVec2I v)` angle between two vectors
    `double` | `angle(IVec2 v)`
    `float` | `angle(IVec2f v)`
    `double` | `angle(IVec2I v)` angle between two vectors
    `IVec2f` | `bisect(double vx, double vy)` create a new instance of bisector
    `IVec2f` | `bisect(IVec2 v)`
    `IVec2f` | `bisect(IVec2f v)`
    `IVec2f` | `bisect(IVec2I v)` create a new instance of bisector
    `IVec2f` | `cp()` cp() is alias of dup()
    `IVec2f` | `cp(double x, double y)` cp() is alias of dup().add()
    `IVec2f` | `cp(float x, float y)` cp() is alias of dup().add()
    `IVec2f` | `cp(IDoubleI x, IDoubleI y)` cp() is alias of dup().add()
    `IVec2f` | `cp(IVec2f v)` cp() is alias of dup().add()
    `IVec2f` | `cp(IVec2I v)` cp() is alias of dup().add()
    `IVec` | `cross(double vx, double vy)` cross product, returning 3D vector
    `IVec` | `cross(float vx, float vy)`
    `IVec` | `cross(IVec2 v)`
    `IVec` | `cross(IVec2f v)`
    `IVec` | `cross(IVec2I v)` cross product, returning 3D vector
    `IVec2f` | `dif(double vx, double vy)` create a new instance of difference
    `IVec2f` | `dif(float vx, float vy)`
    `IVec2f` | `dif(IVec2f v)`
    `IVec2f` | `dif(IVec2I v)` create a new instance of difference
    `IVec2f` | `diff(double vx, double vy)` alias of dif
    `IVec2f` | `diff(float vx, float vy)`
    `IVec2f` | `diff(IVec2f v)`
    `IVec2f` | `diff(IVec2I v)` alias of dif
    `double` | `dist(double vx, double vy)` distance
    `double` | `dist(float vx, float vy)`
    `double` | `dist(ISwitchE e, IVec2I v)` distance
    `IDouble` | `dist(ISwitchR r, IVec2I v)` distance
    `double` | `dist(IVec2 v)`
    `double` | `dist(IVec2f v)`
    `double` | `dist(IVec2I v)` distance
    `double` | `dist2(double vx, double vy)` squared distance
    `float` | `dist2(float vx, float vy)`
    `double` | `dist2(ISwitchE e, IVec2I v)` squared distance
    `IDouble` | `dist2(ISwitchR r, IVec2I v)` squared distance
    `double` | `dist2(IVec2 v)`
    `float` | `dist2(IVec2f v)`
    `double` | `dist2(IVec2I v)` squared distance
    `IVec2f` | `div(double x)`
    `IVec2f` | `div(float x)`
    `IVec2f` | `div(IDoubleI v)`
    `double` | `dot(double vx, double vy)` dot product
    `float` | `dot(float vx, float vy)`
    `double` | `dot(ISwitchE e, IVec2I v)` dot product
    `IDouble` | `dot(ISwitchR r, IVec2I v)` dot product
    `double` | `dot(IVec2 v)`
    `float` | `dot(IVec2f v)`
    `double` | `dot(IVec2I v)` dot product
    `IVec2f` | `dup()`
    `boolean` | `eq(double vx, double vy)` whether location is same or not
    `boolean` | `eq(double vx, double vy, double tolerance)` whether location is same or not with tolerance
    `boolean` | `eq(float vx, float vy)`
    `boolean` | `eq(float vx, float vy, double tolerance)`
    `boolean` | `eq(ISwitchE e, IVec2I v)` whether location is same or not
    `boolean` | `eq(ISwitchE e, IVec2I v, double tolerance)` whether location is same or not with tolerance
    `IBool` | `eq(ISwitchR r, IVec2I v)` whether location is same or not
    `IBool` | `eq(ISwitchR r, IVec2I v, IDoubleI tolerance)` whether location is same or not with tolerance
    `boolean` | `eq(IVec2 v)`
    `boolean` | `eq(IVec2 v, double tolerance)`
    `boolean` | `eq(IVec2f v)`
    `boolean` | `eq(IVec2f v, double tolerance)`
    `boolean` | `eq(IVec2I v)` whether location is same or not
    `boolean` | `eq(IVec2I v, double tolerance)` whether location is same or not with tolerance
    `boolean` | `eqX(double vx)` check if X is same
    `boolean` | `eqX(double vx, double tolerance)` check if X is same within tolerance
    `boolean` | `eqX(float vx)`
    `boolean` | `eqX(float vx, double tolerance)`
    `boolean` | `eqX(ISwitchE e, IVec2I v)` check if X is same
    `boolean` | `eqX(ISwitchE e, IVec2I v, double tolerance)` check if X is same within tolerance
    `IBool` | `eqX(ISwitchR r, IVec2I v)` check if X is same
    `IBool` | `eqX(ISwitchR r, IVec2I v, IDoubleI tolerance)` check if X is same within tolerance
    `boolean` | `eqX(IVec2 v)`
    `boolean` | `eqX(IVec2 v, double tolerance)`
    `boolean` | `eqX(IVec2f v)`
    `boolean` | `eqX(IVec2f v, double tolerance)`
    `boolean` | `eqX(IVec2I v)` check if X is same
    `boolean` | `eqX(IVec2I v, double tolerance)` check if X is same within tolerance
    `boolean` | `eqY(double vy)` check if Y is same
    `boolean` | `eqY(double vy, double tolerance)` check if Y is same within tolerance
    `boolean` | `eqY(float vy)`
    `boolean` | `eqY(float vy, double tolerance)`
    `boolean` | `eqY(ISwitchE e, IVec2I v)` check if Y is same
    `boolean` | `eqY(ISwitchE e, IVec2I v, double tolerance)` check if Y is same within tolerance
    `IBool` | `eqY(ISwitchR r, IVec2I v)` check if Y is same
    `IBool` | `eqY(ISwitchR r, IVec2I v, IDoubleI tolerance)` check if Y is same within tolerance
    `boolean` | `eqY(IVec2 v)`
    `boolean` | `eqY(IVec2 v, double tolerance)`
    `boolean` | `eqY(IVec2f v)`
    `boolean` | `eqY(IVec2f v, double tolerance)`
    `boolean` | `eqY(IVec2I v)` check if Y is same
    `boolean` | `eqY(IVec2I v, double tolerance)` check if Y is same within tolerance
    `IVec2f` | `flip()` alias of neg
    `IVec2` | `get()`
    `IDouble` | `getX()`
    `IDouble` | `getY()`
    `boolean` | `isValid()` checking x, y is valid number (not Infinite, nor NaN).
    `double` | `len()` getting length
    `IVec2f` | `len(double l)` setting length
    `IVec2f` | `len(float l)`
    `IVec2f` | `len(IDoubleI l)` setting length
    `double` | `len(ISwitchE e)` getting length
    `IDouble` | `len(ISwitchR r)` getting length
    `double` | `len2()` getting squared length
    `double` | `len2(ISwitchE e)` getting squared length
    `IDouble` | `len2(ISwitchR r)` getting squared length
    `IVec2f` | `mid(double vx, double vy)` create a new instance of midpoint
    `IVec2f` | `mid(float vx, float vy)`
    `IVec2f` | `mid(IVec2f v)`
    `IVec2f` | `mid(IVec2I v)` create a new instance of midpoint
    `IVec2f` | `mirror(double lineX, double lineY)` reflect (mirror) 2 dimensionally to the other side of the line
    `IVec2f` | `mirror(double linePtX, double linePtY, double lineDirX, double lineDirY)` reflect (mirror) 2 dimensionally to the other side of the line at a center
    `IVec2f` | `mirror(float lineX, float lineY)`
    `IVec2f` | `mirror(float linePtX, float linePtY, float lineDirX, float lineDirY)`
    `IVec2f` | `mirror(IVec2 lineDir)`
    `IVec2f` | `mirror(IVec2f lineDir)`
    `IVec2f` | `mirror(IVec2f linePt, IVec2f lineDir)`
    `IVec2f` | `mirror(IVec2I lineDir)` reflect (mirror) 2 dimensionally to the other side of the line
    `IVec2f` | `mirror(IVec2I linePt, IVec2I lineDir)` reflect (mirror) 2 dimensionally to the other side of the line at a center
    `IVec2f` | `mirror(IVec2 linePt, IVec2 lineDir)`
    `IVec2f` | `mul(double x)`
    `IVec2f` | `mul(float x)`
    `IVec2f` | `mul(IDoubleI v)`
    `IVec2f` | `mv(double x, double y)` mv() is alias of add()
    `IVec2f` | `mv(float x, float y)` mv() is alias of add()
    `IVec2f` | `mv(IDoubleI x, IDoubleI y)` mv() is alias of add()
    `IVec2f` | `mv(IVec2f v)` mv() is alias of add()
    `IVec2f` | `mv(IVec2I v)` mv() is alias of add()
    `IVec2f` | `neg()`
    `IVec` | `nml(double vx, double vy)` alias of cross
    `IVec` | `nml(double vx1, double vy1, double vx2, double vy2)` create normal vector from 3 points of self, pt1 and pt2
    `IVec` | `nml(float vx, float vy)` alias of cross
    `IVec` | `nml(float vx1, float vy1, float vx2, float vy2)` create normal vector from 3 points of self, pt1 and pt2
    `IVec` | `nml(IVec2I v)` alias of cross
    `IVec` | `nml(IVec2I pt1, IVec2I pt2)` create normal vector from 3 points of self, pt1 and pt2
    `IVec2f` | `ortho()` rotate vector in Pi/2
    `IVec2f` | `ref(double lineX, double lineY)` reflect (mirror) 2 dimensionally to the other side of the line
    `IVec2f` | `ref(double linePtX, double linePtY, double lineDirX, double lineDirY)` reflect (mirror) 2 dimensionally to the other side of the line at a center
    `IVec2f` | `ref(float lineX, float lineY)`
    `IVec2f` | `ref(float linePtX, float linePtY, float lineDirX, float lineDirY)`
    `IVec2f` | `ref(IVec2 lineDir)`
    `IVec2f` | `ref(IVec2f lineDir)` reflect (mirror) 2 dimensionally to the other side of the line
    `IVec2f` | `ref(IVec2f linePt, IVec2f lineDir)`
    `IVec2f` | `ref(IVec2I lineDir)` reflect (mirror) 2 dimensionally to the other side of the line
    `IVec2f` | `ref(IVec2I linePt, IVec2I lineDir)` reflect (mirror) 2 dimensionally to the other side of the line at a center
    `IVec2f` | `ref(IVec2 linePt, IVec2 lineDir)`
    `IVec2f` | `rev()` alias of neg
    `IVec2f` | `rot(double angle)` rotation
    `IVec2f` | `rot(double centerX, double centerY, double angle)` rotation around a center
    `IVec2f` | `rot(float angle)`
    `IVec2f` | `rot(float centerX, float centerY, float angle)`
    `IVec2f` | `rot(IDoubleI angle)` rotation
    `IVec2f` | `rot(IVec2 destDir)`
    `IVec2f` | `rot(IVec2 center, double angle)`
    `IVec2f` | `rot(IVec2f destDir)`
    `IVec2f` | `rot(IVec2f center, double angle)`
    `IVec2f` | `rot(IVec2f center, IVec2f destPt)`
    `IVec2f` | `rot(IVec2I destDir)` rotate towards destination direction
    `IVec2f` | `rot(IVec2I center, double angle)` rotation around a center
    `IVec2f` | `rot(IVec2I center, IDoubleI angle)` rotation around a center
    `IVec2f` | `rot(IVec2I center, IVec2I destPt)` rotate around a center towards destination point
    `IVec2f` | `rot(IVec2 center, IVec2 destPt)`
    `IVec2f` | `scale(double f)` alias of mul
    `IVec2f` | `scale(double centerX, double centerY, double f)` scale from a center
    `IVec2f` | `scale(float f)`
    `IVec2f` | `scale(float centerX, float centerY, float f)`
    `IVec2f` | `scale(IDoubleI f)` alias of mul
    `IVec2f` | `scale(IVec2 center, double f)`
    `IVec2f` | `scale(IVec2f center, double f)`
    `IVec2f` | `scale(IVec2I center, double f)` scale from a center
    `IVec2f` | `scale(IVec2I center, IDoubleI f)` scale from a center
    `IVec2f` | `scale1d(double axisX, double axisY, double f)` scale only in 1 direction
    `IVec2f` | `scale1d(double centerX, double centerY, double axisX, double axisY, double f)` scale only in 1 direction from a center
    `IVec2f` | `scale1d(float axisX, float axisY, float f)` scale only in 1 direction
    `IVec2f` | `scale1d(float centerX, float centerY, float axisX, float axisY, float f)` scale only in 1 direction from a center
    `IVec2f` | `scale1d(IVec2 axis, double f)` scale only in 1 direction
    `IVec2f` | `scale1d(IVec2f axis, float f)` scale only in 1 direction
    `IVec2f` | `scale1d(IVec2f center, IVec2f axis, double f)` scale only in 1 direction from a center
    `IVec2f` | `scale1d(IVec2I axis, double f)` scale only in 1 direction
    `IVec2f` | `scale1d(IVec2I axis, IDoubleI f)` scale only in 1 direction
    `IVec2f` | `scale1d(IVec2I center, IVec2I axis, double f)` scale only in 1 direction from a center
    `IVec2f` | `scale1d(IVec2I center, IVec2I axis, IDoubleI f)` scale only in 1 direction from a center
    `IVec2f` | `set(double x, double y)`
    `IVec2f` | `set(float x, float y)`
    `IVec2f` | `set(IDoubleI x, IDoubleI y)`
    `IVec2f` | `set(IVec2 v)`
    `IVec2f` | `set(IVec2f v)`
    `IVec2f` | `set(IVec2I v)`
    `IVec2f` | `shear(double sxy, double syx)` shear operation on XY
    `IVec2f` | `shear(float sxy, float syx)` shear operation on XY
    `IVec2f` | `shear(IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IVec2f` | `shear(IVec2f center, float sxy, float syx)` shear operation on XY
    `IVec2f` | `shear(IVec2I center, double sxy, double syx)` shear operation on XY
    `IVec2f` | `shear(IVec2I center, IDoubleI sxy, IDoubleI syx)` shear operation on XY
    `IVec2f` | `sub(double x, double y)`
    `IVec2f` | `sub(float x, float y)`
    `IVec2f` | `sub(IDoubleI x, IDoubleI y)`
    `IVec2f` | `sub(IVec2 v)`
    `IVec2f` | `sub(IVec2f v)`
    `IVec2f` | `sub(IVec2I v)`
    `IVec2f` | `sum(double vx, double vy)` create a new instance of summation
    `IVec2f` | `sum(float vx, float vy)`
    `IVec2f` | `sum(IVec2 v2, double w2)`
    `IVec2f` | `sum(IVec2 v2, double w1, double w2)`
    `IVec2f` | `sum(IVec2f v)`
    `IVec2f` | `sum(IVec2f v2, double w2)`
    `IVec2f` | `sum(IVec2f v2, double w1, double w2)` weighted sum
    `IVec2f` | `sum(IVec2I... v)` create a new instance of summation
    `IVec2f` | `sum(IVec2I v)` create a new instance of summation
    `IVec2f` | `sum(IVec2I v2, double w2)` create a new instance of weighted sum
    `IVec2f` | `sum(IVec2I v2, double w1, double w2)` create a new instance of weighted sum
    `IVec2f` | `sum(IVec2I v2, IDoubleI w2)` create a new instance of weighted sum
    `IVec2f` | `sum(IVec2I v2, IDoubleI w1, IDoubleI w2)` create a new instance of weighted sum
    `IVec` | `to3d()`
    `IVec` | `to3d(double z)`
    `IVec` | `to3d(IDoubleI z)`
    `IVec4` | `to4d()`
    `IVec4` | `to4d(double z, double w)`
    `IVec4` | `to4d(IDoubleI z, IDoubleI w)`
    `IVec2f` | `transform(IMatrix2I mat)` transform with 2x2 transform matrix
    `IVec2f` | `transform(IMatrix3I mat)` transform with 3x3 transform matrix
    `IVec2f` | `transform(IVec2f xvec, IVec2f yvec)`
    `IVec2f` | `transform(IVec2f xvec, IVec2f yvec, IVec2f translate)`
    `IVec2f` | `transform(IVec2I xvec, IVec2I yvec)` transform with transform vectors
    `IVec2f` | `transform(IVec2I xvec, IVec2I yvec, IVec2I translate)` transform with transform vectors
    `IVec2f` | `transform(IVec2 xvec, IVec2 yvec)`
    `IVec2f` | `transform(IVec2 xvec, IVec2 yvec, IVec2 translate)`
    `IVec2f` | `translate(double x, double y)` alias of add()
    `IVec2f` | `translate(float x, float y)` alias of add()
    `IVec2f` | `translate(IDoubleI x, IDoubleI y)` alias of add()
    `IVec2f` | `translate(IVec2f v)` alias of add()
    `IVec2f` | `translate(IVec2I v)` alias of add()
    `IVec2f` | `unit()` normalize (unitize) vector
    `double` | `x()`
    `IVec2f` | `x(double vx)` setting x component
    `IVec2f` | `x(float vx)` setting x component
    `IVec2f` | `x(IDoubleI vx)` setting x component
    `double` | `x(ISwitchE e)` getting x component
    `IDouble` | `x(ISwitchR r)` getting x component
    `double` | `y()`
    `IVec2f` | `y(double vy)` setting y component
    `IVec2f` | `y(float vy)` setting y component
    `IVec2f` | `y(IDoubleI vy)` setting y component
    `double` | `y(ISwitchE e)` getting y component
    `IDouble` | `y(ISwitchR r)` getting y component
    `IVec2f` | `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, toString, wait, wait, wait`

- - ### Field Detail

    - #### x

          public float x

    - #### y

          public float y

  - ### Constructor Detail

    - #### IVec2f

          public IVec2f()

    - #### IVec2f

          public IVec2f(float x,
                float y)

    - #### IVec2f

          public IVec2f(double x,
                double y)

    - #### IVec2f

          public IVec2f(IVec2f v)

    - #### IVec2f

          public IVec2f(IVec2 v)

    - #### IVec2f

          public IVec2f(IVec2I v)

    - #### IVec2f

          public IVec2f(IDoubleI x,
                IDoubleI y)

    - #### IVec2f

          public IVec2f(IServerI s)

    - #### IVec2f

          public IVec2f(IServerI s,
                float x,
                float y)

    - #### IVec2f

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

    - #### IVec2f

          public IVec2f(IServerI s,
                IVec2f v)

    - #### IVec2f

          public IVec2f(IServerI s,
                IVec2 v)

    - #### IVec2f

          public IVec2f(IServerI s,
                IVec2I v)

    - #### IVec2f

          public IVec2f(IServerI s,
                IDoubleI x,
                IDoubleI y)

  - ### Method Detail

    - #### x

          public double x()

      Specified by:
        `x` in interface `IVec2I`

    - #### y

          public double y()

      Specified by:
        `y` in interface `IVec2I`

    - #### x

          public IVec2f x(double vx)

      setting x component
      Specified by:
        `x` in interface `IVec2I`

    - #### y

          public IVec2f y(double vy)

      setting y component
      Specified by:
        `y` in interface `IVec2I`

    - #### x

          public IVec2f x(float vx)

      setting x component

    - #### y

          public IVec2f y(float vy)

      setting y component

    - #### x

          public IVec2f x(IDoubleI vx)

      setting x component
      Specified by:
        `x` in interface `IVec2I`

    - #### y

          public IVec2f y(IDoubleI vy)

      setting y component
      Specified by:
        `y` in interface `IVec2I`

    - #### x

          public double x(ISwitchE e)

      getting x component
      Specified by:
        `x` in interface `IVec2I`

    - #### y

          public double y(ISwitchE e)

      getting y component
      Specified by:
        `y` in interface `IVec2I`

    - #### x

          public IDouble x(ISwitchR r)

      getting x component
      Specified by:
        `x` in interface `IVec2I`

    - #### y

          public IDouble y(ISwitchR r)

      getting y component
      Specified by:
        `y` in interface `IVec2I`

    - #### get

          public IVec2 get()

      Specified by:
        `get` in interface `IParameter`
      Specified by:
        `get` in interface `IVec2I`
      Specified by:
        `get` in interface `IVec2Op`

    - #### dup

          public IVec2f dup()

      Specified by:
        `dup` in interface `IArithmeticVal<IVec2I,IDoubleI>`
      Specified by:
        `dup` in interface `IVec2I`

    - #### to3d

          public IVec to3d()

      Specified by:
        `to3d` in interface `IVec2I`

    - #### to3d

          public IVec to3d(double z)

      Specified by:
        `to3d` in interface `IVec2I`

    - #### to3d

          public IVec to3d(IDoubleI z)

      Specified by:
        `to3d` in interface `IVec2I`

    - #### to4d

          public IVec4 to4d()

      Specified by:
        `to4d` in interface `IVec2I`

    - #### to4d

          public IVec4 to4d(double z,
                   double w)

      Specified by:
        `to4d` in interface `IVec2I`

    - #### to4d

          public IVec4 to4d(IDoubleI z,
                   IDoubleI w)

      Specified by:
        `to4d` in interface `IVec2I`

    - #### getX

          public IDouble getX()

      Specified by:
        `getX` in interface `IVec2I`

    - #### getY

          public IDouble getY()

      Specified by:
        `getY` in interface `IVec2I`

    - #### set

          public IVec2f set(float x,
                   float y)

    - #### set

          public IVec2f set(double x,
                   double y)

      Specified by:
        `set` in interface `IVec2I`

    - #### set

          public IVec2f set(IVec2f v)

    - #### set

          public IVec2f set(IVec2 v)

    - #### set

          public IVec2f set(IVec2I v)

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

    - #### set

          public IVec2f set(IDoubleI x,
                   IDoubleI y)

      Specified by:
        `set` in interface `IVec2I`

    - #### add

          public IVec2f add(float x,
                   float y)

    - #### add

          public IVec2f add(double x,
                   double y)

      Specified by:
        `add` in interface `IVec2I`

    - #### add

          public IVec2f add(IDoubleI x,
                   IDoubleI y)

      Specified by:
        `add` in interface `IVec2I`

    - #### add

          public IVec2f add(IVec2f v)

    - #### add

          public IVec2f add(IVec2 v)

    - #### add

          public IVec2f add(IVec2I v)

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

    - #### sub

          public IVec2f sub(float x,
                   float y)

    - #### sub

          public IVec2f sub(double x,
                   double y)

      Specified by:
        `sub` in interface `IVec2I`

    - #### sub

          public IVec2f sub(IDoubleI x,
                   IDoubleI y)

      Specified by:
        `sub` in interface `IVec2I`

    - #### sub

          public IVec2f sub(IVec2f v)

    - #### sub

          public IVec2f sub(IVec2 v)

    - #### sub

          public IVec2f sub(IVec2I v)

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

    - #### mul

          public IVec2f mul(float x)

    - #### mul

          public IVec2f mul(double x)

      Specified by:
        `mul` in interface `IVec2I`

    - #### mul

          public IVec2f mul(IDoubleI v)

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

    - #### div

          public IVec2f div(float x)

    - #### div

          public IVec2f div(double x)

      Specified by:
        `div` in interface `IVec2I`

    - #### div

          public IVec2f div(IDoubleI v)

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

    - #### neg

          public IVec2f neg()

      Specified by:
        `neg` in interface `IVec2I`

    - #### rev

          public IVec2f rev()

      Description copied from interface: `IVec2I`
      alias of neg
      Specified by:
        `rev` in interface `IVec2I`

    - #### flip

          public IVec2f flip()

      Description copied from interface: `IVec2I`
      alias of neg
      Specified by:
        `flip` in interface `IVec2I`

    - #### zero

          public IVec2f zero()

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

    - #### add

          public IVec2f add(IVec2f v,
                   float f)

      scale add

    - #### add

          public IVec2f add(IVec2I v,
                   double f)

      Description copied from interface: `IVec2I`
      scale add
      Specified by:
        `add` in interface `IVec2I`

    - #### add

          public IVec2f add(IVec2I v,
                   IDoubleI f)

      Description copied from interface: `IVec2I`
      scale add
      Specified by:
        `add` in interface `IVec2I`

    - #### add

          public IVec2f add(float f,
                   IVec2f v)

      scale add; alias

    - #### add

          public IVec2f add(double f,
                   IVec2I v)

      Description copied from interface: `IVec2I`
      scale add; alias
      Specified by:
        `add` in interface `IVec2I`

    - #### add

          public IVec2f add(IDoubleI f,
                   IVec2I v)

      Description copied from interface: `IVec2I`
      scale add; alias
      Specified by:
        `add` in interface `IVec2I`

    - #### dot

          public float dot(IVec2f v)

      Returns:
        dot product in double

    - #### dot

          public double dot(IVec2 v)

    - #### dot

          public double dot(double vx,
                   double vy)

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

    - #### dot

          public float dot(float vx,
                  float vy)

    - #### dot

          public double dot(IVec2I v)

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

    - #### dot

          public double dot(ISwitchE e,
                   IVec2I v)

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

    - #### dot

          public IDouble dot(ISwitchR r,
                    IVec2I v)

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

    - #### cross

          public IVec cross(IVec2f v)

      Returns:
        cross product in z direction

    - #### cross

          public IVec cross(IVec2 v)

    - #### cross

          public IVec cross(IVec2I v)

      Description copied from interface: `IVec2I`
      cross product, returning 3D vector
      Specified by:
        `cross` in interface `IVec2I`

    - #### cross

          public IVec cross(double vx,
                   double vy)

      Description copied from interface: `IVec2I`
      cross product, returning 3D vector
      Specified by:
        `cross` in interface `IVec2I`

    - #### cross

          public IVec cross(float vx,
                   float vy)

    - #### len

          public double len()

      Description copied from interface: `IVec2I`
      getting length
      Specified by:
        `len` in interface `IVec2I`
      Returns:
        length (norm) of the vector in double

    - #### len

          public double len(ISwitchE e)

      Description copied from interface: `IVec2I`
      getting length
      Specified by:
        `len` in interface `IVec2I`

    - #### len

          public IDouble len(ISwitchR r)

      Description copied from interface: `IVec2I`
      getting length
      Specified by:
        `len` in interface `IVec2I`

    - #### len2

          public double len2()

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

    - #### len2

          public double len2(ISwitchE e)

      Description copied from interface: `IVec2I`
      getting squared length
      Specified by:
        `len2` in interface `IVec2I`

    - #### len2

          public IDouble len2(ISwitchR r)

      Description copied from interface: `IVec2I`
      getting squared length
      Specified by:
        `len2` in interface `IVec2I`

    - #### len

          public IVec2f len(IDoubleI l)

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

    - #### len

          public IVec2f len(double l)

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

    - #### len

          public IVec2f len(float l)

    - #### unit

          public IVec2f unit()

      normalize (unitize) vector
      Specified by:
        `unit` in interface `IVec2I`

    - #### ortho

          public IVec2f ortho()

      rotate vector in Pi/2
      Specified by:
        `ortho` in interface `IVec2I`

    - #### dist

          public double dist(IVec2I v)

      Description copied from interface: `IVec2I`
      distance
      Specified by:
        `dist` in interface `IVec2I`

    - #### dist

          public double dist(IVec2 v)

    - #### dist

          public double dist(IVec2f v)

    - #### dist

          public double dist(double vx,
                    double vy)

      Description copied from interface: `IVec2I`
      distance
      Specified by:
        `dist` in interface `IVec2I`

    - #### dist

          public double dist(float vx,
                    float vy)

    - #### dist

          public double dist(ISwitchE e,
                    IVec2I v)

      Description copied from interface: `IVec2I`
      distance
      Specified by:
        `dist` in interface `IVec2I`

    - #### dist

          public IDouble dist(ISwitchR r,
                     IVec2I v)

      Description copied from interface: `IVec2I`
      distance
      Specified by:
        `dist` in interface `IVec2I`

    - #### dist2

          public double dist2(IVec2I v)

      Description copied from interface: `IVec2I`
      squared distance
      Specified by:
        `dist2` in interface `IVec2I`

    - #### dist2

          public double dist2(IVec2 v)

    - #### dist2

          public float dist2(IVec2f v)

    - #### dist2

          public double dist2(double vx,
                     double vy)

      Description copied from interface: `IVec2I`
      squared distance
      Specified by:
        `dist2` in interface `IVec2I`

    - #### dist2

          public float dist2(float vx,
                    float vy)

    - #### dist2

          public double dist2(ISwitchE e,
                     IVec2I v)

      Description copied from interface: `IVec2I`
      squared distance
      Specified by:
        `dist2` in interface `IVec2I`

    - #### dist2

          public IDouble dist2(ISwitchR r,
                      IVec2I v)

      Description copied from interface: `IVec2I`
      squared distance
      Specified by:
        `dist2` in interface `IVec2I`

    - #### eq

          public boolean eq(IVec2I v)

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

    - #### eq

          public boolean eq(IVec2 v)

    - #### eq

          public boolean eq(IVec2f v)

    - #### eq

          public boolean eq(double vx,
                   double vy)

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

    - #### eq

          public boolean eq(float vx,
                   float vy)

    - #### eq

          public boolean eq(ISwitchE e,
                   IVec2I v)

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

    - #### eq

          public IBool eq(ISwitchR r,
                 IVec2I v)

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

    - #### eq

          public boolean eq(IVec2I v,
                   double tolerance)

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

    - #### eq

          public boolean eq(IVec2 v,
                   double tolerance)

    - #### eq

          public boolean eq(IVec2f v,
                   double tolerance)

    - #### eq

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

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

    - #### eq

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

    - #### eq

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

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

    - #### eq

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

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

    - #### eqX

          public boolean eqX(IVec2f v)

    - #### eqY

          public boolean eqY(IVec2f v)

    - #### eqX

          public boolean eqX(IVec2 v)

    - #### eqY

          public boolean eqY(IVec2 v)

    - #### eqX

          public boolean eqX(double vx)

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

    - #### eqY

          public boolean eqY(double vy)

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

    - #### eqX

          public boolean eqX(float vx)

    - #### eqY

          public boolean eqY(float vy)

    - #### eqX

          public boolean eqX(IVec2I v)

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

    - #### eqY

          public boolean eqY(IVec2I v)

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

    - #### eqX

          public boolean eqX(ISwitchE e,
                    IVec2I v)

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

    - #### eqY

          public boolean eqY(ISwitchE e,
                    IVec2I v)

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

    - #### eqX

          public IBool eqX(ISwitchR r,
                  IVec2I v)

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

    - #### eqY

          public IBool eqY(ISwitchR r,
                  IVec2I v)

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

    - #### eqX

          public boolean eqX(IVec2f v,
                    double tolerance)

    - #### eqY

          public boolean eqY(IVec2f v,
                    double tolerance)

    - #### eqX

          public boolean eqX(IVec2 v,
                    double tolerance)

    - #### eqY

          public boolean eqY(IVec2 v,
                    double tolerance)

    - #### eqX

          public boolean eqX(double vx,
                    double tolerance)

      Description copied from interface: `IVec2I`
      check if X is same within tolerance
      Specified by:
        `eqX` in interface `IVec2I`

    - #### eqY

          public boolean eqY(double vy,
                    double tolerance)

      Description copied from interface: `IVec2I`
      check if Y is same within tolerance
      Specified by:
        `eqY` in interface `IVec2I`

    - #### eqX

          public boolean eqX(float vx,
                    double tolerance)

    - #### eqY

          public boolean eqY(float vy,
                    double tolerance)

    - #### eqX

          public boolean eqX(IVec2I v,
                    double tolerance)

      Description copied from interface: `IVec2I`
      check if X is same within tolerance
      Specified by:
        `eqX` in interface `IVec2I`

    - #### eqY

          public boolean eqY(IVec2I v,
                    double tolerance)

      Description copied from interface: `IVec2I`
      check if Y is same within tolerance
      Specified by:
        `eqY` in interface `IVec2I`

    - #### eqX

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

      Description copied from interface: `IVec2I`
      check if X is same within tolerance
      Specified by:
        `eqX` in interface `IVec2I`

    - #### eqY

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

      Description copied from interface: `IVec2I`
      check if Y is same within tolerance
      Specified by:
        `eqY` in interface `IVec2I`

    - #### eqX

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

      Description copied from interface: `IVec2I`
      check if X is same within tolerance
      Specified by:
        `eqX` in interface `IVec2I`

    - #### eqY

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

      Description copied from interface: `IVec2I`
      check if Y is same within tolerance
      Specified by:
        `eqY` in interface `IVec2I`

    - #### angle

          public double angle(IVec2 v)

      Returns:
        angle of two vector. From -Pi to Pi. Sign follows right-handed screw rule

    - #### angle

          public float angle(IVec2f v)

    - #### angle

          public double angle(double vx,
                     double vy)

      Description copied from interface: `IVec2I`
      angle between two vectors
      Specified by:
        `angle` in interface `IVec2I`

    - #### angle

          public float angle(float vx,
                    float vy)

    - #### angle

          public double angle(IVec2I v)

      Description copied from interface: `IVec2I`
      angle between two vectors
      Specified by:
        `angle` in interface `IVec2I`

    - #### angle

          public double angle(ISwitchE e,
                     IVec2I v)

      Description copied from interface: `IVec2I`
      angle between two vectors
      Specified by:
        `angle` in interface `IVec2I`

    - #### angle

          public IDouble angle(ISwitchR r,
                      IVec2I v)

      Description copied from interface: `IVec2I`
      angle between two vectors
      Specified by:
        `angle` in interface `IVec2I`

    - #### rot

          public IVec2f rot(double angle)

      Description copied from interface: `IVec2I`
      rotation
      Specified by:
        `rot` in interface `IVec2I`

    - #### rot

          public IVec2f rot(float angle)

    - #### rot

          public IVec2f rot(IDoubleI angle)

      Description copied from interface: `IVec2I`
      rotation
      Specified by:
        `rot` in interface `IVec2I`

    - #### rot

          public IVec2f rot(IVec2f center,
                   double angle)

    - #### rot

          public IVec2f rot(IVec2 center,
                   double angle)

    - #### rot

          public IVec2f rot(double centerX,
                   double centerY,
                   double angle)

      Description copied from interface: `IVec2I`
      rotation around a center
      Specified by:
        `rot` in interface `IVec2I`

    - #### rot

          public IVec2f rot(float centerX,
                   float centerY,
                   float angle)

    - #### rot

          public IVec2f rot(IVec2I center,
                   double angle)

      Description copied from interface: `IVec2I`
      rotation around a center
      Specified by:
        `rot` in interface `IVec2I`

    - #### rot

          public IVec2f rot(IVec2I center,
                   IDoubleI angle)

      Description copied from interface: `IVec2I`
      rotation around a center
      Specified by:
        `rot` in interface `IVec2I`

    - #### rot

          public IVec2f rot(IVec2f destDir)

    - #### rot

          public IVec2f rot(IVec2 destDir)

    - #### rot

          public IVec2f rot(IVec2I destDir)

      Description copied from interface: `IVec2I`
      rotate towards destination direction
      Specified by:
        `rot` in interface `IVec2I`

    - #### rot

          public IVec2f rot(IVec2f center,
                   IVec2f destPt)

    - #### rot

          public IVec2f rot(IVec2 center,
                   IVec2 destPt)

    - #### rot

          public IVec2f rot(IVec2I center,
                   IVec2I destPt)

      Description copied from interface: `IVec2I`
      rotate around a center towards destination point
      Specified by:
        `rot` in interface `IVec2I`

    - #### scale

          public IVec2f scale(double f)

      Description copied from interface: `IVec2I`
      alias of mul
      Specified by:
        `scale` in interface `IVec2I`

    - #### scale

          public IVec2f scale(float f)

    - #### scale

          public IVec2f scale(IDoubleI f)

      Description copied from interface: `IVec2I`
      alias of mul
      Specified by:
        `scale` in interface `IVec2I`

    - #### scale

          public IVec2f scale(IVec2f center,
                     double f)

    - #### scale

          public IVec2f scale(IVec2 center,
                     double f)

    - #### scale

          public IVec2f scale(IVec2I center,
                     double f)

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

    - #### scale

          public IVec2f scale(IVec2I center,
                     IDoubleI f)

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

    - #### scale

          public IVec2f scale(double centerX,
                     double centerY,
                     double f)

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

    - #### scale

          public IVec2f scale(float centerX,
                     float centerY,
                     float f)

    - #### scale1d

          public IVec2f scale1d(IVec2f axis,
                       float f)

      scale only in 1 direction

    - #### scale1d

          public IVec2f scale1d(IVec2 axis,
                       double f)

      scale only in 1 direction

    - #### scale1d

          public IVec2f scale1d(IVec2I axis,
                       double f)

      scale only in 1 direction
      Specified by:
        `scale1d` in interface `IVec2I`

    - #### scale1d

          public IVec2f scale1d(IVec2I axis,
                       IDoubleI f)

      scale only in 1 direction
      Specified by:
        `scale1d` in interface `IVec2I`

    - #### scale1d

          public IVec2f scale1d(float axisX,
                       float axisY,
                       float f)

      scale only in 1 direction

    - #### scale1d

          public IVec2f scale1d(double axisX,
                       double axisY,
                       double f)

      scale only in 1 direction
      Specified by:
        `scale1d` in interface `IVec2I`

    - #### scale1d

          public IVec2f scale1d(IVec2f center,
                       IVec2f axis,
                       double f)

      scale only in 1 direction from a center

    - #### scale1d

          public IVec2f scale1d(IVec2I center,
                       IVec2I axis,
                       double f)

      scale only in 1 direction from a center
      Specified by:
        `scale1d` in interface `IVec2I`

    - #### scale1d

          public IVec2f scale1d(IVec2I center,
                       IVec2I axis,
                       IDoubleI f)

      scale only in 1 direction from a center
      Specified by:
        `scale1d` in interface `IVec2I`

    - #### scale1d

          public IVec2f scale1d(float centerX,
                       float centerY,
                       float axisX,
                       float axisY,
                       float f)

      scale only in 1 direction from a center

    - #### scale1d

          public IVec2f scale1d(double centerX,
                       double centerY,
                       double axisX,
                       double axisY,
                       double f)

      scale only in 1 direction from a center
      Specified by:
        `scale1d` in interface `IVec2I`

    - #### ref

          public IVec2f ref(IVec2f lineDir)

      reflect (mirror) 2 dimensionally to the other side of the line
      Parameters:
        `lineDir` - direction of reflection line

    - #### ref

          public IVec2f ref(IVec2 lineDir)

    - #### ref

          public IVec2f ref(double lineX,
                   double lineY)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line
      Specified by:
        `ref` in interface `IVec2I`

    - #### ref

          public IVec2f ref(float lineX,
                   float lineY)

    - #### ref

          public IVec2f ref(IVec2I lineDir)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line
      Specified by:
        `ref` in interface `IVec2I`

    - #### ref

          public IVec2f ref(IVec2f linePt,
                   IVec2f lineDir)

    - #### ref

          public IVec2f ref(IVec2 linePt,
                   IVec2 lineDir)

    - #### ref

          public IVec2f ref(double linePtX,
                   double linePtY,
                   double lineDirX,
                   double lineDirY)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line at a center
      Specified by:
        `ref` in interface `IVec2I`

    - #### ref

          public IVec2f ref(float linePtX,
                   float linePtY,
                   float lineDirX,
                   float lineDirY)

    - #### ref

          public IVec2f ref(IVec2I linePt,
                   IVec2I lineDir)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line at a center
      Specified by:
        `ref` in interface `IVec2I`

    - #### mirror

          public IVec2f mirror(IVec2f lineDir)

    - #### mirror

          public IVec2f mirror(IVec2 lineDir)

    - #### mirror

          public IVec2f mirror(IVec2I lineDir)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line
      Specified by:
        `mirror` in interface `IVec2I`

    - #### mirror

          public IVec2f mirror(double lineX,
                      double lineY)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line
      Specified by:
        `mirror` in interface `IVec2I`

    - #### mirror

          public IVec2f mirror(float lineX,
                      float lineY)

    - #### mirror

          public IVec2f mirror(IVec2f linePt,
                      IVec2f lineDir)

    - #### mirror

          public IVec2f mirror(IVec2 linePt,
                      IVec2 lineDir)

    - #### mirror

          public IVec2f mirror(IVec2I linePt,
                      IVec2I lineDir)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line at a center
      Specified by:
        `mirror` in interface `IVec2I`

    - #### mirror

          public IVec2f mirror(double linePtX,
                      double linePtY,
                      double lineDirX,
                      double lineDirY)

      Description copied from interface: `IVec2I`
      reflect (mirror) 2 dimensionally to the other side of the line at a center
      Specified by:
        `mirror` in interface `IVec2I`

    - #### mirror

          public IVec2f mirror(float linePtX,
                      float linePtY,
                      float lineDirX,
                      float lineDirY)

    - #### shear

          public IVec2f shear(float sxy,
                     float syx)

      shear operation on XY

    - #### shear

          public IVec2f shear(double sxy,
                     double syx)

      shear operation on XY
      Specified by:
        `shear` in interface `IVec2I`

    - #### shear

          public IVec2f shear(IDoubleI sxy,
                     IDoubleI syx)

      shear operation on XY
      Specified by:
        `shear` in interface `IVec2I`

    - #### shear

          public IVec2f shear(IVec2f center,
                     float sxy,
                     float syx)

      shear operation on XY

    - #### shear

          public IVec2f shear(IVec2I center,
                     double sxy,
                     double syx)

      shear operation on XY
      Specified by:
        `shear` in interface `IVec2I`

    - #### shear

          public IVec2f shear(IVec2I center,
                     IDoubleI sxy,
                     IDoubleI syx)

      shear operation on XY
      Specified by:
        `shear` in interface `IVec2I`

    - #### translate

          public IVec2f translate(float x,
                         float y)

      alias of add()

    - #### translate

          public IVec2f translate(double x,
                         double y)

      alias of add()
      Specified by:
        `translate` in interface `IVec2I`

    - #### translate

          public IVec2f translate(IDoubleI x,
                         IDoubleI y)

      alias of add()
      Specified by:
        `translate` in interface `IVec2I`

    - #### translate

          public IVec2f translate(IVec2f v)

      alias of add()

    - #### translate

          public IVec2f translate(IVec2I v)

      alias of add()
      Specified by:
        `translate` in interface `IVec2I`

    - #### transform

          public IVec2f transform(IMatrix2I mat)

      Description copied from interface: `IVec2I`
      transform with 2x2 transform matrix
      Specified by:
        `transform` in interface `IVec2I`

    - #### transform

          public IVec2f transform(IMatrix3I mat)

      Description copied from interface: `IVec2I`
      transform with 3x3 transform matrix
      Specified by:
        `transform` in interface `IVec2I`

    - #### transform

          public IVec2f transform(IVec2f xvec,
                         IVec2f yvec)

    - #### transform

          public IVec2f transform(IVec2 xvec,
                         IVec2 yvec)

    - #### transform

          public IVec2f transform(IVec2I xvec,
                         IVec2I yvec)

      Description copied from interface: `IVec2I`
      transform with transform vectors
      Specified by:
        `transform` in interface `IVec2I`

    - #### transform

          public IVec2f transform(IVec2f xvec,
                         IVec2f yvec,
                         IVec2f translate)

    - #### transform

          public IVec2f transform(IVec2 xvec,
                         IVec2 yvec,
                         IVec2 translate)

    - #### transform

          public IVec2f transform(IVec2I xvec,
                         IVec2I yvec,
                         IVec2I translate)

      Description copied from interface: `IVec2I`
      transform with transform vectors
      Specified by:
        `transform` in interface `IVec2I`

    - #### mv

          public IVec2f mv(float x,
                  float y)

      mv() is alias of add()

    - #### mv

          public IVec2f mv(double x,
                  double y)

      mv() is alias of add()
      Specified by:
        `mv` in interface `IVec2I`

    - #### mv

          public IVec2f mv(IDoubleI x,
                  IDoubleI y)

      mv() is alias of add()
      Specified by:
        `mv` in interface `IVec2I`

    - #### mv

          public IVec2f mv(IVec2f v)

      mv() is alias of add()

    - #### mv

          public IVec2f mv(IVec2I v)

      mv() is alias of add()
      Specified by:
        `mv` in interface `IVec2I`

    - #### cp

          public IVec2f cp()

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

    - #### cp

          public IVec2f cp(float x,
                  float y)

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

    - #### cp

          public IVec2f cp(double x,
                  double y)

      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `IVec2I`

    - #### cp

          public IVec2f cp(IDoubleI x,
                  IDoubleI y)

      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `IVec2I`

    - #### cp

          public IVec2f cp(IVec2f v)

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

    - #### cp

          public IVec2f cp(IVec2I v)

      cp() is alias of dup().add()
      Specified by:
        `cp` in interface `IVec2I`

    - #### dif

          public IVec2f dif(IVec2I v)

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

    - #### dif

          public IVec2f dif(IVec2f v)

    - #### dif

          public IVec2f dif(double vx,
                   double vy)

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

    - #### dif

          public IVec2f dif(float vx,
                   float vy)

    - #### diff

          public IVec2f diff(IVec2I v)

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

    - #### diff

          public IVec2f diff(IVec2f v)

    - #### diff

          public IVec2f diff(double vx,
                    double vy)

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

    - #### diff

          public IVec2f diff(float vx,
                    float vy)

    - #### mid

          public IVec2f mid(IVec2I v)

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

    - #### mid

          public IVec2f mid(IVec2f v)

    - #### mid

          public IVec2f mid(double vx,
                   double vy)

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

    - #### mid

          public IVec2f mid(float vx,
                   float vy)

    - #### sum

          public IVec2f sum(IVec2I v)

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

    - #### sum

          public IVec2f sum(IVec2f v)

    - #### sum

          public IVec2f sum(double vx,
                   double vy)

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

    - #### sum

          public IVec2f sum(float vx,
                   float vy)

    - #### sum

          public IVec2f sum(IVec2I... v)

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

    - #### bisect

          public IVec2f bisect(IVec2f v)

    - #### bisect

          public IVec2f bisect(IVec2 v)

    - #### bisect

          public IVec2f bisect(IVec2I v)

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

    - #### bisect

          public IVec2f bisect(double vx,
                      double vy)

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

    - #### sum

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

      weighted sum

    - #### sum

          public IVec2f sum(IVec2 v2,
                   double w1,
                   double w2)

    - #### sum

          public IVec2f sum(IVec2I v2,
                   double w1,
                   double w2)

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

    - #### sum

          public IVec2f sum(IVec2I v2,
                   IDoubleI w1,
                   IDoubleI w2)

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

    - #### sum

          public IVec2f sum(IVec2f v2,
                   double w2)

    - #### sum

          public IVec2f sum(IVec2 v2,
                   double w2)

    - #### sum

          public IVec2f sum(IVec2I v2,
                   double w2)

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

    - #### sum

          public IVec2f sum(IVec2I v2,
                   IDoubleI w2)

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

    - #### nml

          public IVec nml(IVec2I v)

      alias of cross
      Specified by:
        `nml` in interface `IVec2I`

    - #### nml

          public IVec nml(double vx,
                 double vy)

      alias of cross
      Specified by:
        `nml` in interface `IVec2I`

    - #### nml

          public IVec nml(float vx,
                 float vy)

      alias of cross

    - #### nml

          public IVec nml(IVec2I pt1,
                 IVec2I pt2)

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

    - #### nml

          public IVec nml(double vx1,
                 double vy1,
                 double vx2,
                 double vy2)

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

    - #### nml

          public IVec nml(float vx1,
                 float vy1,
                 float vx2,
                 float vy2)

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

    - #### isValid

          public boolean isValid()

      checking x, y is valid number (not Infinite, nor NaN).
      Specified by:
        `isValid` in interface `IVec2I`