void Polygon::ProjectToAxis(const float3 &direction, float &outMin, float &outMax) const { ///\todo Optimize! float3 minPt = ExtremePoint(-direction); float3 maxPt = ExtremePoint(direction); outMin = Dot(minPt, direction); outMax = Dot(maxPt, direction); }
vec Sphere::ExtremePoint(const vec &direction, float &projectionDistance) const { vec extremePoint = ExtremePoint(direction); projectionDistance = extremePoint.Dot(direction); return extremePoint; }
vec Polygon::ExtremePoint(const vec &direction) const { float projectionDistance; return ExtremePoint(direction, projectionDistance); }