Cleaning up.

This commit is contained in:
David Williams 2008-01-24 19:36:10 +00:00
parent 048af66620
commit 679e419946
3 changed files with 28 additions and 25 deletions

View File

@ -18,10 +18,12 @@ namespace Ogre
class SurfacePatchRenderable : public SimpleRenderable
{
public:
SurfacePatchRenderable(const String& name, IndexedSurfacePatch* patchToRender, const String& material = "BaseWhiteNoLighting");
SurfacePatchRenderable(const String& name);
~SurfacePatchRenderable(void);
void setInitialSurfacePatch(IndexedSurfacePatch* patchToRender, const String& material = "BaseWhiteNoLighting");
void updateWithNewSurfacePatch(IndexedSurfacePatch* patchToRender);
void setGeometry(IndexedSurfacePatch* patchToRender);
Real getSquaredViewDepth(const Camera *cam) const;
@ -35,20 +37,20 @@ namespace Ogre
};
/** Factory object for creating Light instances */
/*class _OgreExport SimplePatchRenderableFactory : public MovableObjectFactory
class VOXEL_SCENE_MANAGER_API SurfacePatchRenderableFactory : public MovableObjectFactory
{
protected:
MovableObject* createInstanceImpl( const String& name, const NameValuePairList* params);
public:
SimplePatchRenderableFactory() {}
~SimplePatchRenderableFactory() {}
SurfacePatchRenderableFactory() {}
~SurfacePatchRenderableFactory() {}
static String FACTORY_TYPE_NAME;
const String& getType(void) const;
void destroyInstance( MovableObject* obj);
};*/
};
}
#endif /* __SurfacePatchRenderable_H__ */

View File

@ -155,18 +155,15 @@ namespace Ogre
if(iterRegionGeometry->m_bContainsSingleMaterialPatch)
{
SurfacePatchRenderable* singleMaterialSurfacePatchRenderable;
try
//if(hasMovableObject(singleMaterialNode.str(),"SimpleRenderable") )
if(hasMovableObject(singleMaterialNode.str(),SurfacePatchRenderableFactory::FACTORY_TYPE_NAME) )
{
LogManager::getSingleton().logMessage("FOUND IT!!!!!!!!!!!!!!!!!!!!!!!!!!");
singleMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(sceneNode->getAttachedObject(singleMaterialNode.str()));
//singleMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(getMovableObject(singleMaterialNode.str(), "SurfacePatchRenderable"));
singleMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(getMovableObject(singleMaterialNode.str(), SurfacePatchRenderableFactory::FACTORY_TYPE_NAME));
singleMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(iterRegionGeometry->m_patchSingleMaterial);
}
catch(Ogre::ItemIdentityException)
//else
else
{
singleMaterialSurfacePatchRenderable = new SurfacePatchRenderable(singleMaterialNode.str(), iterRegionGeometry->m_patchSingleMaterial,materialMap->getMaterialAtIndex(1));
singleMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(createMovableObject(singleMaterialNode.str(), SurfacePatchRenderableFactory::FACTORY_TYPE_NAME));
singleMaterialSurfacePatchRenderable->setInitialSurfacePatch(iterRegionGeometry->m_patchSingleMaterial,materialMap->getMaterialAtIndex(1));
singleMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_4);
sceneNode->attachObject(singleMaterialSurfacePatchRenderable);
}
@ -195,7 +192,8 @@ namespace Ogre
}
if(multiMaterialSurfacePatchRenderable == 0)
{
SurfacePatchRenderable* multiMaterialSurfacePatchRenderable = new SurfacePatchRenderable(multiMaterialNode.str(), iterRegionGeometry->m_patchMultiMaterial,materialMap->getMaterialAtIndex(2));
SurfacePatchRenderable* multiMaterialSurfacePatchRenderable = new SurfacePatchRenderable(multiMaterialNode.str());
multiMaterialSurfacePatchRenderable->setInitialSurfacePatch(iterRegionGeometry->m_patchMultiMaterial,materialMap->getMaterialAtIndex(2));
multiMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_3);
sceneNode->attachObject(multiMaterialSurfacePatchRenderable);
}

View File

@ -8,7 +8,7 @@
namespace Ogre
{
SurfacePatchRenderable::SurfacePatchRenderable(const String& name, IndexedSurfacePatch* patchToRender, const String& material)
SurfacePatchRenderable::SurfacePatchRenderable(const String& name)
:SimpleRenderable(name)
{
//Set up what we can of the vertex data
@ -30,10 +30,6 @@ namespace Ogre
decl->addElement(0, 3 * sizeof(float), VET_FLOAT3, VES_NORMAL);
decl->addElement(0, 6 * sizeof(float), VET_FLOAT2, VES_TEXTURE_COORDINATES);
this->setMaterial(material);
setGeometry(patchToRender);
}
SurfacePatchRenderable::~SurfacePatchRenderable(void)
@ -42,6 +38,13 @@ namespace Ogre
delete mRenderOp.indexData;
}
void SurfacePatchRenderable::setInitialSurfacePatch(IndexedSurfacePatch* patchToRender, const String& material)
{
this->setMaterial(material);
setGeometry(patchToRender);
}
void SurfacePatchRenderable::updateWithNewSurfacePatch(IndexedSurfacePatch* patchToRender)
{
setGeometry(patchToRender);
@ -173,14 +176,14 @@ namespace Ogre
}
//-----------------------------------------------------------------------
/*String LightFactory::FACTORY_TYPE_NAME = "SurfacePatchRenderable";
String SurfacePatchRenderableFactory::FACTORY_TYPE_NAME = "SurfacePatchRenderable";
//-----------------------------------------------------------------------
const String& SimplePatchRenderableFactory::getType(void) const
const String& SurfacePatchRenderableFactory::getType(void) const
{
return FACTORY_TYPE_NAME;
}
//-----------------------------------------------------------------------
MovableObject* SimplePatchRenderableFactory::createInstanceImpl( const String& name,
MovableObject* SurfacePatchRenderableFactory::createInstanceImpl( const String& name,
const NameValuePairList* params)
{
@ -188,8 +191,8 @@ namespace Ogre
}
//-----------------------------------------------------------------------
void SimplePatchRenderableFactory::destroyInstance( MovableObject* obj)
void SurfacePatchRenderableFactory::destroyInstance( MovableObject* obj)
{
delete obj;
}*/
}
}