// @(#):$Id: TGeoMatrixEditor.h 20882 2007-11-19 11:31:26Z rdm $
// 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_TGeoTranslationEditor
#define ROOT_TGeoTranslationEditor

//////////////////////////////////////////////////////////////////////////
//                                                                      //
//  TGeoTranslationEditor                                               //
//                                                                      //
//  Editor for a TGeoTranslation.                                       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TGButton
#include "TGWidget.h"
#endif
#ifndef ROOT_TGeoGedFrame
#include "TGeoGedFrame.h"
#endif

class TGeoTranslation;
class TGeoRotation;
class TGeoCombiTrans;
class TGTextEntry;
class TGNumberEntry;
class TGTab;
class TGComboBox;
class TGTextButton;
class TGRadioButton;
class TString;

class TGeoTranslationEditor : public TGeoGedFrame {

protected:

   Double_t             fDxi;               // Initial dx
   Double_t             fDyi;               // Initial dy
   Double_t             fDzi;               // Initial dz
   TString              fNamei;             // Initial name
   TGeoTranslation     *fTranslation;       // Translation object
   Bool_t               fIsModified;        // Flag that this was modified
   Bool_t               fIsEditable;        // Flag that this can be changed
   TGTextEntry         *fTransName;         // Translation name text entry
   TGNumberEntry       *fTransDx;           // Number entry for box DX
   TGNumberEntry       *fTransDy;           // Number entry for box DY
   TGNumberEntry       *fTransDz;           // Number entry for box DZ
   TGTextButton        *fApply;             // Apply-Button to accept changes
   TGTextButton        *fCancel;            // Cancel-Button
   TGTextButton        *fUndo;              // Undo-Button

   virtual void ConnectSignals2Slots();   // Connect the signals to the slots

public:
   TGeoTranslationEditor(const TGWindow *p = 0,
                   Int_t width = 140, Int_t height = 30,
                   UInt_t options = kChildFrame,
                   Pixel_t back = GetDefaultFrameBackground());
   virtual ~TGeoTranslationEditor();
   virtual void   SetModel(TObject *obj);

   void           DoDx();
   void           DoDy();
   void           DoDz();
   void           DoModified();
   void           DoName();
   Bool_t         DoParameters();
   void           DoApply();
   void           DoCancel();
   void           DoUndo();
   
   ClassDef(TGeoTranslationEditor,0)   // TGeoTranslation editor
};   
  
//////////////////////////////////////////////////////////////////////////
//                                                                      //
//  TGeoRotationEditor                                                  //
//                                                                      //
//  Editor for a TGeoRotation.                                          //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

class TGeoRotationEditor : public TGeoGedFrame {

protected:

   Double_t             fPhii;              // Initial phi   (Euler rotation angle about Z)
   Double_t             fThetai;            // Initial theta (Euler rotation angle about new X)
   Double_t             fPsii;              // Initial dz    (Euler rotation angle about new Z)
   Double_t             fAngleX;            // New rotation angle about X
   Double_t             fAngleY;            // New rotation angle about Y
   Double_t             fAngleZ;            // New rotation angle about Z
   TString              fNamei;             // Initial name
   TGeoRotation        *fRotation;          // Rotation object
   Bool_t               fIsModified;        // Flag that this was modified
   Bool_t               fIsEditable;        // Flag that this can be changed
   TGTextEntry         *fRotName;           // Translation name text entry
   TGNumberEntry       *fRotPhi;            // Number entry for phi angle
   TGNumberEntry       *fRotTheta;          // Number entry for theta angle
   TGNumberEntry       *fRotPsi;            // Number entry for psi angle
   TGNumberEntry       *fRotAxis;           // Number entry for rotation angle about one axis
   TGRadioButton       *fRotX;              // Rotation about X selected
   TGRadioButton       *fRotY;              // Rotation about Y selected
   TGRadioButton       *fRotZ;              // Rotation about Z selected
   TGTextButton        *fApply;             // Apply-Button to accept changes
   TGTextButton        *fCancel;            // Cancel-Button
   TGTextButton        *fUndo;              // Undo-Button

