Back to class index
Plane[Class Summary]
normal
d
ctor (+6 overloads)
IsDegenerate()[const]
Set(v1,v2,v3) (+1 overload)
ReverseNormal()
PointOnPlane()[const]
Point(u,v)[const] (+1 overload)
Translate(offset)
Transform(transform) (+3 overloads)
IsInPositiveDirection(directionVector)[const]
IsOnPositiveSide(point)[const]
ExamineSide(triangle)[const]
AreOnSameSide(p1,p2)[const]
Distance(point)[const] (+4 overloads)
SignedDistance(point)[const] (+11 overloads)
OrthoProjection()[const]
Project(point)[const] (+5 overloads)
ProjectToNegativeHalf(point)[const]
ProjectToPositiveHalf(point)[const]
MirrorMatrix()[const]
Mirror(point)[const]
Refract(...)[const]
ClosestPoint(point)[const] (+2 overloads)
Contains(point,epsilon)[const] (+6 overloads)
SetEquals(plane,epsilon)[const]
Equals(other,epsilon)[const]
BitEquals(other)[const]
IsParallel(plane,epsilon)[const]
DihedralAngle(plane)[const]
Intersects(...)[const] (+14 overloads)
Clip(line)[const] (+3 overloads)
PassesThroughOrigin(epsilon)[const]
GenerateCircle(...)[const]
ToString()[const]
SerializeToString()[const]
SerializeToCodeString()[const]
IntersectLinePlane(...)[static]
FromString(str,outEndStr)[static] (+1 overload)

Plane::Transform

Syntax

void Plane::Transform(const float3x3 &transform); [5 lines of code]
void Plane::Transform(const float3x4 &transform); [10 lines of code]
void Plane::Transform(const float4x4 &transform); [5 lines of code]
void Plane::Transform(const Quat &transform); [5 lines of code]

Applies a transformation to this plane.

This function operates in-place.

For Plane-float3x4 transform code, see Eric Lengyel's Mathematics for 3D Game Programming And Computer Graphics 2nd ed., p.110, chapter 4.2.3.

See Also

Translate(), classes float3x3, float3x4, float4x4, Quat.

Work in progress:

Todo: in void Plane::Transform(const float3x3 &transform):
Could optimize the inverse here by assuming orthogonality or orthonormality.
Todo: in void Plane::Transform(const float3x4 &transform):
Could optimize this function by switching to plane convention ax+by+cz+d=0 instead of ax+by+cz=d.
Todo: in void Plane::Transform(const float3x4 &transform):
Can optimize the inverse here by assuming orthogonality or orthonormality.