12 #ifndef ROOT7_REveGeomViewer 
   13 #define ROOT7_REveGeomViewer 
   23 namespace Experimental {
 
   28 class REveGeomViewer {
 
   30    friend class REveManager;
 
   34    TGeoManager *fGeoManager{
nullptr};        
 
   35    std::string fSelectedVolume;              
 
   36    REveGeomDescription fDesc;                
 
   37    bool fShowHierarchy{
true};                
 
   39    std::shared_ptr<RWebWindow> fWebWindow;   
 
   41    void WebWindowCallback(
unsigned connid, 
const std::string &arg);
 
   43    std::vector<int> GetStackFromJson(
const std::string &json, 
bool node_ids = 
false);
 
   45    void SendGeometry(
unsigned connid);
 
   49    REveGeomViewer(TGeoManager *mgr = 
nullptr, 
const std::string &volname = 
"");
 
   50    virtual ~REveGeomViewer();
 
   52    void SetGeometry(TGeoManager *mgr, 
const std::string &volname = 
"");
 
   54    void SelectVolume(
const std::string &volname);
 
   57    void SetLimits(
int nnodes = 5000, 
int nfaces = 100000)
 
   59       fDesc.SetMaxVisNodes(nnodes);
 
   60       fDesc.SetMaxVisFaces(nfaces);
 
   64    void SetVisLevel(
int lvl = 3)
 
   66       fDesc.SetVisLevel(lvl);
 
   70    void SetShowHierarchy(
bool on = 
true) { fShowHierarchy = on; }
 
   73    bool GetShowHierarchy()
 const { 
return fShowHierarchy; }
 
   75    void SetDrawOptions(
const std::string &opt);
 
   77    void Show(
const RWebDisplayArgs &args = 
"", 
bool always_start_new_browser = 
false);
 
   81    void SaveImage(
const std::string &fname = 
"geometry.png");