From: <vo...@us...> - 2008-08-20 18:42:38
|
Revision: 786 http://opde.svn.sourceforge.net/opde/?rev=786&view=rev Author: volca Date: 2008-08-20 18:42:47 +0000 (Wed, 20 Aug 2008) Log Message: ----------- Z-Bias override for subentities Modified Paths: -------------- trunk/src/services/render/SubEntityMaterialInstance.cpp trunk/src/services/render/SubEntityMaterialInstance.h Modified: trunk/src/services/render/SubEntityMaterialInstance.cpp =================================================================== --- trunk/src/services/render/SubEntityMaterialInstance.cpp 2008-08-20 18:28:06 UTC (rev 785) +++ trunk/src/services/render/SubEntityMaterialInstance.cpp 2008-08-20 18:42:47 UTC (rev 786) @@ -13,38 +13,47 @@ using namespace Ogre; SubEntityMaterialInstance::SubEntityMaterialInstance (SubEntity *se) : MaterialInstance () { - mSubEntity = se; + mSubEntity = se; - initOriginalMaterial (); + initOriginalMaterial (); } SubEntityMaterialInstance::~SubEntityMaterialInstance () { - // Reset to the original material - mSubEntity->setMaterialName (mOriginalMat->getName ()); + // Reset to the original material + mSubEntity->setMaterialName (mOriginalMat->getName ()); } void SubEntityMaterialInstance::setMaterialName (String name) { - clearCopyMaterial (); + clearCopyMaterial (); - mSubEntity->setMaterialName (name); - - initOriginalMaterial (); - - setTransparency (mCurrentTransparency); + mSubEntity->setMaterialName (name); + + initOriginalMaterial (); + + setTransparency (mCurrentTransparency); } void SubEntityMaterialInstance::setTransparency (Real transparency) { - MaterialInstance::setTransparency (transparency); - - if (mCurrentTransparency > 0.0f) { - mSubEntity->setMaterialName (mCopyMat->getName ()); - } - else { - mSubEntity->setMaterialName (mOriginalMat->getName ()); - } + MaterialInstance::setTransparency (transparency); + + if (hasOverrides()) { + mSubEntity->setMaterialName (mCopyMat->getName ()); + } else { + mSubEntity->setMaterialName (mOriginalMat->getName ()); + } } +void SubEntityMaterialInstance::setZBias (Ogre::Real zbias) { + MaterialInstance::setZBias (zbias); + + if (hasOverrides()) { + mSubEntity->setMaterialName (mCopyMat->getName ()); + } else { + mSubEntity->setMaterialName (mOriginalMat->getName ()); + } +} + void SubEntityMaterialInstance::initOriginalMaterial () { - mOriginalMat = MaterialManager::getSingleton ().getByName (mSubEntity->getMaterialName ()); + mOriginalMat = MaterialManager::getSingleton ().getByName (mSubEntity->getMaterialName ()); } Modified: trunk/src/services/render/SubEntityMaterialInstance.h =================================================================== --- trunk/src/services/render/SubEntityMaterialInstance.h 2008-08-20 18:28:06 UTC (rev 785) +++ trunk/src/services/render/SubEntityMaterialInstance.h 2008-08-20 18:42:47 UTC (rev 786) @@ -50,11 +50,19 @@ * @see MaterialInstance::setTransparency(). */ void setTransparency (Ogre::Real transparency); + + /** Changes this instance's z-bias setting. + */ + void setZBias (Ogre::Real zbias); + + protected: /** Initialises the reference to the original material from the SubEntity's. * @see MaterialInstance::initOriginalMaterial(). */ void initOriginalMaterial (); + + }; #endif // __SUBENTITYMATERIALINSTANCE_H__ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |