1 | /*! |
---|
2 | * @file blink.h |
---|
3 | */ |
---|
4 | /*! example input in .oxw file with the standard values |
---|
5 | |
---|
6 | <Blink> |
---|
7 | <name>Blink1</name> |
---|
8 | <position>580, 70, -130</position> |
---|
9 | <color>0, 255, 255</color> |
---|
10 | <size>8</size> |
---|
11 | <period>9</period> |
---|
12 | <sequence>0123456789</sequence><!-- the number describe the strength of the blink light --> |
---|
13 | </Blink> |
---|
14 | |
---|
15 | */ |
---|
16 | |
---|
17 | #ifndef _BLINK_H |
---|
18 | #define _BLINK_H |
---|
19 | |
---|
20 | #include "world_entity.h" |
---|
21 | #include "effects/billboard.h" |
---|
22 | #include "color.h" |
---|
23 | |
---|
24 | class Material; |
---|
25 | class TiXmlElement; |
---|
26 | //class Billboard; |
---|
27 | |
---|
28 | class Blink : public WorldEntity |
---|
29 | { |
---|
30 | ObjectListDeclaration(Blink); |
---|
31 | public: |
---|
32 | Blink(const TiXmlElement* root = NULL); |
---|
33 | virtual ~Blink(); |
---|
34 | |
---|
35 | void init(); |
---|
36 | void loadParams(const TiXmlElement* root); |
---|
37 | |
---|
38 | //void setAbsCoor(const Vector& absCoor) { this->bBoard->setAbsCoor(absCoor); } |
---|
39 | //void setAbsCoor(float x, float y, float z) { this->bBoard->setAbsCoor(x, y, z); } |
---|
40 | //void setPosition(float x, float y, float z) { this->bBoard->setAbsCoor(x, y, z); } |
---|
41 | void setSize(float s) { this->size = s; this->bBoard->setSize(this->size, this->size); } |
---|
42 | void setPeriod(float t) { this->period = t; } |
---|
43 | void setColor(float r, float g, float b) { this->color = Color(r/255, g/255, b/255); } |
---|
44 | void loadBlinkSequence(const std::string& seq) { this->blinkSequence = seq; } |
---|
45 | |
---|
46 | virtual void tick(float dt); |
---|
47 | virtual void draw() const; |
---|
48 | |
---|
49 | private: |
---|
50 | Billboard* bBoard; |
---|
51 | Color color; |
---|
52 | std::string blinkSequence; //! 1 means fully viewable, 0 means fully transparent |
---|
53 | float angle; |
---|
54 | float period; //! period in seconds |
---|
55 | float blinkStr; |
---|
56 | float size; //! only one float caus' its quadratical |
---|
57 | int seqCounter; |
---|
58 | float symbolTime; //! defines how long one symbol of the sequence will be shown in sec |
---|
59 | float timer; |
---|
60 | bool setCoor; // this is a really ugly hack |
---|
61 | }; |
---|
62 | |
---|
63 | #endif /* _BLINK_H */ |
---|