Example #1
0
 public void AddCs(double x, double y, double z)
 {
     this.Dispatcher.Invoke(() =>
     {
         var t = new CoordinateSystemVisual3D();
         modelVisual3D.Children.Add(t);
     });
 }
Example #2
0
        public Node(int Number)
        {
            x      = 0.0;
            y      = 0.0;
            z      = 0.0;
            number = Number;

            csv3d = new CoordinateSystemVisual3D();
        }
Example #3
0
        /// <summary>
        /// Disegna assi su scena
        /// </summary>
        private void DrawAxis(double factor = 10)
        {
            var cooDim = view.GetCooAxisDim();

            if (double.IsNaN(cooDim))
            {
                return;
            }

            var coo = new CoordinateSystemVisual3D {
                ArrowLengths = cooDim / factor
            };

            var g = new HelixToolkit.DefaultLightsVisual3D();

            view.Add(g);
            view.Add(coo);
        }
Example #4
0
        public CoordinateSystemVisual3D GetCoordinateSystem(bool onlyNew = false)
        {
            bool newCoordinateSystem = false;

            if (_CoordinateSystemVisual3D == null)
            {
                newCoordinateSystem       = true;
                _CoordinateSystemVisual3D = new CoordinateSystemVisual3D();
                _CoordinateSystemVisual3D.ArrowLengths = 0.05;
                _CoordinateSystemVisual3D.Transform    = new MatrixTransform3D(Frame.T_base_world.Inverse().Matrix3D);
            }

            if (onlyNew && newCoordinateSystem || !onlyNew)
            {
                return(_CoordinateSystemVisual3D);
            }
            else
            {
                return(null);
            }
        }
Example #5
0
        public void AddCs(Vector3D position, Vector3D target)
        {
            this.Dispatcher.Invoke(() =>
            {
                var ld = (target - position);
                ld.Normalize();
                Vector3D x = ld;
                Vector3D z = new Vector3D(0.0, 0.0, 1.0);
                Vector3D y = Vector3D.CrossProduct(x, z);
                z          = Vector3D.CrossProduct(x, y);

                var t  = new CoordinateSystemVisual3D();
                var cm = BuildCosinesMatrix(x, y, z);

                Transform3DGroup tg = new Transform3DGroup();

                tg.Children.Add(new MatrixTransform3D(cm));
                tg.Children.Add(new TranslateTransform3D(position.X, position.Y, position.Z));

                t.Transform = tg;
                modelVisual3D.Children.Add(t);
            });
        }
Example #6
0
        private void CreateViewport()
        {
            _SyncContext.Send(d =>
            {
                _SlamModel3D = new SlamModel3D(_SyncContext, false);

                _Viewport3d            = new HelixViewport3D();
                _Viewport3d.Background = System.Windows.Media.Brushes.White;

                _Viewport3d.Camera = new PerspectiveCamera(new Point3D(0, 1, 0.3), new Vector3D(0, -1, -0.3), new Vector3D(0, 0, 1), 45);

                _Viewport3d.Children.Add(new DefaultLights());

                _Viewport3d.Children.Add(new CoordinateSystemVisual3D()
                {
                    ArrowLengths = 0.1
                });

                _ModelVisual3d = new ModelVisual3D();
                _Viewport3d.Children.Add(_ModelVisual3d);

                _CameraPosition = new CoordinateSystemVisual3D();
                _CameraPosition.ArrowLengths = 0.1;
                _Viewport3d.Children.Add(_CameraPosition);

                _TrajectoryKeyFrame           = new LinesVisual3D();
                _TrajectoryKeyFrame.Color     = System.Windows.Media.Colors.Gold;
                _TrajectoryKeyFrame.Thickness = 3;
                _Viewport3d.Children.Add(_TrajectoryKeyFrame);

                _TrajectoryFrame           = new LinesVisual3D();
                _TrajectoryFrame.Color     = System.Windows.Media.Colors.OrangeRed;
                _TrajectoryFrame.Thickness = 2;
                _Viewport3d.Children.Add(_TrajectoryFrame);
            }, null);
        }