void float3::Orthogonalize(const float3 &a, float3 &b, float3 &c) { if (!a.IsZero()) { b -= b.ProjectTo(a); c -= c.ProjectTo(a); } if (!b.IsZero()) c -= c.ProjectTo(b); }
void float3::Orthogonalize(const float3 &a, float3 &b) { if (!a.IsZero()) b -= b.ProjectTo(a); }
Plane::Plane(const LineSegment &lineSegment, const float3 &normal) { float3 perpNormal = normal - normal.ProjectTo(lineSegment.b - lineSegment.a); Set(lineSegment.a, perpNormal.Normalized()); }