| 1884 | } |
| 1885 | |
| 1886 | Ref<SceneGraph::Node> XMLLoader::loadBGFMesh(const Ref<XML>& xml) |
| 1887 | { |
| 1888 | size_t matid = xml->child("materiallist")->body[0].Int(); |
| 1889 | Ref<SceneGraph::MaterialNode> material = id2material.at(matid); |
| 1890 | Ref<SceneGraph::TriangleMeshNode> mesh = new SceneGraph::TriangleMeshNode(material,BBox1f(0,1),0); |
| 1891 | |
| 1892 | mesh->positions.push_back(loadVec3faArray(xml->childOpt("vertex"))); |
| 1893 | mesh->normals.push_back(loadVec3faArray(xml->childOpt("normal"))); |
| 1894 | mesh->texcoords = loadVec2fArray(xml->childOpt("texcoord")); |
| 1895 | |
| 1896 | std::vector<Vec4i> triangles = loadVec4iArray(xml->childOpt("prim")); |
| 1897 | for (size_t i=0; i<triangles.size(); i++) |
| 1898 | mesh->triangles.push_back(SceneGraph::TriangleMeshNode::Triangle(triangles[i].x,triangles[i].y,triangles[i].z)); |
| 1899 | |
| 1900 | return mesh.dynamicCast<SceneGraph::Node>(); |
| 1901 | } |
| 1902 | |
| 1903 | Ref<SceneGraph::Node> XMLLoader::loadBGFTransformNode(const Ref<XML>& xml) |
| 1904 | { |