The color creation and management class.
Colors are defined by their red, green and blue components, simply called the RGB components. The colors are also known by the hue, light and saturation components also known as the HLS components. When a new color is created the components of both color systems are computed.
At initialization time, a table of colors is generated. An existing color can be retrieved by its index:
Then it can be manipulated. For example its RGB components can be modified:
A new color can be created the following way:
Two sets of colors are initialized;
The following image displays the 50 basic colors.
The wheel contains the recommended 216 colors to be used in web applications.
The colors in the color wheel are created by TColor::CreateColorWheel.
Using this color set for your text, background or graphics will give your application a consistent appearance across different platforms and browsers.
Colors are grouped by hue, the aspect most important in human perception. Touching color chips have the same hue, but with different brightness and vividness.
Colors of slightly different hues clash. If you intend to display colors of the same hue together, you should pick them from the same group.
Each color chip is identified by a mnemonic (e.g. kYellow) and a number. The keywords, kRed, kBlue, kYellow, kPink, etc are defined in the header file Rtypes.h that is included in all ROOT other header files. It is better to use these keywords in user code instead of hardcoded color numbers, e.g.:
The complete list of predefined color names is the following:
Note the special role of color kWhite (color number 0). It is the default background color also. For instance in a PDF or PS files (as paper is usually white) it is simply not painted. To have a white color behaving like the other color the simplest is to define an other white color not attached to the color index 0:
Dark and bright colors are used to add 3D effects to graphical objects like TWbox, TPave, TPaveText, TPaveLabel, etc. and in colored lego plots.
Two static functions are available that return the bright or dark color number corresponding to a given color index. If these variants don't already exist, they are created as needed:
Choosing an appropriate color scheme is essential for making results easy to understand and interpret. Factors like colorblindness and converting colors to grayscale for publications can impact accessibility. Furthermore, results should be aesthetically pleasing. The following three color schemes, recommended by M. Petroff in arXiv:2107.02270v2 and available on GitHub under the MIT License, meet these criteria.
These three color schemes are available as color sets with 6, 8, and 10 colors, named kP[6, 8, 10]ColorName. For example, kP6Red represents the red color within the P6 color scheme (P for Petroff or Preferred).
The example hist026_THStack_color_scheme.C illustrates how to use these color schemes in THStack drawings. It also demonstrates that they are effective in grayscale.
One can toggle between a grayscale preview and the regular colored mode using TCanvas::SetGrayscale(). Note that in grayscale mode, access via RGB will return grayscale values according to ITU standards (and close to b&w printer gray-scales), while access via HLS returns de-saturated gray-scales. The image below shows the ROOT color wheel in grayscale mode.
It is often very useful to represent a variable with a color map. The concept of "color palette" allows to do that. One color palette is active at any time. This "current palette" is set using:
This function has two parameters: the number of colors in the palette and an array of containing the indices of colors in the palette. The following small example demonstrates how to define and use the color palette:
To define more a complex palette with a continuous gradient of color, one should use the static function TColor::CreateGradientColorTable(). The following example demonstrates how to proceed:
The function TColor::CreateGradientColorTable() automatically calls gStyle->SetPalette(), so there is not need to add one.
After a call to TColor::CreateGradientColorTable() it is sometimes useful to store the newly create palette for further use. In particular, it is recommended to do if one wants to switch between several user define palettes. To store a palette in an array it is enough to do:
Later on to reuse the palette MyPalette it will be enough to do
As only one palette is active, one need to use TExec to be able to display plots using different palettes on the same pad. The tutorial multipalette.C illustrates this feature.
TColor::CreateColorTableFromFile("filename.txt") allows you to create a color palette based on an input ASCII file. In contrast to TColor::CreateGradientColorTable(), here the length (spacing) is constant and can not be tuned. There is no gradient being interpolated between adjacent colors. The palette will contain the exact colors stored in the file, that comprises one line per color in the format "r g b" as floats.These palettes can be accessed "by name" with gStyle->SetPalette(num). num can be taken within the following enum:
As explained in Crameri, F., Shephard, G.E. & Heron, P.J. The misuse of colour in science communication. Nat Commun 11, 5444 (2020) some color maps can visually distord data, specially for people with colour-vision deficiencies.
For instance one can immediately see the disadvantages of the Rainbow color map, which is misleading for colour-blinded people in a 2D plot (not so much in a 3D surfaces).
The kCMYK palette, is also not great because it's dark, then lighter, then half-dark again. Some others, like kAquamarine, have almost no contrast therefore it would be almost impossible (for a color blind person) to see something with a such palette.
Therefore the palettes are classified in two categories: those which are Colour Vision Deficiency friendly and those which are not.
An easy way to classify the palettes is to turn them into grayscale using TCanvas::SetGrayscale(). The grayscale version of a palette should be as proportional as possible, and monotonously increasing or decreasing.
Unless it is symmetrical, then it is fine to have white in the borders and black in the centre (for example an axis that goes between -40 degrees and +40 degrees, the 0 has a meaning in the perceptualcolormap.C example).
A full set of colour-vision deficiency friendly and perceptually uniform colour maps can be downloaded and used with ROOT (since 6.26) via: gStyle->SetPalette("filename.txt") or TColor::CreateColorTableFromFile("filename.txt"). Remember to increase the number of contours for a smoother result, e.g.: gStyle->SetNumberContours(99) if you are drawing with "surf1z" or gStyle->SetNumberContours(256) if with "colz".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Once a palette is defined, it is possible to invert the color order thanks to the method TColor::InvertPalette. The top of the palette becomes the bottom and vice versa.
To make a graphics object transparent it is enough to set its color to a transparent one. The color transparency is defined via its alpha component. The alpha value varies from 0. (fully transparent) to 1. (fully opaque). To set the alpha value of an existing color it is enough to do:
A new color can be created transparent the following way:
An example of transparency usage with parallel coordinates can be found in parallelcoordtrans.C.
To ease the creation of a transparent color the static method GetColorTransparent(Int_t color, Float_t a) is provided. In the following example the trans_red color index point to a red color 30% opaque (70% transparent). The alpha value of the color index kRed is not modified.
This function is also used in the methods SetFillColorAlpha(), SetLineColorAlpha(), SetMarkerColorAlpha() and SetTextColorAlpha(). In the following example the fill color of the histogram histo is set to blue with an opacity of 35% (i.e. a transparency of 65%). (The color kBlue itself is internally stored as fully opaque.)
The transparency is available on all platforms when the flag OpenGL.CanvasPreferGL is set to 1 in $ROOTSYS/etc/system.rootrc, or on Mac with the Cocoa backend. On the file output it is visible with PDF, PNG, Gif, JPEG, SVG, TeX ... but not PostScript.
Alternatively, you can call at the top of your script gStyle->SetCanvasPreferGL();. Or if you prefer to activate GL for a single canvas c, then use c->SetSupportGL(true);.
The following macro gives an example of transparency usage:
Public Types | |
| enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
| enum | { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) } |
| enum | EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) } |
| enum | EStatusBits { kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) , kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 )) } |
Public Member Functions | |
| TColor () | |
| Default constructor. | |
| TColor (const TColor &color) | |
| Color copy constructor. | |
| TColor (Float_t r, Float_t g, Float_t b, Float_t a=1) | |
| Fast TColor constructor. | |
| TColor (Int_t color, Float_t r, Float_t g, Float_t b, const char *name="", Float_t a=1) | |
| Normal color constructor. | |
| virtual | ~TColor () |
| Color destructor. | |
| void | AbstractMethod (const char *method) const |
| Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it. | |
| virtual void | AppendPad (Option_t *option="") |
| Append graphics object to current pad. | |
| const char * | AsHexString () const |
| Return color as hexadecimal string. | |
| virtual void | Browse (TBrowser *b) |
| Browse object. May be overridden for another default action. | |
| ULong_t | CheckedHash () |
| Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
| virtual const char * | ClassName () const |
| Returns name of class to which the object belongs. | |
| void | Clear (Option_t *option="") override |
| Set name and title to empty strings (""). | |
| TObject * | Clone (const char *newname="") const override |
| Make a clone of an object using the Streamer facility. | |
| Int_t | Compare (const TObject *obj) const override |
| Compare two TNamed objects. | |
| void | Copy (TObject &color) const override |
| Copy this color to obj. | |
| virtual void | Delete (Option_t *option="") |
| Delete this object. | |
| virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
| Computes distance from point (px,py) to the object. | |
| virtual void | Draw (Option_t *option="") |
| Default Draw method for all objects. | |
| virtual void | DrawClass () const |
| Draw class inheritance tree of the class to which this object belongs. | |
| virtual TObject * | DrawClone (Option_t *option="") const |
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1). | |
| virtual void | Dump () const |
| Dump contents of object on stdout. | |
| virtual void | Error (const char *method, const char *msgfmt,...) const |
| Issue error message. | |
| virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
| Execute method on this object with the given parameter string, e.g. | |
| virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
| Execute method on this object with parameters stored in the TObjArray. | |
| virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
| Execute action corresponding to an event at (px,py). | |
| virtual void | Fatal (const char *method, const char *msgfmt,...) const |
| Issue fatal error message. | |
| virtual void | FillBuffer (char *&buffer) |
| Encode TNamed into output buffer. | |
| virtual TObject * | FindObject (const char *name) const |
| Must be redefined in derived classes. | |
| virtual TObject * | FindObject (const TObject *obj) const |
| Must be redefined in derived classes. | |
| Float_t | GetAlpha () const |
| Float_t | GetBlue () const |
| virtual Option_t * | GetDrawOption () const |
| Get option used by the graphics system to draw this object. | |
| virtual Float_t | GetGrayscale () const |
| Float_t | GetGreen () const |
| virtual void | GetHLS (Float_t &h, Float_t &l, Float_t &s) const |
| Float_t | GetHue () const |
| virtual const char * | GetIconName () const |
| Returns mime type name of object. | |
| Float_t | GetLight () const |
| const char * | GetName () const override |
| Returns name of object. | |
| Int_t | GetNumber () const |
| virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
| Returns string containing info about the object at position (px,py). | |
| virtual Option_t * | GetOption () const |
| ULong_t | GetPixel () const |
| Return pixel value corresponding to this color. | |
| Float_t | GetRed () const |
| virtual void | GetRGB (Float_t &r, Float_t &g, Float_t &b) const |
| Float_t | GetSaturation () const |
| const char * | GetTitle () const override |
| Returns title of object. | |
| virtual UInt_t | GetUniqueID () const |
| Return the unique object id. | |
| virtual Bool_t | HandleTimer (TTimer *timer) |
| Execute action in response of a timer timing out. | |
| ULong_t | Hash () const override |
| Return hash value for this object. | |
| Bool_t | HasInconsistentHash () const |
| Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
| virtual void | Info (const char *method, const char *msgfmt,...) const |
| Issue info message. | |
| virtual Bool_t | InheritsFrom (const char *classname) const |
| Returns kTRUE if object inherits from class "classname". | |
| virtual Bool_t | InheritsFrom (const TClass *cl) const |
| Returns kTRUE if object inherits from TClass cl. | |
| virtual void | Inspect () const |
| Dump contents of this object in a graphics canvas. | |
| void | InvertBit (UInt_t f) |
| TClass * | IsA () const override |
| Bool_t | IsDestructed () const |
| IsDestructed. | |
| virtual Bool_t | IsEqual (const TObject *obj) const |
| Default equal comparison (objects are equal if they have the same address in memory). | |
| virtual Bool_t | IsFolder () const |
| Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). | |
| R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
| Bool_t | IsSortable () const override |
| R__ALWAYS_INLINE Bool_t | IsZombie () const |
| void | ls (Option_t *option="") const override |
| List this color with its attributes. | |
| void | MayNotUse (const char *method) const |
| Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
| virtual Bool_t | Notify () |
| This method must be overridden to handle object notification (the base implementation is no-op). | |
| void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
| Use this method to declare a method obsolete. | |
| void | operator delete (void *, size_t) |
| Operator delete for sized deallocation. | |
| void | operator delete (void *ptr) |
| Operator delete. | |
| void | operator delete (void *ptr, void *vp) |
| Only called by placement new when throwing an exception. | |
| void | operator delete[] (void *, size_t) |
| Operator delete [] for sized deallocation. | |
| void | operator delete[] (void *ptr) |
| Operator delete []. | |
| void | operator delete[] (void *ptr, void *vp) |
| Only called by placement new[] when throwing an exception. | |
| void * | operator new (size_t sz) |
| void * | operator new (size_t sz, void *vp) |
| void * | operator new[] (size_t sz) |
| void * | operator new[] (size_t sz, void *vp) |
| TColor & | operator= (const TColor &color) |
| virtual void | Paint (Option_t *option="") |
| This method must be overridden if a class wants to paint itself. | |
| virtual void | Pop () |
| Pop on object drawn in a pad to the top of the display list. | |
| void | Print (Option_t *option="") const override |
| Dump this color with its attributes. | |
| virtual Int_t | Read (const char *name) |
| Read contents of object with specified name from the current directory. | |
| virtual void | RecursiveRemove (TObject *obj) |
| Recursively remove this object from a list. | |
| void | ResetBit (UInt_t f) |
| virtual void | SaveAs (const char *filename="", Option_t *option="") const |
| Save this object in the file specified by filename. | |
| virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
| Save a primitive as a C++ statement(s) on output stream "out". | |
| virtual void | SetAlpha (Float_t a) |
| void | SetBit (UInt_t f) |
| void | SetBit (UInt_t f, Bool_t set) |
| Set or unset the user status bits as specified in f. | |
| virtual void | SetDrawOption (Option_t *option="") |
| Set drawing option for object. | |
| void | SetName (const char *name) override |
| Set the color name and change also the name of the "dark" and "bright" associated colors if they exist. | |
| virtual void | SetNameTitle (const char *name, const char *title) |
| Set all the TNamed parameters (name and title). | |
| virtual void | SetRGB (Float_t r, Float_t g, Float_t b) |
| Initialize this color and its "dark" and "bright" associated colors. | |
| virtual void | SetTitle (const char *title="") |
| Set the title of the TNamed. | |
| virtual void | SetUniqueID (UInt_t uid) |
| Set the unique object id. | |
| virtual Int_t | Sizeof () const |
| Return size of the TNamed part of the TObject. | |
| void | Streamer (TBuffer &) override |
| Stream an object of class TObject. | |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| virtual void | SysError (const char *method, const char *msgfmt,...) const |
| Issue system error message. | |
| R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
| Int_t | TestBits (UInt_t f) const |
| virtual void | UseCurrentStyle () |
| Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
| virtual void | Warning (const char *method, const char *msgfmt,...) const |
| Issue warning message. | |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
| Write this object to the current directory. | |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
| Write this object to the current directory. | |
Static Public Member Functions | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static void | CreateColorsCircle (Int_t offset, const char *name, UChar_t *rgb) |
| Create the "circle" colors in the color wheel. | |
| static void | CreateColorsGray () |
| Create the Gray scale colors in the Color Wheel. | |
| static void | CreateColorsRectangle (Int_t offset, const char *name, UChar_t *rgb) |
| Create the "rectangular" colors in the color wheel. | |
| static Int_t | CreateColorTableFromFile (TString fileName, Float_t alpha=1.) |
| Static function creating a color palette based on an input text file. | |
| static void | CreateColorWheel () |
| Static function steering the creation of all colors in the color wheel. | |
| static Int_t | CreateGradientColorTable (UInt_t Number, Double_t *Stops, Double_t *Red, Double_t *Green, Double_t *Blue, UInt_t NColors, Float_t alpha=1., Bool_t setPalette=kTRUE) |
| Static function creating a color table with several connected linear gradients. | |
| static const char * | DeclFileName () |
| static Bool_t | DefinedColors (Int_t set_always_on=0) |
| Static method returning kTRUE if some new colors have been defined after initialisation or since the last call to this method. | |
| static Int_t | GetColor (const char *hexcolor) |
| Static method returning color number for color specified by hex color string of form: "#rrggbb", where rr, gg and bb are in hex between [0,FF], e.g. | |
| static Int_t | GetColor (Float_t r, Float_t g, Float_t b, Float_t a=1.) |
| Static method returning color number for color specified by r, g and b. | |
| static Int_t | GetColor (Int_t r, Int_t g, Int_t b, Float_t a=1.) |
| Static method returning color number for color specified by r, g and b. | |
| static Int_t | GetColor (ULong_t pixel) |
| Static method returning color number for color specified by system dependent pixel value. | |
| static Int_t | GetColorBright (Int_t color) |
| Static function: Returns the bright color number corresponding to n If the TColor object does not exist, it is created at a free color index. | |
| static Int_t | GetColorByName (const char *colorname) |
| Static method returning color index for a color specified by name. | |
| static Int_t | GetColorDark (Int_t color) |
| Static function: Returns the dark color number corresponding to n If the TColor object does not exist, it is created at a free color index. | |
| static Int_t | GetColorPalette (Int_t i) |
| Static function returning the color number i in current palette. | |
| static Int_t | GetColorTransparent (Int_t color, Float_t a) |
| Static function: Returns the transparent color number corresponding to n. | |
| static Longptr_t | GetDtorOnly () |
| Return destructor only flag. | |
| static Int_t | GetFirstFreeColorIndex () |
| Static function: Returns the first free color greater in the list of colors. | |
| static Int_t | GetFreeColorIndex () |
| Static function: Returns the free color index greater than the highest defined color index. | |
| static Int_t | GetLinearGradient (Double_t angle, const std::vector< Int_t > &colors, const std::vector< Double_t > &positions={}) |
| Static function: Returns the linear gradient color number corresponding to specified parameters. | |
| static Int_t | GetNumberOfColors () |
| Static function returning number of colors in the color palette. | |
| static Bool_t | GetObjectStat () |
| Get status of object stat flag. | |
| static const TArrayI & | GetPalette () |
| Static function returning the current active palette. | |
| static Int_t | GetRadialGradient (Double_t r, const std::vector< Int_t > &colors, const std::vector< Double_t > &positions={}) |
| Static function: Returns the radial gradient color number corresponding to specified parameters. | |
| static void | HLS2RGB (Float_t h, Float_t l, Float_t s, Float_t &r, Float_t &g, Float_t &b) |
| Static method to compute RGB from HLS. | |
| static void | HLS2RGB (Int_t h, Int_t l, Int_t s, Int_t &r, Int_t &g, Int_t &b) |
| Static method to compute RGB from HLS. | |
| static void | HLStoRGB (Float_t h, Float_t l, Float_t s, Float_t &r, Float_t &g, Float_t &b) |
| static void | HSV2RGB (Float_t h, Float_t s, Float_t v, Float_t &r, Float_t &g, Float_t &b) |
| Static method to compute RGB from HSV: | |
| static void | InitializeColors () |
| Initialize colors used by the TCanvas based graphics (via TColor objects). | |
| static void | InvertPalette () |
| Invert the current color palette. | |
| static Bool_t | IsGrayscale () |
| Return whether all colors return grayscale values. | |
| static void | ListColors (Int_t ci1=0, Int_t ci2=0, Bool_t showEmpty=kFALSE) |
List nb colors from the color index ci. | |
| static ULong_t | Number2Pixel (Int_t ci) |
| Static method that given a color index number, returns the corresponding pixel value. | |
| static void | Pixel2RGB (ULong_t pixel, Float_t &r, Float_t &g, Float_t &b) |
| Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet. | |
| static void | Pixel2RGB (ULong_t pixel, Int_t &r, Int_t &g, Int_t &b) |
| Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet. | |
| static const char * | PixelAsHexString (ULong_t pixel) |
| Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to a hexadecimal string. | |
| static void | RGB2HLS (Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s) |
| Static method to compute HLS from RGB. | |
| static void | RGB2HLS (Int_t r, Int_t g, Int_t b, Int_t &h, Int_t &l, Int_t &s) |
| Static method to compute HLS from RGB. | |
| static void | RGB2HSV (Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &s, Float_t &v) |
| Static method to compute HSV from RGB. | |
| static ULong_t | RGB2Pixel (Float_t r, Float_t g, Float_t b) |
| Convert r,g,b to graphics system dependent pixel value. | |
| static ULong_t | RGB2Pixel (Int_t r, Int_t g, Int_t b) |
| Convert r,g,b to graphics system dependent pixel value. | |
| static void | RGBtoHLS (Float_t r, Float_t g, Float_t b, Float_t &h, Float_t &l, Float_t &s) |
| static Bool_t | SaveColor (std::ostream &out, Int_t ci) |
| Save a color with index > 228 as a C++ statement(s) on output stream out. | |
| static void | SaveColorsPalette (std::ostream &out) |
| Store current palette in the output macro. | |
| static TString | SavePrimitiveColor (Int_t ci) |
| Convert color in C++ statement which can be used in SetColor directives Produced statement either includes TColor::GetColor() invocation or just plain color index as integer Method should be used is SavePrimitive methods for color storage. | |
| static void | SetColorThreshold (Float_t t) |
| This method specifies the color threshold used by GetColor to retrieve a color. | |
| static void | SetDtorOnly (void *obj) |
| Set destructor only flag. | |
| static void | SetGrayscale (Bool_t set=kTRUE) |
| Set whether all colors should return grayscale values. | |
| static void | SetObjectStat (Bool_t stat) |
| Turn on/off tracking of objects in the TObjectTable. | |
| static void | SetPalette (Int_t ncolors, Int_t *colors, Float_t alpha=1.) |
| Static function. | |
Protected Types | |
| enum | { kOnlyPrepStep = (1ULL << ( 3 )) } |
Protected Member Functions | |
| virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
| Interface to ErrorHandler (protected). | |
| void | MakeZombie () |
| void | SavePrimitiveNameTitle (std::ostream &out, const char *variable_name) |
| Save object name and title into the output stream "out". | |
Static Protected Member Functions | |
| static void | SavePrimitiveConstructor (std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE) |
| Save object constructor in the output stream "out". | |
| static void | SavePrimitiveDraw (std::ostream &out, const char *variable_name, Option_t *option=nullptr) |
| Save invocation of primitive Draw() method Skipped if option contains "nodraw" string. | |
| static TString | SavePrimitiveVector (std::ostream &out, const char *prefix, Int_t len, Double_t *arr, Int_t flag=0) |
| Save array in the output stream "out" as vector. | |
Protected Attributes | |
| TString | fName |
| Int_t | fNumber |
| Color number identifier. | |
| TString | fTitle |
Private Member Functions | |
| void | Allocate () |
| Make this color known to the graphics system. | |
Static Private Member Functions | |
| static void | AddToTObjectTable (TObject *) |
| Private helper function which will dispatch to TObjectTable::AddObj. | |
| static Float_t | HLStoRGB1 (Float_t rn1, Float_t rn2, Float_t huei) |
| Static method. Auxiliary to HLS2RGB(). | |
Private Attributes | |
| Float_t | fAlpha |
| Alpha (transparency) | |
| UInt_t | fBits |
| bit field status word | |
| Float_t | fBlue |
| Fraction of Blue. | |
| Float_t | fGreen |
| Fraction of Green. | |
| Float_t | fHue |
| Hue. | |
| Float_t | fLight |
| Light. | |
| Float_t | fRed |
| Fraction of Red. | |
| Float_t | fSaturation |
| Saturation. | |
| UInt_t | fUniqueID |
| object unique identifier | |
Static Private Attributes | |
| static Longptr_t | fgDtorOnly = 0 |
| object for which to call dtor only (i.e. no delete) | |
| static Bool_t | fgObjectStat = kTRUE |
| if true keep track of objects in TObjectTable | |
#include <TColor.h>
| Enumerator | |
|---|---|
| kOnlyPrepStep | Used to request that the class specific implementation of This is just for example by TBufferMerger to request that the TTree inside the file calls |
|
inherited |
|
inherited |
| Enumerator | |
|---|---|
| kCanDelete | if object in a list can be deleted |
| kMustCleanup | if object destructor must call RecursiveRemove() |
| kIsReferenced | |
| kHasUUID | if object has a TUUID (its fUniqueID=UUIDNumber) |
| kCannotPick | if object in a pad cannot be picked |
| kNoContextMenu | if object does not want context menu |
| kInvalidObject | if object ctor succeeded but object should not be used |
| TColor::TColor | ( | ) |
Default constructor.
Definition at line 1066 of file TColor.cxx.
| TColor::TColor | ( | Int_t | color, |
| Float_t | r, | ||
| Float_t | g, | ||
| Float_t | b, | ||
| const char * | name = "", | ||
| Float_t | a = 1 ) |
Normal color constructor.
Initialize a color structure. Compute the RGB and HLS color components. The color title is set to its hexadecimal value.
Definition at line 1078 of file TColor.cxx.
Fast TColor constructor.
It creates a color with an index just above the current highest one. It does not name the color. This is useful to create palettes.
Definition at line 1124 of file TColor.cxx.
Color copy constructor.
Definition at line 1155 of file TColor.cxx.
|
virtual |
Color destructor.
Definition at line 1143 of file TColor.cxx.
|
inherited |
Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it.
In other word, this method acts as a "runtime purely virtual" warning instead of a "compiler purely virtual" error.
Definition at line 1149 of file TObject.cxx.
|
staticprivateinherited |
Private helper function which will dispatch to TObjectTable::AddObj.
Included here to avoid circular dependency between header files.
Definition at line 195 of file TObject.cxx.
|
private |
Make this color known to the graphics system.
Definition at line 1909 of file TColor.cxx.
|
virtualinherited |
Append graphics object to current pad.
In case no current pad is set yet, create a default canvas with the name "c1".
Definition at line 204 of file TObject.cxx.
| const char * TColor::AsHexString | ( | ) | const |
Return color as hexadecimal string.
This string can be directly passed to, for example, TGClient::GetColorByName(). String will be reused so copy immediately if needed.
Definition at line 1330 of file TColor.cxx.
|
virtualinherited |
Browse object. May be overridden for another default action.
Reimplemented in TASImage, TRecorder, TEfficiency, TGraph2D, TChain, TTree, TDirectory, TFolder, TMacro, TRemoteObject, TROOT, TStyle, TSystemDirectory, TSystemFile, TTask, TCollection, TPair, TBrowserObject, TBaseClass, TClass, TGeoManager, TGeoNode, TGeoVolume, TGeoOverlap, TGeoTrack, TCanvas, TPad, TAxis3D, TGeometry, TNode, TRootIconList, THbookBranch, THbookFile, THbookKey, TF1, TGraph, TH1, THnBase, ROOT::Internal::THnBaseBrowsable, THStack, TMultiDimFit, TMultiGraph, TPrincipal, TDirectoryFile, TKey, TKeyMapFile, TMapFile, TSPlot, TDatabasePDG, TGenerator, TParticleClassPDG, TApplicationRemote, RooPlot, TBranch, TVirtualBranchBrowsable, TCollectionPropertyBrowsable, TBranchClones, TBranchElement, TBranchObject, TBranchSTL, TLeaf, TNtuple, TNtupleD, TTreePerfStats, and ROOT::Experimental::XRooFit::xRooNode.
Definition at line 218 of file TObject.cxx.
|
inlineinherited |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
The intent is for this routine to be called instead of directly calling the function Hash during "insert" operations. See TObject::HasInconsistenTObjectHash();
(*) The setup is consistent when all classes in the class hierarchy that overload TObject::Hash do call ROOT::CallRecursiveRemoveIfNeeded in their destructor. i.e. it is safe to call the Hash virtual function during the RecursiveRemove operation.
|
virtualinherited |
Returns name of class to which the object belongs.
Definition at line 227 of file TObject.cxx.
|
overridevirtualinherited |
Set name and title to empty strings ("").
Reimplemented from TObject.
Reimplemented in TStreamerInfo, TVirtualStreamerInfo, TProcessID, TTask, TPrincipal, and TVirtualFitter.
Definition at line 63 of file TNamed.cxx.
Make a clone of an object using the Streamer facility.
If newname is specified, this will be the name of the new object.
Reimplemented from TObject.
Reimplemented in TStreamerInfo, and TTreeIndex.
Definition at line 73 of file TNamed.cxx.
Compare two TNamed objects.
Returns 0 when equal, -1 when this is smaller and +1 when bigger (like strcmp).
Reimplemented from TObject.
Reimplemented in TStructNodeProperty.
Definition at line 84 of file TNamed.cxx.
|
overridevirtual |
Create the "circle" colors in the color wheel.
Definition at line 1383 of file TColor.cxx.
|
static |
Create the Gray scale colors in the Color Wheel.
Definition at line 1367 of file TColor.cxx.
Create the "rectangular" colors in the color wheel.
Definition at line 1402 of file TColor.cxx.
Static function creating a color palette based on an input text file.
Every color in the file will take the same amount of space in the palette.
| fileName | Name of a .txt file (ASCII) containing three floats per line, separated by spaces, namely the r g b fractions of the color, each value being in the range [0,1]. |
| alpha | the global opacity for all colors within this palette |
Definition at line 2637 of file TColor.cxx.
|
static |
Static function steering the creation of all colors in the color wheel.
Definition at line 1421 of file TColor.cxx.
|
static |
Static function creating a color table with several connected linear gradients.
Returns a positive value (the index of the first color of the palette) on success and -1 on error.
The table is constructed by tracing lines between the given points in RGB space. Each color value may have a value between 0 and 1. The difference between consecutive "Stops" values gives the fraction of space in the whole table that should be used for the interval between the corresponding color values.
Normally the first element of Stops should be 0 and the last should be 1. If this is not true, fewer than NColors will be used in proportion with the total interval between the first and last elements of Stops.
This definition is similar to the povray-definition of gradient color tables.
For instance:
This defines a table in which there are three color end points: RGB = {0, 0, 1}, {1, 0, 0}, and {1, 1, 1} = blue, red, white The first 40% of the table is used to go linearly from blue to red. The remaining 60% of the table is used to go linearly from red to white.
If you define a very short interval such that less than one color fits in it, no colors at all will be allocated. If this occurs for all intervals, ROOT will revert to the default palette.
Original code by Andreas Zoglauer (zog@m.nosp@m.pe.m.nosp@m.pg.de)
Definition at line 2743 of file TColor.cxx.
Static method returning kTRUE if some new colors have been defined after initialisation or since the last call to this method.
This allows to avoid the colors and palette streaming in TCanvas::Streamer if not needed. If the method is called once with set_always_on = 1, all next canvases will be To reset such mode, just call the method once with set_always_on = -1
Definition at line 1542 of file TColor.cxx.
|
virtualinherited |
Delete this object.
Typically called as a command via the interpreter. Normally use "delete" operator when object has been allocated on the heap.
Reimplemented in TDirectory, TDirectoryFile, TFile, TSystemDirectory, TSystemFile, TTreeViewer, TGItemContext, TCanvas, TGFrame, TGTextEdit, TAxis, RooLinkedList, TExMap, TObjectTable, TProtoClass, TKeySQL, TKeyXML, TQCommand, TBtree, TClonesArray, THashList, THashTable, TList, TMap, TObjArray, TOrdCollection, TRefArray, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TViewPubDataMembers, TViewPubFunctions, TThread, TKey, TMVA::Results, TTree, and TCollection.
Definition at line 268 of file TObject.cxx.
Computes distance from point (px,py) to the object.
This member function must be implemented for each graphics primitive. This default function returns a big number (999999).
Reimplemented in TGeoTessellated, TStyle, TGeoBBox, TGeoCompositeShape, TGeoCone, TGeoConeSeg, TGeoEltu, TGeoHalfSpace, TGeoHype, TGeoNode, TGeoParaboloid, TGeoPcon, TGeoPgon, TGeoScaledShape, TGeoShapeAssembly, TGeoSphere, TGeoTorus, TGeoTube, TGeoTubeSeg, TGeoVolume, TGeoXtru, TGeoOverlap, TGeoTrack, TGeoVGShape, TASImage, TColorWheel, TPad, TBox, TCrown, TCurlyArc, TCurlyLine, TDiamond, TEllipse, TGraphPolargram, TLine, TMarker, TPave, TPie, TPolyLine, TText, TGraphEdge, TGraphNode, TAxis3D, TBRIK, TMarker3DBox, TNode, TPCON, TPolyLine3D, TPolyMarker3D, TSPHE, TTUBE, TTUBS, TXTRU, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TGLViewer, TAxis, TEfficiency, TF1, TF2, TF3, TGraph, TGraph2D, TH1, THStack, TMultiGraph, TPolyMarker, TScatter, TScatter2D, TSpline, THistPainter, TPaletteAxis, TGenerator, TParticle, TPrimary, TFileDrawMap, TTreePerfStats, TParallelCoord, TParallelCoordRange, TParallelCoordVar, TSpider, TGeoShape, TPoints3DABC, TVirtualHistPainter, TPieSlice, and TGLScenePad.
Definition at line 284 of file TObject.cxx.
|
protectedvirtualinherited |
Interface to ErrorHandler (protected).
Reimplemented in TTreeViewer, and TThread.
Definition at line 1059 of file TObject.cxx.
|
virtualinherited |
Default Draw method for all objects.
Reimplemented in TClassTree, ROOT::RGeoPainter, TGListTree, TGPicture, TMultiDimFit, TRatioPlot, TGraph, TGraphTime, THStack, TMultiGraph, TChain, TTree, TFITSHDU, TEfficiency, RooStats::HypoTestInverterPlot, ROOT::Experimental::XRooFit::xRooNLLVar::xRooHypoPoint, ROOT::Experimental::XRooFit::xRooNLLVar::xRooHypoSpace, ROOT::Experimental::XRooFit::xRooNode, TGeoParallelWorld, TDirectory, TCollection, TBrowser, TClass, TGeoBatemanSol, TGeoNode, TGeoPhysicalNode, TGeoPolygon, TGeoShape, TGeoVolume, TGeoOverlap, TGeoPainter, TGeoTrack, TGeoVGShape, TASImage, TButton, TCanvas, TColorWheel, TPad, TArrow, TBox, TDiamond, TEllipse, TFrame, TLegend, TMarker, TPave, TPaveLabel, TPavesText, TPaveText, TPolyLine, TWbox, TGraphStruct, TEveGeoNode, TEveGeoTopNode, TGeometry, THelix, TNode, TNodeDiv, TPolyLine3D, TPolyMarker3D, TStructViewer, TStructViewerGUI, TF1, TF2, TF3, TH1, TPolyMarker, TSpline, TFile, TMatrixTBase< Element >, TMatrixTBase< AReal >, TMatrixTBase< Double_t >, TVectorT< Element >, TVectorT< Double_t >, TMultiLayerPerceptron, TGenerator, RooAbsData, TTreePerfStats, TParallelCoordVar, TGItemContext, TVirtualPad, TPie, TGraph2D, TGraphPolar, TGraphPolargram, TParallelCoord, TParallelCoordRange, TSpider, RooPlot, and RooStats::SamplingDistPlot.
Definition at line 293 of file TObject.cxx.
|
virtualinherited |
Draw class inheritance tree of the class to which this object belongs.
If a class B inherits from a class A, description of B is drawn on the right side of description of A. Member functions overridden by B are shown in class A with a blue line crossing-out the corresponding member function. The following picture is the class inheritance tree of class TPaveLabel:
Reimplemented in TSystemDirectory, TSystemFile, and TGFrame.
Definition at line 308 of file TObject.cxx.
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
If pad was not selected - gPad will be used.
Reimplemented in TSystemDirectory, TSystemFile, TGFrame, TAxis, and TCanvas.
Definition at line 319 of file TObject.cxx.
|
virtualinherited |
Dump contents of object on stdout.
Using the information in the object dictionary (class TClass) each data member is interpreted. If a data member is a pointer, the pointer value is printed
The following output is the Dump of a TArrow object:
Reimplemented in TSystemFile, TCollection, TClass, TGFrame, and TGPack.
Definition at line 367 of file TObject.cxx.
Issue error message.
Use "location" to specify the method where the error occurred. Accepts standard printf formatting arguments.
Reimplemented in TFitResult.
Definition at line 1098 of file TObject.cxx.
|
virtualinherited |
Execute method on this object with the given parameter string, e.g.
"3.14,1,\"text\"".
Reimplemented in TMethodCall, TCling, TInterpreter, ROOT::R::TRInterface, and TContextMenu.
Definition at line 378 of file TObject.cxx.
|
virtualinherited |
Execute method on this object with parameters stored in the TObjArray.
The TObjArray should contain an argv vector like:
Reimplemented in TCling, TMethodCall, TInterpreter, ROOT::R::TRInterface, and TContextMenu.
Definition at line 398 of file TObject.cxx.
Execute action corresponding to an event at (px,py).
This method must be overridden if an object can react to graphics events.
Reimplemented in TParallelCoord, TParallelCoordRange, TParallelCoordVar, TGeoManager, TGeoNode, TGeoShape, TGeoVolume, TGeoOverlap, TGeoTrack, TASImage, TASPaletteEditor::LimitLine, TButton, TCanvas, TGroupButton, TPad, TSliderBox, TBox, TCrown, TCurlyArc, TCurlyLine, TDiamond, TEllipse, TFrame, TGraphPolargram, TLine, TLink, TMarker, TPave, TPolyLine, TText, TWbox, TGraphEdge, TGraphNode, TAxis3D, TMarker3DBox, TNode, TPolyLine3D, TPolyMarker3D, TView3D, TGL5DDataSet, TGLEventHandler, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TGLViewer, TAxis, TEfficiency, TF1, TF2, TF3, TGraph, TGraph2D, TH1, TPolyMarker, TScatter, TScatter2D, TSpline, THistPainter, TPaletteAxis, TGenerator, TParticle, TPrimary, TTreePerfStats, TSpider, TView, TVirtualHistPainter, TPie, and TGLScenePad.
Definition at line 415 of file TObject.cxx.
Issue fatal error message.
Use "location" to specify the method where the fatal error occurred. Accepts standard printf formatting arguments.
Definition at line 1126 of file TObject.cxx.
|
virtualinherited |
Encode TNamed into output buffer.
Reimplemented in TKeySQL, TSQLFile, TKeyXML, TXMLFile, TDirectoryFile, TFile, and TKey.
Definition at line 103 of file TNamed.cxx.
Must be redefined in derived classes.
This function is typically used with TCollections, but can also be used to find an object by name inside this object.
Reimplemented in TListOfEnums, TMap, TDirectory, TFolder, TROOT, TListOfTypes, TListOfTypes, TBtree, TCollection, THashList, THashTable, TList, TObjArray, TListOfDataMembers, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TListOfFunctionTemplates, TViewPubDataMembers, TViewPubFunctions, TPad, TGeometry, THbookFile, TGraph, TGraph2D, TH1, RooAbsCollection, and RooLinkedList.
Definition at line 425 of file TObject.cxx.
Must be redefined in derived classes.
This function is typically used with TCollections, but can also be used to find an object inside this object.
Reimplemented in TMap, TDirectory, TFolder, TROOT, TListOfTypes, TBtree, TCollection, THashList, THashTable, TList, TObjArray, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TViewPubDataMembers, TViewPubFunctions, TPad, TGeometry, THbookFile, TGraph, TGraph2D, TH1, RooAbsCollection, and RooLinkedList.
Definition at line 435 of file TObject.cxx.
Static method returning color number for color specified by hex color string of form: "#rrggbb", where rr, gg and bb are in hex between [0,FF], e.g.
"#c0c0c0". Also alpha channel is applied when hex string includes fourth number e.g "#c0c0c0ff"
The color retrieval is done using a threshold defined by SetColorThreshold.
If specified color does not exist it will be created with as name "#rrggbb" with rr, gg and bb in hex between [0,FF].
Definition at line 1926 of file TColor.cxx.
Static method returning color number for color specified by r, g and b.
The r,g,b should be in the range [0,1].
The color retrieval is done using a threshold defined by SetColorThreshold.
If specified color does not exist it will be created with as name "#rrggbb" with rr, gg and bb in hex between [0,FF].
Definition at line 1949 of file TColor.cxx.
Static method returning color number for color specified by r, g and b.
The r,g,b should be in the range [0,255]. If the specified color does not exist it will be created with as name "#rrggbb" with rr, gg and bb in hex between [0,FF].
The color retrieval is done using a threshold defined by SetColorThreshold.
Definition at line 2009 of file TColor.cxx.
Static method returning color number for color specified by system dependent pixel value.
Pixel values can be obtained, e.g., from the GUI color picker.
The color retrieval is done using a threshold defined by SetColorThreshold.
Definition at line 1962 of file TColor.cxx.
Static function: Returns the bright color number corresponding to n If the TColor object does not exist, it is created at a free color index.
Definition at line 2095 of file TColor.cxx.
Static method returning color index for a color specified by name.
The list of defined colors and their names is given by TColor::ListColors. If the specified color name does not exist -1 is returned.
Definition at line 2081 of file TColor.cxx.
Static function: Returns the dark color number corresponding to n If the TColor object does not exist, it is created at a free color index.
Definition at line 2138 of file TColor.cxx.
Static function returning the color number i in current palette.
Definition at line 1509 of file TColor.cxx.
Static function: Returns the transparent color number corresponding to n.
The opacity level is given by the alpha value a. If a color with the same RGBa values already exists it is returned.
Definition at line 2182 of file TColor.cxx.
|
virtualinherited |
Get option used by the graphics system to draw this object.
Note that before calling object.GetDrawOption(), you must have called object.Draw(..) before in the current pad.
Reimplemented in TBrowser, TFitEditor, TGedFrame, TGFileBrowser, TRootBrowser, and TRootBrowserLite.
Definition at line 445 of file TObject.cxx.
|
staticinherited |
Return destructor only flag.
Definition at line 1196 of file TObject.cxx.
|
static |
Static function: Returns the first free color greater in the list of colors.
index. It can be used to define a user custom color.
Definition at line 2386 of file TColor.cxx.
|
static |
Static function: Returns the free color index greater than the highest defined color index.
All the color indices after this index are also free. It can be used to define a user custom color.
Definition at line 2372 of file TColor.cxx.
|
virtualinherited |
Returns mime type name of object.
Used by the TBrowser (via TGMimeTypes class). Override for class of which you would like to have different icons for objects of the same class.
Reimplemented in TSystemFile, TGeoVolume, TASImage, TGMainFrame, TKey, ROOT::Experimental::XRooFit::xRooNode, TBranch, TVirtualBranchBrowsable, TMethodBrowsable, and TBranchElement.
Definition at line 472 of file TObject.cxx.
|
static |
Static function: Returns the linear gradient color number corresponding to specified parameters.
First parameter set direction as angle in grad. Value 0 is horizontal direction, 90 - vertical List of colors defines interpolation colors for the gradient Optional positions can define relative color positions and must be sorted array of values between 0 and 1. If such gradient not exists - it will be created new Returns -1 if wrong parameters where specified
Definition at line 2218 of file TColor.cxx.
|
inlineoverridevirtualinherited |
|
static |
Static function returning number of colors in the color palette.
Definition at line 1529 of file TColor.cxx.
Returns string containing info about the object at position (px,py).
This method is typically overridden by classes of which the objects can report peculiarities for different positions. Returned string will be re-used (lock in MT environment).
Reimplemented in TGeoNode, TGeoVolume, TGeoTrack, TASImage, TColorWheel, TAxis3D, TNode, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TF1, TF2, TGraph, TH1, THistPainter, TPaletteAxis, TFileDrawMap, TParallelCoordVar, and TVirtualHistPainter.
Definition at line 491 of file TObject.cxx.
|
staticinherited |
Get status of object stat flag.
Definition at line 1181 of file TObject.cxx.
Reimplemented in TGeoVolume, TArrow, TGaxis, TLegendEntry, TPave, TPolyLine, TAxis3D, THelix, TNode, TPolyLine3D, TPolyMarker3D, TH1, TPolyMarker, TFile, TMapFile, TPSocket, TSocket, TUDPSocket, TSelector, and TPoints3DABC.
Static function returning the current active palette.
Definition at line 1521 of file TColor.cxx.
| ULong_t TColor::GetPixel | ( | ) | const |
Return pixel value corresponding to this color.
This pixel value can be used in the GUI classes. This call does not work in batch mode since it needs to communicate with the graphics system.
Definition at line 1564 of file TColor.cxx.
|
static |
Static function: Returns the radial gradient color number corresponding to specified parameters.
First parameter set direction as angle in grad. Value 0 is horizontal direction, 90 - vertical List of colors defines interpolation colors for the gradient Optional positions can define relative color positions and must be sorted array of values between 0 and 1. If such gradient not exists - it will be created new Returns -1 if wrong parameter where specified
Definition at line 2295 of file TColor.cxx.
|
inlineoverridevirtualinherited |
|
virtualinherited |
Return the unique object id.
Definition at line 480 of file TObject.cxx.
Execute action in response of a timer timing out.
This method must be overridden if an object has to react to timers.
Reimplemented in TGWindow, TGuiBldDragManager, TGraphTime, TGLEventHandler, TGCommandPlugin, TGDNDManager, TGFileContainer, TGPopupMenu, TGScrollBar, TGShutter, TGTextEdit, TGTextEditor, TGTextEntry, TGTextView, TGToolTip, TGHtml, and TTreeViewer.
Definition at line 516 of file TObject.cxx.
|
inlineoverridevirtualinherited |
Return hash value for this object.
Note: If this routine is overloaded in a derived class, this derived class should also add
Otherwise, when RecursiveRemove is called (by ~TObject or example) for this type of object, the transversal of THashList and THashTable containers will will have to be done without call Hash (and hence be linear rather than logarithmic complexity). You will also see warnings like
Reimplemented from TObject.
|
inlineinherited |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
missing call to RecursiveRemove in destructor).
Note: Since the consistency is only tested for during inserts, this routine will return true for object that have never been inserted whether or not they have a consistent setup. This has no negative side-effect as searching for the object with the right or wrong Hash will always yield a not-found answer (Since anyway no hash can be guaranteed unique, there is always a check)
|
static |
Static method to compute RGB from HLS.
The l and s are between [0,1] and h is between [0,360]. The returned r,g,b triplet is between [0,1].
Definition at line 1581 of file TColor.cxx.
Static method to compute RGB from HLS.
The h,l,s are between [0,255]. The returned r,g,b triplet is between [0,255].
Definition at line 1621 of file TColor.cxx.
Static method. Auxiliary to HLS2RGB().
Definition at line 1606 of file TColor.cxx.
|
static |
Static method to compute RGB from HSV:
The returned r,g,b triplet is between [0,1].
Definition at line 1647 of file TColor.cxx.
Issue info message.
Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.
Definition at line 1072 of file TObject.cxx.
Returns kTRUE if object inherits from class "classname".
Reimplemented in TClass.
Definition at line 549 of file TObject.cxx.
Returns kTRUE if object inherits from TClass cl.
Reimplemented in TClass.
Definition at line 557 of file TObject.cxx.
|
static |
Initialize colors used by the TCanvas based graphics (via TColor objects).
This method should be called before the ApplicationImp is created (which initializes the GUI colors).
Definition at line 1172 of file TColor.cxx.
|
virtualinherited |
Dump contents of this object in a graphics canvas.
Same action as Dump but in a graphical form. In addition pointers to other objects can be followed.
The following picture is the Inspect of a histogram object:
Reimplemented in TSystemFile, TInspectorObject, TGFrame, and ROOT::Experimental::XRooFit::xRooNode.
Definition at line 570 of file TObject.cxx.
|
static |
Invert the current color palette.
The top of the palette becomes the bottom and vice versa.
Definition at line 3674 of file TColor.cxx.
|
inlineoverridevirtual |
Reimplemented from TObject.
Reimplemented in TColorGradient, TLinearGradient, and TRadialGradient.
|
inlineinherited |
IsDestructed.
Default equal comparison (objects are equal if they have the same address in memory).
More complicated classes might want to override this function.
Reimplemented in TObjString, TQCommand, TPair, and TGObject.
Definition at line 589 of file TObject.cxx.
|
virtualinherited |
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Reimplemented in TDirectory, TFolder, TRemoteObject, TROOT, TSystemDirectory, TTask, TCollection, TPair, TBrowserObject, TBaseClass, TClass, TGeoManager, TGeoNode, TGeoNodeMatrix, TGeoVolume, TGeoOverlap, TGeoTrack, TCanvas, TPad, TAxis3D, TGeometry, TNode, TRootIconList, THbookFile, THbookKey, THnBase, ROOT::Internal::THnBaseBrowsable, TMultiDimFit, TPrincipal, TKey, TMapFile, TSPlot, TDatabasePDG, TParticleClassPDG, TApplicationRemote, ROOT::Experimental::XRooFit::xRooNode, TBranch, TVirtualBranchBrowsable, TBranchClones, TBranchElement, TBranchObject, TBranchSTL, and TTree.
Definition at line 579 of file TObject.cxx.
|
static |
Return whether all colors return grayscale values.
Definition at line 2596 of file TColor.cxx.
|
inlineinherited |
|
inlineoverridevirtualinherited |
Reimplemented from TObject.
Reimplemented in TStructNodeProperty.
|
inlineinherited |
List nb colors from the color index ci.
If nb=0 all the colors are printed. If showEmpty is set to kTRUE, empty color indices are also printed
Definition at line 2403 of file TColor.cxx.
|
overridevirtual |
List this color with its attributes.
Reimplemented from TObject.
Definition at line 1703 of file TColor.cxx.
|
inherited |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
Definition at line 1160 of file TObject.cxx.
|
virtualinherited |
This method must be overridden to handle object notification (the base implementation is no-op).
Different objects in ROOT use the Notify method for different purposes, in coordination with other objects that call this method at the appropriate time.
For example, TLeaf uses it to load class information; TBranchRef to load contents of referenced branches TBranchRef; most notably, based on Notify, TChain implements a callback mechanism to inform interested parties when it switches to a new sub-tree.
Reimplemented in TMessageHandler, TNotifyLink< Type >, TNotifyLink< RNoCleanupNotifierHelper >, TNotifyLink< ROOT::Detail::TBranchProxy >, TNotifyLink< TTreeReader >, TFileHandler, TSignalHandler, TStdExceptionHandler, TProcessEventTimer, TTimer, TIdleTimer, TSingleShotCleaner, TCollection, TRefTable, TBrowserTimer, TInterruptHandler, TTermInputHandler, TThreadTimer, TGLRedrawTimer, TViewTimer, TGContainerKeyboardTimer, TGContainerScrollTimer, TGInputHandler, TViewUpdateTimer, TPopupDelayTimer, TRepeatTimer, TSBRepeatTimer, TGTextEditHist, TInsCharCom, TDelCharCom, TBreakLineCom, TInsTextCom, TDelTextCom, TBlinkTimer, TTipDelayTimer, TGuiBldDragManagerRepeatTimer, TARInterruptHandler, TASLogHandler, TASInterruptHandler, TASSigPipeHandler, TASInputHandler, TSocketHandler, TTimeOutTimer, TBranchElement, TBranchRef, TLeafObject, TSelector, TTree, TSelectorDraw, TSelectorEntries, TTreeFormula, TTreeFormulaManager, TTreeReader, h1analysis, h1analysisTreeReader, and TSysEvtHandler.
Definition at line 618 of file TObject.cxx.
Static method that given a color index number, returns the corresponding pixel value.
This pixel value can be used in the GUI classes. This call does not work in batch mode since it needs to communicate with the graphics system.
Definition at line 2445 of file TColor.cxx.
|
inherited |
Use this method to declare a method obsolete.
Specify as of which version the method is obsolete and as from which version it will be removed.
Definition at line 1169 of file TObject.cxx.
|
inherited |
Operator delete for sized deallocation.
Definition at line 1234 of file TObject.cxx.
|
inherited |
Operator delete.
Definition at line 1212 of file TObject.cxx.
|
inherited |
Only called by placement new when throwing an exception.
Definition at line 1266 of file TObject.cxx.
|
inherited |
Operator delete [] for sized deallocation.
Definition at line 1245 of file TObject.cxx.
|
inherited |
Operator delete [].
Definition at line 1223 of file TObject.cxx.
|
inherited |
Only called by placement new[] when throwing an exception.
Definition at line 1274 of file TObject.cxx.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Definition at line 1160 of file TColor.cxx.
|
virtualinherited |
This method must be overridden if a class wants to paint itself.
The difference between Paint() and Draw() is that when a object draws itself it is added to the display list of the pad in which it is drawn (and automatically redrawn whenever the pad is redrawn). While paint just draws the object without adding it to the pad display list.
Reimplemented in TPie, TSQLFile, TXMLFile, ROOT::RGeoPainter, TGaxis, TGraph, TGraphTime, THStack, TMultiGraph, TScatter, TScatter2D, TTreePerfStats, ROOT::Experimental::RTreeMapPainter, TEfficiency, TRatioPlot, TGeoBoolNode, TGeoUnion, TGeoIntersection, TGeoSubtraction, TMarker3DBox, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TGraph2DPainter, TSpectrum2Painter, TFileDrawMap, TDirectory, TExec, TMacro, TStyle, TBits, TCollection, TGeoNode, TGeoPhysicalNode, TGeoShape, TGeoVolume, TGeoOverlap, TGeoPainter, TGeoTrack, TGeoVGShape, TASImage, TASPaletteEditor::PaintPalette, TASPaletteEditor::LimitLine, TAnnotation, TButton, TCanvas, TClassTree, TColorWheel, TPad, TArrow, TBox, TCrown, TDiamond, TEllipse, TFrame, TLatex, TLegend, TLine, TMarker, TMathText, TPave, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPolyLine, TText, TWbox, TGraphEdge, TGraphNode, TEveArrow, TEveCaloViz, TEveDigitSet, TEveGeoTopNode, TEveGeoShape, TEvePlot3D, TEvePointSet, TEveProjectionAxes, TEveScene, TEveShape, TEveStraightLineSet, TEveText, TEveTriangleSet, TAxis3D, TNode, TNodeDiv, TPolyLine3D, TPolyMarker3D, TShape, TF1, TF2, TF3, TGraph2D, TH1, TPolyMarker, TSpline, THistPainter, TPaletteAxis, TFile, TGenerator, TParticle, TPrimary, TParallelCoordVar, TVirtualPad, TVirtualGeoPainter, TVirtualGeoTrack, TVirtualHistPainter, TParallelCoordRange, TSpider, TGraphPolargram, and TParallelCoord.
Definition at line 631 of file TObject.cxx.
Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet.
The r,g,b triplet will be [0,1].
Definition at line 2506 of file TColor.cxx.
Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to r,g,b triplet.
The r,g,b triplet will be [0,255].
Definition at line 2521 of file TColor.cxx.
Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::GetPixel()) to a hexadecimal string.
This string can be directly passed to, for example, TGClient::GetColorByName(). String will be reused so copy immediately if needed.
Definition at line 2542 of file TColor.cxx.
|
virtualinherited |
Pop on object drawn in a pad to the top of the display list.
I.e. it will be drawn last and on top of all other primitives.
Reimplemented in TPad, TFrame, and TVirtualPad.
Definition at line 640 of file TObject.cxx.
|
overridevirtual |
Dump this color with its attributes.
Reimplemented from TObject.
Definition at line 1712 of file TColor.cxx.
Read contents of object with specified name from the current directory.
First the key with the given name is searched in the current directory, next the key buffer is deserialized into the object. The object must have been created before via the default constructor. See TObject::Write().
Reimplemented in TKeyXML, TBuffer, TKey, and TKeySQL.
Definition at line 673 of file TObject.cxx.
|
virtualinherited |
Recursively remove this object from a list.
Typically implemented by classes that can contain multiple references to a same object.
Reimplemented in THistPainter, TCling, TDirectory, TFolder, TProcessID, TROOT, TCollection, THashList, TList, TObjArray, TBrowser, TObjectSpy, TObjectRefSpy, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, ROOT::Internal::TCheckHashRecursiveRemoveConsistency, TViewPubDataMembers, TViewPubFunctions, TDialogCanvas, TInspectCanvas, TPad, TLegend, TGeometry, TNode, ROOT::RBrowserDataCleanup, TFitEditor, TGedEditor, TH1Editor, TH2Editor, TGFileBrowser, TRootBrowser, TRootBrowserLite, TRootContextMenu, TRootBrowserHistory, TEfficiency, TGraph, TGraph2D, TH1, THStack, TMultiGraph, TFileMerger, RooAbsCollection, RooAbsData, RooLinkedList, RooMCStudy, RooWorkspace, TChain, TFriendElement, TTree, TTreePlayer, and TVirtualPad.
Definition at line 684 of file TObject.cxx.
|
static |
Static method to compute HLS from RGB.
The r,g,b triplet is between [0,1], hue is between [0,360], light and satur are [0,1].
Definition at line 1721 of file TColor.cxx.
Static method to compute HLS from RGB.
The r,g,b triplet is between [0,255], hue, light and satur are between [0,255].
Definition at line 1811 of file TColor.cxx.
|
static |
Static method to compute HSV from RGB.
Definition at line 1776 of file TColor.cxx.
Convert r,g,b to graphics system dependent pixel value.
The r,g,b triplet must be [0,1].
Definition at line 2461 of file TColor.cxx.
Convert r,g,b to graphics system dependent pixel value.
The r,g,b triplet must be [0,255].
Definition at line 2483 of file TColor.cxx.
Save this object in the file specified by filename.
otherwise the object is written to filename as a CINT/C++ script. The C++ code to rebuild this object is generated via SavePrimitive(). The "option" parameter is passed to SavePrimitive. By default it is an empty string. It can be used to specify the Draw option in the code generated by SavePrimitive.
The function is available via the object context menu.
Reimplemented in TSpline, TFolder, TGeoVolume, TClassTree, TPad, TPaveClass, TGObject, TSpline3, TSpline5, ROOT::Experimental::XRooFit::xRooNode, TTreePerfStats, TVirtualPad, TGraph, and TH1.
Definition at line 708 of file TObject.cxx.
Save a color with index > 228 as a C++ statement(s) on output stream out.
Return kFALSE if color not saved in the output stream Consider use of SavePrimitiveColor() method instead
Definition at line 2579 of file TColor.cxx.
|
static |
Store current palette in the output macro.
Definition at line 3649 of file TColor.cxx.
|
virtualinherited |
Save a primitive as a C++ statement(s) on output stream "out".
Reimplemented in TGeoTessellated, TGraphEdge, TGraphNode, TGeoIdentity, TStyle, TCurlyArc, TCurlyLine, TGedMarkerSelect, TGedPatternSelect, TGColorSelect, TGFont, TGVerticalLayout, TGHorizontalLayout, TGRowLayout, TGColumnLayout, TGMatrixLayout, TGTileLayout, TGListLayout, TGListDetailsLayout, TGTextLBEntry, TGNumberEntryField, TGNumberEntry, TGTableLayoutHints, TGTableLayout, TGTextEdit, TGTextView, TGXYLayoutHints, TGXYLayout, TRootContainer, TGHtml, TEfficiency, TExec, TMacro, TGeoArb8, TGeoTrap, TGeoGtra, TGeoBBox, TGeoBoolNode, TGeoUnion, TGeoIntersection, TGeoSubtraction, TGeoCompositeShape, TGeoCone, TGeoConeSeg, TGeoElementRN, TGeoDecayChannel, TGeoEltu, TGeoHalfSpace, TGeoHype, TGeoMaterial, TGeoMixture, TGeoTranslation, TGeoRotation, TGeoCombiTrans, TGeoHMatrix, TGeoMedium, TGeoPara, TGeoParaboloid, TGeoPatternX, TGeoPatternY, TGeoPatternZ, TGeoPatternParaX, TGeoPatternParaY, TGeoPatternParaZ, TGeoPatternTrapZ, TGeoPatternCylR, TGeoPatternCylPhi, TGeoPatternSphR, TGeoPatternSphTheta, TGeoPatternSphPhi, TGeoPcon, TGeoPgon, TGeoScaledShape, TGeoShapeAssembly, TGeoSphere, TGeoTorus, TGeoTrd1, TGeoTrd2, TGeoTube, TGeoTubeSeg, TGeoCtub, TGeoVolume, TGeoXtru, TASImage, TAnnotation, TButton, TCanvas, TGroupButton, TPad, TPaveClass, TSlider, TSliderBox, TArc, TArrow, TBox, TCrown, TCutG, TDiamond, TEllipse, TFrame, TGaxis, TGraphPolar, TGraphPolargram, TLatex, TLegend, TLine, TMarker, TMathText, TPave, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPolyLine, TText, TWbox, TGraphStruct, TAxis3D, THelix, TMarker3DBox, TPolyLine3D, TPolyMarker3D, TGHorizontal3DLine, TGVertical3DLine, TGButton, TGTextButton, TGPictureButton, TGCheckButton, TGRadioButton, TGButtonGroup, TGVButtonGroup, TGHButtonGroup, TGContainer, TGCanvas, TGComboBox, TGLineStyleComboBox, TGLineWidthComboBox, TGDockableFrame, TGDoubleVSlider, TGDoubleHSlider, TGFrame, TGCompositeFrame, TGVerticalFrame, TGHorizontalFrame, TGMainFrame, TGTransientFrame, TGGroupFrame, TGFSComboBox, TGFileContainer, TGGC, TGIcon, TGLabel, TGLayoutHints, TGListBox, TGListTree, TGListView, TGLVContainer, TGMdiFrame, TGMdiMainFrame, TGMdiMenuBar, TGPopupMenu, TGMenuTitle, TGMenuBar, TGProgressBar, TGHProgressBar, TGVProgressBar, TGHScrollBar, TGVScrollBar, TGShapedFrame, TGShutterItem, TGShutter, TGVSlider, TGHSlider, TGSplitFrame, TGVSplitter, TGHSplitter, TGVFileSplitter, TGStatusBar, TGTabLayout, TGTab, TGTextEntry, TGToolBar, TGTripleVSlider, TGTripleHSlider, TRootEmbeddedCanvas, TF1, TF12, TF2, TF3, TGraph, TGraph2D, TGraph2DAsymmErrors, TGraph2DErrors, TGraphAsymmErrors, TGraphBentErrors, TGraphErrors, TGraphMultiErrors, TH1, TH2Poly, THStack, TMultiGraph, TPolyMarker, TProfile, TProfile2D, TProfile3D, TScatter, TScatter2D, TSpline3, TSpline5, TPaletteAxis, TChain, TTreePerfStats, TParallelCoord, TParallelCoordVar, TPie, and TPieSlice.
Definition at line 858 of file TObject.cxx.
Convert color in C++ statement which can be used in SetColor directives Produced statement either includes TColor::GetColor() invocation or just plain color index as integer Method should be used is SavePrimitive methods for color storage.
Definition at line 2556 of file TColor.cxx.
|
staticprotectedinherited |
Save object constructor in the output stream "out".
Can be used as first statement when implementing SavePrimitive() method for the object
Definition at line 777 of file TObject.cxx.
|
staticprotectedinherited |
Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.
Definition at line 845 of file TObject.cxx.
|
protectedinherited |
Save object name and title into the output stream "out".
Definition at line 135 of file TNamed.cxx.
|
staticprotectedinherited |
Save array in the output stream "out" as vector.
Create unique variable name based on prefix value Returns name of vector which can be used in constructor or in other places of C++ code If flag === kTRUE, just add empty line If flag === 111, check if array is empty and return nullptr or <vectorname>.data()
Definition at line 796 of file TObject.cxx.
Set or unset the user status bits as specified in f.
Definition at line 888 of file TObject.cxx.
|
static |
This method specifies the color threshold used by GetColor to retrieve a color.
| [in] | t | Color threshold. By default is equal to 1./31. or 1./255. depending on the number of available color planes. |
When GetColor is called, it scans the defined colors and compare them to the requested color. If the Red Green and Blue values passed to GetColor are Rr Gr Br and Rd Gd Bd the values of a defined color. These two colors are considered equal if (abs(Rr-Rd) < t & abs(Br-Bd) < t & abs(Br-Bd) < t). If this test passes, the color defined by Rd Gd Bd is returned by GetColor.
To make sure GetColor will return a color having exactly the requested R G B values it is enough to specify a nul :
To reset the color threshold to its default value it is enough to do:
Definition at line 1995 of file TColor.cxx.
|
virtualinherited |
Set drawing option for object.
This option only affects the drawing style and is stored in the option field of the TObjOptLink supporting a TPad's primitive list (TList). Note that it does not make sense to call object.SetDrawOption(option) before having called object.Draw().
Reimplemented in TSystemDirectory, TSystemFile, TPad, TGFrame, TAxis, TBrowser, TPaveStats, TGedFrame, TRootBrowserLite, and RooPlot.
Definition at line 871 of file TObject.cxx.
|
staticinherited |
Set destructor only flag.
Definition at line 1204 of file TObject.cxx.
Set whether all colors should return grayscale values.
Definition at line 2604 of file TColor.cxx.
|
overridevirtual |
Set the color name and change also the name of the "dark" and "bright" associated colors if they exist.
Reimplemented from TNamed.
Definition at line 1831 of file TColor.cxx.
Set all the TNamed parameters (name and title).
WARNING: if the name is changed and the object is a member of a THashTable or THashList container the container must be Rehash()'ed after SetName(). For example the list of objects in the current directory is a THashList.
Reimplemented in TContextMenu, TNode, TGraph2D, TH1, RooAbsArg, RooAbsData, RooDataHist, RooDataSet, RooFitResult, RooPlot, and TGraph.
Definition at line 163 of file TNamed.cxx.
|
staticinherited |
Turn on/off tracking of objects in the TObjectTable.
Definition at line 1188 of file TObject.cxx.
Static function.
The color palette is used by the histogram classes (see TH1::Draw options). For example TH1::Draw("col") draws a 2-D histogram with cells represented by a box filled with a color CI function of the cell content. if the cell content is N, the color CI used will be the color number in colors[N],etc. If the maximum cell content is > ncolors, all cell contents are scaled to ncolors.
if ncolors <= 0 a default palette (see below) of 50 colors is defined. The colors defined in this palette are OK for coloring pads, labels.
if ncolors == 1 && colors == 0, a Rainbow Color map is created with 50 colors. It is kept for backward compatibility. Better palettes like kBird are recommended.
High quality predefined palettes with 255 colors are available when colors == 0. The following value of ncolors give access to:
These palettes can also be accessed by names:
For example:
Set the current palette as "Bird" (number 57).
The color numbers specified in the palette can be viewed by selecting the item "colors" in the "VIEW" menu of the canvas toolbar. The color parameters can be changed via TColor::SetRGB.
Note that when drawing a 2D histogram h2 with the option "COL" or "COLZ" or with any "CONT" options using the color map, the number of colors used is defined by the number of contours n specified with: h2->SetContour(n)
Definition at line 2934 of file TColor.cxx.
Initialize this color and its "dark" and "bright" associated colors.
Definition at line 1855 of file TColor.cxx.
|
virtualinherited |
Set the title of the TNamed.
Reimplemented in ROOT::TSchemaRule::TSources, TParallelCoordVar, RooPlot, TSystemDirectory, TSystemFile, TEfficiency, TH1, THnBase, ROOT::Experimental::XRooFit::xRooNode, Axis2, TASImage, TF1, TGraph, and TGraph2D.
Definition at line 173 of file TNamed.cxx.
|
virtualinherited |
Set the unique object id.
Definition at line 899 of file TObject.cxx.
|
virtualinherited |
Return size of the TNamed part of the TObject.
Reimplemented in TSQLFile, TXMLFile, TDirectory, TDirectoryFile, TFile, and TKey.
Definition at line 182 of file TNamed.cxx.
|
overridevirtual |
Stream an object of class TObject.
Reimplemented from TObject.
Reimplemented in TColorGradient, TLinearGradient, and TRadialGradient.
|
inline |
Issue system error message.
Use "location" to specify the method where the system error occurred. Accepts standard printf formatting arguments.
Definition at line 1112 of file TObject.cxx.
|
inlineinherited |
|
virtualinherited |
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
Reimplemented in TCanvas, TPad, TFrame, TPaveStats, TPaveText, TAxis3D, TGraph, TH1, and TTree.
Definition at line 909 of file TObject.cxx.
Issue warning message.
Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.
Definition at line 1084 of file TObject.cxx.
|
virtualinherited |
Write this object to the current directory.
For more see the const version of this method.
Reimplemented in TSQLFile, TXMLFile, TDirectory, TBuffer, ROOT::TBufferMergerFile, TDirectoryFile, TFile, TParallelMergingFile, TCollection, TMap, and TTree.
Definition at line 989 of file TObject.cxx.
|
virtualinherited |
Write this object to the current directory.
The data structure corresponding to this object is serialized. The corresponding buffer is written to the current directory with an associated key with name "name".
Writing an object to a file involves the following steps:
Bufsize can be given to force a given buffer size to write this object. By default, the buffersize will be taken from the average buffer size of all objects written to the current file so far.
If a name is specified, it will be the name of the key. If name is not given, the name of the key will be the name as returned by GetName().
The option can be a combination of: kSingleKey, kOverwrite or kWriteDelete Using the kOverwrite option a previous key with the same name is overwritten. The previous key is deleted before writing the new object. Using the kWriteDelete option a previous key with the same name is deleted only after the new object has been written. This option is safer than kOverwrite but it is slower. NOTE: Neither kOverwrite nor kWriteDelete reduces the size of a TFile– the space is simply freed up to be overwritten; in the case of a TTree, it is more complicated. If one opens a TTree, appends some entries, then writes it out, the behaviour is effectively the same. If, however, one creates a new TTree and writes it out in this way, only the metadata is replaced, effectively making the old data invisible without deleting it. TTree::Delete() can be used to mark all disk space occupied by a TTree as free before overwriting its metadata this way. The kSingleKey option is only used by TCollection::Write() to write a container with a single key instead of each object in the container with its own key.
An object is read from the file into memory via TKey::Read() or via TObject::Read().
The function returns the total number of bytes written to the file. It returns 0 if the object cannot be written.
Reimplemented in TSQLFile, TXMLFile, TDirectory, TBuffer, TDirectoryFile, TFile, TParallelMergingFile, TCollection, TMap, and TTree.
Definition at line 964 of file TObject.cxx.
|
privateinherited |
|
staticprivateinherited |
if true keep track of objects in TObjectTable
|
privateinherited |