12 #ifndef ROOT_TGLScenePad
13 #define ROOT_TGLScenePad
25 class TGLScenePad :
public TVirtualViewer3D,
public TGLScene {
28 TGLScenePad(
const TGLScenePad&);
29 TGLScenePad& operator=(
const TGLScenePad&);
36 UInt_t fNextInternalPID;
38 Int_t fAcceptedPhysicals;
40 Int_t ValidateObjectBuffer(
const TBuffer3D& buffer, Bool_t includeRaw)
const;
41 TGLLogicalShape* CreateNewLogical(
const TBuffer3D & buffer)
const;
42 TGLPhysicalShape* CreateNewPhysical(UInt_t physicalID,
const TBuffer3D& buffer,
43 const TGLLogicalShape& logical)
const;
45 void ComposePolymarker(
const TList *padPrimitives);
47 typedef std::pair<UInt_t, RootCsg::TBaseMesh*> CSPart_t;
48 mutable TGLFaceSet *fComposite;
50 std::vector<CSPart_t> fCSTokens;
51 RootCsg::TBaseMesh* BuildComposite();
53 TGLLogicalShape* AttemptDirectRenderer(TObject*
id);
58 TGLScenePad(TVirtualPad* pad);
59 virtual ~TGLScenePad() {}
61 TVirtualPad* GetPad()
const {
return fPad; }
62 void SetPad(TVirtualPad* p) { fPad = p; }
65 void AddHistoPhysical(TGLLogicalShape* log,
const Float_t *histColor = 0);
66 void SubPadPaint(TVirtualPad* pad);
69 virtual void PadPaintFromViewer(TGLViewer* viewer);
71 Bool_t GetSmartRefresh()
const {
return fSmartRefresh; }
72 void SetSmartRefresh(Bool_t smart_ref) { fSmartRefresh = smart_ref; }
77 virtual Bool_t CanLoopOnPrimitives()
const {
return kTRUE; }
78 virtual void PadPaint(TVirtualPad* pad);
79 virtual void ObjectPaint(TObject* obj, Option_t* opt=
"");
82 virtual Int_t DistancetoPrimitive(Int_t , Int_t ) {
return 9999; }
83 virtual void ExecuteEvent(Int_t , Int_t , Int_t ) {}
85 virtual Bool_t PreferLocalFrame()
const {
return kTRUE; }
87 virtual void BeginScene();
88 virtual Bool_t BuildingScene()
const {
return CurrentLock() == kModifyLock; }
89 virtual void EndScene();
91 virtual Int_t AddObject(
const TBuffer3D& buffer, Bool_t* addChildren = 0);
92 virtual Int_t AddObject(UInt_t physicalID,
const TBuffer3D& buffer, Bool_t* addChildren = 0);
93 virtual Bool_t OpenComposite(
const TBuffer3D& buffer, Bool_t* addChildren = 0);
94 virtual void CloseComposite();
95 virtual void AddCompositeOp(UInt_t operation);
97 ClassDef(TGLScenePad, 0);