コード例 #1
0
 //============================================================
 // <T>处理鼠标落下。</T>
 //============================================================
 public void ProcessMouseDown(int mouseButton, int x, int y)
 {
     RMouse.ProcessDown(mouseButton);
     RMouse.LocationDown.Set(x, y);
     // 左键按下
     if (mouseButton == EMouseButton.Left)
     {
         // 存储相机
         _region.Camera.Store();
         // 点击测试
         if (RKeybord.IsPressedKey(EKeyCode.D1) || RKeybord.IsPressedKey(EKeyCode.D2) || RKeybord.IsPressedKey(EKeyCode.D3) ||
             RKeybord.IsPressedKey(EKeyCode.D4) || RKeybord.IsPressedKey(EKeyCode.D5) || RKeybord.IsPressedKey(EKeyCode.D6) ||
             RKeybord.IsPressedKey(EKeyCode.D7) || RKeybord.IsPressedKey(EKeyCode.D8) || RKeybord.IsPressedKey(EKeyCode.D9))
         {
         }
         else
         {
             int renderableId           = _techniqueDesign.HitTest(_region, x, y);
             FDxDesignGeometry geometry = null;
             if (renderableId > 0)
             {
                 geometry = _region.Renderables.FindById(renderableId) as FDxDesignGeometry;
             }
             DoGeometryFocus(geometry);
         }
         // 过滤所有选择对象
         _region.Renderables.FilterSelected(_renderablesSelected, false);
         _renderablesSelected.Store();
     }
 }
コード例 #2
0
 //============================================================
 private void QDsTemplateEditorForm_KeyUp(object sender, KeyEventArgs e)
 {
     // 按键抬起操作
     RKeybord.ProcessUp((int)e.KeyCode);
     // 场景处理
     _scene.ProcessKeyUp((int)e.KeyCode);
 }
コード例 #3
0
 //============================================================
 private void ProcessInput()
 {
     if (RKeybord.IsPressedKey(EKeyCode.Left))
     {
         _spatial.DoRotationY(0.1f);
     }
     else if (RKeybord.IsPressedKey(EKeyCode.Right))
     {
         _spatial.DoRotationY(-0.1f);
     }
 }
コード例 #4
0
 //============================================================
 public void DoGeometryFocus(FDxDesignGeometry geometry)
 {
     if (null != geometry)
     {
         bool selected = geometry.IsSelected;
         if (geometry.IsUi)
         {
             // 选中UI时
             _region.Renderables.SetSelected(true, false);
             geometry.IsSelected = true;
             _commandCd          = MakeCommandByName(geometry.MeshName);
         }
         else
         {
             // 选中渲染对象时
             if (!RKeybord.IsPressedKey(EKeyCode.ShiftKey))
             {
                 _region.Renderables.SetSelected(false);
             }
             geometry.IsSelected = true;
             // 设置设计模式
             DoDesignMode(_modeCd);
             // 设置位置
             _spatialTranslate.Matrix.Assign(geometry.Matrix);
             _spatialTranslate.Update();
         }
     }
     else
     {
         // 未选中任何对象
         _region.Renderables.SetSelected(false);
         _spatialTranslate.SetVisible(false);
         _spatialRotation.SetVisible(false);
         _spatialScale.SetVisible(false);
     }
     // 设置焦点对象
     if (null != geometry)
     {
         if (geometry.IsUi)
         {
             _focusGeometryUi = geometry;
         }
         else
         {
             _focusGeometry = geometry;
         }
     }
     else
     {
         _focusGeometryUi = geometry;
         _focusGeometry   = geometry;
     }
 }
コード例 #5
0
 //============================================================
 private void QDsTemplateEditorForm_KeyDown(object sender, KeyEventArgs e)
 {
     // 显示和隐藏操作界面
     if (e.KeyCode == Keys.Space)
     {
         tsbCatalog_Click(sender, e);
         tsbProperty_Click(sender, e);
     }
     // 按键按下操作
     RKeybord.ProcessDown((int)e.KeyCode);
     // 场景处理
     _scene.ProcessKeyDown((int)e.KeyCode);
 }
コード例 #6
0
 //============================================================
 public void ProcessKeyDown(int keyCode)
 {
     // 移动
     if (RKeybord.IsPressedKey(EKeyCode.D1))
     {
         _commandCd = EDxDesignCommand.MatrixTranslationX;
     }
     else if (RKeybord.IsPressedKey(EKeyCode.D2))
     {
         _commandCd = EDxDesignCommand.MatrixTranslationY;
     }
     else if (RKeybord.IsPressedKey(EKeyCode.D3))
     {
         _commandCd = EDxDesignCommand.MatrixTranslationZ;
     }
     // 旋转
     if (RKeybord.IsPressedKey(EKeyCode.D4))
     {
         _commandCd = EDxDesignCommand.MatrixRotationX;
     }
     else if (RKeybord.IsPressedKey(EKeyCode.D5))
     {
         _commandCd = EDxDesignCommand.MatrixRotationY;
     }
     else if (RKeybord.IsPressedKey(EKeyCode.D6))
     {
         _commandCd = EDxDesignCommand.MatrixRotationZ;
     }
     // 缩放
     if (RKeybord.IsPressedKey(EKeyCode.D7))
     {
         _commandCd = EDxDesignCommand.MatrixScaleX;
     }
     else if (RKeybord.IsPressedKey(EKeyCode.D8))
     {
         _commandCd = EDxDesignCommand.MatrixScaleY;
     }
     else if (RKeybord.IsPressedKey(EKeyCode.D9))
     {
         _commandCd = EDxDesignCommand.MatrixScaleZ;
     }
 }