Box2DX.Collision.BroadPhase.Query C# (CSharp) Method

Query() public method

public Query ( AABB aabb, object userData, int maxCount ) : int
aabb AABB
userData object
maxCount int
return int
		public int Query(AABB aabb, object[] userData, int maxCount)
		{
			ushort[] lowerValues;
			ushort[] upperValues;
			ComputeBounds(out lowerValues, out upperValues, aabb);

			int lowerIndex, upperIndex;

			Query(out lowerIndex, out upperIndex, lowerValues[0], upperValues[0], _bounds[0], 2 * _proxyCount, 0);
			Query(out lowerIndex, out upperIndex, lowerValues[1], upperValues[1], _bounds[1], 2 * _proxyCount, 1);

			Box2DXDebug.Assert(_queryResultCount < Settings.MaxProxies);

			int count = 0;
			for (int i = 0; i < _queryResultCount && count < maxCount; ++i, ++count)
			{
				Box2DXDebug.Assert(_queryResults[i] < Settings.MaxProxies);
				Proxy proxy = _proxyPool[_queryResults[i]];
				Box2DXDebug.Assert(proxy.IsValid);
				userData[i] = proxy.UserData;
			}

			// Prepare for next query.
			_queryResultCount = 0;
			IncrementTimeStamp();

			return count;
		}

Same methods

BroadPhase::Query ( int &lowerQueryOut, int &upperQueryOut, ushort lowerValue, ushort upperValue, Bound bounds, int boundCount, int axis ) : void