Beispiel #1
0
        public override void Render(FrameEventArgs e)
        {
            if (!_mapEvent.Enabled)
            {
                return;
            }

            PlayerPacket localPacket = MapComponent.Instance.GetLocalPlayerPacket();

            if (localPacket == null || !(localPacket.PositionX == _mapEvent.MapX && localPacket.PositionY == _mapEvent.MapY) || _mapEvent.Priority == RenderPriority.OnTop)
            {
                base.Render(e);

                Renderer.PushStencilDepth(OpenTK.Graphics.OpenGL.StencilOp.Keep, OpenTK.Graphics.OpenGL.StencilFunction.Less);
                Renderer.PushWorldMatrix();
                Renderer.SetFlipUV(false, true);

                Renderer.TranslateWorld(0, GetFrameHeight(), 0);
                OpenTK.Graphics.Color4 prevColor = GetColour();
                OpenTK.Graphics.Color4 color     = prevColor;
                color.A = 0.2f;

                SetColour(color);
                base.Render(e);
                SetColour(prevColor);

                Renderer.SetFlipUV(false, false);
                Renderer.PopWorldMatrix();
                Renderer.PopStencilDepth();
            }
        }
Beispiel #2
0
 public void DrawSegementationBoundaryOnly(TriMesh mesh)
 {
     OpenTK.Graphics.Color4 color = GlobalSetting.DisplaySetting.MeshColor;
     OpenGLManager.Instance.SetColor(color);
     GL.Begin(BeginMode.Lines);
     for (int i = 0; i < mesh.Edges.Count; i++)
     {
         if (mesh.Edges[i].Face0 != null && mesh.Edges[i].Face1 != null)
         {
             if (mesh.Edges[i].Face0.Traits.SelectedFlag != mesh.Edges[i].Face1.Traits.SelectedFlag)
             {
                 GL.Normal3(mesh.Edges[i].Vertex0.Traits.Normal.x,
                            mesh.Edges[i].Vertex0.Traits.Normal.y,
                            mesh.Edges[i].Vertex0.Traits.Normal.z);
                 GL.Vertex3(mesh.Edges[i].Vertex0.Traits.Position.x,
                            mesh.Edges[i].Vertex0.Traits.Position.y,
                            mesh.Edges[i].Vertex0.Traits.Position.z);
                 GL.Normal3(mesh.Edges[i].Vertex1.Traits.Normal.x,
                            mesh.Edges[i].Vertex1.Traits.Normal.y,
                            mesh.Edges[i].Vertex1.Traits.Normal.z);
                 GL.Vertex3(mesh.Edges[i].Vertex1.Traits.Position.x,
                            mesh.Edges[i].Vertex1.Traits.Position.y,
                            mesh.Edges[i].Vertex1.Traits.Position.z);
             }
         }
     }
     GL.End();
 }
Beispiel #3
0
        public OpenTK.Graphics.Color4 SetColorPallete(int num)
        {
            OpenTK.Graphics.Color4 color = GlobalSetting.DisplaySetting.MeshColor;
            switch (num % 20)
            {
            case 0: color = GlobalSetting.DisplaySetting.MeshColor; break;

            // case 0: color = new OpenTK.Graphics.Color4(0.0f, 0.0f, 1.0f, 0.0f); break;
            case 1: color = new OpenTK.Graphics.Color4(1.0f, 0.0f, 0.0f, 0.0f); break;

            case 2: color = new OpenTK.Graphics.Color4(0.0f, 1.0f, 0.0f, 0.0f); break;

            case 3: color = new OpenTK.Graphics.Color4(1.0f, 1.0f, 0.0f, 0.0f); break;

            case 4: color = new OpenTK.Graphics.Color4(0.0f, 1.0f, 1.0f, 0.0f); break;

            case 5: color = new OpenTK.Graphics.Color4(1.0f, 0.0f, 1.0f, 0.0f); break;

            case 6: color = OpenTK.Graphics.Color4.Brown; break;

            case 7: color = OpenTK.Graphics.Color4.Tomato; break;

            case 8: color = OpenTK.Graphics.Color4.Turquoise; break;

            case 9: color = OpenTK.Graphics.Color4.Violet; break;

            case 10: color = OpenTK.Graphics.Color4.Goldenrod; break;
            }

            return(color);
        }
