/usr/include/root/TAttImage.h is in libroot-graf2d-graf-dev 5.34.14-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | // @(#)root/graf:$Id$
// Author: Reiner Rohlfs 24/03/02
/*************************************************************************
* Copyright (C) 2001-2002, Rene Brun, Fons Rademakers and Reiner Rohlfs *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TAttImage
#define ROOT_TAttImage
//////////////////////////////////////////////////////////////////////////
// //
// TAttImage //
// //
// Image attributes are: //
// Image Quality (see EImageQuality for the list of qualities) //
// Compression defines the compression rate of the color data in the //
// internal image structure. Speed and memory depends //
// on this rate, but not the image display itself //
// 0: no compression; 100: max compression //
// Radio Flag: kTRUE the x/y radio of the displayed image is always //
// identical to the original image //
// kFALSE the x and y size of the displayed image depends//
// on the size of the pad //
// Palette: Defines the conversion from a pixel value to the //
// screen color //
// //
// This class is used (in general by secondary inheritance) //
// by some other classes (image display). //
// //
// //
// TImagePalette //
// //
// A class to define a conversion from pixel values to pixel color. //
// A Palette is defined by some anchor points. Each anchor point has //
// a value between 0 and 1 and a color. An image has to be normalized //
// and the values between the anchor points are interpolated. //
// All member variables are public and can be directly manipulated. //
// In most cases the default operator will be used to create a //
// TImagePalette. In this case the member arrays have to be allocated //
// by an application and will be deleted in the destructor of this //
// class. //
// //
// //
// TPaletteEditor //
// //
// This class provides a way to edit the palette via a GUI. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_Riosfwd
#include "Riosfwd.h"
#endif
class TAttImage;
class TPaletteEditor {
protected:
TAttImage *fAttImage; // image attributes to be edited
public:
TPaletteEditor(TAttImage *attImage, UInt_t w, UInt_t h);
virtual ~TPaletteEditor() { }
virtual void CloseWindow();
ClassDef(TPaletteEditor, 0) // Base class for palette editor
};
class TImagePalette : public TObject {
public:
UInt_t fNumPoints; // number of anchor points
Double_t *fPoints; // [fNumPoints] value of each anchor point [0..1]
UShort_t *fColorRed; // [fNumPoints] red color at each anchor point
UShort_t *fColorGreen; // [fNumPoints] green color at each anchor point
UShort_t *fColorBlue; // [fNumPoints] blue color at each anchor point
UShort_t *fColorAlpha; // [fNumPoints] alpha at each anchor point
TImagePalette();
TImagePalette(const TImagePalette &palette);
TImagePalette(UInt_t numPoints);
TImagePalette(Int_t ncolors, Int_t *colors);
virtual ~TImagePalette();
virtual Int_t FindColor(UShort_t r, UShort_t g, UShort_t b);
virtual Int_t *GetRootColors();
TImagePalette &operator=(const TImagePalette &palette);
ClassDef(TImagePalette,1) // Color Palette for value -> color conversion
};
class TAttImage {
public:
// Defines level of output quality/speed ratio
enum EImageQuality {
kImgDefault = -1,
kImgPoor = 0,
kImgFast = 1,
kImgGood = 2,
kImgBest = 3
};
protected:
EImageQuality fImageQuality; // *OPTION={GetMethod="GetImageQuality";SetMethod="SetImageQuality";Items=(kImgDefault="Default",kImgPoor="Poor",kImgFast="Fast",kImgGood="Good",kImgBest="Best")}*
UInt_t fImageCompression; // compression [0 .. 100] 0: no compression
Bool_t fConstRatio; // keep aspect ratio of image on the screen
TImagePalette fPalette; // color palette for value -> color conversion
TPaletteEditor *fPaletteEditor; //! GUI to edit the color palette
Bool_t fPaletteEnabled; //! kTRUE - palette is drawn on the image
public:
TAttImage();
TAttImage(EImageQuality lquality, UInt_t lcompression, Bool_t constRatio);
virtual ~TAttImage();
void Copy(TAttImage &attline) const;
Bool_t GetConstRatio() const { return fConstRatio; }
UInt_t GetImageCompression() const { return fImageCompression; }
EImageQuality GetImageQuality() const { return fImageQuality; }
virtual const TImagePalette &GetPalette() const { return fPalette; }
virtual void ResetAttImage(Option_t *option="");
virtual void SaveImageAttributes(ostream &out, const char *name,
EImageQuality qualdef = kImgDefault,
UInt_t comprdef = 0,
Bool_t constRatiodef = kTRUE);
virtual void SetConstRatio(Bool_t constRatio = kTRUE); // *TOGGLE*
virtual void SetPaletteEnabled(Bool_t on = kTRUE) { fPaletteEnabled = on; }
virtual void SetImageCompression(UInt_t lcompression)
{ fImageCompression = (lcompression > 100) ? 100 : lcompression; } // *MENU*
virtual void SetImageQuality(EImageQuality lquality)
{ fImageQuality = lquality;} // *SUBMENU*
virtual void SetPalette(const TImagePalette *palette);
virtual void StartPaletteEditor(); // *MENU*
virtual void EditorClosed() { fPaletteEditor = 0; }
Bool_t IsPaletteEnabled() const { return fPaletteEnabled; }
ClassDef(TAttImage,1) //Image attributes
};
R__EXTERN TImagePalette *gHistImagePalette; // palette used in TH2::Draw("col")
R__EXTERN TImagePalette *gWebImagePalette; // 6x6x6 colors web palette
#endif
|