Beispiel #1
0
        /// <summary>
        /// Keyboard movements
        /// </summary>
        public void MoveSpawnsWithKeyboard()
        {
            try
            {
                cam.device.Acquire();
            }
            catch
            {
                return;
            }

            Key[] keys = cam.device.GetPressedKeys();
            foreach (Key kk in keys)
            {
                switch (kk.ToString())
                {
                case "Tab":
                    currentMode           = (editingModes)((int)(currentMode + 1) % 3);
                    this.lblEditMode.Text = currentMode.ToString();
                    switch (currentMode)
                    {
                    case editingModes.None:
                        lblXLabel.Visible      = false;
                        lblX.Visible           = false;
                        lblYLabel.Visible      = false;
                        lblY.Visible           = false;
                        lblZLabel.Visible      = false;
                        lblZ.Visible           = false;
                        gbSurfaceFlags.Visible = false;
                        break;

                    case editingModes.Point:
                        lblXLabel.Visible      = true;
                        lblX.Visible           = true;
                        lblYLabel.Visible      = true;
                        lblY.Visible           = true;
                        lblZLabel.Visible      = true;
                        lblZ.Visible           = true;
                        gbSurfaceFlags.Visible = false;
                        lblXLabel.Text         = "X:";
                        lblYLabel.Text         = "Y:";
                        lblX.Location          = new Point(28, 35);
                        lblY.Location          = new Point(28, 51);
                        updateInfo();
                        break;

                    case editingModes.Surface:
                        lblXLabel.Visible      = true;
                        lblX.Visible           = true;
                        lblYLabel.Visible      = true;
                        lblY.Visible           = true;
                        lblZLabel.Visible      = false;
                        lblZ.Visible           = false;
                        gbSurfaceFlags.Visible = true;
                        lblXLabel.Text         = "Surface #";
                        lblYLabel.Text         = "   Plane #";
                        lblX.Location          = new Point(65, 33);
                        lblY.Location          = new Point(65, 49);
                        updateInfo();
                        break;
                    }
                    System.Threading.Thread.Sleep(220);
                    break;
                }

                // Movement of points (only available in point mode)
                if (currentMode == editingModes.Point)
                {
                    for (int x = 0; x < SelectedPoints.Count; x++)
                    {
                        // tslabel.Text = kk.ToString();
                        switch (kk.ToString())
                        {
                        case "Up":
                            coll.Vertices[SelectedPoints[x]].X += cam.speed;
                            break;

                        case "DownArrow":
                            coll.Vertices[SelectedPoints[x]].X -= cam.speed;
                            break;

                        case "LeftArrow":
                            coll.Vertices[SelectedPoints[x]].Y += cam.speed;
                            break;

                        case "Right":
                            coll.Vertices[SelectedPoints[x]].Y -= cam.speed;
                            break;

                        case "PageDown":
                            coll.Vertices[SelectedPoints[x]].Z -= cam.speed;
                            break;

                        case "PageUp":
                            coll.Vertices[SelectedPoints[x]].Z += cam.speed;
                            break;

                            /*
                             * case "LeftControl":
                             *  rotationBitMask |= (int)SelectedItemRotationType.Control;
                             *  break;
                             * case "RightControl":
                             *  rotationBitMask |= (int)SelectedItemRotationType.Control;
                             *  break;
                             * case "LeftShift":
                             *  rotationBitMask |= (int)SelectedItemRotationType.Shift;
                             *  break;
                             * case "RightShift":
                             *  rotationBitMask |= (int)SelectedItemRotationType.Shift;
                             *  break;
                             * case "RightMenu":
                             *  rotationBitMask |= (int)SelectedItemRotationType.Alt;
                             *  break;
                             * case "LeftMenu":
                             *  rotationBitMask |= (int)SelectedItemRotationType.Alt;
                             *  break;
                             */
                        }

                        TranslationMatrix[SelectedPoints[x]] = Matrix.Identity;
                        TranslationMatrix[SelectedPoints[x]].Multiply(Matrix.Translation(coll.Vertices[SelectedPoints[x]].X, coll.Vertices[SelectedPoints[x]].Y, coll.Vertices[SelectedPoints[x]].Z));
                        updateBSPInfo(SelectedPoints[x], coll.Vertices[SelectedPoints[x]].X, coll.Vertices[SelectedPoints[x]].Y, coll.Vertices[SelectedPoints[x]].Z);
                    }
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Keyboard movements
        /// </summary>
        public void MoveSpawnsWithKeyboard()
        {
            try
            {
                cam.device.Acquire();
            }
            catch
            {
                return;
            }

            Key[] keys = cam.device.GetPressedKeys();
            foreach (Key kk in keys)
            {
                switch (kk.ToString())
                {
                    case "Tab":
                        currentMode = (editingModes)((int)(currentMode + 1) % 3);
                        this.lblEditMode.Text = currentMode.ToString();
                        switch (currentMode)
                        {
                            case editingModes.None:
                                lblXLabel.Visible = false;
                                lblX.Visible = false;
                                lblYLabel.Visible = false;
                                lblY.Visible = false;
                                lblZLabel.Visible = false;
                                lblZ.Visible = false;
                                gbSurfaceFlags.Visible = false;
                                break;
                            case editingModes.Point:
                                lblXLabel.Visible = true;
                                lblX.Visible = true;
                                lblYLabel.Visible = true;
                                lblY.Visible = true;
                                lblZLabel.Visible = true;
                                lblZ.Visible = true;
                                gbSurfaceFlags.Visible = false;
                                lblXLabel.Text = "X:";
                                lblYLabel.Text = "Y:";
                                lblX.Location = new Point(28, 35);
                                lblY.Location = new Point(28, 51);
                                updateInfo();
                                break;
                            case editingModes.Surface:
                                lblXLabel.Visible = true;
                                lblX.Visible = true;
                                lblYLabel.Visible = true;
                                lblY.Visible = true;
                                lblZLabel.Visible = false;
                                lblZ.Visible = false;
                                gbSurfaceFlags.Visible = true;
                                lblXLabel.Text = "Surface #";
                                lblYLabel.Text = "   Plane #";
                                lblX.Location = new Point(65, 33);
                                lblY.Location = new Point(65, 49);
                                updateInfo();
                                break;

                        }
                        System.Threading.Thread.Sleep(220);
                        break;
                }

                // Movement of points (only available in point mode)
                if (currentMode == editingModes.Point)
                    for (int x = 0; x < SelectedPoints.Count; x++)
                    {
                        // tslabel.Text = kk.ToString();
                        switch (kk.ToString())
                        {
                            case "Up":
                                coll.Vertices[SelectedPoints[x]].X += cam.speed;
                                break;
                            case "DownArrow":
                                coll.Vertices[SelectedPoints[x]].X -= cam.speed;
                                break;
                            case "LeftArrow":
                                coll.Vertices[SelectedPoints[x]].Y += cam.speed;
                                break;
                            case "Right":
                                coll.Vertices[SelectedPoints[x]].Y -= cam.speed;
                                break;
                            case "PageDown":
                                coll.Vertices[SelectedPoints[x]].Z -= cam.speed;
                                break;
                            case "PageUp":
                                coll.Vertices[SelectedPoints[x]].Z += cam.speed;
                                break;
                            /*
                            case "LeftControl":
                                rotationBitMask |= (int)SelectedItemRotationType.Control;
                                break;
                            case "RightControl":
                                rotationBitMask |= (int)SelectedItemRotationType.Control;
                                break;
                            case "LeftShift":
                                rotationBitMask |= (int)SelectedItemRotationType.Shift;
                                break;
                            case "RightShift":
                                rotationBitMask |= (int)SelectedItemRotationType.Shift;
                                break;
                            case "RightMenu":
                                rotationBitMask |= (int)SelectedItemRotationType.Alt;
                                break;
                            case "LeftMenu":
                                rotationBitMask |= (int)SelectedItemRotationType.Alt;
                                break;
                            */

                        }

                        TranslationMatrix[SelectedPoints[x]] = Matrix.Identity;
                        TranslationMatrix[SelectedPoints[x]].Multiply(Matrix.Translation(coll.Vertices[SelectedPoints[x]].X, coll.Vertices[SelectedPoints[x]].Y, coll.Vertices[SelectedPoints[x]].Z));
                        updateBSPInfo(SelectedPoints[x], coll.Vertices[SelectedPoints[x]].X, coll.Vertices[SelectedPoints[x]].Y, coll.Vertices[SelectedPoints[x]].Z);
                    }

            }
        }