Equalizer  2.0.0
Parallel Rendering Framework
axisEvent.h
1 
2 /* Copyright (c) 2016, Stefan.Eilemann@epfl.ch
3  *
4  * This library is free software; you can redistribute it and/or modify it under
5  * the terms of the GNU Lesser General Public License version 2.1 as published
6  * by the Free Software Foundation.
7  *
8  * This library is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
10  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
11  * details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this library; if not, write to the Free Software Foundation, Inc.,
15  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16  */
17 
18 #ifndef EQFABRIC_AXISEVENT_H
19 #define EQFABRIC_AXISEVENT_H
20 
21 #include <eq/fabric/event.h>
22 
23 namespace eq
24 {
25 namespace fabric
26 {
28 struct AxisEvent : public Event
29 {
30  AxisEvent() : xAxis(0), yAxis(0), zAxis(0),
31  xRotation(0), yRotation(0), zRotation(0) {}
32 
33  int32_t xAxis;
34  int32_t yAxis;
35  int32_t zAxis;
36  int32_t xRotation;
37  int32_t yRotation;
38  int32_t zRotation;
39 };
40 
42 inline std::ostream& operator << ( std::ostream& os, const AxisEvent& event )
43 {
44  return os << static_cast< const Event& >( event ) << " translation "
45  << event.xAxis << ", " << event.yAxis << ", " << event.zAxis
46  << " rotation " << event.xRotation << ", " << event.yRotation
47  << ", " << event.zRotation;
48 }
49 }
50 }
51 
52 namespace lunchbox
53 {
54 template<> inline void byteswap( eq::fabric::AxisEvent& value )
55 {
56  byteswap( static_cast< eq::fabric::Event& >( value ));
57  byteswap( value.xAxis );
58  byteswap( value.yAxis );
59  byteswap( value.zAxis );
60  byteswap( value.xRotation );
61  byteswap( value.yRotation );
62  byteswap( value.zRotation );
63 }
64 }
65 
66 #endif // EQFABRIC_EVENT_H
Base event structure to report window system and other events.
Definition: event.h:36
int32_t xAxis
X translation.
Definition: axisEvent.h:33
int32_t yAxis
Y translation.
Definition: axisEvent.h:34
int32_t zRotation
Z rotation.
Definition: axisEvent.h:38
int32_t yRotation
Y rotation.
Definition: axisEvent.h:37
int32_t xRotation
X rotation.
Definition: axisEvent.h:36
The Equalizer client library.
Definition: eq/agl/types.h:23
std::ostream & operator<<(std::ostream &os, const AxisEvent &event)
Print the axis event to the given output stream.
Definition: axisEvent.h:42
Event for a (SpaceMouse) axis movement.
Definition: axisEvent.h:28
int32_t zAxis
Z translation.
Definition: axisEvent.h:35