This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/share/CodeBlocks/templates/wizard/lf/files/structured/CMain.cpp

68 lines
1.4 KiB
C++

#include "CMain.h"
using namespace lf;
CMain::CMain(render::IRenderWindow* win)
: rwin(win),
rl3d(win->getRenderLayer3D()),
smgr(rl3d->getSceneManager()),
cam(0),
camController(0),
quitNow(false)
{
rwin->addKeyListener(this);
setupScene();
}
CMain::~CMain()
{
rl3d->remove(cam);
smgr->remove(camController);
cam->drop();
camController->drop();
smgr->getRootSceneNode()->removeAllChildren(true);
rwin->removeKeyListener(this);
}
void CMain::run()
{
quitNow = false;
while (!quitNow && CLFRender::getInstance().update())
{
// main loop
}
}
void CMain::setupScene()
{
cam = new scene::C3DCamera(rwin,
core::PI / 3.0f,
1.0f,
1000.0f,
true);
cam->setBackgroundColor(core::CColorI(255, 255, 240, 0));
cam->replace(new render::CRenderStateLighting(false));
cam->setPosition(core::vector3df(0.0f, 0.0f, -30.0f));
cam->setTarget(core::vector3df(0.0f, 0.0f, 0.0f));
rl3d->add(cam);
smgr->addSceneNode(cam);
// handle camera control
camController = new scene::CFPSController(rwin, cam);
smgr->add( camController );
}
void CMain::keyPressed(input::CKeyEvent& event)
{
switch (event.getKey())
{
case input::KEY_ESCAPE:
quitNow = true;
break;
}
}