2
// C++ Implementation: OgreEntityRenderer
7
// Author: Erik Hjortsberg <erik.hjortsberg@gmail.com>, (C) 2006
9
// This program is free software; you can redistribute it and/or modify
10
// it under the terms of the GNU General Public License as published by
11
// the Free Software Foundation; either version 2 of the License, or
12
// (at your option) any later version.
14
// This program is distributed in the hope that it will be useful,
15
// but WITHOUT ANY WARRANTY; without even the implied warranty of
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
// GNU General Public License for more details.
19
// You should have received a copy of the GNU General Public License
20
// along with this program; if not, write to the Free Software
21
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.//
27
#include "OgreEntityRenderer.h"
28
#include "EntityCEGUITexture.h"
29
#include "../SimpleRenderContext.h"
31
#include <elements/CEGUIGUISheet.h>
36
OgreEntityRenderer::OgreEntityRenderer(CEGUI::Window* image) : MovableObjectRenderer(image), mEntity(0)
41
OgreEntityRenderer::~OgreEntityRenderer()
45
Ogre::Entity* OgreEntityRenderer::getEntity()
50
void OgreEntityRenderer::showEntity(const std::string& mesh)
53
mTexture->getRenderContext()->getSceneNode()->getCreator()->destroyEntity(mEntity);
55
std::string meshName(mTexture->getImage()->getName().c_str());
56
meshName += "_entity";
58
mEntity = mTexture->getRenderContext()->getSceneNode()->getCreator()->createEntity(meshName , mesh);
60
mTexture->getRenderContext()->setActive(true);
61
} catch (const Ogre::Exception& ex) {
62
S_LOG_FAILURE("Error when creating entity. Message: " << ex.getFullDescription());
67
Ogre::MovableObject* OgreEntityRenderer::getMovableObject()
72
void OgreEntityRenderer::setEntity(Ogre::Entity* entity)
74
Ogre::SceneNode* node = mTexture->getRenderContext()->getSceneNode();
76
node->detachAllObjects();
77
node->attachObject(entity);
78
mTexture->getRenderContext()->repositionCamera();