MCPcopy Create free account
hub / github.com/assimp/assimp / ReadMesh

Method ReadMesh

code/AssetLib/Ogre/OgreXmlSerializer.cpp:225–255  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

223}
224
225void OgreXmlSerializer::ReadMesh(MeshXml *mesh) {
226 XmlNode root = mParser->getRootNode();
227 if (nullptr == root) {
228 throw DeadlyImportError("Root node is <" + std::string(root.name()) + "> expecting <mesh>");
229 }
230
231 XmlNode startNode = root.child(nnMesh);
232 if (startNode.empty()) {
233 throw DeadlyImportError("Root node is <" + std::string(root.name()) + "> expecting <mesh>");
234 }
235 for (XmlNode currentNode : startNode.children()) {
236 const std::string currentName = currentNode.name();
237 if (currentName == nnSharedGeometry) {
238 mesh->sharedVertexData = new VertexDataXml();
239 ReadGeometry(currentNode, mesh->sharedVertexData);
240 } else if (currentName == nnSubMeshes) {
241 for (XmlNode &subMeshesNode : currentNode.children()) {
242 const std::string &currentSMName = subMeshesNode.name();
243 if (currentSMName == nnSubMesh) {
244 ReadSubMesh(subMeshesNode, mesh);
245 }
246 }
247 } else if (currentName == nnBoneAssignments) {
248 ReadBoneAssignments(currentNode, mesh->sharedVertexData);
249 } else if (currentName == nnSkeletonLink) {
250 mesh->skeletonRef = currentNode.attribute("name").as_string();
251 }
252 }
253
254 ASSIMP_LOG_VERBOSE_DEBUG("Reading Mesh");
255}
256
257void OgreXmlSerializer::ReadGeometry(XmlNode &node, VertexDataXml *dest) {
258 dest->count = ReadAttribute<uint32_t>(node, "vertexcount");

Callers 1

ImportMeshMethod · 0.45

Calls 8

DeadlyImportErrorFunction · 0.85
getRootNodeMethod · 0.80
childMethod · 0.80
childrenMethod · 0.80
as_stringMethod · 0.80
nameMethod · 0.45
emptyMethod · 0.45
attributeMethod · 0.45

Tested by

no test coverage detected