#ifndef ROOT_TGLScenePad
#define ROOT_TGLScenePad
#ifndef ROOT_TGLScene
#include "TGLScene.h"
#endif
#ifndef ROOT_TVirtualViewer3D
#include "TVirtualViewer3D.h"
#endif
#ifndef ROOT_CsgOps
#include "CsgOps.h"
#endif
class TGLViewer;
class TGLFaceSet;
class TGLScenePad : public TVirtualViewer3D,  public TGLScene {
private:
   TGLScenePad(const TGLScenePad&);            
   TGLScenePad& operator=(const TGLScenePad&); 
protected:
   TVirtualPad*       fPad;
   
   Bool_t             fInternalPIDs;          
   UInt_t             fNextInternalPID;       
   UInt_t             fLastPID;               
   Int_t              fAcceptedPhysicals;
   Int_t              ValidateObjectBuffer(const TBuffer3D& buffer, Bool_t includeRaw) const;
   TGLLogicalShape*   CreateNewLogical(const TBuffer3D & buffer) const;
   TGLPhysicalShape*  CreateNewPhysical(UInt_t physicalID, const TBuffer3D& buffer,
                                        const TGLLogicalShape& logical) const;
   
   typedef std::pair<UInt_t, RootCsg::TBaseMesh*> CSPart_t;
   mutable TGLFaceSet     *fComposite; 
   UInt_t                  fCSLevel;
   std::vector<CSPart_t>   fCSTokens;
   RootCsg::TBaseMesh*     BuildComposite();
   TGLLogicalShape* AttemptDirectRenderer(TObject* id);
   Bool_t         fSmartRefresh;   
public:
   TGLScenePad(TVirtualPad* pad);
   virtual ~TGLScenePad() {}
   TVirtualPad* GetPad() const { return fPad; }
   
   
   void AddHistoPhysical(TGLLogicalShape* log);
   void SubPadPaint(TVirtualPad* pad);
   
   virtual void   PadPaintFromViewer(TGLViewer* viewer);
   Bool_t  GetSmartRefresh() const           { return fSmartRefresh; }
   void    SetSmartRefresh(Bool_t smart_ref) { fSmartRefresh = smart_ref; }
   
   virtual Bool_t CanLoopOnPrimitives() const { return kTRUE; }
   virtual void   PadPaint(TVirtualPad* pad);
   virtual void   ObjectPaint(TObject* obj, Option_t* opt="");
   
   virtual Int_t  DistancetoPrimitive(Int_t , Int_t ) { return 9999; }
   virtual void   ExecuteEvent(Int_t , Int_t , Int_t ) {}
   virtual Bool_t PreferLocalFrame() const { return kTRUE; }
   virtual void   BeginScene();
   virtual Bool_t BuildingScene() const { return CurrentLock() == kModifyLock; }
   virtual void   EndScene();
   virtual Int_t  AddObject(const TBuffer3D& buffer, Bool_t* addChildren = 0);
   virtual Int_t  AddObject(UInt_t physicalID, const TBuffer3D& buffer, Bool_t* addChildren = kFALSE);
   virtual Bool_t OpenComposite(const TBuffer3D& buffer, Bool_t* addChildren = kFALSE);
   virtual void   CloseComposite();
   virtual void   AddCompositeOp(UInt_t operation);
   ClassDef(TGLScenePad, 0); 
};
#endif
Last change: Mon Nov 24 08:19:20 2008
Last generated: 2008-11-24 08:19
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.