   virtual void ConnectSignals2Slots();   // Connect the signals to the slots

public:
   TGeoRotationEditor(const TGWindow *p = 0,
                   Int_t width = 140, Int_t height = 30,
                   UInt_t options = kChildFrame,
                   Pixel_t back = GetDefaultFrameBackground());
   virtual ~TGeoRotationEditor();
   virtual void   SetModel(TObject *obj);

   void           DoRotPhi();
   void           DoRotTheta();
   void           DoRotPsi();
   void           DoRotAngle();
   void           DoModified();
   void           DoName();
   Bool_t         DoParameters();
   void           DoApply();
   void           DoCancel();
   void           DoUndo();
   
   ClassDef(TGeoRotationEditor,0)   // TGeoRotation editor
};   

//////////////////////////////////////////////////////////////////////////
//                                                                      //
//  TGeoCombiTransEditor                                                //
//                                                                      //
//  Editor for a TGeoCombiTrans.                                        //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

class TGeoCombiTransEditor : public TGeoGedFrame {

protected:

   Double_t             fDxi;               // Initial dx
   Double_t             fDyi;               // Initial dy
   Double_t             fDzi;               // Initial dz
   Double_t             fPhii;              // Initial phi   (Euler rotation angle about Z)
   Double_t             fThetai;            // Initial theta (Euler rotation angle about new X)
   Double_t             fPsii;              // Initial dz    (Euler rotation angle about new Z)
   Double_t             fAngleX;            // New rotation angle about X
   Double_t             fAngleY;            // New rotation angle about Y
   Double_t             fAngleZ;            // New rotation angle about Z
   TString              fNamei;             // Initial name
   TGeoCombiTrans      *fCombi;             // Combi object
   Bool_t               fIsModified;        // Flag that this was modified
   Bool_t               fIsEditable;        // Flag that this can be changed
   TGTextEntry         *fRotName;           // Translation name text entry
   TGNumberEntry       *fTransDx;           // Number entry for box DX
   TGNumberEntry       *fTransDy;           // Number entry for box DY
   TGNumberEntry       *fTransDz;           // Number entry for box DZ
   TGNumberEntry       *fRotPhi;            // Number entry for phi angle
   TGNumberEntry       *fRotTheta;          // Number entry for theta angle
   TGNumberEntry       *fRotPsi;            // Number entry for psi angle
   TGNumberEntry       *fRotAxis;           // Number entry for rotation angle about one axis
   TGRadioButton       *fRotX;              // Rotation about X selected
   TGRadioButton       *fRotY;              // Rotation about Y selected
   TGRadioButton       *fRotZ;              // Rotation about Z selected
   TGTextButton        *fApply;             // Apply-Button to accept changes
   TGTextButton        *fCancel;            // Cancel-Button
   TGTextButton        *fUndo;              // Undo-Button

   virtual void ConnectSignals2Slots();   // Connect the signals to the slots

public:
   TGeoCombiTransEditor(const TGWindow *p = 0,
                   Int_t width = 140, Int_t height = 30,
                   UInt_t options = kChildFrame,
                   Pixel_t back = GetDefaultFrameBackground());
   virtual ~TGeoCombiTransEditor();
   virtual void   SetModel(TObject *obj);

   void           DoDx();
   void           DoDy();
   void           DoDz();
   void           DoRotPhi();
   void           DoRotTheta();
   void           DoRotPsi();
   void           DoRotAngle();
   void           DoModified();
   void           DoName();
   Bool_t         DoParameters();
   void           DoApply();
   void           DoCancel();
   void           DoUndo();
   
   ClassDef(TGeoCombiTransEditor,0)   // TGeoCombiTrans editor
};   

#endif                    

Last change: Wed Jun 25 08:45:39 2008
Last generated: 2008-06-25 08:45

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.