예제 #1
0
        public RotationForme()
        {
            Cylindre = new PipeVisual3D();
            InitializeComponent();
            viewport.Children.Add(Cylindre);

            RotateManipulator rotateManipulatorX = new RotateManipulator();

            rotateManipulatorX.Visibility = Visibility.Visible;
            rotateManipulatorX.Bind(Cylindre);
            rotateManipulatorX.Color = Colors.Aqua;
            rotateManipulatorX.Axis  = new Vector3D(-10, 0, 0);
            rotateManipulatorX.Pivot = Cylindre.Point2;
            viewport.Children.Add(rotateManipulatorX);

            RotateManipulator rotateManipulatorY = new RotateManipulator();

            rotateManipulatorY.Visibility = Visibility.Visible;
            rotateManipulatorY.Bind(Cylindre);
            rotateManipulatorY.Color = Colors.Aqua;
            rotateManipulatorY.Axis  = new Vector3D(0, -10, 0);
            rotateManipulatorY.Pivot = Cylindre.Point2;
            viewport.Children.Add(rotateManipulatorY);

            RotateManipulator rotateManipulatorZ = new RotateManipulator();

            rotateManipulatorZ.Visibility = Visibility.Visible;
            rotateManipulatorZ.Bind(Cylindre);
            rotateManipulatorZ.Color = Colors.Aqua;
            rotateManipulatorZ.Axis  = new Vector3D(0, 0, -10);
            rotateManipulatorZ.Pivot = Cylindre.Point2;
            viewport.Children.Add(rotateManipulatorZ);
        }
예제 #2
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));
            }
        }
예제 #3
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();
        }