using System; using System.Collections.Generic; using System.Linq; using System.Text; using Blacklight.Core; using Blacklight.Core.Drawables; using Blacklight.Core.Cameras; using Azimuth; namespace Blacklight.Testbed { public class World { Blacklight.Core.Cameras.MicroscopeCamera camera = null; Scene scene = new Scene(); Cel cel = new Cel(); Entity entity = new Entity(); Collage collage = new Collage(); WindowHandle viewport = null; public World() { scene.Cels.Add(cel); entity.drawable = collage; entity.modelToWorld = Matrix.Identity; cel.AddEntity(entity); Matrix transform; DrawPrimitive primitive; Matrix rotateBy45degrees = new Matrix(Math.PI / 2, Vector.Zero); { primitive = new Rectangle(); primitive.InsideColor = new Blacklight.Core.Color(1, 0, 0.5, 1); primitive.ShellColor = new Blacklight.Core.Color(0, 1, 0.5, 1); primitive.ShellModelSpaceThickness = 0.1; primitive.ShellPixelThickness = 3; transform = new Matrix(.7, new Vector(50, 50), 10); primitive.Antialiased = false; transform.M00 *= 1.112233; transform.M01 *= 3; transform.M10 *= 4; transform.M11 *= 10; transform = rotateBy45degrees * transform; collage.AddDrawable(primitive, transform); } { primitive = new Rectangle(); primitive.InsideColor = new Blacklight.Core.Color(1, 0, 0.5, 1); primitive.ShellColor = new Blacklight.Core.Color(0, 1, 0.5, 1); primitive.ShellPixelThickness = 20; transform = new Matrix(.7, new Vector(0, 0), 10); transform.M00 *= 1.112233; transform.M01 *= 3; transform.M10 *= 4; transform.M11 *= 10; transform = rotateBy45degrees * transform; primitive.Antialiased = false; collage.AddDrawable(primitive, transform); } { primitive = new Ellipse(); primitive.InsideColor = new Blacklight.Core.Color(1, 0, 0.5, 1); primitive.ShellColor = new Blacklight.Core.Color(0, 1, 0.5, 1); primitive.ShellModelSpaceThickness = 0.1; primitive.ShellPixelThickness = 2; transform = new Matrix(.7, new Vector(50, -200), 10); primitive.Antialiased = false; //transform.M00 *= 2; //transform.M10 *= 2; //transform.M01 *= 0.3; //transform.M11 *= 0.3; transform.M00 *= 1.112233; transform.M01 *= 3; transform.M10 *= 4; transform.M11 *= 10; transform = rotateBy45degrees * transform; collage.AddDrawable(primitive, transform); } { primitive = new Ellipse(); primitive.InsideColor = new Blacklight.Core.Color(1, 0, 0.5, 1); primitive.ShellColor = new Blacklight.Core.Color(0, 1, 0.5, 1); primitive.ShellPixelThickness = 20; transform = new Matrix(.7, new Vector(0, -250), 10); transform.M00 *= 1.112233; transform.M01 *= 3; transform.M10 *= 4; transform.M11 *= 10; transform = rotateBy45degrees * transform; primitive.Antialiased = false; collage.AddDrawable(primitive, transform); } //{ // primitive = new Rectangle(); // primitive.InsideColor = new Blacklight.Core.Color(0.5, 1, 0.5, 0); // transform = new Matrix(0, new Vector(-10, 10), 5); // collage.AddDrawable(primitive, transform); //} } public void BindToViewport(WindowHandle handle) { camera = new Blacklight.Core.Cameras.MicroscopeCamera(handle); this.viewport = handle; } public void DrawScene() { viewport.DrawScene(scene, camera); } } }