예제 #1
0
		public virtual void	RayTest(ref Vector3 rayFrom,ref Vector3 rayTo, BroadphaseRayCallback rayCallback, ref Vector3 aabbMin, ref Vector3 aabbMax)
		{
			if (m_raycastAccelerator != null)
			{
				m_raycastAccelerator.RayTest(ref rayFrom,ref rayTo,rayCallback,ref aabbMin,ref aabbMax);
			} 
			else
			{
				//choose axis?
				ushort axis = 0;
				//for each proxy
				for (int i=1;i<m_numHandles*2+1;i++)
				{
					if (m_pEdges[axis,i].IsMax())
					{
						rayCallback.Process(GetHandle(m_pEdges[axis,i].m_handle));
					}
				}
			}
		}
예제 #2
0
		//virtual void	rayTest(const Vector3& rayFrom,const Vector3& rayTo, btBroadphaseRayCallback& rayCallback, const Vector3& aabbMin=Vector3(0,0,0), const Vector3& aabbMax = Vector3(0,0,0));
		public virtual void RayTest(ref Vector3 rayFrom, ref Vector3 rayTo, BroadphaseRayCallback rayCallback)
		{
			Vector3 min = MathUtil.MIN_VECTOR;
			Vector3 max = MathUtil.MAX_VECTOR;
			RayTest(ref rayFrom, ref rayTo, rayCallback, ref min, ref max);
		}
예제 #3
0
 public virtual void RayTest(ref Vector3 rayFrom, ref Vector3 rayTo, BroadphaseRayCallback rayCallback, ref Vector3 aabbMin, ref Vector3 aabbMax)
 {
     for (int i = 0; i < m_multiSapProxies.Count; i++)
     {
         rayCallback.Process(m_multiSapProxies[i]);
     }
 }
예제 #4
0
	    public virtual void RayTest(ref Vector3 rayFrom,ref Vector3 rayTo, BroadphaseRayCallback rayCallback, ref Vector3 aabbMin,ref Vector3 aabbMax)
        {
            for (int i = 0; i <= m_LastHandleIndex; i++)
            {
                SimpleBroadphaseProxy proxy = m_pHandles[i];
                if (proxy.m_clientObject == null)
                {
                    continue;
                }
                rayCallback.Process(proxy);
            }
        }
예제 #5
0
        public virtual void RayTest(ref Vector3 rayFrom, ref Vector3 rayTo, BroadphaseRayCallback rayCallback, ref Vector3 aabbMin, ref Vector3 aabbMax)
        {
                BroadphaseRayTester callback = new BroadphaseRayTester(rayCallback);

				m_sets[0].RayTestInternal(m_sets[0].m_root,
                    ref rayFrom,
                    ref rayTo,
                    ref rayCallback.m_rayDirectionInverse,
                    rayCallback.m_signs,
                    rayCallback.m_lambda_max,
                    ref aabbMin,
                    ref aabbMax,
                    callback);

				m_sets[1].RayTestInternal(m_sets[1].m_root,
                    ref rayFrom,
                    ref rayTo,
                    ref rayCallback.m_rayDirectionInverse,
                    rayCallback.m_signs,
                    rayCallback.m_lambda_max,
                    ref aabbMin,
                    ref aabbMax,
                    callback);
        }