Orxonox  0.0.5 Codename: Arcturus
InputCommands.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 
35 #ifndef _InputCommands_H__
36 #define _InputCommands_H__
37 
38 #include "InputPrereqs.h"
40 
41 namespace orxonox
42 {
44  {
45  public:
46  BufferedParamCommand() : abs_(0.0f), rel_(0.0), paramIndex_(-1) { }
47  bool execute();
48 
49  float abs_;
50  float rel_;
53  };
54 
56  {
57  public:
58  BaseCommand() : bFixedKeybindMode_(false) {}
59  virtual ~BaseCommand() = default;
60 
61  virtual bool execute(float abs = 1.0f, float rel = 1.0f) = 0;
62  virtual CommandEvaluation* getEvaluation() = 0;
63 
64  inline void setFixedKeybindMode(bool fixed)
65  { this->bFixedKeybindMode_ = fixed; }
66  inline bool hasFixedKeybindMode() const
67  { return this->bFixedKeybindMode_; }
68 
69  virtual BaseCommand* clone() = 0;
70 
71  private:
73  };
74 
76  {
77  public:
78  virtual bool execute(float abs = 1.0f, float rel = 1.0f) override;
79  virtual CommandEvaluation* getEvaluation() override;
80  virtual SimpleCommand* clone() override { return new SimpleCommand(*this); }
81 
83  };
84 
91  inline bool SimpleCommand::execute(float abs, float rel)
92  {
93  return evaluation_.execute();
94  }
95 
98  {
99  return &this->evaluation_;
100  }
101 
103  {
104  public:
105  ParamCommand() : scale_(1.0f), paramCommand_(nullptr) { }
106  virtual bool execute(float abs = 1.0f, float rel = 1.0f) override;
107  virtual CommandEvaluation* getEvaluation() override;
108  virtual ParamCommand* clone() override { return new ParamCommand(*this); }
109 
110  float scale_;
112  };
113 
116  {
117  if (this->paramCommand_)
118  return &this->paramCommand_->evaluation_;
119  else
120  return nullptr;
121  }
122 }
123 
124 #endif /* _InputCommands_H__ */
float scale_
Definition: InputCommands.h:110
CommandEvaluation evaluation_
Definition: InputCommands.h:52
void setFixedKeybindMode(bool fixed)
Definition: InputCommands.h:64
ParamCommand()
Definition: InputCommands.h:105
virtual CommandEvaluation * getEvaluation() override
Returns a pointer to the encapsuled evaluation.
Definition: InputCommands.h:115
float rel_
Definition: InputCommands.h:50
Declaration of the orxonox::CommandEvaluation class which is returned by orxonox::CommandExecutor::ev...
virtual ParamCommand * clone() override
Definition: InputCommands.h:108
float abs_
Definition: InputCommands.h:49
Declarations of all key/button/axis code enumeration and string literals and an input device enumerat...
CommandEvaluation evaluation_
Definition: InputCommands.h:82
bool hasFixedKeybindMode() const
Definition: InputCommands.h:66
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
virtual bool execute(float abs=1.0f, float rel=1.0f) override
Executes a simple command with no additional paramters.
Definition: InputCommands.h:91
CommandEvaluation is used to gather information about a command and to evaluate its arguments...
Definition: CommandEvaluation.h:80
#define _CoreExport
Definition: CorePrereqs.h:61
Definition: InputCommands.h:43
Definition: InputCommands.h:75
Definition: InputCommands.h:55
bool bFixedKeybindMode_
Definition: InputCommands.h:72
virtual CommandEvaluation * getEvaluation() override
Returns a pointer to the encapsuled evaluation.
Definition: InputCommands.h:97
BaseCommand()
Definition: InputCommands.h:58
Definition: InputCommands.h:102
int paramIndex_
Definition: InputCommands.h:51
BufferedParamCommand()
Definition: InputCommands.h:46
BufferedParamCommand * paramCommand_
Definition: InputCommands.h:111
virtual SimpleCommand * clone() override
Definition: InputCommands.h:80