Beispiel #4
0
        public void DrawSegementationFace(TriMesh mesh)
        {
            GL.ShadeModel(ShadingModel.Smooth);
            GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);

            GL.Enable(EnableCap.Normalize);

            GL.Begin(BeginMode.Triangles);

            OpenTK.Graphics.Color4 color = GlobalSetting.DisplaySetting.MeshColor;
            for (int i = 0; i < mesh.Faces.Count; i++)
            {
                Color4 color4 = mesh.Faces[i].Traits.Color;
                if (color4 != Color4.Black)
                {
                    OpenGLManager.Instance.SetColor(color4);
                }

                else
                {
                    color = SetColorPallete(mesh.Faces[i].Traits.SelectedFlag);


                    OpenGLManager.Instance.SetColor(color);
                }
                foreach (TriMesh.Vertex vertex in mesh.Faces[i].Vertices)
                {
                    GL.Normal3(vertex.Traits.Normal.x, vertex.Traits.Normal.y, vertex.Traits.Normal.z);
                    GL.Vertex3(vertex.Traits.Position.x, vertex.Traits.Position.y, vertex.Traits.Position.z);
                }
            }
            GL.End();

            GL.Flush();
        }
Beispiel #5
0
 public static void Color4_Add(ref OpenTK.Graphics.Color4 src, OpenTK.Graphics.Color4 add)
 {
     src.R += add.R;
     src.G += add.G;
     src.B += add.B;
     src.A += add.A;
 }
Beispiel #6
0
 public static void Color4_Mul(ref OpenTK.Graphics.Color4 src, OpenTK.Graphics.Color4 mul)
 {
     src.R *= mul.R;
     src.G *= mul.G;
     src.B *= mul.B;
     src.A *= mul.A;
 }
Beispiel #7
0
        /// <summary>
        /// 軸オブジェクトを生成
        /// </summary>
        /// <param name="gl"></param>
        private void setAxes(GLControlAlpha gl)
        {
            gl.DeleteAllObjects();
            var obj = new List <GLObject>();
            var r   = 0.065;
            //X軸
            var c = new C4(0.7f, 0.5f, 0.5f, 1f);

            obj.Add(new Cylinder(new V3(-1, 0, 0), new V3(2, 0, 0), r, new Material(c), DrawingMode.Surfaces));     //軸
            obj.Add(new Cone(new V3(1.1, 0, 0), new V3(-0.2, 0, 0), r * 2, new Material(c), DrawingMode.Surfaces)); //矢
            obj.Add(new TextObject("X", 11, new V3(1.25, 0, 0), 0, true, new Material(c)));

            //Y軸
            c = new C4(0.5f, 0.7f, 0.5f, 1f);
            obj.Add(new Cylinder(new V3(0, -1, 0), new V3(0, 2, 0), r, new Material(c), DrawingMode.Surfaces));     //軸
            obj.Add(new Cone(new V3(0, 1.1, 0), new V3(0, -0.2, 0), r * 2, new Material(c), DrawingMode.Surfaces)); //矢
            obj.Add(new TextObject("Y", 11, new V3(0, 1.25, 0), 0, true, new Material(c)));

            //Z軸
            c = new C4(0.5f, 0.5f, 0.7f, 1f);
            obj.Add(new Cylinder(new V3(0, 0, -1), new V3(0, 0, 2), r, new Material(c), DrawingMode.Surfaces));     //軸
            obj.Add(new Cone(new V3(0, 0, 1.1), new V3(0, 0, -0.2), r * 2, new Material(c), DrawingMode.Surfaces)); //矢
            obj.Add(new TextObject("Z", 11, new V3(0, 0, 1.25), 0, true, new Material(c)));

            //中央の球
            obj.Add(new Sphere(new V3(0, 0, 0), r * 2, new Material(C4.Gray), DrawingMode.Surfaces));

            gl.AddObjects(obj);
            gl.Refresh();
        }
Beispiel #8
0
        public void DrawFaceColor(TriMesh mesh)
        {
            GL.ShadeModel(ShadingModel.Smooth);
            GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);
            GL.Enable(EnableCap.Normalize);


            OpenGLManager.Instance.SetColor(GlobalSetting.DisplaySetting.MeshColor);
            GL.Begin(BeginMode.Triangles);
            for (int i = 0; i < mesh.Faces.Count; i++)
            {
                Color4 color = mesh.Faces[i].Traits.Color;
                OpenTK.Graphics.Color4 colorTwo = GlobalSetting.DisplaySetting.MeshColor;
                if (color != Color4.Black)
                {
                    colorTwo = OpenGLManager.Instance.ConvertColor(color);
                }
                // colorTwo = SetRandomColor(i);



                OpenGLManager.Instance.SetColor(colorTwo);

                foreach (TriMesh.Vertex vertex in mesh.Faces[i].Vertices)
                {
                    GL.Normal3(vertex.Traits.Normal.x, vertex.Traits.Normal.y, vertex.Traits.Normal.z);
                    GL.Vertex3(vertex.Traits.Position.x, vertex.Traits.Position.y, vertex.Traits.Position.z);
                }
            }
            GL.End();
        }
