Back to class indexx | y | z | zero[static][const] | one[static][const] | unitX[static][const] | unitY[static][const] | unitZ[static][const] | nan[static][const] | inf[static][const] | ctor (+4 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/xz/..()[const] | xyz/xzy/yzx/..()[const] | Swizzled(i,j,k,l)[const] (+2 overloads) | SetFromScalar(scalar) | Set(x,y,z) | SetFromSphericalCoordinates(...) (+2 overloads) | ToPos4()[const] | ToDir4()[const] | ToSphericalCoordinates()[const] | ToSphericalCoordinatesNormalized()[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] | ClampLength(maxLength)[const] (+1 overload) | 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] | PerpendicularBasis(outB,outC)[const] | RandomPerpendicular(rng)[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] | FromSphericalCoordinates(...)[static] (+2 overloads) | AreCollinear(p1,p2,p3,epsilonSq)[static] | FromString(str,outEndStr)[static] (+1 overload) | 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] (+2 overloads) | RandomGeneral(...)[static] |
| float3::RefractSyntaxfloat3 float3::Refract(const float3 &normal, float negativeSideRefractionIndex, float positiveSideRefractionIndex) const; [10 lines of code]Refracts this vector about a plane with the given normal. Implementation from http://www.flipcode.com/archives/reflection_transmission.pdf . By convention, the this vector points towards the plane, and the returned vector points away from the plane. When the ray is going from a denser material to a lighter one, total internal reflection can occur. In this case, this function will just return a reflected vector from a call to [Reflect()]. Parametersconst float3 &normalfloatnegativeSideRefractionIndexfloatpositiveSideRefractionIndex See Also Reflect(). |