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::Orthonormalize

Syntax

void float2::Orthonormalize(float2 &a, float2 &b); [6 lines of code]

Makes the given vectors linearly independent and normalized in length.

This function directly follows the Gram-Schmidt procedure on the input vectors. The vector a is first normalized, and vector b is modified to be perpendicular to a, and also normalized.

Note
If either of the input vectors is zero, then the resulting set of vectors cannot be made orthonormal.

See Also

Orthogonalize(), AreOrthogonal(), AreOrthonormal().