Beispiel #9
0
        OTK.Graphics.Color4 getCoordColor(UBrush b, float x, float y)
        {
            var ret = new OTK.Graphics.Color4();

            if (b is USolidBrush)
            {
                var usb = b as USolidBrush;
                ret.R = usb.color.r; ret.G = usb.color.g; ret.B = usb.color.b; ret.A = usb.color.a;
            }
            else if (b is ULinearGradientBrush)
            {
                var   ulgb      = b as ULinearGradientBrush;
                float axisAngle = pointsanglex(ulgb.point1, ulgb.point2);

                float cp1, cp2;
                Color cv1, cv2;
                cp1 = angleaxisxinterp(axisAngle, ulgb.point1.X, ulgb.point1.Y);
                cp2 = angleaxisxinterp(axisAngle, ulgb.point2.X, ulgb.point2.Y);
                cv1 = ulgb.color1; cv2 = ulgb.color2;
                if (cp1 > cp2)
                {
                    cp1 = angleaxisxinterp(axisAngle, ulgb.point2.X, ulgb.point2.Y);
                    cp2 = angleaxisxinterp(axisAngle, ulgb.point1.X, ulgb.point1.Y);
                    cv1 = ulgb.color2; cv2 = ulgb.color1;
                }
                ret = hcolorfour(x, y, axisAngle, cp1, cp2, cv1, cv2);
            }
            return(ret);
        }
Beispiel #10
0
        public void DrawGrid(OpenTK.Graphics.Color4 color, float X, float Y, float Z, int cell_size = 16, int grid_size = 256)
        {
            int dX = (int)Math.Round(X / cell_size) * cell_size;
            int dZ = (int)Math.Round(Y / cell_size) * cell_size;

            int ratio = grid_size / cell_size;

            GL.PushMatrix();

            GL.Translate(dX - grid_size / 2, dZ - grid_size / 2, 0);

            int i;

            GL.Color4(color);
            GL.Begin(PrimitiveType.Lines);

            for (i = 0; i < ratio + 1; i++)
            {
                int current = i * cell_size;

                GL.Vertex3(current, 0, 0);
                GL.Vertex3(current, grid_size, 0);

                GL.Vertex3(0, current, 0);
                GL.Vertex3(grid_size, current, 0);
            }

            GL.End();

            GL.PopMatrix();
        }
Beispiel #11
0
        void DrawSphere()
        {
            Vector3D[] move = new Vector3D[] {
                new Vector3D(0, 0, 1),
                new Vector3D(0.3, 0, 0),
                new Vector3D(-0.3, 0, -1)
            };

            OpenTK.Graphics.Color4[] colors = new OpenTK.Graphics.Color4[] {
                OpenTK.Graphics.Color4.Blue,
                OpenTK.Graphics.Color4.Yellow,
                OpenTK.Graphics.Color4.Green
            };

            GL.Begin(BeginMode.Triangles);

            for (int i = 0; i < 3; i++)
            {
                colors[i].A = 0.6f;
                GL.Color4(colors[i]);
                if (sphere[i] != null)
                {
                    foreach (var face in sphere[i].Faces)
                    {
                        foreach (var v in face.Vertices)
                        {
                            GL.Normal3(v.Traits.Normal.ToArray());
                            GL.Vertex3((v.Traits.Position + move[i]).ToArray());
                        }
                    }
                }
            }

            GL.End();
        }
Beispiel #12
0
 private void DrawSelectedEdges(TetMesh mesh)
 {
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
     GL.LineWidth(GlobalSetting.DisplaySetting.SelectionLineWidth);
     GL.Enable(EnableCap.LineSmooth);
     GL.Hint(HintTarget.LineSmoothHint, HintMode.Nicest);
     GL.Begin(BeginMode.Lines);
     foreach (var edge in mesh.Edges)
     {
         if (edge.Flag != 0)
         {
             Color4 color = edge.Color;
             if (color != Color4.Black)
             {
                 OpenTK.Graphics.Color4 colorTwo = new OpenTK.Graphics.Color4((float)color.R, (float)color.G, (float)color.B, 0.0f);
                 OpenGLManager.Instance.SetColorMesh(colorTwo);
             }
             else
             {
                 OpenGLManager.Instance.SetColorMesh(GlobalSetting.DisplaySetting.SelectedEdgeColor);
             }
             foreach (var v in edge.Vertices)
             {
                 GL.Normal3(v.Normal.ToArray());
                 GL.Vertex3(v.Pos.ToArray());
             }
         }
     }
     GL.End();
 }
