Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TGLViewerEditor.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/gl:$Id$
0002 // Author:  Alja Mrak-Tadel, Matevz Tadel, Timur Pocheptsov 08/03/2006
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TGLViewerEditor
0013 #define ROOT_TGLViewerEditor
0014 
0015 #include <memory>
0016 
0017 #include "TGedFrame.h"
0018 
0019 #include "TGLUtil.h"
0020 
0021 class TGCheckButton;
0022 class TGNumberEntry;
0023 class TGButtonGroup;
0024 class TGroupFrame;
0025 class TGRadioButton;
0026 class TGColorSelect;
0027 class TGComboBox;
0028 class TGButton;
0029 class TGTextEntry;
0030 class TGLViewer;
0031 class TGTab;
0032 
0033 class TGLLightSetSubEditor;
0034 class TGLClipSetSubEditor;
0035 
0036 class TGLViewerEditor : public TGedFrame
0037 {
0038 private:
0039    //Pointers to manipulate with tabs
0040    TGCompositeFrame *fGuidesFrame;
0041    TGCompositeFrame *fClipFrame;
0042    TGCompositeFrame *fStereoFrame;
0043 
0044    TGLLightSetSubEditor *fLightSet;
0045 
0046    TGColorSelect    *fClearColor;
0047    TGCheckButton    *fIgnoreSizesOnUpdate;
0048    TGCheckButton    *fResetCamerasOnUpdate;
0049    TGTextButton     *fUpdateScene;
0050    TGTextButton     *fCameraHome;
0051 
0052    TGNumberEntry    *fMaxSceneDrawTimeHQ;
0053    TGNumberEntry    *fMaxSceneDrawTimeLQ;
0054 
0055    TGNumberEntry    *fPointSizeScale;
0056    TGNumberEntry    *fLineWidthScale;
0057    TGCheckButton    *fPointSmooth;
0058    TGCheckButton    *fLineSmooth;
0059    TGNumberEntry    *fWFLineWidth;
0060    TGNumberEntry    *fOLLineWidth;
0061 
0062    //"Guides" tab's controls
0063    TGCheckButton    *fCameraCenterExt;
0064    TGTextButton     *fCaptureCenter;
0065    TGCheckButton    *fDrawCameraCenter;
0066    TGNumberEntry    *fCameraCenterX;
0067    TGNumberEntry    *fCameraCenterY;
0068    TGNumberEntry    *fCameraCenterZ;
0069 
0070    TGCheckButton*    fCaptureAnnotate;
0071 
0072    Int_t             fAxesType;
0073    TGButtonGroup    *fAxesContainer;
0074    TGRadioButton    *fAxesNone;
0075    TGRadioButton    *fAxesEdge;
0076    TGRadioButton    *fAxesOrigin;
0077    TGCheckButton    *fAxesDepthTest;
0078 
0079    TGGroupFrame     *fRefContainer;
0080    TGCheckButton    *fReferenceOn;
0081    TGNumberEntry    *fReferencePosX;
0082    TGNumberEntry    *fReferencePosY;
0083    TGNumberEntry    *fReferencePosZ;
0084 
0085    TGGroupFrame     *fCamContainer;
0086    TGComboBox*       fCamMode;
0087    TGCheckButton*    fCamOverlayOn;
0088 
0089    TGLClipSetSubEditor *fClipSet;
0090 
0091    //'Extras' tab.
0092    TGCheckButton    *fRotateSceneOn;
0093    TGNumberEntry    *fSceneRotDt;
0094 
0095    TGNumberEntry    *fARotDt,     *fARotWPhi;
0096    TGNumberEntry    *fARotATheta, *fARotWTheta;
0097    TGNumberEntry    *fARotADolly, *fARotWDolly;
0098 
0099    TGTextEntry      *fASavImageGUIBaseName;
0100    TGButtonGroup    *fASavImageGUIOutMode;
0101 
0102    TGNumberEntry    *fStereoZeroParallax;
0103    TGNumberEntry    *fStereoEyeOffsetFac;
0104    TGNumberEntry    *fStereoFrustumAsymFac;
0105 
0106    // Model
0107    TGLViewer        *fViewer;
0108    Bool_t            fIsInPad;
0109 
0110    void ConnectSignals2Slots();
0111 
0112    TGLViewerEditor(const TGLViewerEditor &);
0113    TGLViewerEditor &operator = (const TGLViewerEditor &);
0114 
0115    void CreateStyleTab();
0116    void CreateGuidesTab();
0117    void CreateClippingTab();
0118    void CreateExtrasTab();
0119 
0120    void UpdateReferencePosState();
0121 
0122 public:
0123    TGLViewerEditor(const TGWindow *p=nullptr, Int_t width=140, Int_t height=30,
0124                    UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
0125    ~TGLViewerEditor() override;
0126 
0127    virtual void ViewerRedraw();
0128 
0129    void SetModel(TObject* obj) override;
0130 
0131    void SetGuides();
0132    void DoClearColor(Pixel_t color);
0133    void DoIgnoreSizesOnUpdate();
0134    void DoResetCamerasOnUpdate();
0135    void DoUpdateScene();
0136    void DoCameraHome();
0137    void UpdateMaxDrawTimes();
0138    void UpdatePointLineStuff();
0139    void DoCameraCenterExt();
0140    void DoCaptureCenter();
0141    void DoAnnotation();
0142    void DoDrawCameraCenter();
0143    void UpdateCameraCenter();
0144    // Axis manipulation
0145    void UpdateViewerAxes(Int_t id);
0146    void UpdateViewerReference();
0147    void DoCameraOverlay();
0148    // Extras
0149    void SetRotatorMode();
0150    void UpdateRotator();
0151    void DoRotatorStart();
0152    void DoRotatorStop();
0153    void DoASavImageGUIBaseName(const char* t);
0154    void DoASavImageGUIOutMode(Int_t m);
0155    void DoASavImageStart();
0156    void DoASavImageStop();
0157    void UpdateStereo();
0158 
0159    void DetachFromPad(){fIsInPad = kFALSE;}
0160 
0161    static TGNumberEntry* MakeLabeledNEntry(TGCompositeFrame* p, const char* name,
0162                                            Int_t labelw, Int_t nd=7, Int_t s=5);
0163 
0164    ClassDefOverride(TGLViewerEditor, 0); //GUI for editing TGLViewer attributes
0165 };
0166 
0167 #endif