コード例 #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
 //============================================================
 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;
     }
 }
コード例 #3
0
ファイル: FDxDesignFactory.cs プロジェクト: whztt07/MoCross
        //============================================================
        public override T Create <T>(EDxObject objectCd)
        {
            object value = null;

            switch (objectCd)
            {
            case EDxObject.ModelGeometry:
                value = new FDxDesignGeometry();
                break;

            case EDxObject.ModelSpatial:
                value = new FDxSpatial();
                break;
            }
            if (null == value)
            {
                value = base.Create <T>(objectCd);
            }
            return((T)value);
        }
コード例 #4
0
 //============================================================
 public void DoGeometryBlur(FDxDesignGeometry geometry)
 {
     _focusGeometry = null;
 }