Beispiel #13
0
 public void DrawSelectedFaces(TetMesh mesh)
 {
     GL.ShadeModel(ShadingModel.Smooth);
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);
     GL.Enable(EnableCap.Normalize);
     GL.Begin(BeginMode.Triangles);
     foreach (var face in mesh.Faces)
     {
         if (face.Flag != 0)
         {
             Color4 color = face.Color;
             if (color != Color4.Black)
             {
                 OpenTK.Graphics.Color4 colorTwo = new OpenTK.Graphics.Color4((float)color.R, (float)color.G, (float)color.B, 0.0f);
                 OpenGLManager.Instance.SetColorMesh(colorTwo);
             }
             else
             {
                 OpenGLManager.Instance.SetColorMesh(GlobalSetting.DisplaySetting.SelectedFaceColor);
             }
             foreach (var v in face.Vertices)
             {
                 GL.Normal3(v.Normal.ToArray());
                 GL.Vertex3(v.Pos.ToArray());
             }
         }
     }
     GL.End();
 }
        protected void drawTriangles(List <Triangle> tris)
        {
            OpenTK.Graphics.Color4 currentColor = new OpenTK.Graphics.Color4(100, 100, 100, 100);
            GL.PolygonOffset(1, 3);


            GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);

            GL.Begin(PrimitiveType.Triangles);
            foreach (Triangle tri in tris)
            {
                if (currentColor != tri.color)
                {
                    // GL.Color4(currentColor);
                    GL.Color4(tri.color);
                    currentColor = tri.color;
                }
                GL.Normal3(tri.normals[0]);
                GL.Vertex3(tri.vertices[0]);
                GL.Normal3(tri.normals[1]);
                GL.Vertex3(tri.vertices[1]);
                GL.Normal3(tri.normals[2]);
                GL.Vertex3(tri.vertices[2]);
            }
            GL.End();
        }
Beispiel #15
0
 private void DrawSelectedEdges(TetMesh mesh)
 {
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
     GL.LineWidth(GlobalSetting.DisplaySetting.SelectionLineWidth);
     GL.Enable(EnableCap.LineSmooth);
     GL.Hint(HintTarget.LineSmoothHint, HintMode.Nicest);
     GL.Begin(BeginMode.Lines);
     foreach (var edge in mesh.Edges)
     {
         if (edge.Flag != 0)
         {
             Color4 color = edge.Color;
             if (color != Color4.Black)
             {
                 OpenTK.Graphics.Color4 colorTwo = new OpenTK.Graphics.Color4((float)color.R, (float)color.G, (float)color.B, 0.0f);
                 OpenGLManager.Instance.SetColorMesh(colorTwo);
             }
             else
             {
                 OpenGLManager.Instance.SetColorMesh(GlobalSetting.DisplaySetting.SelectedEdgeColor);
             }
             foreach (var v in edge.Vertices)
             {
                 GL.Normal3(v.Normal.ToArray());
                 GL.Vertex3(v.Pos.ToArray());
             }
         }
     }
     GL.End();
 }
Beispiel #16
0
 public void DrawSelectedFaces(TetMesh mesh)
 {
     GL.ShadeModel(ShadingModel.Smooth);
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);
     GL.Enable(EnableCap.Normalize);
     GL.Begin(BeginMode.Triangles);
     foreach (var face in mesh.Faces)
     {
         if (face.Flag != 0)
         {
             Color4 color = face.Color;
             if (color != Color4.Black)
             {
                 OpenTK.Graphics.Color4 colorTwo = new OpenTK.Graphics.Color4((float)color.R, (float)color.G, (float)color.B, 0.0f);
                 OpenGLManager.Instance.SetColorMesh(colorTwo);
             }
             else
             {
                 OpenGLManager.Instance.SetColorMesh(GlobalSetting.DisplaySetting.SelectedFaceColor);
             }
             foreach (var v in face.Vertices)
             {
                 GL.Normal3(v.Normal.ToArray());
                 GL.Vertex3(v.Pos.ToArray());
             }
         }
     }
     GL.End();
 }
Beispiel #17
0
 public void DrawSelectedVerticeColor(TriMesh mesh)
 {
     OpenGLManager.Instance.SetColor(
         GlobalSetting.DisplaySetting.SelectedVertexColor);
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Point);
     GL.PointSize(GlobalSetting.DisplaySetting.PointSize);
     GL.Enable(EnableCap.PointSmooth);
     GL.Hint(HintTarget.PointSmoothHint, HintMode.Nicest);
     GL.Begin(BeginMode.Points);
     for (int i = 0; i < mesh.Vertices.Count; i++)
     {
         if (mesh.Vertices[i].Traits.SelectedFlag != 0)
         {
             Color4 color = mesh.Vertices[i].Traits.Color;
             OpenTK.Graphics.Color4 colorTwo = OpenTK.Graphics.Color4.Red;
             if (color != Color4.Black)
             {
                 colorTwo = OpenGLManager.Instance.ConvertColor(color);
             }
             else if (mesh.Vertices[i].Traits.SelectedFlag > 1)
             {
                 colorTwo =
                     SetRandomColor((byte)mesh.Vertices[i].Traits.SelectedFlag);
             }
             OpenGLManager.Instance.SetColor(colorTwo);
             GL.Normal3(mesh.Vertices[i].Traits.Normal.x,
                        mesh.Vertices[i].Traits.Normal.y,
                        mesh.Vertices[i].Traits.Normal.z);
             GL.Vertex3(mesh.Vertices[i].Traits.Position.x,
                        mesh.Vertices[i].Traits.Position.y,
                        mesh.Vertices[i].Traits.Position.z);
         }
     }
     GL.End();
 }
