//--------------------------------------------------------------------- void XMLSkeletonSerializer::importSkeleton(const String& filename, Skeleton* pSkeleton) { LogManager::getSingleton().logMessage("XMLSkeletonSerializer: reading XML data from " + filename + "..."); mXMLDoc = new TiXmlDocument(filename.c_str()); mXMLDoc->LoadFile(); TiXmlElement* elem; TiXmlElement* rootElem = mXMLDoc->RootElement(); // Optional blend mode const char* blendModeStr = rootElem->Attribute("blendmode"); if (blendModeStr) { if (String(blendModeStr) == "cumulative") pSkeleton->setBlendMode(ANIMBLEND_CUMULATIVE); else pSkeleton->setBlendMode(ANIMBLEND_AVERAGE); } // Bones elem = rootElem->FirstChildElement("bones"); if (elem) { readBones(pSkeleton, elem); elem = rootElem->FirstChildElement("bonehierarchy"); if (elem) { createHierarchy(pSkeleton, elem) ; elem = rootElem->FirstChildElement("bones"); if (elem) { readBones2(pSkeleton, elem); elem = rootElem->FirstChildElement("animations"); if (elem) { readAnimations(pSkeleton, elem); } elem = rootElem->FirstChildElement("animationlinks"); if (elem) { readSkeletonAnimationLinks(pSkeleton, elem); } } } } LogManager::getSingleton().logMessage("XMLSkeletonSerializer: Finished. Running SkeletonSerializer..." ); }
EdgeHierarchy::EdgeHierarchy(const vector<Edge>* edges, const QuadTree* quadTree) { //store them for a short time to save variables in the recursive calls if (!EDGE_HIERARCHY_FLAT) { _maxDepth = -1; _quadTree = quadTree; _edges = edges; createHierarchy(); _edges = NULL; _quadTree = NULL; } else { _maxDepth = 0; _edgeVectors.push_back(new vector<Edge>); for (int i = 0; i < edges->size(); i++) { Edge e(edges->at(i)); e.depth = 0; _edgeVectors[0]->push_back(e); } _leafNodes.push_back(edges->size()); } }
//--------------------------------------------------------------------- void XMLSkeletonSerializer::importSkeleton(const String& filename, Skeleton* pSkeleton) { LogManager::getSingleton().logMessage("XMLSkeletonSerializer: reading XML data from " + filename + "..."); mXMLDoc = new TiXmlDocument(filename); mXMLDoc->LoadFile(); TiXmlElement* elem; TiXmlElement* rootElem = mXMLDoc->RootElement(); // Bones elem = rootElem->FirstChildElement("bones"); if (elem) { readBones(pSkeleton, elem); elem = rootElem->FirstChildElement("bonehierarchy"); if (elem) { createHierarchy(pSkeleton, elem) ; elem = rootElem->FirstChildElement("bones"); if (elem) { readBones2(pSkeleton, elem); elem = rootElem->FirstChildElement("animations"); if (elem) { readAnimations(pSkeleton, elem); } elem = rootElem->FirstChildElement("animationlinks"); if (elem) { readSkeletonAnimationLinks(pSkeleton, elem); } } } } LogManager::getSingleton().logMessage("XMLSkeletonSerializer: Finished. Running SkeletonSerializer..." ); }