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

Validate() public method

public Validate ( ) : void
return void
		public void Validate()
		{
			for (int axis = 0; axis < 2; ++axis)
			{
				Bound[] bounds = _bounds[axis];

				int boundCount = 2 * _proxyCount;
				ushort stabbingCount = 0;

				for (int i = 0; i < boundCount; ++i)
				{
					Bound bound = bounds[i];
					Box2DXDebug.Assert(i == 0 || bounds[i - 1].Value <= bound.Value);
					Box2DXDebug.Assert(bound.ProxyId != PairManager.NullProxy);
					Box2DXDebug.Assert(_proxyPool[bound.ProxyId].IsValid);

					if (bound.IsLower == true)
					{
						Box2DXDebug.Assert(_proxyPool[bound.ProxyId].LowerBounds[axis] == i);
						++stabbingCount;
					}
					else
					{
						Box2DXDebug.Assert(_proxyPool[bound.ProxyId].UpperBounds[axis] == i);
						--stabbingCount;
					}

					Box2DXDebug.Assert(bound.StabbingCount == stabbingCount);
				}
			}
		}

Usage Example

Example #1
0
		public BroadPhaseTest()
		{
			BroadPhase.IsValidate = true;

			//srand(888);

			AABB worldAABB = new AABB();
			worldAABB.LowerBound.Set(-5.0f * k_extent, -5.0f * k_extent);
			worldAABB.UpperBound.Set(5.0f * k_extent, 5.0f * k_extent);

			_overlapCount = 0;
			_overlapCountExact = 0;
			_callback._test = this;

			_broadPhase = new BroadPhase(worldAABB, _callback);

			for (int i = 0; i < k_actorCount; i++)
				_overlaps[i] = new bool[k_actorCount];
			for (int i = 0; i < k_actorCount; i++)
				for (int j = 0; j < k_actorCount; j++)
					_overlaps[i][j] = false;

			for (int i = 0; i < k_actorCount; i++)
				_actors[i] = new Actor();

			for (int i = 0; i < k_actorCount; ++i)
			{
				bool s = false;
				if (i == 91)
					s = true;
				Actor actor = _actors[i];
				GetRandomAABB(ref actor.aabb);
				//actor->aabb.minVertex.Set(0.0f, 0.0f);
				//actor->aabb.maxVertex.Set(k_width, k_width);
				actor.proxyId = _broadPhase.CreateProxy(actor.aabb, actor);
				actor.overlapCount = 0;
				_broadPhase.Validate();
			}

			_automated = true;
			_stepCount = 0;
		}