// @(#)root/gl:$Id$
// Author:  Matevz Tadel, Feb 2007

/*************************************************************************
 * Copyright (C) 1995-2004, 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_TGLManipSet
#define ROOT_TGLManipSet

#include <TObject.h>
#include "TGLOverlay.h"
#include "TGLPShapeRef.h"

class TGLManip;

class TGLManipSet : public TGLOverlayElement,
                    public TGLPShapeRef
{
public:
   enum EManip { kTrans, kScale, kRotate, kEndType };

private:
   TGLManipSet(const TGLManipSet&);            // Not implemented
   TGLManipSet& operator=(const TGLManipSet&); // Not implemented

protected:
   TGLManip  *fManip[3]; //! manipulator store
   EManip     fType;     //! current manipulator

   Bool_t     fDrawBBox; //! also draw bounding-box around physical

public:
   TGLManipSet();
   virtual ~TGLManipSet();

   virtual void SetPShape(TGLPhysicalShape* shape);

   virtual Bool_t MouseEnter(TGLOvlSelectRecord& selRec);
   virtual Bool_t Handle(TGLRnrCtx& rnrCtx, TGLOvlSelectRecord& selRec,
                         Event_t* event);
   virtual void   MouseLeave();

   virtual void Render(TGLRnrCtx& rnrCtx);

   TGLManip* GetCurrentManip() const { return fManip[fType]; }

   Int_t  GetManipType()   const { return fType; }
   void   SetManipType(Int_t type);
   Bool_t GetDrawBBox()    const { return fDrawBBox; }
   void   SetDrawBBox(Bool_t bb) { fDrawBBox = bb; }

   ClassDef(TGLManipSet, 0); // A collection of available manipulators.
}; // endclass TGLManipSet


#endif
 TGLManipSet.h:1
 TGLManipSet.h:2
 TGLManipSet.h:3
 TGLManipSet.h:4
 TGLManipSet.h:5
 TGLManipSet.h:6
 TGLManipSet.h:7
 TGLManipSet.h:8
 TGLManipSet.h:9
 TGLManipSet.h:10
 TGLManipSet.h:11
 TGLManipSet.h:12
 TGLManipSet.h:13
 TGLManipSet.h:14
 TGLManipSet.h:15
 TGLManipSet.h:16
 TGLManipSet.h:17
 TGLManipSet.h:18
 TGLManipSet.h:19
 TGLManipSet.h:20
 TGLManipSet.h:21
 TGLManipSet.h:22
 TGLManipSet.h:23
 TGLManipSet.h:24
 TGLManipSet.h:25
 TGLManipSet.h:26
 TGLManipSet.h:27
 TGLManipSet.h:28
 TGLManipSet.h:29
 TGLManipSet.h:30
 TGLManipSet.h:31
 TGLManipSet.h:32
 TGLManipSet.h:33
 TGLManipSet.h:34
 TGLManipSet.h:35
 TGLManipSet.h:36
 TGLManipSet.h:37
 TGLManipSet.h:38
 TGLManipSet.h:39
 TGLManipSet.h:40
 TGLManipSet.h:41
 TGLManipSet.h:42
 TGLManipSet.h:43
 TGLManipSet.h:44
 TGLManipSet.h:45
 TGLManipSet.h:46
 TGLManipSet.h:47
 TGLManipSet.h:48
 TGLManipSet.h:49
 TGLManipSet.h:50
 TGLManipSet.h:51
 TGLManipSet.h:52
 TGLManipSet.h:53
 TGLManipSet.h:54
 TGLManipSet.h:55
 TGLManipSet.h:56
 TGLManipSet.h:57
 TGLManipSet.h:58
 TGLManipSet.h:59
 TGLManipSet.h:60
 TGLManipSet.h:61