Пример #1
0
        // Init is called on startup.
        public override void Init()
        {
            // Load the scene file "Cube.fus"
            SceneContainer sc = AssetStorage.Get <SceneContainer>("Cube.fus");

            // Extract the 'First' object of type 'MeshComponent' found in 'sc'`s list of 'Children' without
            // further specifying any search criterion ('c => true' means: any found MeshComponent will do).
            MeshComponent mc = sc.Children.FindComponents <MeshComponent>(c => true).First();

            // Generate a mesh from the MeshComponent's vertices, normals and triangles.
            _mesh = new Mesh
            {
                Vertices  = mc.Vertices,
                Normals   = mc.Normals,
                Triangles = mc.Triangles
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _xformParam = RC.GetShaderParam(shader, "xform");
            _xform      = float4x4.Identity;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #2
0
        // Init is called on startup.
        public override void Init()
        {
            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");

            // Load meshes
            Mesh cube = LoadMesh("Cube.fus");

            InitLevelArray();

            // Setup a list of objects
            _root = new SceneOb {
                Children = new List <SceneOb>()
            };
            for (int ix = 0; ix < levelArray.GetLength(0); ix++)
            {
                for (int iy = 0; iy < levelArray.GetLength(1); iy++)
                {
                    for (int iz = 0; iz < levelArray.GetLength(2); iz++)
                    {
                        _root.Children.Add(new SceneOb {
                            Mesh = cube, Pos = ((levelArray[ix, iy, iz].pos) * 1.05f), Albedo = levelArray[ix, iy, iz].albedo
                        });
                    }
                }
            }

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #3
0
        public override void Init()
        {
            RC.ClearColor = new float4(0, 0, 0, 1);

            Mesh = new Cube();

            var sp = Shaders.GetDiffuseColorShader(RC);

            RC.SetShader(sp);

            _vColor = RC.GetShaderParam(sp, "color");
            RC.SetShaderParam(_vColor, new float4(0.8f, 0.1f, 0.1f, 1));

            // sound by http://www.soundjay.com
            _audio1 = Audio.Instance.LoadFile("Assets/beep.ogg");

            // excerpt from "the final rewind" by tryad (http://www.tryad.org) - cc-by-sa
            _audio2 = Audio.Instance.LoadFile("Assets/music.ogg");

            _state  = 0;
            _testID = 1;

            _timeStep = 1.0f;
            _curTime  = 2.0f;

            _tests = new Tests();
        }
Пример #4
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.8165f, -0.3333f, -0.4714f),
                    new float3(0.8165f, -0.3333f, -0.4714f),
                    new float3(0, -0.3333f, 0.9428f),
                    new float3(0, 1, 0),
                },
                Triangles = new ushort[]
                {
                    0, 2, 1,
                    0, 1, 3,
                    1, 2, 3,
                    2, 0, 3,
                },
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _alphaParam = RC.GetShaderParam(shader, "alpha");
            _alpha      = 0;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #5
0
        // Init is called on startup.
        public override void Init()
        {
            var vertsh = AssetStorage.Get <string>("VertexShader.vert");
            var pixsh  = AssetStorage.Get <string>("PixelShader.frag");

            // Initialize the shader(s)
            var shader = RC.CreateShader(vertsh, pixsh);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");

            // Load some meshes
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");

            // Setup a list of objects
            _root = new SceneOb {
                Children = new List <SceneOb>(new []
                {
                    // Body
                    new SceneOb {
                        Mesh = cube, Pos = new float3(0, 2.75f, 0), ModelScale = new float3(0.5f, 1, 0.25f), Albedo = new float3(0.2f, 0.6f, 0.3f)
                    },
                    // Legs
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Shoulders
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(-0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    // Arms
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Head
                    new SceneOb
                    {
                        Mesh   = sphere, Pos = new float3(0, 4.2f, 0), ModelScale = new float3(0.35f, 0.5f, 0.35f),
                        Albedo = new float3(0.9f, 0.6f, 0.5f)
                    },
                })
            };

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #6
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.5f, -0.5f, -0.5f),
                    new float3(0.5f, -0.5f, -0.5f),
                    new float3(0.5f, 0.5f, -0.5f),
                    new float3(-0.5f, 0.5f, -0.5f),

                    new float3(0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, 0.5f, 0.5f),
                    new float3(0.5f, 0.5f, 0.5f),

                    new float3(0, 1, 0),
                },
                Triangles = new ushort[]
                {
                    0, 1, 2, // Front 1
                    0, 2, 3, // Front 2
                    1, 4, 7, // Right 1
                    1, 7, 2, // Right 2
                    4, 5, 6, // Back 1
                    4, 6, 7, // Back 2
                    5, 0, 3, // Left 1
                    5, 3, 6, // Left 2
                    3, 2, 8, // Top Front
                    2, 7, 8, // Top Right
                    7, 6, 8, // Top Back
                    6, 3, 8, // Top Left
                },
            };

            var shader = RC.CreateShader(VertexShader, PixelShader);

            RC.SetShader(shader);
            _mouseParam    = RC.GetShaderParam(shader, "mousepos");
            _mousePosition = new float2(0, 0);
            _alphaParam    = RC.GetShaderParam(shader, "alpha");
            _alpha         = 0;

            // Set the clear color for the backbuffer.
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #7
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    new float3(-0.5f, -0.5f, -0.5f),
                    new float3(0.5f, -0.5f, -0.5f),
                    new float3(0.5f, 0.5f, -0.5f),
                    new float3(-0.5f, 0.5f, -0.5f),

                    new float3(0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, -0.5f, 0.5f),
                    new float3(-0.5f, 0.5f, 0.5f),
                    new float3(0.5f, 0.5f, 0.5f),

                    new float3(0, 1, 0)
                },
                Triangles = new ushort[]
                {
                    0, 1, 2,
                    0, 2, 3,
                    1, 4, 7,
                    1, 7, 2,
                    4, 5, 6,
                    4, 6, 7,
                    5, 0, 3,
                    5, 3, 6,
                    3, 2, 8,
                    2, 7, 8,
                    7, 6, 8,
                    6, 3, 8
                },
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _mouseParam = RC.GetShaderParam(shader, "mauspos");
            _mouse      = new float2(0, 0);
            _alphaParam = RC.GetShaderParam(shader, "alpha");
            _alpha      = 0;

            // Set the clear color for the backbuffer.
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #8
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = CreateCylinder();


            Container <int> meinContainer = new Container <int>();

            for (int i = 0; i < 1000; i++)
            {
                meinContainer.PutElement(1000 * 5 - i);
            }


            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _xformParam = RC.GetShaderParam(shader, "xform");
            _xform      = float4x4.Identity;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #9
