Пример #1
0
        protected void Load3dCube()
        {
            // This is coming from our resources
            //StreamResourceInfo stri =Application.GetResourceStream (new Uri (
            //	@"Autodesk.ADN.Toolkit.Wpf.Viewer;3dCube\3dCube.zip",
            //	UriKind.Relative
            //)) ;
            //LoadModel (stri.Stream) ;
            Assembly        assembly     = Assembly.GetCallingAssembly();
            string          resourceName = assembly.GetName().Name + ".g";
            ResourceManager rm           = new ResourceManager(resourceName, assembly);

            using (ResourceSet set = rm.GetResourceSet(CultureInfo.CurrentCulture, true, true)) {
                UnmanagedMemoryStream s    = (UnmanagedMemoryStream)set.GetObject(@"3dCube/3dCube.zip", true);
                StreamResourceInfo    stri = new StreamResourceInfo(s, "");
                using (ZipArchive zip = new ZipArchive(stri.Stream)) {
                    ZipArchiveEntry mesh    = zip.GetEntry("mesh.obj");
                    ZipArchiveEntry mtl     = zip.GetEntry("mesh.mtl");
                    ZipArchiveEntry texture = zip.GetEntry("tex_0.jpg");

                    using (new CursorSwitcher(null)) {
                        var objLoaderFactory = new ObjLoaderFactory();
                        var objLoader        = objLoaderFactory.Create(new ObjMaterialStreamProvider(mtl));
                        var result           = objLoader.Load(mesh.Open());
                        _3dCubeMesh         = ObjTriangleMeshAdapater.BuildVisualModel(result, texture);
                        _3dCubeMeshMatGroup = (_3dCubeMesh.Content as GeometryModel3D).Material;
                        // Reset the model & transform(s)
                        this.cubeModel.Children.Clear();
                        this.cubeModel.Children.Add(_3dCubeMesh);
                    }
                }
            }
        }
Пример #2
0
        protected void LoadModel(Stream str)
        {
            using (ZipArchive zip = new ZipArchive(str)) {
                ZipArchiveEntry mesh    = zip.GetEntry("mesh.obj");
                ZipArchiveEntry mtl     = zip.GetEntry("mesh.mtl");
                ZipArchiveEntry texture = zip.GetEntry("tex_0.jpg");

                using (new CursorSwitcher(null)) {
                    var objLoaderFactory = new ObjLoaderFactory();
                    var objLoader        = objLoaderFactory.Create(new ObjMaterialStreamProvider(mtl));
                    var result           = objLoader.Load(mesh.Open());
                    _currentWireframe    = null;
                    _currentMesh         = ObjTriangleMeshAdapater.BuildVisualModel(result, texture);
                    _currentMeshMatGroup = (_currentMesh.Content as GeometryModel3D).Material;
                    // Reset the model & transform(s)
                    this.model.Children.Clear();
                    _currentDisplayMode = DisplayMode.Textured;
                    this.model.Children.Add(_currentMesh);
                }
            }
            Home_Click(null, null);
        }
Пример #3
0
        public static ModelVisual3D BuildVisualModel(LoadResult objmesh, ZipArchiveEntry texture)
        {
            ObjTriangleMeshAdapater adapter = new ObjTriangleMeshAdapater();

            return(adapter.MakeVisualModel(objmesh, texture));
        }