public void UpdateWorldTransformTest0() { /*Scene scene = new Scene(); NodePortalable parent = new NodePortalable(scene); FloatPortal p0 = new FloatPortal(scene); p0.SetParent(parent); FloatPortal p1 = new FloatPortal(scene); FloatPortal p2 = new FloatPortal(scene); p0.SetTransform(new Transform2(new Vector2(5, 0))); p1.SetTransform(new Transform2(new Vector2(-5, 0))); p2.SetTransform(new Transform2(new Vector2(0, 5))); Portal.SetLinked(p1, p2); PortalCommon.UpdateWorldTransform(scene);*/ Scene scene = new Scene(); Actor ground = CreateGround(scene); FloatPortal portal = new FloatPortal(scene); portal.Name = "enter"; portal.SetTransform(new Transform2(new Vector2(3, 0))); portal.SetParent(ground); FloatPortal portalExit = new FloatPortal(scene); portalExit.Name = "exit"; portalExit.Linked = portal; portal.Linked = portal; PortalCommon.UpdateWorldTransform(scene); //Assert.IsTrue() }
public void EnterTest0() { Scene scene = new Scene(); NodePortalable parent = new NodePortalable(scene); FloatPortal portal = new FloatPortal(scene); portal.SetTransform(new Transform2(new Vector2(5, 0))); portal.SetParent(parent); FloatPortal enter = new FloatPortal(scene); FloatPortal exit = new FloatPortal(scene); enter.SetTransform(new Transform2(new Vector2(2, 0))); exit.SetTransform(new Transform2(new Vector2(100, 5))); enter.Linked = exit; exit.Linked = enter; PortalCommon.UpdateWorldTransform(scene); Portal.Enter(enter, parent, 0.5f); PortalCommon.UpdateWorldTransform(scene); Assert.IsTrue(new Transform2(new Vector2(5, 0)).AlmostEqual(portal.WorldTransform)); }
public void IsInsideFOVTest7() { float x = 0; float y = 0; for (double i = 0; i < Math.PI * 2; i += Math.PI / 20) { Scene scene = new Scene(); FloatPortal p0 = new FloatPortal(scene); Entity node = new Entity(scene); Transform2.SetPosition(node, new Vector2(x, y)); Transform2.SetRotation(node, (float)(i + Math.PI / 4)); p0.SetParent(node); PortalCommon.UpdateWorldTransform(scene); Vector2 viewPoint = new Vector2(x + (float)Math.Cos(i), y + (float)Math.Sin(i)); Vector2 lookPoint = new Vector2(x + (float)Math.Cos(i) * 2, y + (float)Math.Sin(i) * 2); LineF line = new LineF(Vector2Ext.Transform(Portal.GetVerts(p0), p0.GetWorldTransform().GetMatrix())); Assert.IsFalse(line.IsInsideFOV(viewPoint, lookPoint)); } }