Exemple #1
0
        public void LineDrawing()
        {
            Runner.ExecuteAsLoop(_ =>
            {
                RenderComposer composer = Engine.Renderer.StartFrame();

                composer.PushModelMatrix(Matrix4x4.CreateTranslation(200, 200, 0));

                // Diagonal Lines
                composer.RenderLine(new Vector3(10, 10, 0), new Vector3(50, 50, 0), Color.White);
                composer.RenderLine(new Vector3(50, 50, 0), new Vector3(100, 100, 0), Color.White, 2);
                composer.RenderLine(new Vector3(100, 100, 0), new Vector3(150, 150, 0), Color.White, 3);

                // Horizontal lines
                // 100 pixels long
                composer.RenderLine(new Vector3(100, 10, 0), new Vector3(200, 10, 0), Color.White);
                composer.RenderLine(new Vector3(100, 20, 0), new Vector3(200, 20, 0), Color.White, 2);
                composer.RenderLine(new Vector3(100, 30, 0), new Vector3(200, 30, 0), Color.White, 3);
                composer.RenderLine(new Vector3(100, 40, 0), new Vector3(200, 40, 0), Color.White, 4);

                // Vertical
                // 100 pixels high
                composer.RenderLine(new Vector3(10, 100, 0), new Vector3(10, 200, 0), Color.White);
                composer.RenderLine(new Vector3(20, 100, 0), new Vector3(20, 200, 0), Color.White, 2);
                composer.RenderLine(new Vector3(30, 100, 0), new Vector3(30, 200, 0), Color.White, 3);
                composer.RenderLine(new Vector3(40, 100, 0), new Vector3(40, 200, 0), Color.White, 4);

                // Test lines in all 2d directions. Z would only be visible with a 3d. camera.
                composer.RenderArrow(new Vector3(0, 0, 0), new Vector3(10, 0, 0), Color.Red);
                composer.RenderArrow(new Vector3(0, 0, 0), new Vector3(0, 10, 0), Color.Green);
                composer.RenderArrow(new Vector3(0, 0, 0), new Vector3(0, 0, 10), Color.Blue);

                // Lines must be at least 1 pixel thick.
                composer.RenderArrow(new Vector3(10, 0, 0), new Vector3(100, 0, 0), Color.Red, 0.1f);
                composer.RenderArrow(new Vector3(0, 10, 0), new Vector3(0, 100, 0), Color.Green, 0.1f);
                composer.RenderArrow(new Vector3(0, 0, 10), new Vector3(0, 0, 100), Color.Blue, 0.1f);

                composer.PopModelMatrix();
                Engine.Renderer.EndFrame();

                Runner.VerifyScreenshot(ResultDb.LineDrawing);
            }).WaitOne();
        }