Ejemplo n.º 1
0
        public AppController(AppWindow appView)
        {
            try
            {
                this.appView = appView;
                var appModel = AppModel.Instance;

                // Create application modules
                externalController = new ExternalEventsController(this.appView, appModel.ExternalModel);
                workspaceController = new WorkspaceController(this.appView, appModel.WorkspaceModel);
                menuController = new MenuItemsController(this.appView, appModel.MenuModel);
                sceneTreeController = new SceneTreeController(this.appView, appModel.SceneTreeModel);
                toolbarController = new ToolstripItemsController(this.appView, appModel.ToolbarsModel);
                windowController = new WindowController(this.appView, appModel.AppWindowModel);

                // Create application configuration
                appModel.InitializeSettings(workspaceController.GraphicsUpdateCallback,
                    this.appView, this.appView.Size);

                // Redirect UI invocations to the main form control
                MyMethodInvoker.SetInvocationTarget(appView);
            }
            catch (OutOfMemoryException ex)
            {
                MessageBoxFactory.Create(caption: "Critical Error",
                    text: string.Format("Unable to create all application modules{0}Detailed information may be available in the LogFile.", Environment.NewLine),
                    boxType: MessageBoxType.Error);

                Logger.Error(ex.ToString());
            }
        }
Ejemplo n.º 2
0
        public MainWindowViewModel(WorkspaceController workspaces, CommandController commands)
        {
            base.DisplayName = Strings.MainWindowViewModel_DisplayName;

            _workspaces = workspaces;
            _commands = commands;
        }
Ejemplo n.º 3
0
 public CustomerController(WorkspaceController workspaces, CommandController commands,
     ICustomerRepository customerRepository)
 {
     _workspaces = workspaces;
     _commands = commands;
     _customerRepository = customerRepository;
 }
Ejemplo n.º 4
0
        //--------------------------------------------------------------------------------------------------

        void _OnActionPreview(ToolAction toolAction)
        {
            if (_Phase == Phase.BaseEdgeOrVertex)
            {
                if (_GetPreviewAxis(toolAction as SelectSubshapeAction, out var axis))
                {
                    if (_DirectionPreview == null)
                    {
                        _DirectionPreview = new HintAxis(WorkspaceController, HintStyle.NoResize);
                    }
                    _DirectionPreview.SetAxis(axis);
                    _DirectionPreview.SetLength(75.0);
                    _DirectionPreview.SetColor(Colors.Highlight);
                }
                else
                {
                    _DirectionPreview?.Remove();
                    _DirectionPreview = null;
                }

                WorkspaceController.Invalidate();
            }
        }
Ejemplo n.º 5
0
        //--------------------------------------------------------------------------------------------------

        public override bool Start()
        {
            if (_Mode == ToolMode.ReselectFace)
            {
                var visualShape = WorkspaceController.VisualObjects.Get(_TargetBody) as VisualShape;
                if (visualShape != null)
                {
                    visualShape.OverrideBrep = _TargetShape.GetTransformedBRep();
                    WorkspaceController.Invalidate();
                }
            }

            var toolAction = new SelectSubshapeAction(this, SubshapeTypes.Face, _TargetBody, new FaceSelectionFilter(FaceSelectionFilter.FaceType.Plane));

            if (!WorkspaceController.StartToolAction(toolAction))
            {
                return(false);
            }
            toolAction.Finished += _OnActionFinished;

            StatusText = "Select face to create flange to.";
            WorkspaceController.HudManager?.SetCursor(Cursors.SelectFace);
            return(true);
        }
Ejemplo n.º 6
0
        //--------------------------------------------------------------------------------------------------

        void _RemoveReconstructed()
        {
            // Remove reconstructed
            if (_IsReconstructedActive)
            {
                var visObject = WorkspaceController.VisualObjects.Get(_Body, true) as VisualShape;
                if (visObject == null)
                {
                    return;
                }

                visObject.OverrideBrep = null;
            }
            _IsReconstructedActive = false;

            // Remove preview
            if (_AisPreviewShape != null)
            {
                WorkspaceController.Workspace.AisContext.Erase(_AisPreviewShape, false);
                _AisPreviewShape = null;
            }

            WorkspaceController.Invalidate();
        }
Ejemplo n.º 7
0
        //--------------------------------------------------------------------------------------------------

        public override bool Start()
        {
            if (_TargetBody2 != null)
            {
                var boxJoint = BoxJoint.Create(_TargetBody1, _TargetBody2);
                InteractiveContext.Current.UndoHandler.Commit();
                Stop();
                WorkspaceController.Invalidate();
                return(false);
            }

            var toolAction = new SelectEntityAction <Body>(this);

            if (!WorkspaceController.StartToolAction(toolAction))
            {
                return(false);
            }
            toolAction.Previewed += _OnActionPreview;
            toolAction.Finished  += _OnActionFinished;
            toolAction.Exclude(_TargetBody1);
            UpdateStatusText(null);
            WorkspaceController.HudManager?.SetCursor(Cursors.SelectShape);
            return(true);
        }
