コード例 #1
0
        public void Disposing_OwnerTypeListIsRemovedWhenEmpty()
        {
            var physics = new MockPhysics();

            var material1 = new MockMaterial();
            var material2 = new MockMaterial();

            ObjectTable.Add(5, material1, physics);
            ObjectTable.Add(6, material2, physics);

            // Make sure the objects are present to begin with
            {
                var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

                Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));
                Assert.IsNotNull(ObjectTable.OwnerTypeLookup[materialKey]);
            }

            material1.Dispose();
            material2.Dispose();

            {
                var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

                // As we have disposed both materials; the entry in the dictionary for Physics-MockMaterial should
                // be removed
                Assert.IsFalse(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));
            }
        }
コード例 #2
0
ファイル: ObjectTableTest.cs プロジェクト: zwagoth/PhysX.net
		public void OwnershipDisposale()
		{
			// Create a hierarchy of objects -
			// Physics is the root
			//	Scene
			//		Actor1
			//		Actor2
			//	Material1
			//	Material2
			var physics = new MockPhysics();
			var scene = new MockScene();
			var mat1 = new MockMaterial();
			var mat2 = new MockMaterial();
			var actor1 = new MockActor();
			var actor2 = new MockActor();

			ObjectTable.Add(1, physics, null);
			ObjectTable.Add(2, mat1, physics);
			ObjectTable.Add(3, mat2, physics);
			ObjectTable.Add(4, scene, physics);
			ObjectTable.Add(5, actor1, scene);
			ObjectTable.Add(6, actor2, scene);

			//

			// Dispose of the root object. This should dispose all object beneath it recursively
			physics.Dispose();

			Assert.IsTrue(physics.Disposed);
			Assert.IsTrue(mat1.Disposed);
			Assert.IsTrue(mat2.Disposed);
			Assert.IsTrue(scene.Disposed);
			Assert.IsTrue(actor1.Disposed);
			Assert.IsTrue(actor2.Disposed);
		}
コード例 #3
0
        public void OwnershipDisposale()
        {
            // Create a hierarchy of objects -
            // Physics is the root
            //	Scene
            //		Actor1
            //		Actor2
            //	Material1
            //	Material2
            var physics = new MockPhysics();
            var scene   = new MockScene();
            var mat1    = new MockMaterial();
            var mat2    = new MockMaterial();
            var actor1  = new MockActor();
            var actor2  = new MockActor();

            ObjectTable.Add(1, physics, null);
            ObjectTable.Add(2, mat1, physics);
            ObjectTable.Add(3, mat2, physics);
            ObjectTable.Add(4, scene, physics);
            ObjectTable.Add(5, actor1, scene);
            ObjectTable.Add(6, actor2, scene);

            //

            // Dispose of the root object. This should dispose all object beneath it recursively
            physics.Dispose();

            Assert.IsTrue(physics.Disposed);
            Assert.IsTrue(mat1.Disposed);
            Assert.IsTrue(mat2.Disposed);
            Assert.IsTrue(scene.Disposed);
            Assert.IsTrue(actor1.Disposed);
            Assert.IsTrue(actor2.Disposed);
        }
コード例 #4
0
ファイル: ObjectTableTest.cs プロジェクト: zwagoth/PhysX.net
		public void GetObjectsOfOwnerAndType()
		{
			var physics = new MockPhysics();

			// Create 2 material
			var material1 = new MockMaterial();
			var material2 = new MockMaterial();

			// Add them to the object table with the physics parent
			ObjectTable.Add(5, material1, physics);
			ObjectTable.Add(6, material2, physics);

			// Ask for the 2 material owned by the physics
			var materialsOfPhysics = ObjectTable.GetObjectsOfOwnerAndType<MockMaterial>(physics);

			Assert.IsNotNull(materialsOfPhysics);
			Assert.AreEqual(2, materialsOfPhysics.Count());
		}
コード例 #5
0
        public void GetObjectsOfOwnerAndType()
        {
            var physics = new MockPhysics();

            // Create 2 material
            var material1 = new MockMaterial();
            var material2 = new MockMaterial();

            // Add them to the object table with the physics parent
            ObjectTable.Add(5, material1, physics);
            ObjectTable.Add(6, material2, physics);

            // Ask for the 2 material owned by the physics
            var materialsOfPhysics = ObjectTable.GetObjectsOfOwnerAndType <MockMaterial>(physics);

            Assert.IsNotNull(materialsOfPhysics);
            Assert.AreEqual(2, materialsOfPhysics.Count());
        }
コード例 #6
0
        public void Disposing_RemovedFromOwnershipDictionary()
        {
            var physics = new MockPhysics();

            var material1 = new MockMaterial();
            var material2 = new MockMaterial();

            ObjectTable.Add(5, material1, physics);
            ObjectTable.Add(6, material2, physics);

            // Make sure the objects are present to begin with
            Assert.IsTrue(ObjectTable.Ownership.ContainsKey(material1));
            Assert.IsTrue(ObjectTable.Ownership.ContainsKey(material2));

            material2.Dispose();

            Assert.IsTrue(ObjectTable.Ownership.ContainsKey(material1));
            Assert.IsFalse(ObjectTable.Ownership.ContainsKey(material2));
        }