Beispiel #18
0
 internal Line(Vector2 p1, Vector2 p2, float radius, Color color)
 {
     this.p1     = p1;
     this.p2     = p2;
     this.radius = radius;
     this.color  = color;
     Recalc();
 }
 public RendererSettings()
 {
     this.clearColour      = OpenTK.Graphics.Color4.Black;
     this.nearClipDistance = 0.1f;
     this.farClipDistance  = 600.0f;
     this.screenheight     = 640;
     this.screenwidth      = 800;
 }
Beispiel #20
0
 public Entity(Region tregion, bool tickme, bool cast_shadows)
 {
     TheRegion   = tregion;
     TheClient   = tregion.TheClient;
     Ticks       = tickme;
     WireColor   = new OpenTK.Graphics.Color4((float)Utilities.UtilRandom.NextDouble(), (float)Utilities.UtilRandom.NextDouble(), 0f, 1f);
     CastShadows = cast_shadows;
 }
Beispiel #21
0
 public Entity(Region tregion, bool tickme, bool cast_shadows)
 {
     TheRegion = tregion;
     TheClient = tregion.TheClient;
     Ticks = tickme;
     WireColor = new OpenTK.Graphics.Color4((float)Utilities.UtilRandom.NextDouble(), (float)Utilities.UtilRandom.NextDouble(), 0f, 1f);
     CastShadows = cast_shadows;
 }
Beispiel #22
0
 public void SystemToOpenTKColor()
 {
     System.Drawing.Color   systemColor = System.Drawing.Color.FromArgb(255, 55, 77, 90);
     OpenTK.Graphics.Color4 openTKColor = systemColor.ToOpenTKColor4();
     Assert.AreEqual(openTKColor.R, systemColor.R / (float)255);
     Assert.AreEqual(openTKColor.G, systemColor.G / (float)255);
     Assert.AreEqual(openTKColor.B, systemColor.B / (float)255);
     Assert.AreEqual(openTKColor.A, systemColor.A / (float)255);
 }
Beispiel #23
0
 public void OpenTKtoSystemColor()
 {
     OpenTK.Graphics.Color4 openTKColor = new OpenTK.Graphics.Color4(255, 45, 77, 96);
     System.Drawing.Color   systemColor = openTKColor.ToSystemColor();
     Assert.AreEqual(openTKColor.R, systemColor.R / (float)255);
     Assert.AreEqual(openTKColor.G, systemColor.G / (float)255);
     Assert.AreEqual(openTKColor.B, systemColor.B / (float)255);
     Assert.AreEqual(openTKColor.A, systemColor.A / (float)255);
 }
Beispiel #24
0
        public override void DrawSphere(float radius, ref OpenTK.Matrix4 transform, OpenTK.Graphics.Color4 color)
        {
            var position = transform.ExtractTranslation();
            var min      = position - new OpenTK.Vector3(-radius, -radius, -radius);
            var max      = position - new OpenTK.Vector3(radius, radius, radius);

            DrawBox(ref min, ref max, color);
            base.DrawSphere(radius, ref transform, color);
        }
Beispiel #25
0
 public Sprite(GameModePlay parent, Texture2D texture, Vector2 position, Color4 color)
 {
     this.NumAnimations = 1;
     this.Parent        = parent;
     this.Texture       = texture;
     this.Position      = position;
     this.Color         = color;
     this.Rotation      = 0.0f;
 }
Beispiel #26
0
 public void DrawLine(ref Vector3 from, ref Vector3 to, OpenTK.Graphics.Color4 color)
 {
     GL.Color3(0, 1.0f, 0.0f);
     GL.Begin(PrimitiveType.Lines);
     GL.Vertex3(from);
     GL.Vertex3(to);
     GL.End();
     //Console.WriteLine("Drew Line");
 }
Beispiel #27
0
 void DrawTransparentMesh(TetMesh mesh, float alpha)
 {
     OpenTK.Graphics.Color4 front = GlobalSetting.MaterialSetting.MaterialDiffuse;
     front.A = alpha;
     OpenTK.Graphics.Color4 back = GlobalSetting.MaterialSetting.BackMaterialDiffuse;
     back.A = alpha;
     GL.Material(MaterialFace.Front, MaterialParameter.Diffuse, front);
     GL.Material(MaterialFace.Back, MaterialParameter.Diffuse, back);
 }
