Beispiel #1
0
        public void OnInsertAgain(string scene3DModelObj, ModelVisual3D device, Cursor _previousCursor)
        {
            Debug.WriteLine("CALLING async is DONE ...curthread:" + Application.Current.Dispatcher.ToString());
            this.helixViewport3D.Children.Add(device);
            Scene3DViewModelLib.Scene3DModel scene3DModel = new Scene3DViewModelLib.Scene3DModel(scene3DModelObj, new ActionCommand(action => OnInsertAgain(scene3DModelObj), canExecute => true, (b) =>
            {
                On3DControlFocus(b ? "Insert Again" : null);
            }), device);

            Scene3DEles.Add(scene3DModel);

            {
                //< ht:BindableTranslateManipulator Direction = "1 0 0"  Length = "5" Diameter = "1" Color = "Black" Value = "{Binding TranslateValue}" TargetTransform = "{Binding ElementName=sphere1, Path=Transform}" />
                TranslateManipulator manipulator = new TranslateManipulator();
                manipulator.Bind(device);
                manipulator.Color     = Colors.Red;
                manipulator.Direction = new Vector3D(1, 0, 0);
                manipulator.Diameter  = 0.1;
                manipulator.Length    = 9;//TODO: len = obj-len * 2
                this.helixViewport3D.Children.Add(manipulator);
            }

            Mouse.OverrideCursor = _previousCursor;

            Debug.WriteLine("CALLED  async...");
        }
Beispiel #2
0
 public Scene()
 {
     InitializeComponent();
     var m = new TranslateManipulator()
     {
     };
 }
        public void DeplacementGauche()
        {
            Transform3D transform3D;
            Vector3D    vector3D = new Vector3D();

            TranslateManipulator translateManipulator = new TranslateManipulator();
            //Point3D point1 = Cylindre.Point1;
            //Point3D point2 = Cylindre.Point2;
            //point1.X --;
            //point2.X --;
            //Cylindre.Point1 = point1;
            //Cylindre.Point2 = point2;
        }
        public DeplacementForme()
        {
            Cylindre = new PipeVisual3D();
            InitializeComponent();
            viewport.Children.Add(Cylindre);


            Cylindre.Point2 = new Point3D(0, 0, -10);



            // Translate X
            TranslateManipulator translateManipulatorX = new TranslateManipulator();

            translateManipulatorX.Visibility = Visibility.Visible;
            translateManipulatorX.Bind(Cylindre);
            translateManipulatorX.Color     = Colors.DarkRed;
            translateManipulatorX.Direction = new Vector3D(1, 0, 0);
            viewport.Children.Add(translateManipulatorX);

            // Translate Y
            TranslateManipulator translateManipulatorY = new TranslateManipulator();

            translateManipulatorY.Visibility = Visibility.Visible;
            translateManipulatorY.Bind(Cylindre);
            translateManipulatorY.Color     = Colors.AliceBlue;
            translateManipulatorY.Direction = new Vector3D(0, 1, 0);
            viewport.Children.Add(translateManipulatorY);

            // Translate Z
            TranslateManipulator translateManipulatorZ = new TranslateManipulator();

            translateManipulatorZ.Visibility = Visibility.Visible;
            translateManipulatorZ.Bind(Cylindre);
            translateManipulatorZ.Color     = Colors.ForestGreen;
            translateManipulatorZ.Direction = new Vector3D(0, 0, -1);
            viewport.Children.Add(translateManipulatorZ);

            //translateManipulatorX.MouseUp += MouseUpHandler;
            //translateManipulatorY.MouseUp += MouseUpHandler;
            //translateManipulatorZ.MouseUp += MouseUpHandler;
        }
