Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-12 09:27:27

0001 // @(#)root/geom:$Id$
0002 // Author: Mihaela Gheata   30/03/16
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 #ifndef ROOT_TVirtualGeoConverter
0012 #define ROOT_TVirtualGeoConverter
0013 
0014 #include "TObject.h"
0015 #include "TGeoShape.h"
0016 
0017 class TGeoManager;
0018 
0019 class TVirtualGeoConverter : public TObject {
0020 
0021 protected:
0022    static TVirtualGeoConverter *fgGeoConverter; // Pointer to geometry converter
0023    TGeoManager *fGeom;                          // Pointer to geometry manager
0024 public:
0025    TVirtualGeoConverter(TGeoManager *geom);
0026    ~TVirtualGeoConverter() override;
0027 
0028    virtual void ConvertGeometry() {}
0029    virtual void SelectShapeType(TGeoShape::EShapeType) {}
0030    virtual void ExcludeShapeType(TGeoShape::EShapeType) {}
0031    static TVirtualGeoConverter *Instance(TGeoManager *geom = nullptr);
0032    static void SetConverter(const TVirtualGeoConverter *conv);
0033    void SetGeometry(TGeoManager *geom) { fGeom = geom; }
0034 
0035    ClassDefOverride(TVirtualGeoConverter, 0) // Abstract interface for geometry converters
0036 };
0037 
0038 #endif