Ejemplo n.º 8
0
 protected Hint(WorkspaceController workspaceController)
     : base(workspaceController, null)
 {
 }
Ejemplo n.º 9
0
        //--------------------------------------------------------------------------------------------------

        public override bool Start()
        {
            _SelectionContext = WorkspaceController.Selection.OpenContext(SelectionContext.Options.NewSelectedList);
            var workspace = WorkspaceController.Workspace;

            var editorSettings = SketchEditorSettingsCache.GetOrCreate(Sketch);

            if (editorSettings.WorkingContext == null)
            {
                editorSettings.WorkingContext = workspace.WorkingContext.Clone();
            }

            workspace.WorkingContext             = editorSettings.WorkingContext;
            WorkspaceController.LockWorkingPlane = true;
            workspace.WorkingPlane = Sketch.Plane;

            var vc = WorkspaceController.ActiveViewControlller;

            _SavedViewParameters = vc.Viewport.GetViewParameters();
            vc.LockedToPlane     = true;

            if (editorSettings.ViewParameters != null)
            {
                vc.Viewport.RestoreViewParameters(editorSettings.ViewParameters);
                // Update direction
                var twist = vc.Viewport.Twist;
                vc.SetPredefinedView(ViewportController.PredefinedViews.WorkingPlane);
                vc.Viewport.Twist = twist;
            }
            else
            {
                _CenterView();
                RotateView(0);
            }
            vc.Viewport.PropertyChanged += _Viewport_PropertyChanged;

            EnableClipPlane(editorSettings.ClipPlaneEnabled);

            if (Sketch.IsVisible)
            {
                var visualSketchShape = WorkspaceController.VisualShapes.GetVisualShape(Sketch.Body, true);
                if (visualSketchShape != null)
                {
                    visualSketchShape.IsHidden = true;
                }
            }

            _LastGizmoScale = WorkspaceController.ActiveViewport.GizmoScale;

            _TempPoints = new Dictionary <int, Pnt2d>(Sketch.Points);
            Transform   = Sketch.GetTransformation();

            Elements.InitElements(_TempPoints);
            _UpdateSelections();

            Sketch.ElementsChanged += _Sketch_ElementsChanged;

            _SelectAction = new SelectSketchElementAction(this);
            if (!WorkspaceController.StartToolAction(_SelectAction))
            {
                return(false);
            }
            _SelectAction.Finished += _OnSelectionChanged;

            StatusText = UnselectedStatusText;

            return(true);
        }
Ejemplo n.º 10
0
 protected VisualObject(WorkspaceController workspaceController, InteractiveEntity entity)
 {
     WorkspaceController = workspaceController;
     Entity = entity;
 }
 public BuildStarterController(WorkspaceController workspaces, CommandController commands)
 {
     _workspaces = workspaces;
     _commands = commands;
 }
Ejemplo n.º 12
0
 protected VisualObject(WorkspaceController workspaceController)
 {
     WorkspaceController = workspaceController;
 }
Ejemplo n.º 13
0
 public StartingState(ToolbarController toolbar_controller_p, WorkspaceController workspace_controller_p)
 {
     ToolbarController_m   = toolbar_controller_p;
     WorkspaceController_m = workspace_controller_p;
 }
Ejemplo n.º 14
0
        //--------------------------------------------------------------------------------------------------

        public VisualPlane(WorkspaceController workspaceController, DatumPlane entity)
            : base(workspaceController, entity)
        {
            _DatumPlane = entity;
            Update();
        }
        //--------------------------------------------------------------------------------------------------

        public PropertiesPanelModel()
        {
            InteractiveContext.Current.PropertyChanged += _Context_PropertyChanged;
            WorkspaceController = InteractiveContext.Current.WorkspaceController;
            InteractiveContext.Current.PropertyPanelManager = this;
        }
Ejemplo n.º 16
0
        //--------------------------------------------------------------------------------------------------

        public HintLine(WorkspaceController workspaceController, HintStyle style)
            : base(workspaceController)
        {
            _Style = style;
        }
Ejemplo n.º 17
0
        //--------------------------------------------------------------------------------------------------

        public Marker(WorkspaceController workspaceController, Styles styles, string imageName)
            : base(workspaceController, null)
        {
            _Styles = styles;
            _Image  = _GetMarkerImage(imageName);
        }