Beispiel #28
0
 public void DrawWireFrameDark(TriMesh mesh)
 {
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
     GL.LineWidth(GlobalSetting.DisplaySetting.LineWidth);
     GL.Enable(EnableCap.CullFace);
     OpenTK.Graphics.Color4 color = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 0.0f);
     OpenGLManager.Instance.SetColor(color);
     DrawTriangles(mesh);
 }
Beispiel #29
0
        public void TransitionBackground(int time, Color4 color)
        {
            Vector3 a = this.ColorToVec3(this.BackgroundColor);
            Vector3 b = this.ColorToVec3(color);

            this.TransitionColorDelta = (b - a) / (float)time;
            this.TransitionColor      = a;
            this.TransitionTimer      = time;
        }
Beispiel #30
0
 ///<summary> Changes GL target for rendering to this frame buffer, sets viewport, clears to colourback </summary>
 public void BindColor(OpenTK.Graphics.Color4 colourback)
 {
     GL.NamedFramebufferDrawBuffer(Id, DrawBufferMode.ColorAttachment0 + ColorTarget); // attach the FB to draw buffer target
     GL.BindFramebuffer(FramebufferTarget.DrawFramebuffer, Id);                        // bind the FB to the system
     GL.Viewport(new System.Drawing.Rectangle(0, 0, Width, Height));                   // set the viewport
     GL.ClearColor(colourback);
     GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);        // clear the FB
     GLStatics.Check();
 }
Beispiel #31
0
 private void DrawLine(Vector2 start, Vector2 end, Color color)
 {
     GL.Disable(EnableCap.Texture2D);
     GL.Color4(color);
     GL.Begin(PrimitiveType.Lines);
     GL.Vertex2(start.X, start.Y);
     GL.Vertex2(end.X, end.Y);
     GL.End();
     GL.Enable(EnableCap.Texture2D);
 }
Beispiel #32
0
        public object Load(JToken json)
        {
            var obj = new OpenTK.Graphics.Color4();

            obj.R = json["R"].Value <float>();
            obj.G = json["G"].Value <float>();
            obj.B = json["B"].Value <float>();
            obj.A = json["A"].Value <float>();
            return(obj);
        }
Beispiel #33
0
 public void DrawLine(ref Vector3 from, ref Vector3 to, OpenTK.Graphics.Color4 fromColor, OpenTK.Graphics.Color4 toColor)
 {
     GL.Begin(PrimitiveType.Lines);
     GL.Color3(0, 0, 255);
     GL.Vertex3(from);
     GL.Color3(toColor.R, toColor.G, toColor.B);
     GL.Vertex3(to);
     GL.End();
     //Console.WriteLine("Drew Line");
 }
Beispiel #34
0
 public Trail(Vector2 startpos, float angle, Colour4 colour)
     : base(startpos.X - 32f, startpos.Y, Texture, 0.75f)
 {
     Sprite.Colour = colour;
     Sprite.Rotation = angle;
     velocity = new Vector2
     {
         X = -trailspeed,
         Y = 0
     };
 }
