Fawkes API  Fawkes Development Version
pantilt.h
1 
2 /***************************************************************************
3  * pantilt.h - Abstract class defining a pan/tilt camera controller
4  *
5  * Created: Tue Apr 21 22:39:20 2009
6  * Copyright 2009 Tobias Kellner
7  * 2005-2009 Tim Niemueller [www.niemueller.de]
8  *
9  ****************************************************************************/
10 
11 /* This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version. A runtime exception applies to
15  * this software (see LICENSE.GPL_WRE file mentioned below for details).
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20  * GNU Library General Public License for more details.
21  *
22  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
23  */
24 
25 #ifndef __FIREVISION_CAMS_CONTROL_PANTILT_H_
26 #define __FIREVISION_CAMS_CONTROL_PANTILT_H_
27 
28 #include <fvcams/control/control.h>
29 
30 namespace firevision {
31 #if 0 /* just to make Emacs auto-indent happy */
32 }
33 #endif
34 
35 class CameraControlPanTilt : virtual public CameraControl
36 {
37  public:
38  virtual ~CameraControlPanTilt();
39 
40  virtual void process_pantilt() = 0;
41 
42  virtual bool supports_pan() = 0;
43  virtual bool supports_tilt() = 0;
44  virtual void set_pan(int pan) = 0;
45  virtual void set_tilt(int tilt) = 0;
46  virtual void set_pan_tilt(int pan, int tilt) = 0;
47  virtual void set_pan_tilt_rad(float pan, float tilt) = 0;
48  virtual int pan() = 0;
49  virtual int tilt() = 0;
50  virtual void start_get_pan_tilt() = 0;
51  virtual void pan_tilt(int &pan, int &tilt) = 0;
52  virtual void pan_tilt_rad(float &pan, float &tilt) = 0;
53  virtual int min_pan() = 0;
54  virtual int max_pan() = 0;
55  virtual int min_tilt() = 0;
56  virtual int max_tilt() = 0;
57  virtual void reset_pan_tilt() = 0;
58  virtual void set_pan_tilt_limit(int pan_left, int pan_right,
59  int tilt_up, int tilt_down) = 0;
60  virtual void reset_pan_tilt_limit() = 0;
61 };
62 
63 } // end namespace firevision
64 
65 #endif // __FIREVISION_CAMS_CONTROL_PANTILT_H_
virtual bool supports_pan()=0
Check whether this controller supports panning.
virtual void reset_pan_tilt_limit()=0
Reset pan/tilt limits.
virtual ~CameraControlPanTilt()
Empty virtual destructor.
Definition: pantilt.cpp:152
virtual void start_get_pan_tilt()=0
Start asynchronous fetch operation for pan and tilt values.
virtual int pan()=0
Get pan value.
virtual int max_tilt()=0
Get maximum tilt value.
virtual void set_pan_tilt_rad(float pan, float tilt)=0
Set pan and tilt as float value.
virtual bool supports_tilt()=0
Check whether this controller supports tilting.
virtual void set_pan(int pan)=0
Set pan value.
Camera control interface base class.
Definition: control.h:33
virtual void reset_pan_tilt()=0
Bring camera into home position.
virtual int min_tilt()=0
Get minimum tilt value.
virtual void set_pan_tilt(int pan, int tilt)=0
Set pan and tilt in one go.
virtual void pan_tilt_rad(float &pan, float &tilt)=0
Get pan and tilt at the same time in radiant.
virtual int max_pan()=0
Get maximum pan value.
virtual void pan_tilt(int &pan, int &tilt)=0
Get pan and tilt at the same time.
virtual void process_pantilt()=0
Process pan/tilt information.
Camera pan/tilt control interface.
Definition: pantilt.h:35
virtual int tilt()=0
Get tilt value.
virtual int min_pan()=0
Get minimum pan value.
virtual void set_tilt(int tilt)=0
Set tilt value.
virtual void set_pan_tilt_limit(int pan_left, int pan_right, int tilt_up, int tilt_down)=0
Set pan/tilt limits.