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);
        }
        public void ResetCameraPosition(Rect3D boundingBox)
        {
            //var boneCollection = MainViewModel.ProjData.BoneCollection;
            //

            Point3D modelCenter = new Point3D(boundingBox.X + boundingBox.SizeX / 2.0, boundingBox.Y + boundingBox.SizeY / 2.0, boundingBox.Z + boundingBox.SizeZ / 2.0);

            //Point3D modelCenter = new Point3D(0,200,0);

            HelixToolkit.Wpf.SharpDX.OrthographicCamera orthoCam1 = Camera1 as HelixToolkit.Wpf.SharpDX.OrthographicCamera;
            if (orthoCam1 != null)
            {
                orthoCam1.Position          = new Point3D(modelCenter.X, modelCenter.Y, modelCenter.Z + 1000 * boundingBox.Size.Z);
                orthoCam1.UpDirection       = new Vector3D(0, 1, 0);
                orthoCam1.LookDirection     = new Vector3D(0, 0, -1000 * boundingBox.Size.Z);
                orthoCam1.NearPlaneDistance = 0;
                orthoCam1.FarPlaneDistance  = 1e15;
                orthoCam1.Width             = 300;
            }

            hVp3D.Camera = orthoCam1;

            HelixToolkit.Wpf.SharpDX.AmbientLight3D     Light1 = new HelixToolkit.Wpf.SharpDX.AmbientLight3D();
            HelixToolkit.Wpf.SharpDX.DirectionalLight3D Light2 = new HelixToolkit.Wpf.SharpDX.DirectionalLight3D();
            HelixToolkit.Wpf.SharpDX.DirectionalLight3D Light3 = new HelixToolkit.Wpf.SharpDX.DirectionalLight3D();
            Light1.Color     = new SharpDX.Color(0.4f, 0.4f, 0.4f);
            Light2.Color     = new SharpDX.Color(0.6f, 0.6f, 0.6f);
            Light3.Color     = new SharpDX.Color(0.5f, 0.5f, 0.5f);
            Light1.Direction = new Vector3(-10, -1000, -(float)boundingBox.Size.Z);
            Light2.Direction = new Vector3(1000, 0, -(float)boundingBox.Size.Z);
            Light3.Direction = new Vector3(-1000, -(float)boundingBox.Size.Y, 300);

            hVp3D.Items.Add(Light1);
            hVp3D.Items.Add(Light2);
            hVp3D.Items.Add(Light3);
        }
        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);
        }