From 34356234633f6f2ec00abeff6fa96d2a9d6f2a7e Mon Sep 17 00:00:00 2001 From: aramis_acg Date: Sun, 23 Aug 2009 15:46:04 +0000 Subject: [PATCH] Fixing template instancing failure in aiMaterial::Get(). Providing explicit specialization for aiColor3D. git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@470 67173fc5-114c-0410-ac8e-9d2fd5bffc1f --- include/aiMaterial.inl | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/include/aiMaterial.inl b/include/aiMaterial.inl index 0221031db..520e88377 100644 --- a/include/aiMaterial.inl +++ b/include/aiMaterial.inl @@ -75,8 +75,9 @@ inline aiReturn aiMaterial::Get(const char* pKey,unsigned int type, { unsigned int iNum = pMax ? *pMax : 1; - aiMaterialProperty* prop; - aiReturn ret = ::aiGetMaterialProperty(this,pKey,type,idx,&prop); + const aiMaterialProperty* prop; + const aiReturn ret = ::aiGetMaterialProperty(this,pKey,(aiTextureType)type,idx, + (const aiMaterialProperty**)&prop); if ( AI_SUCCESS == ret ) { if (prop->mDataLength < sizeof(Type)*iNum) { @@ -100,8 +101,9 @@ template inline aiReturn aiMaterial::Get(const char* pKey,unsigned int type, unsigned int idx,Type& pOut) const { - aiMaterialProperty* prop; - aiReturn ret = ::aiGetMaterialProperty(this,pKey,type,idx,&prop); + const aiMaterialProperty* prop; + const aiReturn ret = ::aiGetMaterialProperty(this,pKey,(aiTextureType)type,idx, + (const aiMaterialProperty**)&prop); if ( AI_SUCCESS == ret ) { if (prop->mDataLength < sizeof(Type)) { @@ -156,6 +158,16 @@ inline aiReturn aiMaterial::Get(const char* pKey,unsigned int type, } // --------------------------------------------------------------------------- template <> +inline aiReturn aiMaterial::Get(const char* pKey,unsigned int type, + unsigned int idx,aiColor3D& pOut) const +{ + aiColor4D c; + const aiReturn ret = aiGetMaterialColor(this,pKey,type,idx,&c); + pOut = aiColor3D(c.r,c.g,c.b); + return ret; +} +// --------------------------------------------------------------------------- +template <> inline aiReturn aiMaterial::Get(const char* pKey,unsigned int type, unsigned int idx,aiString& pOut) const {