0
        // Init is called on startup.
        public override void Init()
        {
            _mesh = new Mesh
            {
                Vertices = new[]
                {
                    // left, down, front vertex
                    new float3(-1, -1, -1), // 0  - belongs to left
                    new float3(-1, -1, -1), // 1  - belongs to down
                    new float3(-1, -1, -1), // 2  - belongs to front

                    // left, down, back vertex
                    new float3(-1, -1, 1),   // 3  - belongs to left
                    new float3(-1, -1, 1),   // 4  - belongs to down
                    new float3(-1, -1, 1),   // 5  - belongs to back

                    // left, up, front vertex
                    new float3(-1, 1, -1),   // 6  - belongs to left
                    new float3(-1, 1, -1),   // 7  - belongs to up
                    new float3(-1, 1, -1),   // 8  - belongs to front

                    // left, up, back vertex
                    new float3(-1, 1, 1),    // 9  - belongs to left
                    new float3(-1, 1, 1),    // 10 - belongs to up
                    new float3(-1, 1, 1),    // 11 - belongs to back

                    // right, down, front vertex
                    new float3(1, -1, -1),  // 12 - belongs to right
                    new float3(1, -1, -1),  // 13 - belongs to down
                    new float3(1, -1, -1),  // 14 - belongs to front

                    // right, down, back vertex
                    new float3(1, -1, 1),    // 15 - belongs to right
                    new float3(1, -1, 1),    // 16 - belongs to down
                    new float3(1, -1, 1),    // 17 - belongs to back

                    // right, up, front vertex
                    new float3(1, 1, -1),    // 18 - belongs to right
                    new float3(1, 1, -1),    // 19 - belongs to up
                    new float3(1, 1, -1),    // 20 - belongs to front

                    // right, up, back vertex
                    new float3(1, 1, 1),     // 21 - belongs to right
                    new float3(1, 1, 1),     // 22 - belongs to up
                    new float3(1, 1, 1),     // 23 - belongs to back
                },
                Normals = new[]
                {
                    // left, down, front vertex
                    new float3(-1, 0, 0),   // 0  - belongs to left
                    new float3(0, -1, 0),   // 1  - belongs to down
                    new float3(0, 0, -1),   // 2  - belongs to front

                    // left, down, back vertex
                    new float3(-1, 0, 0),    // 3  - belongs to left
                    new float3(0, -1, 0),    // 4  - belongs to down
                    new float3(0, 0, 1),     // 5  - belongs to back

                    // left, up, front vertex
                    new float3(-1, 0, 0),    // 6  - belongs to left
                    new float3(0, 1, 0),     // 7  - belongs to up
                    new float3(0, 0, -1),    // 8  - belongs to front

                    // left, up, back vertex
                    new float3(-1, 0, 0),    // 9  - belongs to left
                    new float3(0, 1, 0),     // 10 - belongs to up
                    new float3(0, 0, 1),     // 11 - belongs to back

                    // right, down, front vertex
                    new float3(1, 0, 0),    // 12 - belongs to right
                    new float3(0, -1, 0),   // 13 - belongs to down
                    new float3(0, 0, -1),   // 14 - belongs to front

                    // right, down, back vertex
                    new float3(1, 0, 0),     // 15 - belongs to right
                    new float3(0, -1, 0),    // 16 - belongs to down
                    new float3(0, 0, 1),     // 17 - belongs to back

                    // right, up, front vertex
                    new float3(1, 0, 0),     // 18 - belongs to right
                    new float3(0, 1, 0),     // 19 - belongs to up
                    new float3(0, 0, -1),    // 20 - belongs to front

                    // right, up, back vertex
                    new float3(1, 0, 0),     // 21 - belongs to right
                    new float3(0, 1, 0),     // 22 - belongs to up
                    new float3(0, 0, 1),     // 23 - belongs to back
                },
                Triangles = new ushort[]
                {
                    0, 6, 3, 3, 6, 9,        // left
                    2, 14, 20, 2, 20, 8,     // front
                    12, 15, 18, 15, 21, 18,  // right
                    5, 11, 17, 17, 11, 23,   // back
                    7, 22, 10, 7, 19, 22,    // top
                    1, 4, 16, 1, 16, 13,     // bottom
                },
            };

            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _xformParam = RC.GetShaderParam(shader, "xform");
            _xform      = float4x4.Identity;

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(0.1f, 0.3f, 0.2f, 1);
        }
