Hello ROOT team,
I have to fill EveShape with the color, but the color value is generated at run time and is coming as float value like 0.2 , 0.45, 0.48, 0.6 , 0.67 etc. As a result of float value i am not getting colored boxes,
It is possible to assign color based on RainBow color palette.
TEveShape::SetFillColor has a TColor as parameter. In your program you should build a TColor with the float (RGB) numbers you have and pass it to SetFillColor.
TColor::SetPalette(1, 0); // Spectrum palette
const Int_t nCol = TColor::GetNumberOfColors();
float min, max; // your range of values
// for each shape
shape->SetMainColor(TColor::GetColorPalette((shape_value - min)/(max-min) * nCol));
If you can get by with simple shapes supported by TEveQuadSet / TEveBoxSet … you can modify the visibility / mapping of the palette in the gui at runtime (see tutorials/eve quadset.C and boxset.C). This is meant for display of digis so it works with integers only and you’d have to scale up your values by 100.