/// \file
/// \ingroup tutorial_geom
/// Creates and runs a simple iterator plugin connected to TGeoPainter iterator.
///
/// It demonstrates the possibility to dynamically change the color of drawn
/// volumes according some arbitrary criteria *WITHOUT* changing the color of the
/// same volume drawn on branches that do not match the criteria.
///
/// ~~~{.cpp}
/// To run:
/// root[0]   .L iterplugin.cxx+
/// root[1]   .x runplugin.C
/// root[2]   select(2,kMagenta);
/// root[3]   select(3,kBlue)
/// ...
/// ~~~
///
/// \macro_code
///
/// \author Andrei Gheata

#include "iterplugin.cxx"

iterplugin *plugin = nullptr;

void runplugin()
{

   TString tutdir = gROOT->GetTutorialDir();
   gROOT->ProcessLine(".x " + tutdir + "/visualisation/geom/rootgeom.C");
   plugin = new iterplugin();
   gGeoManager->GetGeomPainter()->SetIteratorPlugin(plugin);
}

void select(Int_t replica = 1, Int_t color = kGreen)
{
   // Change current color. Replica range: 1-4
   plugin->Select(replica, color);
   gGeoManager->GetGeomPainter()->ModifiedPad();
}
