Esempio n. 1
0
		public override void Initialize( BroadPhaseEntry entryA, BroadPhaseEntry entryB )
		{

			voxelBlob = entryA as VoxelBlob;
			convex = entryB as ConvexCollidable;

			if( voxelBlob == null || convex == null )
			{
				voxelBlob = entryB as VoxelBlob;
				convex = entryA as ConvexCollidable;

				if( voxelBlob == null || convex == null )
					throw new ArgumentException( "Inappropriate types used to initialize pair." );
			}

			//Contact normal goes from A to B.
			broadPhaseOverlap = new BroadPhaseOverlap( convex, voxelBlob, broadPhaseOverlap.CollisionRule );

			Debugger.Break();
			//UpdateMaterialProperties( convex.Entity != null ? convex.Entity.Material : null, voxelBlob.Material );


			base.Initialize( entryA, entryB );

		}
Esempio n. 2
0
		///<summary>
		/// Cleans up the pair handler.
		///</summary>
		public override void CleanUp()
		{
			base.CleanUp();
			voxelBlob = null;
			convex = null;
		}
Esempio n. 3
0
		public override void Initialize( Collidable newCollidableA, Collidable newCollidableB )
		{
			convex = newCollidableA as ConvexCollidable;
			voxelBlob = newCollidableB as VoxelBlob;


			if( convex == null || voxelBlob == null )
			{
				convex = newCollidableB as ConvexCollidable;
				voxelBlob = newCollidableA as VoxelBlob;
				if( convex == null || voxelBlob == null )
					throw new ArgumentException( "Inappropriate types used to initialize contact manifold." );
			}
			ActivePairs = new QuickDictionary<Int3, GeneralConvexPairTester>( BufferPools<Int3>.Locking, BufferPools<GeneralConvexPairTester>.Locking, BufferPools<int>.Locking, 3 );
			activePairsBackBuffer = new QuickDictionary<Int3, GeneralConvexPairTester>( BufferPools<Int3>.Locking, BufferPools<GeneralConvexPairTester>.Locking, BufferPools<int>.Locking, 3 );

		}