Inheritance: HelixToolkit.Wpf.ModelReader
        public MainViewModel()
        {
            // Create a model group
            var modelGroup = new Model3DGroup();

            points = new List <Point3D>();

            // Create a mesh builder and add a box to it
            var meshBuilder = new MeshBuilder(false, false);
            // -1 -1 -1
            //1 -1 -1
            //1 1 -1
            //-1 1 -1
            //-1 -1 1
            //1 -1 1
            //1 1 1
            //-1 1 1
            string    path   = @"teapot.ply";
            PLYReader reader = new PLYReader();

            using (var s = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                mg = reader.Read(s);
            }

            this.points = reader.Vertices;
            this.faces  = reader.Faces;
            // meshBuilder.Positions.Add(new Point3D(-1, -1, -1));//, 1, 2, 0.5);
            // meshBuilder.Positions.Add(new Point3D(1, -1, -1));
            // meshBuilder.Positions.Add(new Point3D(1, 1, -1));
            // meshBuilder.Positions.Add(new Point3D(-1, 1, -1));
            // meshBuilder.Positions.Add(new Point3D(-1, -1, 1));
            // meshBuilder.Positions.Add(new Point3D(1, -1, 1));
            // meshBuilder.Positions.Add(new Point3D(1, 1, 1));
            // meshBuilder.Positions.Add(new Point3D(-1, 1, 1));
            // meshBuilder.AddPolygon(new int[4] {0,1,2,3 });
            // meshBuilder.AddPolygon(new int[4] { 5,4,7,6 });
            // meshBuilder.AddPolygon(new int[4] { 6,2,1,5 });
            // meshBuilder.AddPolygon(new int[4] { 3,7,4,0 });
            // meshBuilder.AddPolygon(new int[4] { 7,3,2,6 });
            // meshBuilder.AddPolygon(new int[4] { 5,1,0,4 });

            // // Create a mesh from the builder (and freeze it)
            // var mesh = meshBuilder.ToMesh(true);

            // // Create some materials
            // var greenMaterial = MaterialHelper.CreateMaterial(Colors.Green);
            // var redMaterial = MaterialHelper.CreateMaterial(Colors.Red);
            // var blueMaterial = MaterialHelper.CreateMaterial(Colors.Blue);
            // var insideMaterial = MaterialHelper.CreateMaterial(Colors.Yellow);

            // // Add 3 models to the group (using the same mesh, that's why we had to freeze it)
            // modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Material = greenMaterial, BackMaterial = insideMaterial });
            //// modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Transform = new TranslateTransform3D(-2, 0, 0), Material = redMaterial, BackMaterial = insideMaterial });
            //// modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Transform = new TranslateTransform3D(2, 0, 0), Material = blueMaterial, BackMaterial = insideMaterial });

            // // Set the property, which will be bound to the Content property of the ModelVisual3D (see MainWindow.xaml)
            this.Model = mg;
        }
        public MainViewModel()
        {
            // Create a model group
            var modelGroup = new Model3DGroup();
            points = new List<Point3D>();
            
            // Create a mesh builder and add a box to it
            var meshBuilder = new MeshBuilder(false, false);
            // -1 -1 -1 
            //1 -1 -1 
            //1 1 -1 
            //-1 1 -1 
            //-1 -1 1 
            //1 -1 1 
            //1 1 1 
            //-1 1 1 
            string path = @"teapot.ply";
            PLYReader reader = new PLYReader();

            using (var s = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                mg=reader.Read(s);
            }
           
            this.points = reader.Vertices;
            this.faces = reader.Faces;
           // meshBuilder.Positions.Add(new Point3D(-1, -1, -1));//, 1, 2, 0.5);
           // meshBuilder.Positions.Add(new Point3D(1, -1, -1));
           // meshBuilder.Positions.Add(new Point3D(1, 1, -1));
           // meshBuilder.Positions.Add(new Point3D(-1, 1, -1));
           // meshBuilder.Positions.Add(new Point3D(-1, -1, 1));
           // meshBuilder.Positions.Add(new Point3D(1, -1, 1));
           // meshBuilder.Positions.Add(new Point3D(1, 1, 1));
           // meshBuilder.Positions.Add(new Point3D(-1, 1, 1));
           // meshBuilder.AddPolygon(new int[4] {0,1,2,3 });
           // meshBuilder.AddPolygon(new int[4] { 5,4,7,6 });
           // meshBuilder.AddPolygon(new int[4] { 6,2,1,5 });
           // meshBuilder.AddPolygon(new int[4] { 3,7,4,0 });
           // meshBuilder.AddPolygon(new int[4] { 7,3,2,6 });
           // meshBuilder.AddPolygon(new int[4] { 5,1,0,4 });
            
           // // Create a mesh from the builder (and freeze it)
           // var mesh = meshBuilder.ToMesh(true);

           // // Create some materials
           // var greenMaterial = MaterialHelper.CreateMaterial(Colors.Green);
           // var redMaterial = MaterialHelper.CreateMaterial(Colors.Red);
           // var blueMaterial = MaterialHelper.CreateMaterial(Colors.Blue);
           // var insideMaterial = MaterialHelper.CreateMaterial(Colors.Yellow);

           // // Add 3 models to the group (using the same mesh, that's why we had to freeze it)
           // modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Material = greenMaterial, BackMaterial = insideMaterial });
           //// modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Transform = new TranslateTransform3D(-2, 0, 0), Material = redMaterial, BackMaterial = insideMaterial });
           //// modelGroup.Children.Add(new GeometryModel3D { Geometry = mesh, Transform = new TranslateTransform3D(2, 0, 0), Material = blueMaterial, BackMaterial = insideMaterial });

           // // Set the property, which will be bound to the Content property of the ModelVisual3D (see MainWindow.xaml)
            this.Model = mg;
        }