//----------------------------------------------------------------------------- // Computes a "normalized" point (range 0,0,0 - 1,1,1) in world space //----------------------------------------------------------------------------- const Vector & CCollisionProperty::NormalizedToWorldSpace( const Vector &in, Vector *pResult ) const { Vector vecCollisionSpace; NormalizedToCollisionSpace( in, &vecCollisionSpace ); CollisionToWorldSpace( vecCollisionSpace, pResult ); return *pResult; }
void CCollisionProperty::CalcNearestPoint(const Vector& vecWorldPt, Vector *pVecNearestWorldPt) const { Vector localPt, localClosestPt; WorldToCollisionSpace(vecWorldPt, &localPt); CalcClosestPointOnAABB(this->m_vecMins.Get(), this->m_vecMaxs.Get(), localPt, localClosestPt); CollisionToWorldSpace(localClosestPt, pVecNearestWorldPt); }
//----------------------------------------------------------------------------- // Computes the nearest point in the OBB to a point specified in world space //----------------------------------------------------------------------------- void CCollisionProperty::CalcNearestPoint( const Vector &vecWorldPt, Vector *pVecNearestWorldPt ) const { // Calculate physics force Vector localPt, localClosestPt; WorldToCollisionSpace( vecWorldPt, &localPt ); CalcClosestPointOnAABB( m_vecMins.Get(), m_vecMaxs.Get(), localPt, localClosestPt ); CollisionToWorldSpace( localClosestPt, pVecNearestWorldPt ); }