示例#1
0
 public void aabbTest(ref btVector3 aabbMin,ref btVector3 aabbMax, IBroadphaseAabbCallback callback)
 {
     throw new NotImplementedException();
 }
示例#2
0
 public virtual void AabbTest(ref IndexedVector3 aabbMin, ref IndexedVector3 aabbMax, IBroadphaseAabbCallback callback)
 {
     for (int i = 0; i <= m_LastHandleIndex; i++)
     {
         SimpleBroadphaseProxy proxy = m_pHandles[i];
         if (proxy.m_clientObject == null)
         {
             continue;
         }
         if (AabbUtil2.TestAabbAgainstAabb2(ref aabbMin, ref aabbMax, ref proxy.m_aabbMin, ref proxy.m_aabbMax))
         {
             callback.Process(proxy);
         }
     }
 }
示例#3
0
		public virtual void	AabbTest(ref Vector3 aabbMin, ref Vector3 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);
						}
					}
				}
			}

		}
示例#4
0
 public virtual void AabbTest(ref IndexedVector3 aabbMin, ref IndexedVector3 aabbMax, IBroadphaseAabbCallback aabbCallback)
 {
     BroadphaseAabbTester callback = new BroadphaseAabbTester(aabbCallback);
     DbvtAabbMm bounds = DbvtAabbMm.FromMM(ref aabbMin, ref aabbMax);
     Dbvt.CollideTV(m_sets[0].m_root, ref bounds, callback, m_sets[0].CollideTVStack, ref m_sets[0].CollideTVCount);
     Dbvt.CollideTV(m_sets[1].m_root, ref bounds, callback, m_sets[1].CollideTVStack, ref m_sets[1].CollideTVCount);
 }
示例#5
0
 public BroadphaseAabbTester(IBroadphaseAabbCallback orgCallback)
 {
     m_aabbCallback = orgCallback;
 }
示例#6
0
        public virtual void AabbTest(ref IndexedVector3 aabbMin, ref IndexedVector3 aabbMax, IBroadphaseAabbCallback aabbCallback)
        {
            BroadphaseAabbTester callback = new BroadphaseAabbTester(aabbCallback);
            DbvtAabbMm           bounds   = DbvtAabbMm.FromMM(ref aabbMin, ref aabbMax);

            Dbvt.CollideTV(m_sets[0].m_root, ref bounds, callback);
            Dbvt.CollideTV(m_sets[1].m_root, ref bounds, callback);
        }
示例#7
0
 public BroadphaseAabbTester(IBroadphaseAabbCallback orgCallback)
 {
     m_aabbCallback = orgCallback;
 }
 public virtual void AabbTest(ref IndexedVector3 aabbMin, ref IndexedVector3 aabbMax, IBroadphaseAabbCallback callback)
 {
     for (int i = 0; i <= m_LastHandleIndex; i++)
     {
         SimpleBroadphaseProxy proxy = m_pHandles[i];
         if (proxy.m_clientObject == null)
         {
             continue;
         }
         if (AabbUtil2.TestAabbAgainstAabb2(ref aabbMin, ref aabbMax, ref proxy.m_aabbMin, ref proxy.m_aabbMax))
         {
             callback.Process(proxy);
         }
     }
 }
示例#9
0
 public virtual void AabbTest(ref Vector3 aabbMin, ref Vector3 aabbMax, IBroadphaseAabbCallback callback)
 {
     // not sure why this isn't implemented in the c++ version?
 }
 public virtual void AabbTest(ref IndexedVector3 aabbMin, ref IndexedVector3 aabbMax, IBroadphaseAabbCallback callback)
 {
     // not sure why this isn't implemented in the c++ version?
 }
示例#11
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);
                 }
             }
         }
     }
 }
示例#12
0
文件: AxisSweep3.cs 项目: himapo/ccm
        public virtual void	aabbTest(ref btVector3 aabbMin,ref btVector3 aabbMax, IBroadphaseAabbCallback callback)
        {
	        if (m_raycastAccelerator!=null)
	        {
		        m_raycastAccelerator.aabbTest(ref aabbMin,ref aabbMax,callback);
	        } else
	        {
		        //choose axis?
		        ushort axis = 0;
		        //for each proxy
		        for (ushort 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(aabbMin,aabbMax,handle.m_aabbMin,handle.m_aabbMax))
				        {
					        callback.process(handle);
				        }
			        }
		        }
	        }
        }