Beispiel #35
0
 public SpaceFlare(Vector2 startpos, float angle, Colour4 colour)
     : base(startpos.X, startpos.Y, Texture, 0.75f)
 {
     Sprite.Colour = colour;
     Sprite.Rotation = angle;
     velocity = new Vector2
     {
         X = (float)Math.Cos(angle) * pewspeed,
         Y = (float)Math.Sin(angle) * pewspeed
     };
     hashit = false;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="NiMaterialProperty" /> class.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <param name="reader">The reader.</param>
        public NiMaterialProperty(NiFile file, BinaryReader reader) : base(file, reader)
		{
			if (base.Version <= eNifVersion.VER_10_0_1_2)
			{
				this.Flags = reader.ReadUInt16();
			}
			this.AmbientColor = reader.ReadColor3();
			this.DiffuseColor = reader.ReadColor3();
			this.SpecularColor = reader.ReadColor3();
			this.EmissiveColor = reader.ReadColor3();
			this.Glossiness = reader.ReadSingle();
			this.Alpha = reader.ReadSingle();
		}
Beispiel #37
0
 public void DrawSelectedVertices(TetMesh mesh)
 {
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Point);
     GL.PointSize(GlobalSetting.DisplaySetting.PointSize);
     GL.Enable(EnableCap.PointSmooth);
     GL.Hint(HintTarget.PointSmoothHint, HintMode.Nicest);
     OpenGLManager.Instance.SetColorMesh(GlobalSetting.DisplaySetting.SelectedVertexColor);
     GL.Begin(BeginMode.Points);
     foreach (var v in mesh.Vertices)
     {
         if (v.Flag != 0)
         {
             Color4 color = v.Color;
             if (color != Color4.Black)
             {
                 OpenTK.Graphics.Color4 colorTwo = new OpenTK.Graphics.Color4((float)color.R, (float)color.G, (float)color.B, 0.0f);
                 OpenGLManager.Instance.SetColorMesh(colorTwo);
             }
             GL.Normal3(v.Normal.ToArray());
             GL.Vertex3(v.Pos.ToArray());
         }
     }
     GL.End();
 }
        public void DrawFFDGrid(TriMesh m, List<List<int>> lines)
        {
            DrawSelectedVerticeBySphere(m);


            GL.Material(MaterialFace.Front, MaterialParameter.Diffuse, GlobalSetting.DisplaySetting.BoundaryColor);
            GL.LineWidth(0.1f);

            for (int i = 0; i < lines.Count; i++)
            {
                GL.Begin(BeginMode.LineStrip);
                OpenTK.Graphics.Color4 color = new OpenTK.Graphics.Color4(0, 0, 0, 0); 
                GL.Material(MaterialFace.Front, MaterialParameter.Diffuse, color);
                for (int j = 0; j < lines[i].Count; j++)
                {
                    GL.Vertex3(m.Vertices[lines[i][j]].Traits.Position.x,
                               m.Vertices[lines[i][j]].Traits.Position.y,
                               m.Vertices[lines[i][j]].Traits.Position.z);
                }
                GL.End();

            }

        }
 public OpenTK.Graphics.Color4 SetRandomColor(int i)
 { 
     Color4 color = TriMeshUtil.SetRandomColor(i);
     OpenTK.Graphics.Color4 colorTwo = OpenGLManager.Instance.ConvertColor(color);   
     switch (i % 6)
     {
     case 0: colorTwo = new OpenTK.Graphics.Color4(0.0f, 0.0f, 1.0f, 0.0f); break;
     case 1: colorTwo = new OpenTK.Graphics.Color4(1.0f, 0.0f, 0.0f, 0.0f); break;
     case 2: colorTwo = new OpenTK.Graphics.Color4(0.0f, 1.0f, 0.0f, 0.0f); break;
     case 3: colorTwo = new OpenTK.Graphics.Color4(1.0f, 1.0f, 0.0f, 0.0f); break;
     case 4: colorTwo = new OpenTK.Graphics.Color4(0.0f, 1.0f, 1.0f, 0.0f); break;
     case 5: colorTwo = new OpenTK.Graphics.Color4(1.0f, 0.0f, 1.0f, 0.0f); break; 
     } 
     return colorTwo;
 }
Beispiel #40
0
        private static void setColours()
        {
            playerOneColour = new OpenTK.Graphics.Color4(Config.convertSettingToFloat("colours", "playerOne_R"), Config.convertSettingToFloat("colours", "playerOne_G"), Config.convertSettingToFloat("colours", "playerOne_B"), Config.convertSettingToFloat("colours", "playerOne_A"));
            playerTwoColour = new OpenTK.Graphics.Color4(Config.convertSettingToFloat("colours", "playerTwo_R"), Config.convertSettingToFloat("colours", "playerTwo_G"), Config.convertSettingToFloat("colours", "playerTwo_B"), Config.convertSettingToFloat("colours", "playerTwo_A"));

            shadowColour = new OpenTK.Graphics.Color4(Config.convertSettingToFloat("colours", "shadow_R"), Config.convertSettingToFloat("colours", "shadow_G"), Config.convertSettingToFloat("colours", "shadow_B"), Config.convertSettingToFloat("colours", "shadow_A"));
            traceColour = new OpenTK.Graphics.Color4(Config.convertSettingToFloat("colours", "trace_R"), Config.convertSettingToFloat("colours", "trace_G"), Config.convertSettingToFloat("colours", "trace_B"), Config.convertSettingToFloat("colours", "trace_A"));

            cubeColour = new OpenTK.Graphics.Color4(Config.convertSettingToFloat("colours", "cube_R"), Config.convertSettingToFloat("colours", "cube_G"), Config.convertSettingToFloat("colours", "cube_B"), Config.convertSettingToFloat("colours", "cube_A"));
            highlightColour = new OpenTK.Graphics.Color4(Config.convertSettingToFloat("colours", "highlight_R"), Config.convertSettingToFloat("colours", "highlight_G"), Config.convertSettingToFloat("colours", "highlight_B"), Config.convertSettingToFloat("colours", "highlight_A"));
        }
Beispiel #41
0
        public OpenTK.Graphics.Color4 ConvertColor(Color4 color)
        {
            OpenTK.Graphics.Color4 colorTwo = new OpenTK.Graphics.Color4((float)color.R, (float)color.G, (float)color.B, (float)color.Alpha); 

            return colorTwo;

        }