コード例 #7
0
        public void Disposing_RemovedFromOwnerTypeDictionary()
        {
            var physics = new MockPhysics();

            var material1 = new MockMaterial();
            var material2 = new MockMaterial();

            ObjectTable.Add(5, material1, physics);
            ObjectTable.Add(6, material2, physics);

            // Make sure the objects are present to begin with
            {
                var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

                Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));

                var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType <MockMaterial>(physics);

                Assert.IsNotNull(materialsOwnedByPhysics);
                Assert.AreEqual(2, materialsOwnedByPhysics.Count());
                Assert.AreEqual(material1, materialsOwnedByPhysics.ElementAt(0));
                Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(1));
            }

            material1.Dispose();

            {
                var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

                Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));

                var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType <MockMaterial>(physics);

                Assert.IsNotNull(materialsOwnedByPhysics);
                Assert.AreEqual(1, materialsOwnedByPhysics.Count());
                Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(0));
            }
        }
コード例 #8
0
        public void GetObjectsOfOwnerAndType_MultipleEnumerationsYieldTheSameObjects()
        {
            var physics = new MockPhysics();

            // Create 2 material
            var material1 = new MockMaterial();
            var material2 = new MockMaterial();

            // Add them to the object table with the physics parent
            ObjectTable.Instance.Add(5, material1, physics);
            ObjectTable.Instance.Add(6, material2, physics);

            // Ask for the 2 material owned by the physics
            var materialsOfPhysics = ObjectTable.Instance.GetObjectsOfOwnerAndType <MockMaterial>(physics);

            Assert.IsNotNull(materialsOfPhysics);

            // Enumerate the objects once
            Assert.AreEqual(2, materialsOfPhysics.Count());

            // Enumerate the object again
            Assert.AreEqual(2, materialsOfPhysics.Count());
        }
コード例 #9
0
ファイル: ObjectTableTest.cs プロジェクト: zwagoth/PhysX.net
		public void Disposing_OwnerTypeListIsRemovedWhenEmpty()
		{
			var physics = new MockPhysics();

			var material1 = new MockMaterial();
			var material2 = new MockMaterial();

			ObjectTable.Add(5, material1, physics);
			ObjectTable.Add(6, material2, physics);

			// Make sure the objects are present to begin with
			{
				var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

				Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));
				Assert.IsNotNull(ObjectTable.OwnerTypeLookup[materialKey]);
			}

			material1.Dispose();
			material2.Dispose();

			{
				var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

				// As we have disposed both materials; the entry in the dictionary for Physics-MockMaterial should
				// be removed
				Assert.IsFalse(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));
			}
		}
コード例 #10
0
ファイル: ObjectTableTest.cs プロジェクト: zwagoth/PhysX.net
		public void Disposing_RemovedFromOwnerTypeDictionary()
		{
			var physics = new MockPhysics();

			var material1 = new MockMaterial();
			var material2 = new MockMaterial();

			ObjectTable.Add(5, material1, physics);
			ObjectTable.Add(6, material2, physics);

			// Make sure the objects are present to begin with
			{
				var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

				Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));

				var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType<MockMaterial>(physics);

				Assert.IsNotNull(materialsOwnedByPhysics);
				Assert.AreEqual(2, materialsOwnedByPhysics.Count());
				Assert.AreEqual(material1, materialsOwnedByPhysics.ElementAt(0));
				Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(1));
			}

			material1.Dispose();

			{
				var materialKey = new ObjectTableOwnershipType(physics, typeof(MockMaterial));

				Assert.IsTrue(ObjectTable.OwnerTypeLookup.ContainsKey(materialKey));

				var materialsOwnedByPhysics = ObjectTable.GetObjectsOfOwnerAndType<MockMaterial>(physics);

				Assert.IsNotNull(materialsOwnedByPhysics);
				Assert.AreEqual(1, materialsOwnedByPhysics.Count());
				Assert.AreEqual(material2, materialsOwnedByPhysics.ElementAt(0));
			}
		}
コード例 #11
0
ファイル: ObjectTableTest.cs プロジェクト: zwagoth/PhysX.net
		public void Disposing_RemovedFromOwnershipDictionary()
		{
			var physics = new MockPhysics();

			var material1 = new MockMaterial();
			var material2 = new MockMaterial();

			ObjectTable.Add(5, material1, physics);
			ObjectTable.Add(6, material2, physics);

			// Make sure the objects are present to begin with
			Assert.IsTrue(ObjectTable.Ownership.ContainsKey(material1));
			Assert.IsTrue(ObjectTable.Ownership.ContainsKey(material2));

			material2.Dispose();

			Assert.IsTrue(ObjectTable.Ownership.ContainsKey(material1));
			Assert.IsFalse(ObjectTable.Ownership.ContainsKey(material2));
		}