Esempio n. 1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            elementHost = new ElementHost
            {
                Dock = DockStyle.Fill
            };
            panel1.Controls.Add(elementHost);
            viewport3DX       = new HelixToolkit.Wpf.SharpDX.Viewport3DX( );
            elementHost.Child = viewport3DX;
            var b1 = new MeshBuilder();

            b1.AddSphere(new Vector3(0, 0, 0), 0.5);
            b1.AddBox(new Vector3(0, 0, 0), 1, 0.5, 2, BoxFaces.All);
            MeshGeometry3D      model = b1.ToMeshGeometry3D();
            MeshGeometryModel3D test  = new MeshGeometryModel3D
            {
                Material = PhongMaterials.Gold,
                Geometry = model
            };
            var ambientLight = new AmbientLight3D
            {
                Color = new Color4(0.1f, 0.1f, 0.1f, 1.0f)
            };
            var directionalLight = new DirectionalLight3D
            {
                Color     = SharpDX.Color.White,
                Direction = new Vector3(-2, -5, -2)
            };

            viewport3DX.Items.Add(ambientLight);
            viewport3DX.Items.Add(directionalLight);
            //test.Attach( viewport3DX );
            viewport3DX.Items.Add(test);
        }
Esempio n. 2
0
        public void InitViewport()
        {
            Viewport.Items.Clear();

            var model = new AmbientLight3D {
                Color = new Color4(1, 1, 1, 1)
            };

            if (Viewport.RenderHost != null && Viewport.RenderHost.RenderTechnique != null)
            {
                model.Attach(Viewport.RenderHost);
            }
            Viewport.Items.Add(model);

            var model2 = new DirectionalLight3D {
                Direction = new Vector3(1, 1, 1)
            };

            if (Viewport.RenderHost != null && Viewport.RenderHost.RenderTechnique != null)
            {
                model2.Attach(Viewport.RenderHost);
            }
            Viewport.Items.Add(model2);

            var model3 = new DirectionalLight3D {
                Direction = new Vector3(-1, -1, -1)
            };

            if (Viewport.RenderHost != null && Viewport.RenderHost.RenderTechnique != null)
            {
                model3.Attach(Viewport.RenderHost);
            }

            Viewport.Items.Add(model3);
        }
        public Watch3DxControl()
        {
            InitializeComponent();
            // DataContext = this;

            // titles
            view1.Title    = "Watch3DxNode";
            view1.SubTitle = "SharpDX";

            // camera setup
            view1.Camera = new PerspectiveCamera
            {
                Position         = new Point3D(3, 3, 5),
                LookDirection    = new Vector3D(-3, -3, -5),
                UpDirection      = new Vector3D(0, 1, 0),
                FarPlaneDistance = 5000000
            };

            // default render technique
            view1.RenderTechniquesManager = new DefaultRenderTechniquesManager();
            view1.RenderTechnique         = view1.RenderTechniquesManager.RenderTechniques[DefaultRenderTechniqueNames.Phong];
            view1.EffectsManager          = new DefaultEffectsManager(view1.RenderTechniquesManager);

            // Setup lights
            var directionalLight3D = new DirectionalLight3D
            {
                Color     = Color.White,
                Direction = new Vector3(-2, -5, -2)
            };

            var ambientLight3D = new AmbientLight3D {
                Color = Color.White
            };

            view1.Items.Add(ambientLight3D);
            view1.Items.Add(directionalLight3D);

            // Geometry
            var mb = new MeshBuilder();

            mb.AddSphere(new Vector3(0, 0, 0), 0.5);
            mb.AddBox(new Vector3(0, 0, 0), 1, 0.5, 2, BoxFaces.All);
            var meshGeometry = mb.ToMeshGeometry3D();

            var meshGeomModel = new MeshGeometryModel3D
            {
                Geometry = meshGeometry,
                Material = PhongMaterials.Red
            };

            // Add the Model to the viewport
            view1.Items.Add(meshGeomModel);
        }
