Commit f40ce0f5 authored by hybrid's avatar hybrid

Support double_sided from MAYA

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2335 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 9f63a21c
...@@ -1487,6 +1487,10 @@ void CColladaFileLoader::readEffect(io::IXMLReaderUTF8* reader, SColladaEffect * ...@@ -1487,6 +1487,10 @@ void CColladaFileLoader::readEffect(io::IXMLReaderUTF8* reader, SColladaEffect *
readIntsInsideElement(reader,&doubleSided,1); readIntsInsideElement(reader,&doubleSided,1);
if (doubleSided) if (doubleSided)
{ {
#ifdef COLLADA_READER_DEBUG
os::Printer::log("Setting double sided flag for effect.");
#endif
effect->Mat.setFlag(irr::video::EMF_BACK_FACE_CULLING,false); effect->Mat.setFlag(irr::video::EMF_BACK_FACE_CULLING,false);
} }
} }
...@@ -1737,13 +1741,24 @@ void CColladaFileLoader::readGeometry(io::IXMLReaderUTF8* reader) ...@@ -1737,13 +1741,24 @@ void CColladaFileLoader::readGeometry(io::IXMLReaderUTF8* reader)
} }
else else
// trifans, and tristrips missing // trifans, and tristrips missing
if (extraNodeName == nodeName) if (doubleSidedNodeName == reader->getNodeName())
skipSection(reader, false); {
// read the extra flag for double sided polys
s32 doubleSided = 0;
readIntsInsideElement(reader,&doubleSided,1);
if (doubleSided)
{
#ifdef COLLADA_READER_DEBUG
os::Printer::log("Setting double sided flag for mesh.");
#endif
amesh->setMaterialFlag(irr::video::EMF_BACK_FACE_CULLING,false);
}
}
else else
// techniqueCommon or 'technique profile=common' must not be skipped // techniqueCommon or 'technique profile=common' must not be skipped
if ((techniqueCommonSectionName != nodeName) // Collada 1.4+ if ((techniqueCommonSectionName != nodeName) // Collada 1.2/1.3
&& ((techniqueNodeName != nodeName) || && (techniqueNodeName != nodeName) // Collada 1.4+
(profileCOMMONAttributeName != reader->getAttributeValue("profile")))) // Collada 1.2/1.3 && (extraNodeName != nodeName))
{ {
os::Printer::log("COLLADA loader warning: Wrong tag usage found in geometry", reader->getNodeName(), ELL_WARNING); os::Printer::log("COLLADA loader warning: Wrong tag usage found in geometry", reader->getNodeName(), ELL_WARNING);
skipSection(reader, true); // ignore all other sections skipSection(reader, true); // ignore all other sections
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment