コード例 #1
0
        public void Update()
        {
            int xx = Mouse.GetCursorState().X - Program.mainWindow.X;
            int yy = Mouse.GetCursorState().Y - Program.mainWindow.Y - 32;

            if ((xx > 0 && xx < Program.mainWindow.X + Program.mainWindow.Width) || (yy > 0 && yy < Program.mainWindow.Y + Program.mainWindow.Height))
            {
                Program.mainWindow.Cursor = MouseCursor.Empty;
            }
            foreach (Line l in d.getLines())
            {
                SplineManipulator(l);
            }
            if (IM.KeyDown(Key.H))
            {
                hide = !hide;
            }
            if (IM.KeyDown(Key.Space))
            {
                if (d.lines.Count == 0)
                {
                    d.lines.Add(new Line());
                }
                d.lines[lineIndex].splines.Add(new Spline(IM.FmouseVec()));
            }
            if (IM.KeyDown(Key.Enter))
            {
                d.lines.Add(new Line());
                lineIndex++;
            }
            if (IM.KeyDown(Key.BackSpace))
            {
                d.lines[lineIndex].splines.RemoveAt(d.lines[lineIndex].splines.Count - 1);
            }
            if (IM.KeyDown(Key.C))
            {
                d.lines[lineIndex].complete = !d.lines[lineIndex].complete;
            }
            if (IM.KeyDown(Key.ShiftLeft))
            {
                lockControlPoint = true;
            }
            if (IM.KeyUp(Key.ShiftLeft))
            {
                lockControlPoint = false;
            }

            if (IM.KeyDown(Key.P))
            {
                if (mHeldSpline != null)
                {
                    File.WriteAllText("point.txt", VTools.pack(mHeldSpline.position));
                }
            }
            if (IM.KeyDown(Key.L))
            {
                string s = File.ReadAllText("point.txt");
                File.WriteAllText("pointRead.txt", VTools.pack(VTools.unpack(s)));
            }
        }
コード例 #2
0
ファイル: window.cs プロジェクト: KaneMcGrath/BSplineTesting
 protected override void OnRenderFrame(FrameEventArgs e)
 {
     GL.Clear(ClearBufferMask.ColorBufferBit);
     MKII.Render();
     GL.Flush();
     SwapBuffers();
     IM.PostRender();
 }
コード例 #3
0
ファイル: FlatUI.cs プロジェクト: KaneMcGrath/BSplineTesting
        public static bool button(Rectangle rectangle, string text)
        {
            GUI.OutlineBox(rectangle, primaryColor, outlineColor, IM.isMouseInRect(rectangle) && IM.GetMouseButton(MouseButton.Left));
            Vector2 v = Coordinates.RemoveAspect(Coordinates.RectToFRect(rectangle).GetCorner(0));

            Text.DrawString(v, 0.4f, v.ToString());

            if (IM.isMouseInRect(rectangle) && IM.MouseButtonDown(MouseButton.Left))
            {
                return(true);
            }
            return(false);
        }
コード例 #4
0
ファイル: window.cs プロジェクト: KaneMcGrath/BSplineTesting
 protected override void OnMouseDown(MouseButtonEventArgs e)
 {
     IM.OnMouseButtonDown(e.Button);
 }
コード例 #5
0
ファイル: window.cs プロジェクト: KaneMcGrath/BSplineTesting
 protected override void OnKeyUp(KeyboardKeyEventArgs e)
 {
     IM.OnKeyUp(e.Key);
 }
コード例 #6
0
ファイル: window.cs プロジェクト: KaneMcGrath/BSplineTesting
 protected override void OnUpdateFrame(FrameEventArgs e)
 {
     IM.Update();
     MKII.Update();
     MKII.LateUpdate();
 }
コード例 #7
0
ファイル: window.cs プロジェクト: KaneMcGrath/BSplineTesting
 protected override void OnMouseUp(MouseButtonEventArgs e)
 {
     IM.OnMouseButtonUp(e.Button);
 }
