public void Test_CollideWith() { var node1 = new Node ("Node1"); node1.Attach(new CollisionObject ()); node1.CollisionObject.Shape = new BoxShape (1, 1, 1); node1.GroupID = 1; var node2 = new Node ("Node2"); node2.Attach (new CollisionObject ()); node2.CollisionObject.Shape = new BoxShape (1, 1, 1); node2.GroupID = 2; var wld = new World (); wld.AddChild (node1); wld.AddChild (node2); node1.CollisionObject.CollideWith = -1; Assert.AreEqual (true, wld.Overlap (node1, node2)); node1.CollisionObject.CollideWith = 1; Assert.AreEqual (false, wld.Overlap (node1, node2)); node1.CollisionObject.CollideWith = 2; Assert.AreEqual (true, wld.Overlap (node1, node2)); node1.CollisionObject.CollideWith = 2; node1.CollisionObject.IgnoreWith = 2; Assert.AreEqual (false, wld.Overlap (node1, node2)); }
public void Test_Overlap() { var node1 = new Node ("Node1"); var col1 = new CollisionObject (); col1.Shape = new BoxShape (1, 1, 1); node1.Attach (col1); var node2 = new Node ("Node1"); var col2 = new CollisionObject (); col2.Shape = new BoxShape (1, 1, 1); node2.Attach (col2); var wld = new World (); wld.AddChild (node1); wld.AddChild (node2); node1.Translate (0, 0, 0); node2.Translate (0, 0, 0); Assert.AreEqual (true, wld.Overlap (node1, node2)); node1.Translate (0, 0, 0); node2.Translate (10, 0, 0); Assert.AreEqual (false, wld.Overlap (node1, node2)); node1.Rotate (0, 0, 0, 0); node2.Rotate (45, 0, 0, 1); Assert.AreEqual (false, wld.Overlap (node1, node2)); node1.Detach (col1); node2.Detach (col2); Assert.AreEqual (false, wld.Overlap (node1, node2)); }