33 kMATRIX_NAME, kMATRIX_DX, kMATRIX_DY, kMATRIX_DZ,
34 kMATRIX_PHI, kMATRIX_THETA, kMATRIX_PSI,
35 kMATRIX_APPLY, kMATRIX_CANCEL, kMATRIX_UNDO
133 fApply->
Connect(
"Clicked()",
"TGeoTranslationEditor",
this,
"DoApply()");
134 fCancel->
Connect(
"Clicked()",
"TGeoTranslationEditor",
this,
"DoCancel()");
135 fUndo->
Connect(
"Clicked()",
"TGeoTranslationEditor",
this,
"DoUndo()");
136 fTransName->
Connect(
"TextChanged(const char *)",
"TGeoTranslationEditor",
this,
"DoModified()");
137 fTransDx->
Connect(
"ValueSet(Long_t)",
"TGeoTranslationEditor",
this,
"DoDx()");
138 fTransDy->
Connect(
"ValueSet(Long_t)",
"TGeoTranslationEditor",
this,
"DoDy()");
139 fTransDz->
Connect(
"ValueSet(Long_t)",
"TGeoTranslationEditor",
this,
"DoDz()");
199 if (!changed)
return kFALSE;
300 fPhii = fThetai = fPsii = 0.0;
301 fAngleX = fAngleY = fAngleZ = 0.0;
309 fRotName->Resize(135, fRotName->GetDefaultHeight());
310 fRotName->SetToolTipText(
"Enter the rotation name");
311 fRotName->Associate(
this);
315 MakeTitle(
"Euler angles");
324 fRotPhi->Associate(
this);
325 fRotPhi->Resize(90, fRotPhi->GetDefaultHeight());
335 nef->
SetToolTipText(
"Modify the second rotation angle about the new X");
336 fRotTheta->Associate(
this);
337 fRotTheta->Resize(90, fRotTheta->GetDefaultHeight());
348 fRotPsi->Associate(
this);
349 fRotPsi->Resize(90, fRotPsi->GetDefaultHeight());
356 MakeTitle(
"Rotate about axis");
364 nef->
SetToolTipText(
"Enter the new rotation angle about the selected axis");
365 fRotAxis->Associate(
this);
366 fRotAxis->Resize(90, fRotAxis->GetDefaultHeight());
387 fApply->Associate(
this);
390 fCancel->Associate(
this);
393 fUndo->Associate(
this);
395 fUndo->SetSize(fCancel->GetSize());
396 fApply->SetSize(fCancel->GetSize());
418 fApply->
Connect(
"Clicked()",
"TGeoRotationEditor",
this,
"DoApply()");
419 fCancel->
Connect(
"Clicked()",
"TGeoRotationEditor",
this,
"DoCancel()");
420 fUndo->
Connect(
"Clicked()",
"TGeoRotationEditor",
this,
"DoUndo()");
421 fRotName->
Connect(
"TextChanged(const char *)",
"TGeoRotationEditor",
this,
"DoModified()");
422 fRotPhi->
Connect(
"ValueSet(Long_t)",
"TGeoRotationEditor",
this,
"DoRotPhi()");
423 fRotTheta->
Connect(
"ValueSet(Long_t)",
"TGeoRotationEditor",
this,
"DoRotTheta()");
424 fRotPsi->
Connect(
"ValueSet(Long_t)",
"TGeoRotationEditor",
this,
"DoRotPsi()");
425 fRotAxis->
Connect(
"ValueSet(Long_t)",
"TGeoRotationEditor",
this,
"DoRotAngle()");
466 if (!strcmp(name,
"no_name") || !strcmp(name,
fRotation->
GetName()))
return;
519 Double_t phi0 = 0., theta0 = 0., psi0 = 0.;
522 if (phi != psi0 || theta != theta0 || psi != psi0) changed =
kTRUE;
530 if (!changed)
return kFALSE;
609 fPhii = fThetai = fPsii = 0.0;
610 fDxi = fDyi = fDzi = 0.0;
611 fAngleX = fAngleY = fAngleZ = 0.0;
619 fRotName->Resize(135, fRotName->GetDefaultHeight());
620 fRotName->SetToolTipText(
"Enter the rotation name");
621 fRotName->Associate(
this);
625 MakeTitle(
"Translations on axes");
634 fTransDx->Associate(
this);
645 fTransDy->Associate(
this);
656 fTransDz->Associate(
this);
664 MakeTitle(
"Euler angles");
673 fRotPhi->Associate(
this);
674 fRotPhi->Resize(90, fRotPhi->GetDefaultHeight());
684 nef->
SetToolTipText(
"Modify the second rotation angle about the new X");
685 fRotTheta->Associate(
this);
686 fRotTheta->Resize(90, fRotTheta->GetDefaultHeight());
697 fRotPsi->Associate(
this);
698 fRotPsi->Resize(90, fRotPsi->GetDefaultHeight());
705 MakeTitle(
"Rotate about axis");
713 nef->
SetToolTipText(
"Enter the new rotation angle about the selected axis");
714 fRotAxis->Associate(
this);
715 fRotAxis->Resize(90, fRotAxis->GetDefaultHeight());
736 fApply->Associate(
this);
739 fCancel->Associate(
this);
742 fUndo->Associate(
this);
744 fUndo->SetSize(fCancel->GetSize());
745 fApply->SetSize(fCancel->GetSize());
767 fApply->
Connect(
"Clicked()",
"TGeoCombiTransEditor",
this,
"DoApply()");
768 fCancel->
Connect(
"Clicked()",
"TGeoCombiTransEditor",
this,
"DoCancel()");
769 fUndo->
Connect(
"Clicked()",
"TGeoCombiTransEditor",
this,
"DoUndo()");
770 fRotName->
Connect(
"TextChanged(const char *)",
"TGeoCombiTransEditor",
this,
"DoModified()");
771 fRotPhi->
Connect(
"ValueSet(Long_t)",
"TGeoCombiTransEditor",
this,
"DoRotPhi()");
772 fRotTheta->
Connect(
"ValueSet(Long_t)",
"TGeoCombiTransEditor",
this,
"DoRotTheta()");
773 fRotPsi->
Connect(
"ValueSet(Long_t)",
"TGeoCombiTransEditor",
this,
"DoRotPsi()");
774 fRotAxis->
Connect(
"ValueSet(Long_t)",
"TGeoCombiTransEditor",
this,
"DoRotAngle()");
775 fTransDx->
Connect(
"ValueSet(Long_t)",
"TGeoCombiTransEditor",
this,
"DoDx()");
776 fTransDy->
Connect(
"ValueSet(Long_t)",
"TGeoCombiTransEditor",
this,
"DoDy()");
777 fTransDz->
Connect(
"ValueSet(Long_t)",
"TGeoCombiTransEditor",
this,
"DoDz()");
830 if (!strcmp(name,
"no_name") || !strcmp(name,
fCombi->
GetName()))
return;
891 Double_t phi0 = 0., theta0 = 0., psi0 = 0.;
893 if (rot) rot->
GetAngles(phi0,theta0,psi0);
903 if (phi != psi0 || theta != theta0 || psi != psi0) changed =
kTRUE;
904 if (changed && rot) rot->
SetAngles(phi, theta, psi);
911 if (changedtr) changed =
kTRUE;
912 if (!changed)
return kFALSE;
void DoRotTheta()
Slot for theta (Euler X convention)
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
void SetRotation(const TGeoRotation &other)
Copy the rotation from another one.
void DoRotAngle()
Slot for additional rotation about one axis.
void DoRotPsi()
Slot for psi (Euler X convention)
void DoRotTheta()
Slot for theta (Euler X convention)
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
void DoModified()
Slot for notifying changes.
virtual Bool_t IsComposite() const
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
virtual void SetName(const char *name)
Change (i.e.
void DoApply()
Slot for applying changes.
void DoName()
Slot for name.
virtual void RotateX(Double_t angle)
Rotate about X axis of the master frame with angle expressed in degrees.
virtual void SetNumber(Double_t val)
void DoRotPsi()
Slot for psi (Euler X convention)
Bool_t DoParameters()
Slot for checking parameters.
virtual ~TGeoRotationEditor()
Destructor.
virtual TList * GetList() const
void SetTranslation(const TGeoTranslation &tr)
copy the translation component
virtual void RotateY(Double_t angle)
Rotate about Y axis with angle expressed in degrees.
virtual void RotateX(Double_t angle)
Rotate about X axis with angle expressed in degrees.
TGNumberEntry * fRotTheta
virtual void SetModel(TObject *obj)
Connect to the new matrix.
static void Cleanup(TGCompositeFrame *frame)
Static method to cleanup hirarchically all daughters of a composite frame.
const char * Data() const
TGNumberEntryField * GetNumberEntry() const
virtual const Double_t * GetTranslation() const
void DoApply()
Slot for applying modifications.
const char * GetText() const
virtual void SetModel(TObject *obj)
Connect to the selected rotation.
virtual void SetActive(Bool_t active=kTRUE)
Set active GUI attribute frames related to the selected object.
TGCompositeFrame(const TGCompositeFrame &)
TGeoRotation * GetRotation() const
void GetAngles(Double_t &theta1, Double_t &phi1, Double_t &theta2, Double_t &phi2, Double_t &theta3, Double_t &phi3) const
Retreive rotation angles.
virtual void RotateY(Double_t angle)
Rotate about Y axis of the master frame with angle expressed in degrees.
void DoRotPhi()
Slot for phi (Euler X convention)
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot...
virtual void Associate(const TGWindow *w)
Make w the window that will receive the generated messages.
TGNumberEntry * fRotTheta
void DoRotAngle()
Slot for additional rotation about one axis.
void DoUndo()
Slot for undoing last changes.
virtual void SetSize(const TGDimension &s)
void DoUndo()
Slot for undoing last operation.
virtual const Double_t * GetTranslation() const
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual UInt_t GetDefaultHeight() const
void DoCancel()
Slot for cancelling last modifications non-applied.
void DoCancel()
Slot for cancelling last un-applied operations.
virtual const char * GetName() const
Returns name of object.
Bool_t DoParameters()
Slot for checking parameters.
void DoCancel()
Slot for cancelling last un-applied operations.
virtual void RotateZ(Double_t angle)
Rotate about Z axis of the master frame with angle expressed in degrees.
void DoName()
Slot for name.
virtual void Modified(Bool_t flag=1)=0
virtual ~TGeoCombiTransEditor()
Destructor.
void DoName()
Slot for name.
virtual void ConnectSignals2Slots()
Connect signals to slots.
TGDimension GetSize() const
void DoApply()
Slot for applying modifications.
void DoModified()
Slot for notifying changes.
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Mother of all ROOT objects.
virtual UInt_t GetDefaultHeight() const
Bool_t DoParameters()
Slot for checking parameters.
double f2(const double *x)
TGeoTranslationEditor(const TGWindow *p=0, Int_t width=140, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground())
Constructor for translation editor.
virtual void ConnectSignals2Slots()
Connect signals to slots.
virtual Double_t GetNumber() const
void SetAngles(Double_t phi, Double_t theta, Double_t psi)
Set matrix elements according to Euler angles.
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line...
virtual void Cleanup()
Cleanup and delete all objects contained in this composite frame.
virtual void RotateZ(Double_t angle)
Rotate about Z axis with angle expressed in degrees.
virtual void MakeTitle(const char *title)
Create attribute frame title.
void DoUndo()
Slot for undoing last changes.
virtual void ConnectSignals2Slots()
Connect signals to slots.
void DoModified()
Slot for notifying changes.
ClassImp(TGeoTranslationEditor) enum ETGeoMatrixWid
void SetTranslation(Double_t dx, Double_t dy, Double_t dz)
Set translation components.
TGeoTranslation * fTranslation
void DoRotPhi()
Slot for phi (Euler X convention)
virtual void SetModel(TObject *obj)
Connect to the selected combi matrix.
virtual ~TGeoTranslationEditor()
Destructor.