Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
transp.C
Go to the documentation of this file.
1 /// \file
2 /// \ingroup tutorial_gl
3 /// This demo shows how to use transparency.
4 ///
5 /// \macro_image(nobatch)
6 /// \macro_code
7 ///
8 /// \author Timur Pocheptsov
9 
10 //Includes for ACLiC (cling does not need them).
11 #include "TCanvas.h"
12 #include "TColor.h"
13 #include "TError.h"
14 #include "TStyle.h"
15 #include "TH1F.h"
16 
17 //Aux. functions for tutorials/gl.
18 #include "customcolorgl.h"
19 
20 void transp()
21 {
22  //1. Try to find free indices for our custom colors.
23  //We can use hard-coded indices like 1001, 1002, 1003, ... but
24  //I prefer to find free indices in a ROOT's color table
25  //to avoid possible conflicts with other tutorials.
26  Int_t indices[2] = {};
27  if (ROOT::GLTutorials::FindFreeCustomColorIndices(indices) != 2) {
28  ::Error("transp", "failed to create new custom colors");
29  return;
30  }
31 
32  //2. Now that we have indices, create our custom colors.
33  const Int_t redIndex = indices[0], greeIndex = indices[1];
34 
35  new TColor(redIndex, 1., 0., 0., "red", 0.85);
36  new TColor(greeIndex, 0., 1., 0., "green", 0.5);
37 
38  gStyle->SetCanvasPreferGL(kTRUE);
39  TCanvas * const cnv = new TCanvas("trasnparency", "transparency demo", 600, 400);
40 
41  TH1F * const hist = new TH1F("a5", "b5", 10, -2., 3.);
42  TH1F * const hist2 = new TH1F("c6", "d6", 10, -3., 3.);
43  hist->FillRandom("landau", 100000);
44  hist2->FillRandom("gaus", 100000);
45 
46  hist->SetFillColor(redIndex);
47  hist2->SetFillColor(greeIndex);
48 
49  cnv->cd();
50  hist2->Draw();
51  hist->Draw("SAME");
52 }