Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/orxonox/interfaces/RadarViewable.h @ 9257

Last change on this file since 9257 was 9257, checked in by landauf, 12 years ago

renamed RVName to radarname
cast to RadarViewable instead of SpaceShip to set the name (in PlayerInfo)

  • Property svn:eol-style set to native
File size: 4.6 KB
Line 
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"
38#include "core/OrxonoxClass.h"
39#include "core/SmartPtr.h"
40
41namespace orxonox
42{
43    class BaseObject;
44
45    /**
46    @brief Interface for receiving window events.
47    */
48    class _OrxonoxExport RadarViewable : virtual public OrxonoxClass
49    {
50    public:
51        enum 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                                if (this->radarName_ != name)
66                                {
67                                        this->radarName_ = name;
68                                        this->settingsChanged();
69                                }
70                        }
71                const std::string& getRadarName() const
72                        { return this->radarName_; }
73
74        inline void setRadarObjectCamouflage(float camouflage)
75            {
76                if( this->radarObjectCamouflage_ != camouflage )
77                {
78                    this->radarObjectCamouflage_ = camouflage;
79                    this->settingsChanged();
80                }
81            }
82        inline float getRadarObjectCamouflage() const
83            { return this->radarObjectCamouflage_; }
84
85        inline void setRadarObjectColour(const ColourValue& colour)
86            {
87                if(this->radarObjectColour_ != colour)
88                {
89                    this->radarObjectColour_ = colour;
90                    this->settingsChanged();
91                }
92            }
93        inline const ColourValue& getRadarObjectColour() const
94            { return this->radarObjectColour_; }
95
96//         void setRadarObjectDescription(const std::string& str);
97//         inline const std::string& getRadarObjectDescription() const
98//             { return this->radarObjectDescription_; }
99
100        inline void setRadarVisibility(bool b)
101            {
102                if(b!=this->bVisibility_)
103                {
104                    this->bVisibility_ = b;
105                    this->settingsChanged();
106                }
107            }
108        inline bool getRadarVisibility() const
109            { return this->bVisibility_; }
110
111        virtual const WorldEntity* getWorldEntity() const{ return this->wePtr_; }
112
113        const Vector3& getRVWorldPosition() const;
114        Vector3 getRVOrientedVelocity() const;
115
116        inline void setRadarObjectShape(Shape shape)
117            {
118                if( this->radarObjectShape_ != shape )
119                {
120                    this->radarObjectShape_ = shape;
121                    this->settingsChanged();
122                }
123            }
124        inline Shape getRadarObjectShape() const
125            { return this->radarObjectShape_; }
126
127        inline void setRadarObjectScale(float scale)
128            {
129                if(this->scale_ != scale)
130                {
131                    this->scale_ = scale;
132                    this->settingsChanged();
133                }
134            }
135        inline float getRadarObjectScale() const
136            { return this->scale_; }
137
138        void settingsChanged();
139
140
141        bool isHumanShip_;
142        inline const std::string& getUniqueId()
143        {
144            return this->uniqueId_;
145        }
146        //friend class Map;
147
148    private:
149        void validate(const WorldEntity* object) const;
150        bool bVisibility_;
151        bool bInitialized_;
152        //Map
153        std::string uniqueId_;
154        BaseObject* creator_;
155
156
157        //Radar
158        const WorldEntity* wePtr_;
159        SmartPtr<Radar> radar_;
160        float radarObjectCamouflage_;
161        Shape radarObjectShape_;
162        std::string radarObjectDescription_;
163        ColourValue radarObjectColour_;
164        float scale_;
165                std::string radarName_;
166    };
167}
168
169#endif /* _RadarViewable_H__ */
Note: See TracBrowser for help on using the repository browser.