Back to class index
float2[Class Summary]
x
y
zero[static][const]
one[static][const]
unitX[static][const]
unitY[static][const]
nan[static][const]
inf[static][const]
ctor (+3 overloads)
ptr() (+1 overload)
operator[](index) (+1 overload)
At(index) (+1 overload)
operators +,-,*,/(v)[const] (+1 overload)
operators +=,-=,*=,/=(v)
Add/Sub/Mul/Div(v)[const] (+1 overload)
xx/xy/yx/yy()[const]
Swizzled(i,j,k,l)[const] (+2 overloads)
SetFromScalar(scalar)
Set(x,y)
SetFromPolarCoordinates(theta,length) (+1 overload)
ToPolarCoordinates()[const]
AimedAngle()[const]
Length()[const]
LengthSq()[const]
Normalize()
Normalized()[const]
ScaleToLength(newLength)
ScaledToLength(newLength)[const]
IsNormalized(epsilonSq)[const]
IsZero(epsilonSq)[const]
IsFinite()[const]
IsPerpendicular(other,epsilonSq)[const]
Equals(other,epsilon)[const] (+1 overload)
BitEquals(other)[const]
ToString()[const]
SerializeToString()[const]
SerializeToCodeString()[const]
SumOfElements()[const]
ProductOfElements()[const]
AverageOfElements()[const]
MinElement()[const]
MinElementIndex()[const]
MaxElement()[const]
MaxElementIndex()[const]
Abs()[const]
Neg()[const]
Recip()[const]
Min(ceil)[const] (+1 overload)
Max(floor)[const] (+1 overload)
Clamp(floor,ceil)[const] (+1 overload)
Clamp01()[const]
Distance(point)[const]
DistanceSq(point)[const]
Dot(v)[const]
Perp()[const]
PerpDot(rhs)[const]
Rotate90CW()
Rotated90CW()[const]
Rotate90CCW()
Rotated90CCW()[const]
Reflect(normal)[const]
Refract(...)[const]
ProjectTo(direction)[const]
ProjectToNorm(direction)[const]
AngleBetween(other)[const]
AngleBetweenNorm(normalizedVector)[const]
Decompose(...)[const]
Lerp(b,t)[const]
FromScalar(scalar)[static]
FromPolarCoordinates(theta,length)[static] (+1 overload)
FromString(str,outEndStr)[static] (+1 overload)
Lerp(a,b,t)[static]
Orthogonalize(a,b)[static]
AreOrthogonal(a,b,epsilon)[static]
Orthonormalize(a,b)[static]
OrientedCCW(a,b,c)[static]
ConvexHull(...)[static]
ConvexHullInPlace(...)[static]
ConvexHullContains(...)[static]
MinAreaRectInPlace(...)[static]
RandomDir(lcg,length)[static]
RandomBox(...)[static]

float2::Add/Sub/Mul/Div

Syntax

float2 float2::Add(const float2 &v) const; [1 line of code]

Adds a vector to this vector.

Return Value

(x+v.x, y+v.y).

Syntax

float2 float2::Add(float s) const; [4 lines of code]

Adds the vector (s,s) to this vector.

Note
Mathematically, the addition of a vector and scalar is not defined in linear space structures, but this function is provided here for syntactical convenience.

Return Value

(x+s, y+s).

Syntax

float2 float2::Sub(const float2 &v) const; [1 line of code]

Subtracts a vector from this vector.

Return Value

(x-v.x, y-v.y).

Syntax

float2 float2::Sub(float s) const; [4 lines of code]

Subtracts the vector (s,s) from this vector.

Note
Mathematically, the subtraction of a vector by a scalar is not defined in linear space structures, but this function is provided here for syntactical convenience.

Return Value

(x-s, y-s).

Syntax

float2 float2::SubLeft(float s) const; [4 lines of code]

Subtracts this vector from the vector (s,s).

Note
Mathematically, the subtraction of a scalar by a vector is not defined in linear space structures, but this function is provided here for syntactical convenience.

Return Value

(s-x, s-y).

Syntax

float2 float2::Mul(const float2 &v) const; [4 lines of code]

Multiplies this vector by a vector, element-wise.

Note
Mathematically, the multiplication of two vectors is not defined in linear space structures, but this function is provided here for syntactical convenience.

Return Value

(x*v.x, y*v.y).

Syntax

float2 float2::Mul(float s) const; [1 line of code]

Multiplies this vector by a scalar.

Return Value

(x*s, y*s).

Syntax

float2 float2::Div(const float2 &v) const; [4 lines of code]

Divides this vector by a vector, element-wise.

Note
Mathematically, the division of two vectors is not defined in linear space structures, but this function is provided here for syntactical convenience.

Return Value

(x/v.x, y/v.y).

Syntax

float2 float2::Div(float s) const; [1 line of code]

Divides this vector by a scalar.

Return Value

(x/s, y/s).

Syntax

float2 float2::DivLeft(float s) const; [4 lines of code]

Divides the vector (s,s) by this vector, element-wise.

Note
Mathematically, the division of a scalar by a vector is not defined in linear space structures, but this function is provided here for syntactical convenience.

Return Value

(s/x, s/y).