Beispiel #5
0
        public MainViewModel(IFileDialogService fds, HelixViewport3D viewport, RotateManipulator rmX, RotateManipulator rmY, RotateManipulator rmZ, TranslateManipulator scaleXYZ, PrintConfiguration PrintConfig)
        {
            if (viewport == null)
            {
                throw new ArgumentNullException("viewport");
            }

            this.printConfig            = PrintConfig;
            ScaleFactor                 = 100;
            SizeX                       = SizeY = SizeZ = 0;
            this.rotatorManipulatorX    = rmX;
            this.rotatorManipulatorY    = rmY;
            this.rotatorManipulatorZ    = rmZ;
            this.ScaleXYZ               = scaleXYZ;
            this.dispatcher             = Dispatcher.CurrentDispatcher;
            this.Expansion              = 1;
            this.fileDialogService      = fds;
            this.viewport               = viewport;
            this.FileOpenCommand        = new DelegateCommand(this.FileOpen);
            this.FileExportCommand      = new DelegateCommand(this.FileExport);
            this.FileExitCommand        = new DelegateCommand(FileExit);
            this.ViewZoomExtentsCommand = new DelegateCommand(this.ViewZoomExtents);
            this.EditCopyXamlCommand    = new DelegateCommand(this.CopyXaml);
            this.ViewRotateCommand      = new DelegateCommand(this.ViewRotate);
            this.ViewScaleCommand       = new DelegateCommand(this.ViewScale);
            this.ResetSolidCommand      = new DelegateCommand(this.ResetSolid);
            this.PrintCommand           = new DelegateCommand(this.GenerateGCODE);
            this.PronterfaceCommand     = new DelegateCommand(this.Prontercae);
            this.AbortCommand           = new DelegateCommand(this.Abort);
            this.ApplicationTitle       = "Fracktory";
            ModelLoaded                 = Visibility.Collapsed;
            ModelNotLoaded              = Visibility.Visible;
            ModelPrint                  = Visibility.Collapsed;
            ModelPrintDone              = Visibility.Collapsed;
            this.Elements               = new List <VisualViewModel>();

            foreach (var c in viewport.Children)
            {
                this.Elements.Add(new VisualViewModel(c));
            }
        }
