63 lines
1.4 KiB
C
63 lines
1.4 KiB
C
|
/**
|
||
|
* PANDA 3D SOFTWARE
|
||
|
* Copyright (c) Carnegie Mellon University. All rights reserved.
|
||
|
*
|
||
|
* All use of this software is subject to the terms of the revised BSD
|
||
|
* license. You should have received a copy of this license along
|
||
|
* with this source code in a file named "LICENSE."
|
||
|
*
|
||
|
* @file pointerEvent.h
|
||
|
* @author jyelon
|
||
|
* @date 2007-09-20
|
||
|
*/
|
||
|
|
||
|
#ifndef POINTEREVENT_H
|
||
|
#define POINTEREVENT_H
|
||
|
|
||
|
#include "pandabase.h"
|
||
|
#include "pointerData.h"
|
||
|
|
||
|
class Datagram;
|
||
|
class DatagramIterator;
|
||
|
|
||
|
/**
|
||
|
* Records a pointer movement event.
|
||
|
*/
|
||
|
class EXPCL_PANDA_EVENT PointerEvent {
|
||
|
public:
|
||
|
PointerEvent() = default;
|
||
|
|
||
|
INLINE bool operator == (const PointerEvent &other) const;
|
||
|
INLINE bool operator != (const PointerEvent &other) const;
|
||
|
INLINE bool operator < (const PointerEvent &other) const;
|
||
|
|
||
|
void output(std::ostream &out) const;
|
||
|
|
||
|
void write_datagram(Datagram &dg) const;
|
||
|
void read_datagram(DatagramIterator &scan);
|
||
|
|
||
|
public:
|
||
|
bool _in_window = false;
|
||
|
int _id = 0;
|
||
|
PointerType _type = PointerType::unknown;
|
||
|
double _xpos = 0.0;
|
||
|
double _ypos = 0.0;
|
||
|
double _dx = 0.0;
|
||
|
double _dy = 0.0;
|
||
|
double _length = 0.0;
|
||
|
double _direction = 0.0;
|
||
|
double _pressure = 0.0;
|
||
|
double _rotation = 0.0;
|
||
|
int _sequence = 0;
|
||
|
double _time = 0.0;
|
||
|
};
|
||
|
|
||
|
INLINE std::ostream &operator << (std::ostream &out, const PointerEvent &pe) {
|
||
|
pe.output(out);
|
||
|
return out;
|
||
|
}
|
||
|
|
||
|
#include "pointerEvent.I"
|
||
|
|
||
|
#endif
|