// @(#)root/gl:$Id$ // Author: Alja Mrak-Tadel, Matevz Tadel, Timur Pocheptsov 08/03/2006 /************************************************************************* * Copyright (C) 1995-2006, 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_TGLViewerEditor #define ROOT_TGLViewerEditor #include #include "TGedFrame.h" #include "TGLUtil.h" 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: //Pointers to manipulate with tabs 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; //"Guides" tab's controls 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; //'Extras' tab. TGCheckButton *fRotateSceneOn; TGNumberEntry *fSceneRotDt; TGNumberEntry *fARotDt, *fARotWPhi; TGNumberEntry *fARotATheta, *fARotWTheta; TGNumberEntry *fARotADolly, *fARotWDolly; TGTextEntry *fASavImageGUIBaseName; TGButtonGroup *fASavImageGUIOutMode; TGNumberEntry *fStereoZeroParallax; TGNumberEntry *fStereoEyeOffsetFac; TGNumberEntry *fStereoFrustumAsymFac; // Model 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=nullptr, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); ~TGLViewerEditor() override; virtual void ViewerRedraw(); void SetModel(TObject* obj) override; 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(); // Axis manipulation void UpdateViewerAxes(Int_t id); void UpdateViewerReference(); void DoCameraOverlay(); // Extras void SetRotatorMode(); 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); ClassDefOverride(TGLViewerEditor, 0); //GUI for editing TGLViewer attributes }; #endif