Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TGLScaleManip.h
Go to the documentation of this file.
1 // @(#)root/gl:$Id$
2 // Author: Richard Maunder 16/09/2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGLScaleManip
13 #define ROOT_TGLScaleManip
14 
15 #include "TGLManip.h"
16 
17 
18 //////////////////////////////////////////////////////////////////////////
19 // //
20 // TGLScaleManip //
21 // //
22 // Scale manipulator - attaches to physical shape and draws local axes //
23 // widgets with box heads. User can mouse over (turns yellow) and L //
24 // click/drag to scale along this axis. //
25 // Widgets use standard 3D package axes colours: X red, Y green, Z blue.//
26 //////////////////////////////////////////////////////////////////////////
27 
28 class TGLScaleManip : public TGLManip
29 {
30 private:
31  TGLVector3 fStartScale; //! initial scaling factors
32 
33  void LimitScale(Double_t & factor) const;
34 
35 public:
36  TGLScaleManip();
37  TGLScaleManip(TGLPhysicalShape * shape);
38  virtual ~TGLScaleManip();
39 
40  virtual void Draw(const TGLCamera & camera) const;
41  virtual Bool_t HandleButton(const Event_t & event, const TGLCamera & camera);
42  virtual Bool_t HandleMotion(const Event_t & event, const TGLCamera & camera);
43 
44  ClassDef(TGLScaleManip,0) // GL scaling manipulator widget
45 };
46 
47 #endif