private void OpenGLControl_OpenGLDraw(object sender, OpenGLEventArgs args) { world.Step(1.0f / 100.0f, true); OpenGL gl = args.OpenGL; // Clear The Screen And The Depth Buffer gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT); // Move Left And Into The Screen gl.LoadIdentity(); float[] position = Conversion.ToFloat(body.Position); float[] orientation = Conversion.ToFloat(body.Orientation); gl.PushMatrix(); setTransform(gl, position, orientation); //Teapot tp = new Teapot(); //tp.Draw(gl, 14, 1, OpenGL.GL_FILL); Cube cube = new Cube(); var faces = cube.Faces; foreach (var face in faces) { SharpGL.SceneGraph.Assets.Material material = new SharpGL.SceneGraph.Assets.Material(); material.Ambient = System.Drawing.Color.Crimson; face.Material = material; } cube.Render(gl, SharpGL.SceneGraph.Core.RenderMode.Render); gl.PopMatrix(); setTransform(gl, position, orientation); //Teapot tp = new Teapot(); //tp.Draw(gl, 14, 1, OpenGL.GL_FILL); Cube cube = new Cube(); var faces = cube.Faces; foreach (var face in faces) { SharpGL.SceneGraph.Assets.Material material = new SharpGL.SceneGraph.Assets.Material(); material.Ambient = System.Drawing.Color.Crimson; face.Material = material; } cube.Render(gl, SharpGL.SceneGraph.Core.RenderMode.Render); }
private void dataGridView1_SelectionChanged(object sender, EventArgs e) { FindObject(sender as DataGridView); if (selectedObject != null) { selectedObject.Decompile(); if (selectedObject.IsClassType("Texture")) { SharpGL.SceneGraph.Assets.Texture cube_texture = new SharpGL.SceneGraph.Assets.Texture(); Bitmap texture = LibSquish.GetImage((UTexture)selectedObject); cube_texture.Create(gl, texture); SharpGL.SceneGraph.Assets.Material material = new SharpGL.SceneGraph.Assets.Material(); material.Texture = cube_texture; cube = new Cube(); cube.Material = material; BoundingVolume boundingVolume = cube.BoundingVolume; float[] extent = new float[3]; cube.BoundingVolume.GetBoundDimensions(out extent[0], out extent[1], out extent[2]); float maxExtent = extent.Max(); float scaleFactor = maxExtent > 10 ? 10.0f / maxExtent : 1; cube.Transformation.ScaleX = scaleFactor; cube.Transformation.ScaleY = scaleFactor; cube.Transformation.ScaleZ = scaleFactor; } if (selectedObject.IsClassType("Sound")) { PlaySound(); } if (selectedObject.IsClassType("StaticMesh")) { smi = new StaticMeshInstance(); smi.Init((UStaticMesh)selectedObject, gl); BoundingVolume boundingVolume = smi.BoundingVolume; float[] extent = new float[3]; smi.BoundingVolume.GetBoundDimensions(out extent[0], out extent[1], out extent[2]); float maxExtent = extent.Max(); // Scale so that we are at most 10 units in size. float scaleFactor = maxExtent > 10 ? 10.0f / maxExtent : 1; smi.Transformation.ScaleX = scaleFactor; smi.Transformation.ScaleY = scaleFactor; smi.Transformation.ScaleZ = scaleFactor; smi.Transformation.RotateX = -90; } } }