73 lines
1.5 KiB
C
73 lines
1.5 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 pointerData.h
|
||
|
* @author drose
|
||
|
* @date 1999-02-08
|
||
|
*/
|
||
|
|
||
|
#ifndef POINTERDATA_H
|
||
|
#define POINTERDATA_H
|
||
|
|
||
|
#include "pandabase.h"
|
||
|
|
||
|
#include "modifierButtons.h"
|
||
|
|
||
|
BEGIN_PUBLISH
|
||
|
/**
|
||
|
* Contains the types of pointer device.
|
||
|
*/
|
||
|
enum class PointerType {
|
||
|
unknown,
|
||
|
mouse,
|
||
|
finger,
|
||
|
stylus,
|
||
|
eraser,
|
||
|
};
|
||
|
END_PUBLISH
|
||
|
|
||
|
/**
|
||
|
* Holds the data that might be generated by a 2-d pointer input device, such
|
||
|
* as the mouse in the GraphicsWindow.
|
||
|
*/
|
||
|
class EXPCL_PANDA_PUTIL PointerData {
|
||
|
PUBLISHED:
|
||
|
INLINE double get_x() const;
|
||
|
INLINE double get_y() const;
|
||
|
INLINE bool get_in_window() const;
|
||
|
|
||
|
public:
|
||
|
INLINE int get_id() const;
|
||
|
INLINE PointerType get_type() const;
|
||
|
INLINE double get_pressure() const;
|
||
|
|
||
|
void output(std::ostream &out) const;
|
||
|
|
||
|
PUBLISHED:
|
||
|
MAKE_PROPERTY(x, get_x);
|
||
|
MAKE_PROPERTY(y, get_y);
|
||
|
MAKE_PROPERTY(type, get_type);
|
||
|
MAKE_PROPERTY(id, get_id);
|
||
|
MAKE_PROPERTY(in_window, get_in_window);
|
||
|
MAKE_PROPERTY(pressure, get_pressure);
|
||
|
|
||
|
public:
|
||
|
bool _in_window = false;
|
||
|
double _xpos = 0.0;
|
||
|
double _ypos = 0.0;
|
||
|
double _pressure = 0.0;
|
||
|
PointerType _type = PointerType::unknown;
|
||
|
int _id = 0;
|
||
|
};
|
||
|
|
||
|
INLINE std::ostream &operator << (std::ostream &out, const PointerData &md);
|
||
|
|
||
|
#include "pointerData.I"
|
||
|
|
||
|
#endif
|