fix collada material parsing.
parent
93ae409e74
commit
34351b3cb9
|
@ -1652,7 +1652,7 @@ void ColladaLoader::BuildMaterials(ColladaParser &pParser, aiScene * /*pScene*/)
|
||||||
const Collada::Material &material = matIt->second;
|
const Collada::Material &material = matIt->second;
|
||||||
// a material is only a reference to an effect
|
// a material is only a reference to an effect
|
||||||
ColladaParser::EffectLibrary::iterator effIt = pParser.mEffectLibrary.find(material.mEffect);
|
ColladaParser::EffectLibrary::iterator effIt = pParser.mEffectLibrary.find(material.mEffect);
|
||||||
if (effIt == pParser.mEffectLibrary.end())
|
if (effIt == pParser.mEffectLibrary.end())
|
||||||
continue;
|
continue;
|
||||||
Collada::Effect &effect = effIt->second;
|
Collada::Effect &effect = effIt->second;
|
||||||
|
|
||||||
|
|
|
@ -165,7 +165,7 @@ std::string ColladaParser::ReadZaeManifest(ZipArchiveIOSystem &zip_archive) {
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlNode root = manifestParser.getRootNode();
|
XmlNode root = manifestParser.getRootNode();
|
||||||
const std::string &name = root.name();
|
const std::string &name = root.child("dae_root");
|
||||||
if (name != "dae_root") {
|
if (name != "dae_root") {
|
||||||
root = *manifestParser.findNode("dae_root");
|
root = *manifestParser.findNode("dae_root");
|
||||||
if (nullptr == root) {
|
if (nullptr == root) {
|
||||||
|
@ -920,9 +920,9 @@ void ColladaParser::ReadCameraLibrary(XmlNode &node) {
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Reads a material entry into the given material
|
// Reads a material entry into the given material
|
||||||
void ColladaParser::ReadMaterial(XmlNode &node, Collada::Material &pMaterial) {
|
void ColladaParser::ReadMaterial(XmlNode &node, Collada::Material &pMaterial) {
|
||||||
for (XmlNode currentNode = node.first_child(); currentNode; currentNode = currentNode.next_sibling()) {
|
for (XmlNode currentNode : node.children()) {
|
||||||
const std::string ¤tName = currentNode.name();
|
const std::string ¤tName = currentNode.name();
|
||||||
if (currentName == "material") {
|
if (currentName == "instance_effect") {
|
||||||
const char *url = currentNode.attribute("url").as_string();
|
const char *url = currentNode.attribute("url").as_string();
|
||||||
if (url[0] != '#') {
|
if (url[0] != '#') {
|
||||||
ThrowException("Unknown reference format");
|
ThrowException("Unknown reference format");
|
||||||
|
@ -2047,7 +2047,7 @@ void ColladaParser::ReadSceneNode(XmlNode &node, Node *pNode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (XmlNode ¤tNode : node.children()) {
|
for (XmlNode ¤tNode : node.children()) {
|
||||||
const std::string ¤tName = currentNode.name();
|
const std::string ¤tName = currentNode.name();
|
||||||
if (currentName == "node") {
|
if (currentName == "node") {
|
||||||
Node *child = new Node;
|
Node *child = new Node;
|
||||||
if (XmlParser::hasAttribute(currentNode, "id")) {
|
if (XmlParser::hasAttribute(currentNode, "id")) {
|
||||||
|
|
Loading…
Reference in New Issue