Orxonox  0.0.5 Codename: Arcturus
RadarViewable.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Reto Grieder
24  * Co-authors:
25  * ...
26  *
27  */
28 
29 #ifndef _RadarViewable_H__
30 #define _RadarViewable_H__
31 
32 #include "OrxonoxPrereqs.h"
33 
34 #include <string>
35 #include <cassert>
36 
37 #include "util/Math.h"
39 #include "core/object/StrongPtr.h"
40 
41 namespace orxonox
42 {
43  class BaseObject;
44 
49  {
50  public:
51  enum class Shape
52  {
53  Square,
54  Dot,
55  Triangle
56  };
57 
58 
59  public:
60  RadarViewable(BaseObject* creator, const WorldEntity* wePtr);
61  virtual ~RadarViewable();
62 
63  virtual void setRadarName(const std::string& name)
64  {
65  // The following if-clause hides objects with radarname "HIDDEN"
66  if (name == "HIDDEN")
67  {
68  this->bVisibility_ = false;
69  this->settingsChanged();
70  }
71  if (this->radarName_ != name)
72  {
73  this->radarName_ = name;
74  this->settingsChanged();
75  }
76  }
77  const std::string& getRadarName() const
78  { return this->radarName_; }
79 
80  inline void setRadarObjectCamouflage(float camouflage)
81  {
82  if( this->radarObjectCamouflage_ != camouflage )
83  {
84  this->radarObjectCamouflage_ = camouflage;
85  this->settingsChanged();
86  }
87  }
88  inline float getRadarObjectCamouflage() const
89  { return this->radarObjectCamouflage_; }
90 
91  inline void setRadarObjectColour(const ColourValue& colour)
92  {
93  if(this->radarObjectColour_ != colour)
94  {
95  this->radarObjectColour_ = colour;
96  this->settingsChanged();
97  }
98  }
99  inline const ColourValue& getRadarObjectColour() const
100  { return this->radarObjectColour_; }
101 
102 // void setRadarObjectDescription(const std::string& str);
103 // inline const std::string& getRadarObjectDescription() const
104 // { return this->radarObjectDescription_; }
105 
106  inline void setRadarVisibility(bool b)
107  {
108  if(b!=this->bVisibility_)
109  {
110  this->bVisibility_ = b;
111  this->settingsChanged();
112  }
113  }
114  inline bool getRadarVisibility() const
115  { return this->bVisibility_; }
116 
117  virtual const WorldEntity* getWorldEntity() const{ return this->wePtr_; }
118 
119  const Vector3& getRVWorldPosition() const;
120  Vector3 getRVOrientedVelocity() const;
121  Vector3 getRVVelocity() const;
122 
123  inline void setRadarObjectShape(Shape shape)
124  {
125  if( this->radarObjectShape_ != shape )
126  {
127  this->radarObjectShape_ = shape;
128  this->settingsChanged();
129  }
130  }
131  inline Shape getRadarObjectShape() const
132  { return this->radarObjectShape_; }
133 
134  inline void setRadarObjectScale(float scale)
135  {
136  if(this->scale_ != scale)
137  {
138  this->scale_ = scale;
139  this->settingsChanged();
140  }
141  }
142  inline float getRadarObjectScale() const
143  { return this->scale_; }
144 
145  void settingsChanged();
146 
147 
149  inline const std::string& getUniqueId()
150  {
151  return this->uniqueId_;
152  }
153 
154  private:
155  void validate(const WorldEntity* object) const;
158  //Map
160 
161 
162  //Radar
168  ColourValue radarObjectColour_;
169  float scale_;
171  };
172 }
173 
174 #endif /* _RadarViewable_H__ */
The BaseObject is the parent of all classes representing an instance in the game. ...
Definition: BaseObject.h:63
void setRadarObjectShape(Shape shape)
Definition: RadarViewable.h:123
std::string uniqueId_
Definition: RadarViewable.h:159
const std::string & getUniqueId()
Definition: RadarViewable.h:149
void setRadarObjectScale(float scale)
Definition: RadarViewable.h:134
float radarObjectCamouflage_
Definition: RadarViewable.h:165
bool bVisibility_
Definition: RadarViewable.h:156
::std::string string
Definition: gtest-port.h:756
A strong pointer which wraps a pointer to an object and keeps this object alive as long as the strong...
Definition: CorePrereqs.h:227
void setRadarObjectCamouflage(float camouflage)
Definition: RadarViewable.h:80
bool bInitialized_
Definition: RadarViewable.h:157
This is the class from which all interfaces of the game-logic (not the engine) are derived from...
Definition: OrxonoxInterface.h:50
Interface for receiving window events.
Definition: RadarViewable.h:48
float getRadarObjectCamouflage() const
Definition: RadarViewable.h:88
StrongPtr< Radar > radar_
Definition: RadarViewable.h:164
Ogre::ColourValue colour(const btVector3 &color, btScalar alpha)
Definition: OgreBulletUtils.h:41
virtual const WorldEntity * getWorldEntity() const
Definition: RadarViewable.h:117
The WorldEntity represents everything that can be put in a Scene at a certain location.
Definition: WorldEntity.h:72
std::string radarObjectDescription_
Definition: RadarViewable.h:167
bool isHumanShip_
Definition: RadarViewable.h:148
const std::string & getRadarName() const
Definition: RadarViewable.h:77
std::string radarName_
Definition: RadarViewable.h:170
void setRadarObjectColour(const ColourValue &colour)
Definition: RadarViewable.h:91
ColourValue radarObjectColour_
Definition: RadarViewable.h:168
Declaration and implementation of several math-functions, typedefs of some Ogre::Math classes to the ...
Shape
Definition: RadarViewable.h:51
const WorldEntity * wePtr_
Definition: RadarViewable.h:163
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
Declaration of OrxonoxInterface, the base class of all interfaces in Orxonox.
Shape getRadarObjectShape() const
Definition: RadarViewable.h:131
Shape radarObjectShape_
Definition: RadarViewable.h:166
Shared library macros, enums, constants and forward declarations for the orxonox library ...
void setRadarVisibility(bool b)
Definition: RadarViewable.h:106
const ColourValue & getRadarObjectColour() const
Definition: RadarViewable.h:99
#define _OrxonoxExport
Definition: OrxonoxPrereqs.h:60
float getRadarObjectScale() const
Definition: RadarViewable.h:142
Definition of StrongPtr<T>, wraps a pointer to an object and keeps it alive.
virtual void setRadarName(const std::string &name)
Definition: RadarViewable.h:63
bool getRadarVisibility() const
Definition: RadarViewable.h:114
float scale_
Definition: RadarViewable.h:169