Orxonox  0.0.5 Codename: Arcturus
HalfAxis.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 _HalfAxis_H__
36 #define _HalfAxis_H__
37 
38 #include "InputPrereqs.h"
39 
40 #include "Button.h"
41 #include "InputCommands.h"
42 
43 namespace orxonox
44 {
45  class _CoreExport HalfAxis : public Button
46  {
47  public:
49  : relVal_(0.0f)
50  , absVal_(0.0f)
51  , paramCommands_(nullptr)
52  , nParamCommands_(0)
53  , pressed_(false)
54  , hasChanged_(false)
55  { }
56  using Button::execute;
57  bool execute();
58  virtual bool addParamCommand(ParamCommand* command) override;
59  virtual void clear() override;
60  void reset();
61 
62  // axis related
63  float relVal_;
64  float absVal_;
66  unsigned int nParamCommands_;
67 
68  // button related
69  bool pressed_;
71  };
72 
73  inline bool HalfAxis::execute()
74  {
75  bool success = true;
76  for (unsigned int i = 0; i < nParamCommands_; i++)
77  success = paramCommands_[i]->execute(absVal_, relVal_) && success;
78  return success;
79  }
80 
81  inline void HalfAxis::reset()
82  {
83  this->relVal_ = 0.0f;
84  this->absVal_ = 0.0f;
85  this->hasChanged_ = true;
86  }
87 }
88 
89 #endif /* _HalfAxis_H__ */
float absVal_
Definition: HalfAxis.h:64
Different definitions of input processing.
bool pressed_
Definition: HalfAxis.h:69
ParamCommand ** paramCommands_
Definition: HalfAxis.h:65
float relVal_
Definition: HalfAxis.h:63
HalfAxis()
Definition: HalfAxis.h:48
bool execute()
Definition: HalfAxis.h:73
Declarations of all key/button/axis code enumeration and string literals and an input device enumerat...
unsigned int nParamCommands_
Definition: HalfAxis.h:66
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
ARGUMENT_COMPLETION_FUNCTION_IMPLEMENTATION_MULTI() command(const std::string &fragment)
Returns a list of commands and groups and also supports auto-completion of the arguments of these com...
Definition: ArgumentCompletionFunctions.cc:178
Different definitions of input processing.
#define _CoreExport
Definition: CorePrereqs.h:61
void reset()
Definition: HalfAxis.h:81
Definition: HalfAxis.h:45
bool execute(KeybindMode::Value mode, float abs=1.0f, float rel=1.0f)
Definition: Button.h:80
Definition: InputCommands.h:102
Definition: Button.h:46
bool hasChanged_
Definition: HalfAxis.h:70