protected override bool Load(string virtualFileName, Mesh mesh) { currentFileName = virtualFileName; currentMesh = mesh; globalScale = 1; yAxisUp = true; generatedMaterials = new Dictionary <string, MySceneMaterial>(); generatedGeometries = new Dictionary <string, GeometryItem>(); generatedSubMeshes = new List <MySceneSubMesh>(); //load file XmlNode colladaNode; { try { using (Stream stream = VirtualFile.Open(virtualFileName)) { string fileText = new StreamReader(stream).ReadToEnd(); colladaNode = XmlUtils.LoadFromText(fileText); } } catch (Exception ex) { Error(ex.Message); return(false); } } //parse if (!ParseColladaNode(colladaNode)) { ClearTemporaryFields(); return(false); } //generate mesh const bool tangents = true; const bool edgeList = true; const bool allowMergeSubMeshes = true; MeshConstructor meshConstructor = new MeshConstructor(tangents, edgeList, allowMergeSubMeshes); MyMeshSceneObject meshSceneObject = new MyMeshSceneObject(generatedSubMeshes.ToArray()); if (!meshConstructor.DoExport(meshSceneObject, mesh)) { ClearTemporaryFields(); return(false); } ClearTemporaryFields(); return(true); }