Merge branch 'master' of git://github.com/assimp/assimp
This commit is contained in:
+19
-12
@@ -1369,9 +1369,11 @@ void ColladaParser::ReadEffectColor( aiColor4D& pColor, Sampler& pSampler)
|
||||
int attrTex = GetAttribute( "texture");
|
||||
pSampler.mName = mReader->getAttributeValue( attrTex);
|
||||
|
||||
// get name of UV source channel
|
||||
attrTex = GetAttribute( "texcoord");
|
||||
pSampler.mUVChannel = mReader->getAttributeValue( attrTex);
|
||||
// get name of UV source channel. Specification demands it to be there, but some exporters
|
||||
// don't write it. It will be the default UV channel in case it's missing.
|
||||
attrTex = TestAttribute( "texcoord");
|
||||
if( attrTex >= 0 )
|
||||
pSampler.mUVChannel = mReader->getAttributeValue( attrTex);
|
||||
//SkipElement();
|
||||
}
|
||||
else if( IsElement( "technique"))
|
||||
@@ -1795,14 +1797,13 @@ void ColladaParser::ReadAccessor( const std::string& pID)
|
||||
SkipElement();
|
||||
} else
|
||||
{
|
||||
ThrowException( "Unexpected sub element in tag \"accessor\".");
|
||||
ThrowException( boost::str( boost::format( "Unexpected sub element <%s> in tag <accessor>") % mReader->getNodeName()));
|
||||
}
|
||||
}
|
||||
else if( mReader->getNodeType() == irr::io::EXN_ELEMENT_END)
|
||||
{
|
||||
if( strcmp( mReader->getNodeName(), "accessor") != 0)
|
||||
ThrowException( "Expected end of \"accessor\" element.");
|
||||
|
||||
ThrowException( "Expected end of <accessor> element.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1826,13 +1827,13 @@ void ColladaParser::ReadVertexData( Mesh* pMesh)
|
||||
ReadInputChannel( pMesh->mPerVertexData);
|
||||
} else
|
||||
{
|
||||
ThrowException( "Unexpected sub element in tag \"vertices\".");
|
||||
ThrowException( boost::str( boost::format( "Unexpected sub element <%s> in tag <vertices>") % mReader->getNodeName()));
|
||||
}
|
||||
}
|
||||
else if( mReader->getNodeType() == irr::io::EXN_ELEMENT_END)
|
||||
{
|
||||
if( strcmp( mReader->getNodeName(), "vertices") != 0)
|
||||
ThrowException( "Expected end of \"vertices\" element.");
|
||||
ThrowException( "Expected end of <vertices> element.");
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -1919,13 +1920,13 @@ void ColladaParser::ReadIndexData( Mesh* pMesh)
|
||||
}
|
||||
} else
|
||||
{
|
||||
ThrowException( "Unexpected sub element in tag \"vertices\".");
|
||||
ThrowException( boost::str( boost::format( "Unexpected sub element <%s> in tag <%s>") % mReader->getNodeName() % elementName));
|
||||
}
|
||||
}
|
||||
else if( mReader->getNodeType() == irr::io::EXN_ELEMENT_END)
|
||||
{
|
||||
if( mReader->getNodeName() != elementName)
|
||||
ThrowException( boost::str( boost::format( "Expected end of \"%s\" element.") % elementName));
|
||||
ThrowException( boost::str( boost::format( "Expected end of <%s> element.") % elementName));
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -2063,7 +2064,7 @@ void ColladaParser::ReadPrimitives( Mesh* pMesh, std::vector<InputChannel>& pPer
|
||||
{
|
||||
// warn if the vertex channel does not refer to the <vertices> element in the same mesh
|
||||
if( input.mAccessor != pMesh->mVertexID)
|
||||
ThrowException( "Unsupported vertex referencing scheme. I fucking hate Collada.");
|
||||
ThrowException( "Unsupported vertex referencing scheme.");
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2230,7 +2231,13 @@ void ColladaParser::ExtractDataObjectFromChannel( const InputChannel& pInput, si
|
||||
pMesh->mColors[pInput.mIndex].insert( pMesh->mColors[pInput.mIndex].end(),
|
||||
pMesh->mPositions.size() - pMesh->mColors[pInput.mIndex].size() - 1, aiColor4D( 0, 0, 0, 1));
|
||||
|
||||
pMesh->mColors[pInput.mIndex].push_back( aiColor4D( obj[0], obj[1], obj[2], obj[3]));
|
||||
//pMesh->mColors[pInput.mIndex].push_back( aiColor4D( obj[0], obj[1], obj[2], obj[3]));
|
||||
aiColor4D result(0, 0, 0, 1);
|
||||
for (size_t i = 0; i < pInput.mResolved->mSize; ++i)
|
||||
{
|
||||
result[i] = obj[pInput.mResolved->mSubOffset[i]];
|
||||
}
|
||||
pMesh->mColors[pInput.mIndex].push_back(result);
|
||||
} else
|
||||
{
|
||||
DefaultLogger::get()->error("Collada: too many vertex color sets. Skipping.");
|
||||
|
||||
Reference in New Issue
Block a user