//============================================================ 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; } }
//============================================================ 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; } }