/
Main.cpp
77 lines (61 loc) · 1.7 KB
/
Main.cpp
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
68
69
70
71
72
73
74
75
76
77
// Copyright (C) 2009-2018, Panagiotis Christopoulos Charitos and contributors.
// All rights reserved.
// Code licensed under the BSD License.
// http://www.anki3d.org/LICENSE
#include <cstdio>
#include "../common/Framework.h"
using namespace anki;
class MyApp : public SampleApp
{
public:
Error sampleExtraInit() override
{
ScriptResourcePtr script;
ANKI_CHECK(getResourceManager().loadResource("assets/scene.lua", script));
ANKI_CHECK(getScriptManager().evalString(script->getSource()));
return Error::NONE;
}
Error userMainLoop(Bool& quit) override;
};
Error MyApp::userMainLoop(Bool& quit)
{
ANKI_CHECK(SampleApp::userMainLoop(quit));
if(getInput().getMouseButton(MouseButton::LEFT) == 1)
{
ANKI_LOGI("Firing a monkey");
static U instance = 0;
Transform camTrf = getSceneGraph().getActiveCameraNode().getComponent<MoveComponent>().getWorldTransform();
ModelNode* monkey;
ANKI_CHECK(getSceneGraph().newSceneNode<ModelNode>(
StringAuto(getAllocator()).sprintf("monkey%u", instance++).toCString(),
monkey,
"assets/SuzanneMaterial-material.ankimdl"));
// monkey->getComponent<MoveComponent>().setLocalTransform(camTrf);
BodyNode* body;
ANKI_CHECK(getSceneGraph().newSceneNode<BodyNode>(
StringAuto(getAllocator()).sprintf("bmonkey%u", instance++).toCString(), body, "assets/Suzanne.ankicl"));
body->getComponent<BodyComponent>().setTransform(camTrf);
body->addChild(monkey);
}
return Error::NONE;
}
int main(int argc, char* argv[])
{
Error err = Error::NONE;
MyApp* app = new MyApp;
err = app->init(argc, argv, argv[0]);
if(!err)
{
err = app->mainLoop();
}
if(err)
{
ANKI_LOGE("Error reported. Bye!");
}
else
{
delete app;
ANKI_LOGI("Bye!!");
}
return 0;
}