/// <summary> /// Application main method. /// </summary> /// <param name="args">Command line arguments</param> static void Main(string[] args) { CommandLineArguments cArgs = new CommandLineArguments(args); Configuration config = new Configuration(); var something = new Driven.Metrics.DrivenMetrics.Factory().Create( cArgs.Assemblies.ToArray(), config.Container.ResolveAll<IMetricCalculator>() , "TestReport", config.Container.Resolve<IReport>()); something.RunAllMetricsAndGenerateReport(); CodeStadt.Core.DrivenMetrics.Reporting.ResultOutput results = something.Report.As<Core.DrivenMetrics.Reporting.ResultOutput>(); if (results != null) { results.Results.ForEach(x => { Console.WriteLine("Metric: {0}".Formatted(x.Name)); Console.WriteLine(""); x.ClassResults.ForEach(y => { Console.WriteLine(" Class: {0}".Formatted(y.Name)); Console.WriteLine(""); y.MethodResults.ForEach(z => { Console.WriteLine(" Method: {0} \n\r Result: {1}".Formatted(z.Name, z.Result)); Console.WriteLine(""); }); }); }); } // Console.ReadLine(); Console.WriteLine("Going to try and draw an image :-)"); // Lets ray trace something string raytraceFileName = "raytrace.jpg"; if (File.Exists(raytraceFileName)) File.Delete(raytraceFileName); int width = 600; int height = 600; var bitmap = new System.Drawing.Bitmap(width, height); RayTracer rayTracer = new RayTracer((int x, int y, System.Drawing.Color color) => { bitmap.SetPixel(x, y, color); }); var screen = new Screen(width, height); var MyScene = new Scene() { Elements = new List<SceneObject>() { new Plane() { Norm = new Vector(0, 1, 0), Point = new Vector(0, -0.5, 0), Surface = Surfaces.CheckerBoard } //,new Polygon(new List<Vector>(){ new Vector(0,0,0), new Vector(0,1,0), new Vector(1,1,0), new Vector(1,0,0)}, new Vector(0,0,1)) //{ // Surface = Surfaces.White //} //,new Polygon(new List<Vector>(){ new Vector(0,0,0), new Vector(0,1,0), new Vector(0,1,1), new Vector(0,0,1)}, new Vector(1,0,0)) //{ // Surface = Surfaces.White //} //,new Polygon(new List<Vector>(){ new Vector(0,0,0), new Vector(0,0,1), new Vector(1,0,1), new Vector(1,0,0)}, new Vector(0,1,0)) //{ // Surface = Surfaces.White //} //,new Sphere() { // Center = new Vector(0,1,0), // Radius = 1, // Surface = Surfaces.Shiny //}, //new Sphere() { // Center = new Vector(-1,.5,1.5), // Radius = .5, // Surface = Surfaces.Shiny //} // FOR TESTING //,new Line(){ // Point = new Vector(0,0,0), // Direction = new Vector(1,0,0), // Surface = Surfaces.Green //} //,new Line(){ // Point = new Vector(0,0,0), // Direction = new Vector(0,1,0), // Surface = Surfaces.Green //} //,new Line(){ // Point = new Vector(0,0,0), // Direction = new Vector(0,0,1), // Surface = Surfaces.Green //} //,new Line(){ // Point = new Vector(1,0,0), // Direction = new Vector(0,0,1), // Surface = Surfaces.Green //} }, Lights = new List<Light>() { //new Light() { // Position = new Vector(-2,2.5,0), // Color = new Color(.49,.07,.07) //}, //new Light() { // Position = new Vector(1.5,2.5,1.5), // Color = new Color(.07,.07,.49) //}, //new Light() { // Position = new Vector(1.5,2.5,-1.5), // Color = new Color(.07,.49,.071) //}, //new Light() { // Position = new Vector(8,5,-6), // Color = new Color(1,0,0) //}, new Light() { Position = new Vector(8,4,8), Color = new Color(1,1,1) }}, Camera = new Camera(new Vector(6, 3, 6), new Vector(0, 0, 0), screen) //Camera = new Camera(new Vector(-3, 2, -4), new Vector(-1,0.5,0)) }; MyScene.AddModel(new Cube(1, new Vector(0, 0, 0))); rayTracer.Render(MyScene); bitmap.Save(raytraceFileName); }
/// <summary> /// Application main method. /// </summary> /// <param name="args">Command line arguments</param> static void Main(string[] args) { CommandLineArguments cArgs = new CommandLineArguments(args); Configuration config = new Configuration(); var something = new Driven.Metrics.DrivenMetrics.Factory().Create( cArgs.Assemblies.ToArray(), config.Container.ResolveAll<IMetricCalculator>() , "TestReport", config.Container.Resolve<IReport>()); something.RunAllMetricsAndGenerateReport(); CodeStadt.Core.DrivenMetrics.Reporting.ResultOutput results = something.Report.As<Core.DrivenMetrics.Reporting.ResultOutput>(); if (results != null) { results.Results.ForEach(x => { Console.WriteLine("Metric: {0}".Formatted(x.Name)); Console.WriteLine(""); x.ClassResults.ForEach(y => { Console.WriteLine(" Class: {0}".Formatted(y.Name)); Console.WriteLine(""); y.MethodResults.ForEach(z => { Console.WriteLine(" Method: {0} \n\r Result: {1}".Formatted(z.Name, z.Result)); Console.WriteLine(""); }); }); }); } // Console.ReadLine(); Console.WriteLine("Going to try and draw an image :-)"); int screenZ = 49; string simpleFileName = "simple.jpg"; if (File.Exists(simpleFileName)) File.Delete(simpleFileName); Bitmap simpleMap = new Bitmap(1000, 1000); Graphics simpleImage = Graphics.FromImage(simpleMap); //front square Coordinate3D coord1 = new Coordinate3D(430, 430, 1); Coordinate3D coord2 = new Coordinate3D(480, 430, 1); Coordinate3D coord3 = new Coordinate3D(480, 480, 1); Coordinate3D coord4 = new Coordinate3D(430, 480, 1); //rear square Coordinate3D coord11 = new Coordinate3D(450, 450, 2); Coordinate3D coord21 = new Coordinate3D(520, 450, 2); Coordinate3D coord31 = new Coordinate3D(520, 520, 2); Coordinate3D coord41 = new Coordinate3D(450, 520, 2); //draw front square SimpleDrawer.DrawLine(simpleImage, coord1, coord2, screenZ); SimpleDrawer.DrawLine(simpleImage, coord2, coord3, screenZ); SimpleDrawer.DrawLine(simpleImage, coord3, coord4, screenZ); SimpleDrawer.DrawLine(simpleImage, coord4, coord1, screenZ); //draw rear square SimpleDrawer.DrawLine(simpleImage, coord11, coord21, screenZ); SimpleDrawer.DrawLine(simpleImage, coord21, coord31, screenZ); SimpleDrawer.DrawLine(simpleImage, coord31, coord41, screenZ); SimpleDrawer.DrawLine(simpleImage, coord41, coord11, screenZ); //link front to rear SimpleDrawer.DrawLine(simpleImage, coord1, coord11, screenZ); SimpleDrawer.DrawLine(simpleImage, coord2, coord21, screenZ); SimpleDrawer.DrawLine(simpleImage, coord3, coord31, screenZ); SimpleDrawer.DrawLine(simpleImage, coord4, coord41, screenZ); simpleMap.Save(simpleFileName, ImageFormat.Jpeg); //view point stuff //note that the blue square is the back face of the cube //some change string advancedFileName = "advanced.jpg"; if (File.Exists(advancedFileName)) File.Delete(advancedFileName); Bitmap advancedMap = new Bitmap(1000, 1000); Graphics advancedImage = Graphics.FromImage(advancedMap); Coordinate3D viewPoint = new Coordinate3D(0,0, 30); AdvancedDrawer drawer = new AdvancedDrawer(screenZ, viewPoint, advancedImage); advancedImage.FillPolygon(Brushes.Black, new Point[]{ new Point(0,1000), new Point(1000,1000), new Point(1000,0), new Point(0,0), }); Coordinate3D middleX = new Coordinate3D(500, 0, screenZ); Coordinate3D middleY = new Coordinate3D(0, 500, screenZ); drawer.DrawLine(new Coordinate3D(-500, 0, screenZ), new Coordinate3D(500, 0, screenZ)); drawer.DrawLine(new Coordinate3D(0,-500, screenZ), new Coordinate3D(0, 500, screenZ)); //draw rear square //AdvancedDrawer.DrawLine(advancedImage, coord11, coord21, viewPoint, screenZ); //AdvancedDrawer.DrawLine(advancedImage, coord21, coord31, viewPoint, screenZ); //AdvancedDrawer.DrawLine(advancedImage, coord31, coord41, viewPoint, screenZ); //AdvancedDrawer.DrawLine(advancedImage, coord41, coord11, viewPoint, screenZ); //ICityBuilder builder = new RandomCubeBuilder(50, 600, 40, 600, 40, 600, 1, 1); // IEnumerable<IShape> shapes = builder.CreateCity(null); Cube cb = new Cube(new Coordinate3D(0, 0, 50), 50, 50, 50); IEnumerable<IShape> shapes = new IShape[] { cb }; shapes.ForEach(y => y.Faces.ForEach(x => { drawer.DrawFilledPolygon(x.Brush, x.ToArray()); })); advancedMap.Save(advancedFileName); }