Esempio n. 4
0
        /// <summary>
        /// Initialize the Helix with these values. These values should be attached before the
        /// visualization starts. Deleting them and attaching them does not make any effect on helix.
        /// So they are initialized before the process starts.
        /// </summary>
        private void InitializeHelix()
        {
            if (Model3DDictionary == null)
            {
                throw new Exception("Helix could not be initialized.");
            }

            directionalLight = new DirectionalLight3D
            {
                Color     = directionalLightColor,
                Direction = directionalLightDirection,
                Name      = DefaultLightName
            };

            if (!Model3DDictionary.ContainsKey(DefaultLightName))
            {
                Model3DDictionary.Add(DefaultLightName, directionalLight);
            }

            var gridModel3D = new DynamoLineGeometryModel3D
            {
                Geometry         = Grid,
                Transform        = Model1Transform,
                Color            = Color.White,
                Thickness        = 0.3,
                IsHitTestVisible = false,
                Name             = DefaultGridName
            };

            if (!Model3DDictionary.ContainsKey(DefaultGridName))
            {
                Model3DDictionary.Add(DefaultGridName, gridModel3D);
            }

            var axesModel3D = new DynamoLineGeometryModel3D
            {
                Geometry         = Axes,
                Transform        = Model1Transform,
                Color            = Color.White,
                Thickness        = 0.3,
                IsHitTestVisible = false,
                Name             = DefaultAxesName
            };

            if (!Model3DDictionary.ContainsKey(DefaultAxesName))
            {
                Model3DDictionary.Add(DefaultAxesName, axesModel3D);
            }

            AttachAllGeometryModel3DToRenderHost();
        }
        public void SetupLights()
        {
            // Setup lights
            var directionalLight3D = new DirectionalLight3D
            {
                Color     = Color.White,
                Direction = new Vector3(-2, -5, -2)
            };
            var ambientLight3D = new AmbientLight3D
            {
                Color = Color.White
            };

            view1.Items.Add(ambientLight3D);
            view1.Items.Add(directionalLight3D);
        }
Esempio n. 6
0
        /// <summary>
        /// Initialize the Helix with these values. These values should be attached before the
        /// visualization starts. Deleting them and attaching them does not make any effect on helix.
        /// So they are initialized before the process starts.
        /// </summary>
        private void InitializeHelix()
        {
            directionalLight = new DirectionalLight3D
            {
                Color     = directionalLightColor,
                Direction = directionalLightDirection
            };

            if (model3DDictionary != null && !model3DDictionary.ContainsKey("DirectionalLight"))
            {
                model3DDictionary.Add("DirectionalLight", directionalLight);
            }

            LineGeometryModel3D gridModel3D = new LineGeometryModel3D
            {
                Geometry         = Grid,
                Transform        = Model1Transform,
                Color            = SharpDX.Color.White,
                Thickness        = 0.3,
                IsHitTestVisible = false
            };

            if (model3DDictionary != null && !model3DDictionary.ContainsKey("Grid"))
            {
                model3DDictionary.Add("Grid", gridModel3D);
            }

            LineGeometryModel3D axesModel3D = new LineGeometryModel3D
            {
                Geometry         = Axes,
                Transform        = Model1Transform,
                Color            = SharpDX.Color.White,
                Thickness        = 0.3,
                IsHitTestVisible = false
            };

            if (model3DDictionary != null && !model3DDictionary.ContainsKey("Axes"))
            {
                model3DDictionary.Add("Axes", axesModel3D);
            }
        }
Esempio n. 7
0
        public static void AddView(Viewport3DX view)
        {
            _view        = view;
            _view.Camera = new HelixToolkit.Wpf.SharpDX.OrthographicCamera()
            {
                LookDirection     = new System.Windows.Media.Media3D.Vector3D(0, -7, -10),
                Position          = new System.Windows.Media.Media3D.Point3D(10, 5, 0),
                Width             = 50,
                UpDirection       = new System.Windows.Media.Media3D.Vector3D(0, 100, 0),
                FarPlaneDistance  = 5000,
                NearPlaneDistance = -10f
            };

            DirectionalLight3D directionalLight3D = new DirectionalLight3D();

            directionalLight3D.Direction = view.Camera.LookDirection;
            directionalLight3D.Color     = Color.FromRgb(214, 214, 214);
            _view.Items.Add(directionalLight3D);

            view.EffectsManager = new DefaultEffectsManager();
        }