#ifndef ROOT_TGLViewerEditor
#define ROOT_TGLViewerEditor
#include <memory>
#ifndef ROOT_TGedFrame
#include "TGedFrame.h"
#endif
#ifndef ROOT_TGLUtil
#include "TGLUtil.h"
#endif
class TGCheckButton;
class TGNumberEntry;
class TGButtonGroup;
class TGroupFrame;
class TGRadioButton;
class TGColorSelect;
class TGComboBox;
class TGButton;
class TGTextEntry;
class TGLViewer;
class TGTab;
class TGLLightSetSubEditor;
class TGLClipSetSubEditor;
class TGLViewerEditor : public TGedFrame
{
private:
TGCompositeFrame *fGuidesFrame;
TGCompositeFrame *fClipFrame;
TGCompositeFrame *fStereoFrame;
TGLLightSetSubEditor *fLightSet;
TGColorSelect *fClearColor;
TGCheckButton *fIgnoreSizesOnUpdate;
TGCheckButton *fResetCamerasOnUpdate;
TGTextButton *fUpdateScene;
TGTextButton *fCameraHome;
TGNumberEntry *fMaxSceneDrawTimeHQ;
TGNumberEntry *fMaxSceneDrawTimeLQ;
TGNumberEntry *fPointSizeScale;
TGNumberEntry *fLineWidthScale;
TGCheckButton *fPointSmooth;
TGCheckButton *fLineSmooth;
TGNumberEntry *fWFLineWidth;
TGNumberEntry *fOLLineWidth;
TGCheckButton *fCameraCenterExt;
TGTextButton *fCaptureCenter;
TGCheckButton *fDrawCameraCenter;
TGNumberEntry *fCameraCenterX;
TGNumberEntry *fCameraCenterY;
TGNumberEntry *fCameraCenterZ;
TGCheckButton* fCaptureAnnotate;
Int_t fAxesType;
TGButtonGroup *fAxesContainer;
TGRadioButton *fAxesNone;
TGRadioButton *fAxesEdge;
TGRadioButton *fAxesOrigin;
TGCheckButton *fAxesDepthTest;
TGGroupFrame *fRefContainer;
TGCheckButton *fReferenceOn;
TGNumberEntry *fReferencePosX;
TGNumberEntry *fReferencePosY;
TGNumberEntry *fReferencePosZ;
TGGroupFrame *fCamContainer;
TGComboBox* fCamMode;
TGCheckButton* fCamOverlayOn;
TGLClipSetSubEditor *fClipSet;
TGNumberEntry *fARotDt, *fARotWPhi;
TGNumberEntry *fARotATheta, *fARotWTheta;
TGNumberEntry *fARotADolly, *fARotWDolly;
TGTextEntry *fASavImageGUIBaseName;
TGButtonGroup *fASavImageGUIOutMode;
TGNumberEntry *fStereoZeroParallax;
TGNumberEntry *fStereoEyeOffsetFac;
TGNumberEntry *fStereoFrustumAsymFac;
TGLViewer *fViewer;
Bool_t fIsInPad;
void ConnectSignals2Slots();
TGLViewerEditor(const TGLViewerEditor &);
TGLViewerEditor &operator = (const TGLViewerEditor &);
void CreateStyleTab();
void CreateGuidesTab();
void CreateClippingTab();
void CreateExtrasTab();
void UpdateReferencePosState();
public:
TGLViewerEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30,
UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
~TGLViewerEditor();
virtual void ViewerRedraw();
virtual void SetModel(TObject* obj);
void SetGuides();
void DoClearColor(Pixel_t color);
void DoIgnoreSizesOnUpdate();
void DoResetCamerasOnUpdate();
void DoUpdateScene();
void DoCameraHome();
void UpdateMaxDrawTimes();
void UpdatePointLineStuff();
void DoCameraCenterExt();
void DoCaptureCenter();
void DoAnnotation();
void DoDrawCameraCenter();
void UpdateCameraCenter();
void UpdateViewerAxes(Int_t id);
void UpdateViewerReference();
void DoCameraOverlay();
void UpdateRotator();
void DoRotatorStart();
void DoRotatorStop();
void DoASavImageGUIBaseName(const char* t);
void DoASavImageGUIOutMode(Int_t m);
void DoASavImageStart();
void DoASavImageStop();
void UpdateStereo();
void DetachFromPad(){fIsInPad = kFALSE;}
static TGNumberEntry* MakeLabeledNEntry(TGCompositeFrame* p, const char* name,
Int_t labelw, Int_t nd=7, Int_t s=5);
ClassDef(TGLViewerEditor, 0);
};
#endif