Beispiel #6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ManipulatorGizmoVisual" /> class.
        /// </summary>
        public ManipulatorGizmoVisual()
        {
            //Translators
            this.translateXManipulator = new TranslateManipulator
            {
                Direction = new Vector3D(1, 0, 0),
                Length    = 40,
                Diameter  = 4,
                Color     = Colors.Red
            };
            this.translateYManipulator = new TranslateManipulator
            {
                Direction = new Vector3D(0, 1, 0),
                Length    = 40,
                Diameter  = 4,
                Color     = Colors.Green
            };
            this.translateZManipulator = new TranslateManipulator
            {
                Direction = new Vector3D(0, 0, 1),
                Length    = 40,
                Diameter  = 4,
                Color     = Colors.Blue
            };
            //Rotators
            this.rotateXManipulator = new RotateManipulator {
                InnerDiameter = 25, Diameter = 35, Axis = new Vector3D(1, 0, 0), Color = Colors.Red
            };
            this.rotateYManipulator = new RotateManipulator {
                InnerDiameter = 25, Diameter = 35, Axis = new Vector3D(0, 1, 0), Color = Colors.Green
            };
            this.rotateZManipulator = new RotateManipulator {
                InnerDiameter = 25, Diameter = 35, Axis = new Vector3D(0, 0, 1), Color = Colors.Blue
            };

            //BindingOperations.SetBinding(this, TransformProperty, new Binding("TargetTransform") { Source = this });

            //Transalate transform
            SetManipulatorBinding(translateXManipulator, Manipulator.TargetTransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(translateYManipulator, Manipulator.TargetTransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(translateZManipulator, Manipulator.TargetTransformProperty, nameof(TargetTransform));

            SetManipulatorBinding(translateXManipulator, Manipulator.TransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(translateYManipulator, Manipulator.TransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(translateZManipulator, Manipulator.TransformProperty, nameof(TargetTransform));


            //Diameter
            SetManipulatorBinding(rotateXManipulator, RotateManipulator.DiameterProperty, nameof(Diameter));
            SetManipulatorBinding(rotateYManipulator, RotateManipulator.DiameterProperty, nameof(Diameter));
            SetManipulatorBinding(rotateZManipulator, RotateManipulator.DiameterProperty, nameof(Diameter));
            //Rotation Transform
            SetManipulatorBinding(rotateXManipulator, Manipulator.TargetTransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(rotateYManipulator, Manipulator.TargetTransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(rotateZManipulator, Manipulator.TargetTransformProperty, nameof(TargetTransform));

            SetManipulatorBinding(rotateXManipulator, Manipulator.TransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(rotateYManipulator, Manipulator.TransformProperty, nameof(TargetTransform));
            SetManipulatorBinding(rotateZManipulator, Manipulator.TransformProperty, nameof(TargetTransform));

            UpdateChildren();
        }
        public void CheckManipulatorVisible()
        {
            ClearManipulator();
            switch (ToolBoxIndex)
            {
            case 1:
                ViewPortModel.Children.ToList().ForEach(e =>
                {
                    if (e.GetType().Equals(typeof(BoxVisual3D)))
                    {
                        //CombinedManipulator manipulator = new CombinedManipulator();
                        //manipulator.Offset = new Vector3D(0, 0, (e as BoxVisual3D).Height + 1);
                        //manipulator.Bind(e as BoxVisual3D);
                        //ViewPortModel.Children.Add(manipulator);
                        TranslateManipulator manipulatorZ = new TranslateManipulator()
                        {
                            Color = Colors.Blue, Diameter = 0.3, Direction = new Vector3D(0, 0, 1), Length = ((e as BoxVisual3D).Height / 2f) + 2f
                        };
                        manipulatorZ.Bind((e as BoxVisual3D));
                        ViewPortModel.Children.Add(manipulatorZ);

                        TranslateManipulator manipulatorZ2 = new TranslateManipulator()
                        {
                            Color = Colors.Blue, Diameter = 0.3, Direction = new Vector3D(0, 0, -1), Length = ((e as BoxVisual3D).Height / 2f) + 2f
                        };
                        manipulatorZ2.Bind((e as BoxVisual3D));
                        ViewPortModel.Children.Add(manipulatorZ2);


                        TranslateManipulator manipulatorX = new TranslateManipulator()
                        {
                            Color = Colors.Blue, Diameter = 0.3, Direction = new Vector3D(0, 1, 0), Length = ((e as BoxVisual3D).Width / 2f) + 2f
                        };
                        manipulatorX.Bind((e as BoxVisual3D));
                        ViewPortModel.Children.Add(manipulatorX);
                        TranslateManipulator manipulatorX2 = new TranslateManipulator()
                        {
                            Color = Colors.Blue, Diameter = 0.3, Direction = new Vector3D(0, -1, 0), Length = ((e as BoxVisual3D).Width / 2f) + 2f
                        };
                        manipulatorX2.Bind((e as BoxVisual3D));
                        ViewPortModel.Children.Add(manipulatorX2);

                        TranslateManipulator manipulatorY = new TranslateManipulator()
                        {
                            Color = Colors.Blue, Diameter = 0.3, Direction = new Vector3D(1, 0, 0), Length = ((e as BoxVisual3D).Length / 2f) + 2f
                        };
                        manipulatorY.Bind((e as BoxVisual3D));
                        ViewPortModel.Children.Add(manipulatorY);
                        TranslateManipulator manipulatorY2 = new TranslateManipulator()
                        {
                            Color = Colors.Blue, Diameter = 0.3, Direction = new Vector3D(-1, 0, 0), Length = ((e as BoxVisual3D).Length / 2f) + 2f
                        };
                        manipulatorY2.Bind((e as BoxVisual3D));
                        ViewPortModel.Children.Add(manipulatorY2);
                    }
                });
                break;

            case 2:
                ViewPortModel.Children.ToList().ForEach(e =>
                {
                    if (e.GetType().Equals(typeof(BoxVisual3D)))
                    {
                        ViewPortModel.Children.Add(new TranslateManipulatorScaleZ(e as BoxVisual3D).manipulator);
                        ViewPortModel.Children.Add(new TranslateManipulatorScaleX(e as BoxVisual3D).manipulator);
                        ViewPortModel.Children.Add(new TranslateManipulatorScaleY(e as BoxVisual3D).manipulator);
                    }
                });
                break;
            }
        }