コード例 #8
0
        public void Render()
        {
            int mouseX = IM.MouseX();
            int mouseY = IM.MouseY();

            Renderer.drawRect(new FRect(-1f, -1f, 2f, 2f, false), backgroundColor);
            Renderer.drawLine(screenBoundPoints, Color.Black);
            Renderer.drawLine(screenBound2Points, Color.Black);

            Rectangle rt = new Rectangle(100, 100, 200, 50);
            FRect     fr = Coordinates.RectToFRect(rt);
            FRect     r  = fr.shouldAdjustToAspect ? Coordinates.ApplyAspect(fr) : fr;

            Renderer.LineCircle(new Vector2(r.left, r.top), 0.01f, 10, Color.BlueViolet);
            //FlatUI.GUI.OutlineBox(Text.DrawStringR(new Vector2(-0.5f, 0f), 0.5f, "Make a good rect for me here! ♥", Color.Crimson));



            if (FlatUI.button(rt, "test button"))
            {
                Random ra = new Random();

                backgroundColor = Color.FromArgb(ra.Next(0, 255), ra.Next(0, 255), ra.Next(0, 255));
            }



            Text.DrawString(new Vector2(-0.3f, -0.5f), 0.5f, "Hello this is a test");
            Text.DrawString(new Vector2(-0.3f, -0.6f), 0.5f, "Please work as intended");
            Text.DrawString(new Vector2(-0.3f, 0.6f), 0.5f, "Mouse Left: " + IM.GetMouseButton(MouseButton.Left).ToString());
            Text.DrawString(new Vector2(-0.3f, 0.7f), 0.5f, "Mouse Left Down: " + IM.MouseButtonDown(MouseButton.Left).ToString());
            Text.DrawString(new Vector2(-0.3f, 0.8f), 0.5f, "Mouse Left Up: " + IM.MouseButtonUp(MouseButton.Left).ToString());



            Text.DrawString(IM.FmouseVec(), 0.5f, "(" + Math.Round(IM.FmouseX(), 2).ToString() + "," + Math.Round(IM.FmouseY(), 2).ToString() + ")");


            if (stampLetter.stamps.Count > 0)
            {
                foreach (stampLetter s in stampLetter.stamps)
                {
                    Text.DrawString(s.pos, 0.05f, s.value.ToString());
                }
            }


            Color c = Color.Black;

            if (IM.GetMouseButton(MouseButton.Left))
            {
                c = Color.Red;
            }
            else
            {
                foreach (Line l in d.getLines())
                {
                    foreach (Spline s in l.splines)
                    {
                        if (IM.FisMouseInRect(new FRect(s.position, 0.04f)) || IM.FisMouseInRect(new FRect(s.leftPos, 0.04f)) || IM.FisMouseInRect(new FRect(s.rightPos, 0.04f)))
                        {
                            c = Color.Magenta;
                        }
                    }
                }
            }
            Renderer.LineCircle(IM.FmouseVec(), 0.004f, 20, c);

            if (!hide)
            {
                Line[] array = d.getLines();
                for (int i = 0; i < array.Length; i++)
                {
                    Line l = array[i];
                    if (i == lineIndex)
                    {
                        foreach (Spline s in l.splines)
                        {
                            Renderer.drawSpline(s, Color.Black);
                        }
                    }
                    else
                    {
                        foreach (Spline s in l.splines)
                        {
                            Renderer.drawSpline(s, Color.Gray);
                        }
                    }
                }
            }
            foreach (Line l in d.getLines())
            {
                Renderer.drawLineCurve(l, 40, Color.Black);
            }
        }
コード例 #9
0
 private void SplineManipulator(Line l)
 {
     if (mHeldSpline != null)
     {
         if (IM.GetMouseButton(MouseButton.Left))
         {
             if (mControlPoint == 0)
             {
                 mHeldSpline.position = new Vector2(IM.FmouseX() + mOffset.X, IM.FmouseY() + mOffset.Y);
             }
             else if (mControlPoint == 1)
             {
                 if (lockControlPoint)
                 {
                     mHeldSpline.moveControlPointLocked(new Vector2(IM.FmouseX() + mOffset.X, IM.FmouseY() + mOffset.Y), true);
                 }
                 else
                 {
                     mHeldSpline.moveControlPoint(new Vector2(IM.FmouseX() + mOffset.X, IM.FmouseY() + mOffset.Y), true);
                 }
             }
             else
             {
                 if (lockControlPoint)
                 {
                     mHeldSpline.moveControlPointLocked(new Vector2(IM.FmouseX() + mOffset.X, IM.FmouseY() + mOffset.Y), false);
                 }
                 else
                 {
                     mHeldSpline.moveControlPoint(new Vector2(IM.FmouseX() + mOffset.X, IM.FmouseY() + mOffset.Y), false);
                 }
             }
         }
         else
         {
             mHeldSpline = null;
         }
     }
     else
     {
         foreach (Spline s in l.splines)
         {
             if (IM.MouseButtonDown(MouseButton.Left))
             {
                 if (IM.FisMouseInRect(new FRect(s.GlobalLeft(), 0.04f)))
                 {
                     mOffset       = new Vector2(s.GlobalLeft().X - IM.FmouseX(), s.GlobalLeft().Y - IM.FmouseY());
                     mHeldSpline   = s;
                     mControlPoint = 1;
                     lineIndex     = d.lines.IndexOf(l);
                 }
                 if (IM.FisMouseInRect(new FRect(s.GlobalRight(), 0.04f)))
                 {
                     mOffset       = new Vector2(s.GlobalRight().X - IM.FmouseX(), s.GlobalRight().Y - IM.FmouseY());
                     mHeldSpline   = s;
                     mControlPoint = 2;
                     lineIndex     = d.lines.IndexOf(l);
                 }
                 else if (IM.FisMouseInRect(new FRect(s.position, 0.04f)))
                 {
                     mOffset       = new Vector2(s.position.X - IM.FmouseX(), s.position.Y - IM.FmouseY());
                     mHeldSpline   = s;
                     mControlPoint = 0;
                     lineIndex     = d.lines.IndexOf(l);
                 }
             }
         }
     }
 }