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..."); }
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; }
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)); } }
/// <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; } }