Ejemplo n.º 18
0
        //--------------------------------------------------------------------------------------------------

        public Marker(WorkspaceController workspaceController, Styles styles, Image image)
            : base(workspaceController, null)
        {
            _Styles = styles;
            _Image  = image;
        }
Ejemplo n.º 19
0
        private void ToggleBinder(bool visible)
        {
            int margin = (int)App.Self.Preferences.AppearancePreferences.Get("ui_base_margin");

            if (_showing)
            {
                GetTween().InterpolateProperty(
                    this,
                    "rect_position",
                    RectGlobalPosition,
                    new Vector2(-RectSize.x - 2, RectGlobalPosition.y),
                    _showingSpeed,
                    Tween.TransitionType.Cubic,
                    Tween.EaseType.Out);

                WorkspaceController workspace = App.Self.GetWorkspaceController();
                GetTween().InterpolateProperty(
                    workspace,
                    "margin_left",
                    workspace.MarginLeft,
                    0,
                    _showingSpeed,
                    Tween.TransitionType.Cubic,
                    Tween.EaseType.Out);

                Dock.Dock dock = App.Self.Dock;
                GetTween().InterpolateProperty(
                    dock.ContentControl,
                    "margin_left",
                    dock.MarginLeft,
                    margin,
                    _showingSpeed,
                    Tween.TransitionType.Cubic,
                    Tween.EaseType.Out);

                GetTween().Start();
                _showing = false;
            }
            else
            {
                GetTween().InterpolateProperty(
                    this,
                    "rect_position",
                    RectGlobalPosition,
                    new Vector2(0, RectGlobalPosition.y),
                    _showingSpeed,
                    Tween.TransitionType.Cubic,
                    Tween.EaseType.Out);

                WorkspaceController workspace = App.Self.GetWorkspaceController();
                GetTween().InterpolateProperty(
                    workspace,
                    "margin_left",
                    workspace.MarginLeft,
                    RectSize.x,
                    _showingSpeed,
                    Tween.TransitionType.Cubic,
                    Tween.EaseType.Out);

                Dock.Dock dock = App.Self.Dock;
                GetTween().InterpolateProperty(
                    dock.ContentControl,
                    "margin_left",
                    dock.MarginLeft,
                    RectSize.x + margin,
                    _showingSpeed,
                    Tween.TransitionType.Cubic,
                    Tween.EaseType.Out);

                GetTween().Start();
                _showing = true;
            }
        }
Ejemplo n.º 20
0
 void ExecuteDeleteCommand()
 {
     _Tool.Component.Remove();
     CommmitChange();
     WorkspaceController.CancelTool(_Tool, true);
 }
Ejemplo n.º 21
0
 public AddTransactionState(ToolbarController toolbar_controller_p, WorkspaceController workspace_controller_p)
 {
     ToolbarController_m   = toolbar_controller_p;
     WorkspaceController_m = workspace_controller_p;
 }
        //--------------------------------------------------------------------------------------------------

        void _OnActionFinished(ToolAction toolAction)
        {
            bool finished     = false;
            var  selectAction = toolAction as SelectSubshapeAction;

            Debug.Assert(selectAction != null);

            if (selectAction.SelectedSubshapeType == SubshapeTypes.Face)
            {
                var face        = TopoDS.Face(selectAction.SelectedSubshape);
                var brepAdaptor = new BRepAdaptor_Surface(face, true);
                if (brepAdaptor.GetGeomType() != GeomAbs_SurfaceType.GeomAbs_Plane)
                {
                    StatusText = "Selected face is not a plane type surface.";
                }
                else
                {
                    selectAction.Stop();
                    Stop();
                    finished = true;
                    var faceRef = _TargetShape.GetSubshapeReference(_TargetBrep, face);
                    if (faceRef == null)
                    {
                        Messages.Error("A subshape reference could not be produced for this face.");
                        return;
                    }

                    if (_Mode == ToolMode.CreateNew)
                    {
                        // Create new
                        var sketch = new Sketch
                        {
                            Body = _TargetBody,
                        };

                        var imprint = Imprint.Create(_TargetBody, faceRef, sketch);
                        if (imprint != null)
                        {
                            imprint.Mode = _ImprintMode;
                            InteractiveContext.Current.UndoHandler.Commit();
                            InteractiveContext.Current.WorkspaceController.Selection.SelectEntity(_TargetBody);
                            WorkspaceController.StartTool(new SketchEditorTool(sketch));
                        }
                    }
                    else if (_Mode == ToolMode.ReselectFace)
                    {
                        // Reselected face
                        _ImprintToChange.Face = faceRef;
                        _ImprintToChange.Invalidate();
                        InteractiveContext.Current.UndoHandler.Commit();
                    }
                }
            }

            if (!finished)
            {
                selectAction.Reset();
            }

            WorkspaceController.Invalidate();
        }