// @(#):$Id$ // Author: M.Gheata /************************************************************************* * Copyright (C) 1995-2002, 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_TGeoTrapEditor #define ROOT_TGeoTrapEditor #include "TGWidget.h" #include "TGeoGedFrame.h" class TGeoTrap; class TGeoTabManager; class TGTextEntry; class TGNumberEntry; class TGTab; class TGComboBox; class TGTextButton; class TGCheckButton; class TString; class TGeoTrapEditor : public TGeoGedFrame { protected: Double_t fH1i; // Initial half length in y at low z Double_t fBl1i; // Initial half length in x at low z and y low edge Double_t fTl1i; // Initial half length in x at low z and y high edge Double_t fDzi; // Initial Dz Double_t fSci; // Initial scale factor for upper face Double_t fAlpha1i; // Initial angle between centers of x edges an y axis at low z Double_t fThetai; // Initial theta Double_t fPhii; // Initial phi TString fNamei; // Initial name TGeoTrap *fShape; // Shape object Bool_t fIsModified; // Flag that volume was modified Bool_t fIsShapeEditable; // Flag that the shape can be changed TGTextEntry *fShapeName; // Shape name text entry TGNumberEntry *fEH1; // Number entry for H1 TGNumberEntry *fEBl1; // Number entry for Bl1 TGNumberEntry *fETl1; // Number entry for Tl1 TGNumberEntry *fESc1; // Number entry for lower scale TGNumberEntry *fESc2; // Number entry for upper scale TGNumberEntry *fEDz; // Number entry for DZ TGNumberEntry *fEAlpha1; // Number entry for Alpha1 TGNumberEntry *fETheta; // Number entry for Theta TGNumberEntry *fEPhi; // Number entry for Theta TGTextButton *fApply; // Apply-Button to accept changes TGTextButton *fUndo; // Undo-Button TGCompositeFrame *fBFrame; // Frame containing Apply/Undo TGCheckButton *fDelayed; // Check button for delayed draw TGCompositeFrame *fDFrame; // Frame containing Delayed draw virtual void ConnectSignals2Slots(); // Connect the signals to the slots Bool_t IsDelayed() const; public: TGeoTrapEditor(const TGWindow *p = nullptr, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~TGeoTrapEditor() override; void SetModel(TObject *obj) override; void DoH1(); void DoBl1(); void DoTl1(); void DoDz(); void DoSc1(); void DoSc2(); void DoAlpha1(); void DoTheta(); void DoPhi(); void DoModified(); void DoName(); virtual void DoApply(); virtual void DoUndo(); ClassDefOverride(TGeoTrapEditor, 0) // TGeoTrap editor }; class TGeoGtraEditor : public TGeoTrapEditor { protected: Double_t fTwisti; // Initial twist angle TGNumberEntry *fETwist; // Number entry for H1 public: TGeoGtraEditor(const TGWindow *p = nullptr, Int_t width = 140, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~TGeoGtraEditor() override; void SetModel(TObject *obj) override; void DoTwist(); void DoApply() override; void DoUndo() override; ClassDefOverride(TGeoGtraEditor, 0) // TGeoTrap editor }; #endif