Пример #10
0
        // Init is called on startup.
        public override void Init()
        {
            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");

            // Load some meshes
            Mesh cone     = LoadMesh("Cone.fus");
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh pyramid  = LoadMesh("Pyramid.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");

            // Setup a list of objects
            _root = new SceneOb {
                name = "root"
            };

            // Add Body
            _root.Children.Add(new SceneOb {
                Mesh = cube, Albedo = new float3(0, 0, 0), Pos = new float3(0, 2.75f, 0), ModelScale = new float3(0.5f, 1, 0.25f), name = "body"
            });

            // Add Legs
            _root.Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(-0.25f, 1, 0), ModelScale = new float3(0.15f, 0.75f, 0.15f), name = "rightupperleg"
            });
            FindSceneOb(_root, "rightupperleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.75f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightknee"
            });
            FindSceneOb(_root, "rightknee").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "rightlowerleg"
            });
            FindSceneOb(_root, "rightlowerleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.70f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightfoot"
            });

            _root.Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0.25f, 1, 0), Pivot = new float3(0, 0.75f, 0), ModelScale = new float3(0.15f, 0.75f, 0.15f), name = "leftupperleg"
            });
            FindSceneOb(_root, "leftupperleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.75f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftknee"
            });
            FindSceneOb(_root, "leftknee").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "leftlowerleg"
            });
            FindSceneOb(_root, "leftlowerleg").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.70f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftfoot"
            });

            // Add Arms
            _root.Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(-0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightshoulder"
            });
            FindSceneOb(_root, "rightshoulder").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "rightupperarm"
            });
            FindSceneOb(_root, "rightupperarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightellbow"
            });
            FindSceneOb(_root, "rightellbow").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "rightlowerarm"
            });
            FindSceneOb(_root, "rightlowerarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "rightwrist"
            });

            _root.Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftshoulder"
            });
            FindSceneOb(_root, "leftshoulder").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "leftupperarm"
            });
            FindSceneOb(_root, "leftupperarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftellbow"
            });
            FindSceneOb(_root, "leftellbow").Children.Add(new SceneOb {
                Mesh = cylinder, Albedo = new float3(0, 0, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.15f, 0.5f, 0.15f), name = "leftlowerarm"
            });
            FindSceneOb(_root, "leftlowerarm").Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(1, 0.5f, 0), Pos = new float3(0, -0.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f), name = "leftwrist"
            });

            // Add Head
            _root.Children.Add(new SceneOb {
                Mesh = sphere, Albedo = new float3(0, 1, 0), Pos = new float3(0, 4.2f, 0), ModelScale = new float3(0.35f, 0.5f, 0.35f), name = "head"
            });

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #11
0
        // Init is called on startup.
        public override void Init()
        {
            // Load some meshes
            Mesh cone     = LoadMesh("Cone.fus");
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh pyramid  = LoadMesh("Pyramid.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");


            SceneItem si1 = new Transform {
                Pos = new float3(1, 2, 3)
            };
            SceneItem si2 = new Geometry {
                Mesh = cylinder
            };

            si1.Render(RC);



            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");


            // Setup a list of objects
            _root = new SceneOb {
                Children = new List <SceneOb>(new []
                {
                    // Body
                    new SceneOb {
                        Mesh = cube, Pos = new float3(0, 2.75f, 0), ModelScale = new float3(0.5f, 1, 0.25f),
                    },
                    // Legs
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.25f, 1, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Shoulders
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(-0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    new SceneOb {
                        Mesh = sphere, Pos = new float3(0.75f, 3.5f, 0), ModelScale = new float3(0.25f, 0.25f, 0.25f),
                    },
                    // Arms
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(-0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    new SceneOb {
                        Mesh = cylinder, Pos = new float3(0.75f, 2.5f, 0), ModelScale = new float3(0.15f, 1, 0.15f),
                    },
                    // Head
                    new SceneOb
                    {
                        Mesh   = sphere, Pos = new float3(0, 4.2f, 0), ModelScale = new float3(0.35f, 0.5f, 0.35f),
                        Albedo = new float3(0.9f, 0.6f, 0.5f)
                    },
                })
            };

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }
Пример #12
0
        // Init is called on startup.
        public override void Init()
        {
            // Load some meshes
            Mesh cone     = LoadMesh("Cone.fus");
            Mesh cube     = LoadMesh("Cube.fus");
            Mesh cylinder = LoadMesh("Cylinder.fus");
            Mesh pyramid  = LoadMesh("Pyramid.fus");
            Mesh sphere   = LoadMesh("Sphere.fus");


            // Initialize the shader(s)
            var shader = RC.CreateShader(_vertexShader, _pixelShader);

            RC.SetShader(shader);
            _albedoParam = RC.GetShaderParam(shader, "albedo");


            object o1 = new Group
            {
                Children = new List <SceneItem>(new SceneItem[]
                {
                    new Transform {
                        Pos = new float3(0, 2.75f, 0), Scale = new float3(0.5f, 1, 0.25f)
                    },
                    new Geometry {
                        Mesh = cube
                    }
                })
            };
            object o2 = new Transform {
                Pos = new float3(0, 2.75f, 0), Scale = new float3(0.5f, 1, 0.25f)
            };
            object o3 = new float3(22, 33, 44);


            /*
             * InspectType(o1.GetType());
             * InspectType(o2.GetType());
             * InspectType(o3.GetType());
             *
             * CheckObject(o1);
             * CheckObject(o2);
             * CheckObject(o3);
             *
             * ///
             * Assembly asm = Assembly.Load("Fusee.Math.Core");
             * Type[] types = asm.GetTypes();
             * foreach (var type in types)
             * {
             *  InspectType(type);
             * }
             * /// */



            // Setup a list of objects
            _root = new Group()
            {
                Children = new List <SceneItem>(new SceneItem[]
                {
                    new Material {
                        Albedo = new float3(0.2f, 0.9f, 0.1f), AlbedoParam = _albedoParam
                    },
                    // Body
                    new Group
                    {
                        Children = new List <SceneItem>(new SceneItem[]
                        {
                            new Transform {
                                Pos = new float3(0, 2.75f, 0), Scale = new float3(0.5f, 1, 0.25f)
                            },
                            new Geometry {
                                Mesh = cube
                            }
                        })
                    },

                    // Legs
                    new Group
                    {
                        Children = new List <SceneItem>(new SceneItem[]
                        {
                            new Transform {
                                Pos = new float3(-0.25f, 1, 0), Scale = new float3(0.15f, 1, 0.15f)
                            },
                            new Geometry {
                                Mesh = cylinder
                            }
                        })
                    },

                    new Group
                    {
                        Children = new List <SceneItem>(new SceneItem[]
                        {
                            new Transform {
                                Pos = new float3(0.25f, 1, 0), Scale = new float3(0.15f, 1, 0.15f),
                            },
                            new Geometry {
                                Mesh = cylinder
                            }
                        })
                    },
                })
            };

            // Set the clear color for the backbuffer
            RC.ClearColor = new float4(1, 1, 1, 1);
        }