NEURON
rot3band.h
Go to the documentation of this file.
1 #ifndef rot3band_h
2 #define rot3band_h
3 
4 /*
5  3-D rubberband
6  On the button press a globe appears centered at the mouse location
7  Dragging the mouse causes the globe to rotate as though the mouse
8  was always at the same location on the globe. If the mouse is dragged
9  off the globe, the mouse is treated as though it is on the edge. The mouse
10  is always treated as though it is on the front hemisphere.
11 
12  Well, maybe someday.
13  Can type x, y, z to get immediate rotations in which axes are out of screen.
14 
15  Multiple invocations of the Rotate3Band accumulate rotations.
16 */
17 
18 #include "rubband.h"
19 #include "rotate3d.h"
20 
21 class Rotate3Band: public Rubberband {
22  public:
24  virtual ~Rotate3Band();
25 
26  virtual void press(Event&);
27  virtual void drag(Event&);
28  virtual void draw(Coord, Coord);
29 
30  virtual bool event(Event&); // looks for x, y, z press
32  virtual void help();
33 
34  private:
36  float x_old_, y_old_;
37 };
38 
39 #endif
#define Canvas
Definition: _defines.h:65
#define Coord
Definition: _defines.h:19
#define Event
Definition: _defines.h:107
virtual void press(Event &)
float y_old_
Definition: rot3band.h:36
float x_old_
Definition: rot3band.h:36
virtual ~Rotate3Band()
Rotation3d * rot_
Definition: rot3band.h:35
Rotate3Band(Rotation3d *=NULL, RubberAction *=NULL, Canvas *=NULL)
virtual void draw(Coord, Coord)
virtual void drag(Event &)
Rotation3d * rotation()
virtual void help()
virtual bool event(Event &)
#define NULL
Definition: sptree.h:16