Back to class index
float4[Class Summary]
x
y
z
w
zero[static][const]
one[static][const]
unitX[static][const]
unitY[static][const]
unitZ[static][const]
unitW[static][const]
nan[static][const]
inf[static][const]
ctor (+8 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)
xy()[const]
xyz()[const]
Float3Part() (+1 overload)
Swizzled(i,j,k,l)[const] (+2 overloads)
SetFromScalar(scalar) (+1 overload)
SetFromSphericalCoordinates(...) (+2 overloads)
ToSphericalCoordinates()[const]
ToSphericalCoordinatesNormalized()[const]
Set(x,y,z,w)
LengthSq3()[const]
Length3()[const]
LengthSq4()[const]
LengthSq()[const]
Length4()[const]
Length()[const]
Normalize3()
Normalize4()
Normalize()
Normalized3()[const]
Normalized4()[const]
Normalized()[const]
NormalizeW()
IsWZeroOrOne(epsilon)[const]
IsZero3(epsilonSq)[const]
IsZero4(epsilonSq)[const]
IsZero(epsilonSq)[const]
IsNormalized3(epsilonSq)[const]
IsNormalized4(epsilonSq)[const]
IsNormalized(epsilonSq)[const]
Scale3(scalar)
ScaleToLength3(newLength)
ScaleToLength(newLength)
ScaledToLength3(newLength)[const]
ScaledToLength(newLength)[const]
IsFinite()[const]
IsPerpendicular3(other,epsilonSq)[const]
IsPerpendicular(other,epsilonSq)[const]
ToString()[const]
SerializeToString()[const]
SerializeToCodeString()[const]
SumOfElements()[const]
ProductOfElements()[const]
AverageOfElements()[const]
MinElement()[const]
MinElementIndex()[const]
MaxElement()[const]
MaxElementIndex()[const]
Abs()[const]
Neg3()[const]
Neg4()[const]
Recip3()[const]
Recip4()[const]
RecipFast4()[const]
Min(ceil)[const] (+1 overload)
Max(floor)[const] (+1 overload)
Clamp(floor,ceil)[const] (+1 overload)
Clamp01()[const]
Lerp(b,t)[const]
Distance3Sq(rhs)[const]
Distance3(rhs)[const]
Distance4Sq(rhs)[const]
DistanceSq(rhs)[const]
Distance4(rhs)[const]
Distance(rhs)[const]
Dot3(rhs)[const] (+1 overload)
Dot4(rhs)[const]
Dot(rhs)[const]
Cross3(rhs)[const] (+1 overload)
Cross(rhs)[const]
OuterProduct(rhs)[const]
Perpendicular3(hint,hint2)[const]
Perpendicular(hint,hint2)[const]
AnotherPerpendicular3(hint,hint2)[const]
AnotherPerpendicular(hint,hint2)[const]
RandomPerpendicular(rng)[const]
Reflect3(normal)[const]
Reflect(normal)[const]
Refract(...)[const]
AngleBetween3(other)[const]
AngleBetweenNorm3(normalizedVector)[const]
AngleBetween4(other)[const]
AngleBetweenNorm4(normalizedVector)[const]
ProjectTo3(target)[const]
ProjectTo(target)[const]
ProjectToNorm3(target)[const]
ProjectToNorm(target)[const]
Equals(other,epsilon)[const] (+1 overload)
BitEquals(other)[const]
FromScalar(scalar)[static] (+1 overload)
FromSphericalCoordinates(...)[static] (+2 overloads)
Orthogonalize(a,b)[static] (+1 overload)
AreOrthogonal(a,b,epsilon)[static] (+1 overload)
AreCollinear(p1,p2,p3,epsilon)[static]
Orthonormalize(a,b)[static] (+1 overload)
AreOrthonormal(a,b,epsilon)[static] (+1 overload)
FromString(str,outEndStr)[static] (+1 overload)
Lerp(a,b,t)[static]
RandomDir(lcg,length)[static]
RandomSphere(lcg,center,radius)[static]
RandomBox(...)[static] (+2 overloads)
RandomGeneral(...)[static]

float4::ScaleToLength3

Syntax

float float4::ScaleToLength3(float newLength); [15 lines of code]

Scales the (x, y, z) part of this vector so that its new length is as given.

This is effectively the same as normalizing the vector first and then multiplying by newLength.

Return Value

False if the length of this vector is zero, and the vector could not be scaled to the specified length.

See Also

Length3(), Mul(), Scale3(), ScaledToLength3().

Work in progress:

Todo: in float float4::ScaleToLength3(float newLength):
Add SSE-enabled version.
Todo: in float float4::ScaleToLength3(float newLength):
Add ClampToLength3.