Ejemplo n.º 1
0
 public virtual void AabbTest(ref IndexedVector3 aabbMin, ref IndexedVector3 aabbMax, IBroadphaseAabbCallback callback)
 {
     if (m_raycastAccelerator != null)
     {
         m_raycastAccelerator.AabbTest(ref aabbMin, ref aabbMax, callback);
     }
     else
     {
         //choose axis?
         int axis = 0;
         //for each proxy
         for (int i = 1; i < m_numHandles * 2 + 1; i++)
         {
             if (m_pEdges[axis, i].IsMax())
             {
                 Handle handle = GetHandle(m_pEdges[axis, i].m_handle);
                 if (AabbUtil2.TestAabbAgainstAabb2(ref aabbMin, ref aabbMax, ref handle.m_aabbMin, ref handle.m_aabbMax))
                 {
                     callback.Process(handle);
                 }
             }
         }
     }
 }