lugre_RobRenderableOverlay.cpp

Go to the documentation of this file.
00001 #include "lugre_RobRenderableOverlay.h"
00002 #include <OgreOverlayElementFactory.h>
00003 #include <OgreOverlayManager.h>
00004 #include <math.h>
00005 
00006 
00007 using namespace Ogre;
00008 
00009 
00010 
00011 namespace Lugre {
00012 
00013 String cRobRenderableOverlay::msTypeName = "RobRenderableOverlay";
00014 
00015 // ***** ***** ***** ***** ***** Factory
00016 
00017 
00018 
00020 class /*_OgreExport*/ cRobRenderableOverlayElementFactory: public OverlayElementFactory { public:
00022     OverlayElement* createOverlayElement(const String& instanceName) {
00023         return new cRobRenderableOverlay(instanceName);
00024     }
00026     const String& getTypeName(void) const {
00027         return cRobRenderableOverlay::msTypeName;
00028     }
00029 }; 
00030 
00031 //SiENcE
00032 void    cRobRenderableOverlay::RegisterFactory () {
00033     OverlayManager::getSingleton().addOverlayElementFactory(new cRobRenderableOverlayElementFactory());
00034 }
00035 
00036 
00037 // ***** ***** ***** ***** ***** cRobRenderableOverlay
00038 
00039 cRobRenderableOverlay::cRobRenderableOverlay(const Ogre::String& name) : 
00040     cRobRenderOp(&mRenderOp), OverlayContainer(name), mTransparent(false)
00041 {
00042     // default to pixel coords
00043     setMetricsMode(GMM_PIXELS);
00044 }
00045     
00046 cRobRenderableOverlay::~cRobRenderableOverlay() {
00047     delete mRenderOp.vertexData; mRenderOp.vertexData = 0;
00048     delete mRenderOp.indexData; mRenderOp.indexData = 0;
00049 }
00050     
00052 void cRobRenderableOverlay::initialise(void) {
00053     OverlayContainer::initialise();
00054     mInitialised = true;
00055 }
00056 
00057 //---------------------------------------------------------------------
00058 void cRobRenderableOverlay::setTransparent(bool isTransparent)
00059 {
00060     mTransparent = isTransparent;
00061 }
00062 
00063 //---------------------------------------------------------------------
00064 bool cRobRenderableOverlay::isTransparent(void) const
00065 {
00066     return mTransparent;
00067 }
00068 
00070 const String& cRobRenderableOverlay::getTypeName(void) const {
00071     return msTypeName;
00072 }
00073 
00075 void cRobRenderableOverlay::getRenderOperation(RenderOperation& op) {
00076     op = mRenderOp;
00077 }
00078 
00080 void cRobRenderableOverlay::setMaterialName(const String& matName) {
00081     OverlayContainer::setMaterialName(matName);
00082 }
00083 
00085 void cRobRenderableOverlay::_updateRenderQueue(RenderQueue* queue) {
00086     if (mVisible) {
00087         if (!mTransparent && !mpMaterial.isNull()) {
00088             OverlayElement::_updateRenderQueue(queue);
00089         }
00090         // Also add children
00091         ChildIterator it = getChildIterator();
00092         while (it.hasMoreElements()) {
00093             // Give children ZOrder 1 higher than this
00094             it.getNext()->_updateRenderQueue(queue);
00095         }
00096     }
00097 }
00098 
00100 void cRobRenderableOverlay::updatePositionGeometry(void) {}
00101 
00103 void cRobRenderableOverlay::updateTextureGeometry(void) {}
00104 
00106 void cRobRenderableOverlay::addBaseParameters(void) { OverlayContainer::addBaseParameters(); }
00107 
00108 };

Generated on Wed May 23 06:00:15 2012 for cpp by  doxygen 1.5.6