This example display only texts in web browser.
const char *blurbs[] = {"Love", "Peace", "ROOT", "Code", "Courage", "Quiche"};
const int n_blurbs = sizeof(blurbs) / sizeof(char *);
const char *
fonts[] = {
"comic",
"comicbd",
"verdana",
"BlackChancery",
"georgia",
"georgiai"};
const int n_fonts =
sizeof(
fonts) /
sizeof(
char *);
const char *blurbs2[] = {"Čüšék! Šèžëçàgïlá", "Αβρασαξ", "πφηθωμβτ"};
const int n_blurbs2 = sizeof(blurbs2) / sizeof(char *);
const char *fonts2[] = {"LiberationMono-Regular", "LiberationSerif-Regular"};
const int n_fonts2 = sizeof(fonts2) / sizeof(char *);
{
const double lim = 300;
for (int i = 0; i < N_Texts; i++) {
std::string word, font;
word = blurbs[
r.Integer(n_blurbs)];
font =
fonts[
r.Integer(n_fonts)];
} else {
word = blurbs2[
r.Integer(n_blurbs2)];
font = fonts2[
r.Integer(n_fonts2)];
}
auto name_text =
Form(
"%s_%d", word.data(), i);
text->SetText(name_text);
if (mode == 0) {
auto &t =
text->RefMainTrans();
t.SetRotByAngles(
r.Uniform(-pi, pi),
r.Uniform(-pi, pi),
r.Uniform(-pi, pi));
t.SetPos(
r.Uniform(-lim, lim),
r.Uniform(-lim, lim),
r.Uniform(-lim, lim));
text->SetFontSize(
r.Uniform(0.01 * lim, 0.2 * lim));
} else {
text->SetFontSize(
r.Uniform(0.001, 0.05));
}
TColor::GetColor((
float)
r.Uniform(0, 0.5), (
float)
r.Uniform(0, 0.5), (
float)
r.Uniform(0, 0.5)));
TColor::GetColor((
float)
r.Uniform(0, 0.2), (
float)
r.Uniform(0, 0.2), (
float)
r.Uniform(0, 0.2)));
TColor::GetColor((
float)
r.Uniform(0.7, 1.0), (
float)
r.Uniform(0.7, 1.0), (
float)
r.Uniform(0.7, 1.0)));
text->SetDrawFrame(
true);
}
}
{
for (int i = 0; i < N_Jets; i++) {
jet->AddEllipticCone(
r.Uniform(-0.5, 0.5),
r.Uniform(0,
TMath::TwoPi()), 0.1, 0.2);
jetHolder->AddElement(jet);
}
}
void texts()
{
eveMng->AllowMultipleRemoteConnections(
false,
false);
std::string rf_dir =
gSystem->ExpandPathName(
"${ROOTSYS}/fonts/");
for (int i = 0; i < n_fonts; ++i) {
}
for (int i = 0; i < n_fonts2; ++i) {
}
makeTexts(100, textHolder);
eveMng->GetEventScene()->AddElement(textHolder);
eveMng->GetEventScene()->AddElement(jetHolder);
}
double Double_t
Double 8 bytes.
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
Base class for REveUtil visualization elements, providing hierarchy management, rendering control and...
Draws a jet cone with leading particle is specified in (eta,phi) and cone radius is given.
Eve representation of a GL view.
virtual void AddElement(REveElement *el)
Add el to the list of children.
static REveManager * Create()
If global REveManager* REX::gEve is not set initialize it.
void SetIsOverlay(bool x)
static bool AssertSdfFont(std::string_view font_name, std::string_view ttf_font)
Check if font exists, otherwise try to create it.
static Int_t GetColor(const char *hexcolor)
This is the base class for the ROOT Random number generators.
ROOT::Experimental::REveManager * eveMng
void makeJets(int N_Jets, REveElement *jetHolder)
Namespace for ROOT features in testing.
REveVectorT< Float_t > REveVector
constexpr Double_t TwoPi()