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); } } } }
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); }