Back to class index
float3[Class Summary]
x
y
z
zero[static][const]
one[static][const]
unitX[static][const]
unitY[static][const]
unitZ[static][const]
nan[static][const]
inf[static][const]
ctor (+5 overloads)
ptr() (+1 overload)
operator[](index) (+1 overload)
At(index) (+1 overload)
operators +,-,*,/(v)[const]
operators +=,-=,*=,/=(v)
Add/Sub/Mul/Div(v)[const] (+1 overload)
xx/xy/xz/..()[const]
xyz/xzy/yzx/..()[const]
Swizzled(i,j)[const] (+2 overloads)
SetFromScalar(scalar)
Set(x,y,z)
ToPos4()[const]
ToDir4()[const]
Length()[const]
LengthSq()[const]
Normalize()
Normalized()[const]
ScaleToLength(newLength)
ScaledToLength(newLength)[const]
IsNormalized(epsilonSq)[const]
IsZero(epsilonSq)[const]
IsFinite()[const]
IsPerpendicular(other,epsilon)[const]
Equals(other,epsilon)[const] (+1 overload)
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] (+9 overloads)
DistanceSq(point)[const]
Dot(v)[const]
Cross(v)[const]
OuterProduct(rhs)[const]
Perpendicular(hint,hint2)[const]
AnotherPerpendicular(hint,hint2)[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]
FromString(str)[static]
ScalarTripleProduct(u,v,w)[static]
Lerp(a,b,t)[static]
Orthogonalize(a,b)[static] (+1 overload)
AreOrthogonal(a,b,epsilon)[static] (+1 overload)
Orthonormalize(a,b)[static] (+1 overload)
AreOrthonormal(a,b,epsilon)[static] (+1 overload)
RandomDir(lcg,length)[static]
RandomSphere(lcg,center,radius)[static]
RandomBox(...)[static] (+1 overload)

float3::ptr

Syntax

float * float3::ptr(); [4 lines of code]
const float * float3::ptr() const; [4 lines of code]

Casts this float3 to a C array.

This function does not allocate new memory or make a copy of this float3. This function simply returns a C pointer view to this data structure. Use ptr()[0] to access the x component of this float3, ptr()[1] to access y, and ptr()[2] to access the z component of this float3.

Note
Since the returned pointer points to this class, do not dereference the pointer after this float3 has been deleted. You should never store a copy of the returned pointer. This function is provided for compatibility with other APIs which require raw C pointer access to vectors. Avoid using this function in general, and instead always use the operator [] or the At() function to access the elements of this vector by index.

Return Value

A pointer to the first float element of this class. The data is contiguous in memory.

Performance

float * float3::ptr()

This function could not be profiled. Either the function body is too small, or appropriate function parameters could not be generated.
This function does not perform dynamic memory allocation.

const float * float3::ptr() const

This function could not be profiled. Either the function body is too small, or appropriate function parameters could not be generated.
This function does not perform dynamic memory allocation.

See Also

operator [](), At().

Leave a Comment

Name:
Comments:
Captcha:captcha image Type in the black symbols:
Back to class index