// @(#)root/graf:$Name: $:$Id: TGaxis.h,v 1.18 2004/06/17 15:33:49 brun Exp $
// Author: Rene Brun, Olivier Couet 12/12/94
/*************************************************************************
* Copyright (C) 1995-2000, 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_TGaxis
#define ROOT_TGaxis
//////////////////////////////////////////////////////////////////////////
// //
// TGaxis //
// //
// Service class for the graphical representation of axis. //
// Instances of this class are generated by the histogram classes and //
// TGraph. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TNamed
#include "TNamed.h"
#endif
#ifndef ROOT_TLine
#include "TLine.h"
#endif
#ifndef ROOT_TAttText
#include "TAttText.h"
#endif
class TF1;
class TAxis;
class TGaxis : public TLine, public TAttText {
protected:
Double_t fWmin; //Lowest value on the axis
Double_t fWmax; //Highest value on the axis
Float_t fGridLength; //Length of the grid in NDC
Float_t fTickSize; //Size of primary tick mark in NDC
Float_t fLabelOffset; //Offset of label wrt axis
Float_t fLabelSize; //Size of labels in NDC
Float_t fTitleOffset; //Offset of title wrt axis
Float_t fTitleSize; //Size of title in NDC
Int_t fNdiv; //Number of divisions
Int_t fLabelColor; //Color for labels
Int_t fLabelFont; //Font for labels
TString fChopt; //Axis options
TString fName; //axis name
TString fTitle; //axis title
TString fTimeFormat; //Time format, ex: 09/12/99 12:34:00
TString fFunctionName; //name of mapping function pointed by fFunction
TF1 *fFunction; //!Pointer to function computing axis values
TAxis *fAxis; //!pointer to original TAxis axis (if any)
static Int_t fgMaxDigits; //!Number of digits above which the 10>N notation is used
public:
TGaxis();
TGaxis(Double_t xmin,Double_t ymin,Double_t xmax,Double_t ymax,
Double_t wmin,Double_t wmax,Int_t ndiv=510, Option_t *chopt="",
Double_t gridlength = 0);
TGaxis(Double_t xmin,Double_t ymin,Double_t xmax,Double_t ymax,
const char *funcname, Int_t ndiv=510, Option_t *chopt="",
Double_t gridlength = 0);
virtual ~TGaxis();
virtual void AdjustBinSize(Double_t A1, Double_t A2, Int_t nold
,Double_t &BinLow, Double_t &BinHigh, Int_t &nbins, Double_t &BinWidth);
virtual void CenterLabels(Bool_t center=kTRUE);
virtual void CenterTitle(Bool_t center=kTRUE);
virtual void DrawAxis(Double_t xmin,Double_t ymin,Double_t xmax,Double_t ymax,
Double_t wmin,Double_t wmax,Int_t ndiv=510, Option_t *chopt="",
Double_t gridlength = 0);
Float_t GetGridLength() const {return fGridLength;}
TF1 *GetFunction() const {return fFunction;}
Int_t GetLabelColor() const {return fLabelColor;}
Int_t GetLabelFont() const {return fLabelFont;}
Float_t GetLabelOffset() const {return fLabelOffset;}
Float_t GetLabelSize() const {return fLabelSize;}
Float_t GetTitleOffset() const {return fTitleOffset;}
Float_t GetTitleSize() const {return fTitleSize;}
virtual const char *GetName() const {return fName.Data();}
virtual const char *GetOption() const {return fChopt.Data();}
virtual const char *GetTitle() const {return fTitle.Data();}
static Int_t GetMaxDigits();
Int_t GetNdiv() const {return fNdiv;}
Double_t GetWmin() const {return fWmin;}
Double_t GetWmax() const {return fWmax;}
Float_t GetTickSize() const {return fTickSize;}
virtual void ImportAxisAttributes(TAxis *axis);
void LabelsLimits(const char *label, Int_t &first, Int_t &last);
virtual void Paint(Option_t *chopt="");
virtual void PaintAxis(Double_t xmin,Double_t ymin,Double_t xmax,Double_t ymax,
Double_t &wmin,Double_t &wmax,Int_t &ndiv, Option_t *chopt="",
Double_t gridlength = 0, Bool_t drawGridOnly = kFALSE);
virtual void Rotate(Double_t X, Double_t Y, Double_t CFI, Double_t SFI
,Double_t XT, Double_t YT, Double_t &U, Double_t &V);
virtual void SavePrimitive(ofstream &out, Option_t *option);
void SetFunction(const char *funcname="");
void SetOption(Option_t *option="");
void SetLabelColor(Int_t labelcolor) {fLabelColor = labelcolor;} // *MENU*
void SetLabelFont(Int_t labelfont) {fLabelFont = labelfont;} // *MENU*
void SetLabelOffset(Float_t labeloffset) {fLabelOffset = labeloffset;} // *MENU*
void SetLabelSize(Float_t labelsize) {fLabelSize = labelsize;} // *MENU*
static void SetMaxDigits(Int_t maxd=5);
virtual void SetName(const char *name); // *MENU*
virtual void SetNdivisions(Int_t ndiv) {fNdiv = ndiv;} // *MENU*
virtual void SetMoreLogLabels(Bool_t more=kTRUE); // *MENU*
virtual void SetNoExponent(Bool_t noExponent=kTRUE); // *MENU*
virtual void SetDecimals(Bool_t dot=kTRUE); // *MENU*
void SetTickSize(Float_t ticksize) {fTickSize = ticksize;} // *MENU*
void SetGridLength(Float_t gridlength) {fGridLength = gridlength;}
void SetTimeFormat(const char *tformat);
void SetTimeOffset(Double_t toffset, Option_t *option="local");
virtual void SetTitle(const char *title=""); // *MENU*
void SetTitleOffset(Float_t titleoffset=1) {fTitleOffset = titleoffset;} // *MENU*
void SetTitleSize(Float_t titlesize) {fTitleSize = titlesize;} // *MENU*
void SetWmin(Double_t wmin) {fWmin = wmin;}
void SetWmax(Double_t wmax) {fWmax = wmax;}
ClassDef(TGaxis,5) //Graphics axis
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1