-
Notifications
You must be signed in to change notification settings - Fork 0
/
ItinerPoint.cpp
76 lines (66 loc) · 2.21 KB
/
ItinerPoint.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
#include "ItinerManager.h"
#include "ItinerPoint.h"
#include "TheGame.h"
#include "OffsetManager.h"
#include <irrlicht.h>
ItinerPoint::ItinerPoint(const irr::core::vector3df& apos,
unsigned int num,
float globalDistance,
float localDistance,
const std::string& itinerImageName,
const std::string& itinerImageName2,
const std::string& description)
: ObjectWireGlobalObject(0, apos),
num(num),
globalDistance(globalDistance),
localDistance(localDistance),
itinerImageName(itinerImageName),
itinerImage(0),
itinerImageName2(itinerImageName2),
itinerImage2(0),
description(description)
{
itinerImage = ItinerManager::getInstance()->getItinerImage(itinerImageName);
itinerImage2 = ItinerManager::getInstance()->getItinerImage2(itinerImageName2);
}
ItinerPoint::~ItinerPoint()
{
}
void ItinerPoint::editorRender(bool last)
{
irr::video::IVideoDriver* driver = TheGame::getInstance()->getDriver();
irr::core::vector3df renderPos = getPos() - OffsetManager::getInstance()->getOffset();
//printf("apos (%f, %f, %f), offset: (%f, %f, %f), renderpos (%f, %f, %f)\n",
// apos.X, apos.Y, apos.Z,
// OffsetManager::getInstance()->getOffset().X, OffsetManager::getInstance()->getOffset().Y, OffsetManager::getInstance()->getOffset().Z,
// renderPos.X, renderPos.Y, renderPos.Z);
//assert(0);
irr::core::vector3df min = renderPos;
irr::core::vector3df max = renderPos;
irr::video::SColor color(255, 255, 255, 255);
min.X -= 2.f;
min.Y += 10.f;
min.Z -= 2.f;
max.X += 2.f;
max.Y += 15.f;
max.Z += 2.f;
//printf("min: (%f, %f, %f), max: (%f, %f, %f)\n", min.X, min.Y, min.Z, max.X, max.Y, max.Z);
if (last)
{
color.setGreen(0);
color.setBlue(0);
}
driver->draw3DBox(irr::core::aabbox3df(min, max), color);
//driver->draw3DLine(min, max, color);
}
void ItinerPoint::updateVisible()
{
if (getVisible())
{
ItinerManager::getInstance()->addActiveItinerPoint(this);
}
else
{
ItinerManager::getInstance()->removeActiveItinerPoint(this);
}
}