Example #1
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;
     }
 }
Example #2
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;
     }
 }