Real DistVector2Ray2<Real>::GetSquared (Real fT, const Vector2<Real>& rkVelocity0, const Vector2<Real>& rkVelocity1) { Vector2<Real> kMVector = m_rkVector + fT*rkVelocity0; Vector2<Real> kMOrigin = m_rkRay.Origin + fT*rkVelocity1; Ray2<Real> kMRay(kMOrigin,m_rkRay.Direction); return DistVector2Ray2<Real>(kMVector,kMRay).GetSquared(); }
Real DistRay2Segment2<Real>::GetSquared (Real fT, const Vector2<Real>& rkVelocity0, const Vector2<Real>& rkVelocity1) { Vector2<Real> kMOrigin0 = m_pkRay->Origin + fT*rkVelocity0; Vector2<Real> kMOrigin1 = m_pkSegment->Origin + fT*rkVelocity1; Ray2<Real> kMRay(kMOrigin0,m_pkRay->Direction); Segment2<Real> kMSegment(kMOrigin1,m_pkSegment->Direction, m_pkSegment->Extent); return DistRay2Segment2<Real>(kMRay,kMSegment).GetSquared(); }