Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:11:56

0001 // @(#):$Id$
0002 // Author: M.Gheata
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2002, 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_TGeoVolumeEditor
0013 #define ROOT_TGeoVolumeEditor
0014 
0015 #include "TGWidget.h"
0016 #include "TGeoGedFrame.h"
0017 
0018 class TGeoManager;
0019 class TGeoVolume;
0020 class TGeoShape;
0021 class TGeoMedium;
0022 class TGeoMaterial;
0023 class TGeoMatrix;
0024 class TGTextEntry;
0025 class TGNumberEntry;
0026 class TGTab;
0027 class TGComboBox;
0028 class TGTextButton;
0029 class TGPictureButton;
0030 class TGCheckButton;
0031 class TGRadioButton;
0032 class TGShutter;
0033 class TGShutterItem;
0034 class TGeoTabManager;
0035 
0036 class TGeoVolumeEditor : public TGeoGedFrame {
0037 
0038 protected:
0039    TGeoManager *fGeometry;       // Selected geometry manager
0040    TGeoVolume *fVolume;          // Volume object
0041    Bool_t fIsModified;           // Flag that volume was modified
0042    Bool_t fIsAssembly;           // Flag that the volume is an assembly
0043    Bool_t fIsDivided;            // Flag that the volume is divided
0044    TGShutter *fCategories;       // Categories shutter
0045    TGTextEntry *fVolumeName;     // Volume name text entry
0046    TGeoShape *fSelectedShape;    // Selected shape
0047    TGLabel *fLSelShape;          // Selected shape label
0048    TGPictureButton *fBSelShape;  // Button for selecting a shape
0049    TGeoMedium *fSelectedMedium;  // Selected medium
0050    TGLabel *fLSelMedium;         // Selected medium label
0051    TGPictureButton *fBSelMedium; // Button for selecting a medium
0052    TGeoVolume *fSelectedVolume;  // Selected volume
0053    TGLabel *fLSelVolume;         // Selected volume label
0054    TGPictureButton *fBSelVolume; // Button for selecting a volume
0055    TGeoMatrix *fSelectedMatrix;  // Selected matrix
0056    TGLabel *fLSelMatrix;         // Selected matrix label
0057    TGPictureButton *fBSelMatrix; // Button for selecting a matrix
0058    TGNumberEntry *fCopyNumber;   // Node copy number
0059    TGTextButton *fAddNode;       // Button for adding a node
0060    TGTextButton *fEditShape;     // Check button for shape editing
0061    TGTextButton *fEditMedium;    // Check button for medium editing
0062    TGComboBox *fNodeList;        // Daughters combo box
0063    TGTextButton *fEditMatrix;    // Button for editing the position of a daughter
0064    TGTextButton *fRemoveNode;    // Button for removing a daughter
0065    TGCheckButton *fBVis[2];      // Buttons for setting vis. on/off
0066    TGRadioButton *fBView[3];     // Radio for selecting view options
0067    TGCheckButton *fBRaytrace;    // Raytracing on/off
0068    TGCheckButton *fBAuto;        // Check button for auto vis level
0069    TGNumberEntry *fEVisLevel;    // Number entry for visibility level
0070    TGTextButton *fApplyDiv;      // Button for applying division settings
0071    TGTextEntry *fDivName;        // Division volume name text entry
0072    TGRadioButton *fBDiv[3];      // Radio for selecting division type
0073    TGNumberEntry *fEDivFrom;     // Number entry for division start
0074    TGNumberEntry *fEDivStep;     // Number entry for division step
0075    TGNumberEntry *fEDivN;        // Number entry for division Nslices
0076 
0077    virtual void ConnectSignals2Slots(); // Connect the signals to the slots
0078 
0079 public:
0080    TGeoVolumeEditor(const TGWindow *p = nullptr, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame,
0081                     Pixel_t back = GetDefaultFrameBackground());
0082    ~TGeoVolumeEditor() override;
0083    void SetModel(TObject *obj) override;
0084    void ActivateBaseClassEditors(TClass *cl) override;
0085 
0086    void DoAddNode();
0087    void DoVolumeName();
0088    void DoSelectShape();
0089    void DoSelectMedium();
0090    void DoSelectMatrix();
0091    void DoSelectVolume();
0092    void DoEditShape();
0093    void DoEditMedium();
0094    void DoEditMatrix();
0095    void DoRemoveNode();
0096    void DoVisVolume();
0097    void DoVisDaughters();
0098    void DoVisAuto();
0099    void DoVisLevel();
0100    void DoViewAll();
0101    void DoViewLeaves();
0102    void DoViewOnly();
0103    void DoDivSelAxis();
0104    void DoDivFromTo();
0105    void DoDivStep();
0106    void DoDivN();
0107    void DoDivName();
0108    void DoApplyDiv();
0109    void DoRaytrace();
0110 
0111    ClassDefOverride(TGeoVolumeEditor, 0) // TGeoVolume editor
0112 };
0113 
0114 #endif