private void MoveToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (manager.getSelectedModels().Count != 0)
     {
         CLoadedObject obj = manager.getSelectedModels()[0];
         ControlModeChanger.getInstance().changeMode(new ModelMoveMode(obj));
     }
 }
 public static ControlModeChanger getInstance()
 {
     if (__instance == null)
     {
         __instance = new ControlModeChanger();
     }
     return(__instance);
 }
示例#3
0
 private void cancelButton_Click(object sender, EventArgs e)
 {
     this.target.vx    = pre_vx;
     this.target.vy    = pre_vy;
     this.target.vz    = pre_vz;
     this.target.x_dir = pre_rotate_x;
     this.target.y_dir = pre_rotate_y;
     this.target.z_dir = pre_rotate_z;
     ControlModeChanger.getInstance().changeMode(new NormalMode());
 }
        override public void MouseClick(ModelManager model_manager, CCamera camera, Control control, MouseEventArgs e)
        {
            this.target_camera = camera;
            if (e.Button == MouseButtons.Middle)
            {
                is_mid_mouse_on = true;
                mouse_old_x     = e.X;
                mouse_old_y     = e.Y;
            }
            else if (e.Button == MouseButtons.Left)
            {
                model_manager.ClearSelectModel();
                Gl.glMatrixMode(Gl.GL_PROJECTION);
                Gl.glPushMatrix();
                Gl.glMatrixMode(Gl.GL_MODELVIEW);
                Gl.glPushMatrix();
                int[] viewport = new int[4];
                Gl.glViewport(0, 0, control.Width, control.Height);
                Gl.glGetIntegerv(Gl.GL_VIEWPORT, viewport);
                TransformMatrixes    trans = new TransformMatrixes();
                List <SelectionData> picks;
                try
                {
                    picks = Selection.Pick <CLoadedObject>(model_manager.getSelectionDict(), new double[] { e.X, control.Height - e.Y - 1 }, new double[] { 1, 1 }, camera,
                                                           viewport, false, out trans);
                }
                catch (Exception except)
                {
                    return;
                }
                SelectionData selected = Selection.GetNearest(picks);
                if (selected != null)
                {
                    model_manager.SelectModel(selected.names[0]);
                    // (selected.item as CLoadedObject).changeState(new Jusin.ObjectModel.State.ModelStateSelected());
                    ControlModeChanger.getInstance().changeMode(new NormalModeSelectedModel());
                }
                else
                {
                    ControlModeChanger.getInstance().changeMode(new NormalMode());
                }

                Gl.glMatrixMode(Gl.GL_PROJECTION);
                Gl.glPopMatrix();
                Gl.glMatrixMode(Gl.GL_MODELVIEW);
                Gl.glPopMatrix();
                control.Invalidate();
            }
        }
示例#5
0
        private void okButton_Click(object sender, EventArgs e)
        {
            //targetの値をいったんもとに戻す。その前に移動先となる現在の値を別に記憶しておく
            float vx    = this.vx;
            float vy    = this.vy;
            float vz    = this.vz;
            float r_x   = this.r_x;
            float r_y   = this.r_y;
            float r_z   = this.r_z;
            float maged = this.maged;

            //元に戻す(undo(),redo()の実装のため)
            this.target.vx    = pre_vx;
            this.target.vy    = pre_vy;
            this.target.vz    = pre_vz;
            this.target.x_dir = pre_rotate_x;
            this.target.y_dir = pre_rotate_y;
            this.target.z_dir = pre_rotate_z;
            this.target.maged = pre_mag;
            MainCommandManager.getInstance().execute(new MoveCommand(vx, vy, vz, r_x, r_y, r_z, maged, target));
            ControlModeChanger.getInstance().changeMode(new NormalMode());
        }
        private void topToolStripMenuItem_Click(object sender, EventArgs e)
        {
            CLoadedObject obj = manager.getSelectedModels().Count != 0 ? manager.getSelectedModels()[0] : null;

            CameraControl.setToTop(ControlModeChanger.getInstance().getCurrentMode().getTargetCamera(), obj);
        }