// @(#)root/gl:$Id$
// Author:  Richard Maunder  16/09/2005

/*************************************************************************
 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TGLScaleManip
#define ROOT_TGLScaleManip

#ifndef ROOT_TGLManip
#include "TGLManip.h"
#endif


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TGLScaleManip                                                        //
//                                                                      //
// Scale manipulator - attaches to physical shape and draws local axes  //
// widgets with box heads. User can mouse over (turns yellow) and L     //
// click/drag to scale along this axis.                                 //
// Widgets use standard 3D package axes colours: X red, Y green, Z blue.//
//////////////////////////////////////////////////////////////////////////

class TGLScaleManip : public TGLManip
{
private:
   TGLVector3 fStartScale; //! initial scaling factors

   void LimitScale(Double_t & factor) const;

public:
   TGLScaleManip();
   TGLScaleManip(TGLPhysicalShape * shape);
   virtual ~TGLScaleManip();

   virtual void   Draw(const TGLCamera & camera) const;
   virtual Bool_t HandleButton(const Event_t & event, const TGLCamera & camera);
   virtual Bool_t HandleMotion(const Event_t & event, const TGLCamera & camera);

   ClassDef(TGLScaleManip,0) // GL scaling manipulator widget
};

#endif
 TGLScaleManip.h:1
 TGLScaleManip.h:2
 TGLScaleManip.h:3
 TGLScaleManip.h:4
 TGLScaleManip.h:5
 TGLScaleManip.h:6
 TGLScaleManip.h:7
 TGLScaleManip.h:8
 TGLScaleManip.h:9
 TGLScaleManip.h:10
 TGLScaleManip.h:11
 TGLScaleManip.h:12
 TGLScaleManip.h:13
 TGLScaleManip.h:14
 TGLScaleManip.h:15
 TGLScaleManip.h:16
 TGLScaleManip.h:17
 TGLScaleManip.h:18
 TGLScaleManip.h:19
 TGLScaleManip.h:20
 TGLScaleManip.h:21
 TGLScaleManip.h:22
 TGLScaleManip.h:23
 TGLScaleManip.h:24
 TGLScaleManip.h:25
 TGLScaleManip.h:26
 TGLScaleManip.h:27
 TGLScaleManip.h:28
 TGLScaleManip.h:29
 TGLScaleManip.h:30
 TGLScaleManip.h:31
 TGLScaleManip.h:32
 TGLScaleManip.h:33
 TGLScaleManip.h:34
 TGLScaleManip.h:35
 TGLScaleManip.h:36
 TGLScaleManip.h:37
 TGLScaleManip.h:38
 TGLScaleManip.h:39
 TGLScaleManip.h:40
 TGLScaleManip.h:41
 TGLScaleManip.h:42
 TGLScaleManip.h:43
 TGLScaleManip.h:44
 TGLScaleManip.h:45
 TGLScaleManip.h:46
 TGLScaleManip.h:47
 TGLScaleManip.h:48
 TGLScaleManip.h:49