1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#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;
}
}
|