Beispiel #42
0
        void DrawSphere()
        {
            Vector3D[] move = new Vector3D[]{
                new Vector3D(0,0,1),
                new Vector3D(0.3,0,0),
                new Vector3D(-0.3,0,-1)};

            OpenTK.Graphics.Color4[] colors = new OpenTK.Graphics.Color4[]{
                OpenTK.Graphics.Color4.Blue,
                OpenTK.Graphics.Color4.Yellow,
                OpenTK.Graphics.Color4.Green};

            GL.Begin(BeginMode.Triangles);

            for (int i = 0; i < 3; i++)
            {
                colors[i].A = 0.6f;
                GL.Color4(colors[i]);
                if (sphere[i] != null)
                {
                    foreach (var face in sphere[i].Faces)
                    {
                        foreach (var v in face.Vertices)
                        {
                            GL.Normal3(v.Traits.Normal.ToArray());
                            GL.Vertex3((v.Traits.Position + move[i]).ToArray());
                        }
                    }
                }
            }

            GL.End();
        }
Beispiel #43
0
 public void DrawWireFrameDark(TriMesh mesh)
 {
      
     GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
     GL.LineWidth(GlobalSetting.DisplaySetting.LineWidth);
     GL.Enable(EnableCap.CullFace);  
     OpenTK.Graphics.Color4 color = new OpenTK.Graphics.Color4(0.0f, 0.0f, 0.0f, 0.0f);
     OpenGLManager.Instance.SetColor(color); 
     DrawTriangles(mesh);
     
 }
Beispiel #44
0
 public SpaceShip(Vector2 startpos, Colour4 colour)
     : base(startpos.X, startpos.Y, Texture, 0.5f)
 {
     HP = 100;
 }
        public OpenTK.Graphics.Color4 ColorAt(CameraSpacePoint cp)
        {
            if (!HasColorData || !HasDepthData || coordinateMapper == null || KColors==null) return OpenTK.Graphics.Color4.Black;

            ColorSpacePoint colp = coordinateMapper.MapCameraPointToColorSpace(cp);

            int j = (int)(colp.Y + 0.5);
            int i = (int)(colp.X + 0.5);
            if (j < 0 || j >= ColorHeight || i<0 || i> ColorWidth) return OpenTK.Graphics.Color4.Black;

            int k = (j * ColorWidth + i) * 4;

            OpenTK.Graphics.Color4 c = new OpenTK.Graphics.Color4();
            c.R = KColors[k + 2] / 255.0f;
            c.G = KColors[k + 1] / 255.0f;
            c.B = KColors[k] / 255.0f;
            c.A = 1.0f;

            return c;
        }
Beispiel #46
0
        public void DrawFlatShape(double mouseDownPosX, double mouseDownPosY, 
                         double mouseCurrPosX, double mouseCurrPosY,
                         OpenGLFlatShape shape)
        {
            switch (shape)
            {
                case OpenGLFlatShape.Circle:
                    DrawCircle((short)mouseDownPosX, (short)mouseDownPosY,
                      (short)mouseCurrPosX, (short)mouseCurrPosY);
                    break;
                case OpenGLFlatShape.Rectangle:

                    OpenTK.Graphics.Color4 color =
                        new OpenTK.Graphics.Color4(1.0f, 1.0f, 1.0f, 0.0f);
                    SetColor(color);
                    GL.Rects((short)mouseDownPosX, (short)mouseDownPosY, 
                             (short)mouseCurrPosX, (short)mouseCurrPosY);
                    break;
            }
        }
Beispiel #47
0
        public OpenTK.Graphics.Color4 SetColorPallete(int num)
        {
            OpenTK.Graphics.Color4 color = GlobalSetting.DisplaySetting.MeshColor;
            switch (num % 20)
            {
                case 0: color = GlobalSetting.DisplaySetting.MeshColor; break;
                // case 0: color = new OpenTK.Graphics.Color4(0.0f, 0.0f, 1.0f, 0.0f); break;
                case 1: color = new OpenTK.Graphics.Color4(1.0f, 0.0f, 0.0f, 0.0f); break;
                case 2: color = new OpenTK.Graphics.Color4(0.0f, 1.0f, 0.0f, 0.0f); break;
                case 3: color = new OpenTK.Graphics.Color4(1.0f, 1.0f, 0.0f, 0.0f); break;
                case 4: color = new OpenTK.Graphics.Color4(0.0f, 1.0f, 1.0f, 0.0f); break;
                case 5: color = new OpenTK.Graphics.Color4(1.0f, 0.0f, 1.0f, 0.0f); break;
                case 6: color = OpenTK.Graphics.Color4.Brown; break;
                case 7: color = OpenTK.Graphics.Color4.Tomato; break;
                case 8: color = OpenTK.Graphics.Color4.Turquoise; break;
                case 9: color = OpenTK.Graphics.Color4.Violet; break;
                case 10: color = OpenTK.Graphics.Color4.Goldenrod; break;


            }

            return color;
        }