ROOT logo
#ifndef HGEOMBUILDER_H
#define HGEOMBUILDER_H

#include "TNamed.h"

class HGeomSet;
class HGeomNode;
class HGeomMedium;
class HGeomHit;
class HGeomRotation;
class HGeomMdcWire;

class HGeomBuilder : public TNamed {
protected:
  Int_t nRot;  // number of defined rotations
  Int_t nMed;  // number of defined media 

  HGeomBuilder();
  HGeomBuilder(const char* name,const char* title);
public:
  virtual ~HGeomBuilder() {}
  virtual Bool_t createNode(HGeomNode*)=0;
  virtual Int_t createMedium(HGeomMedium*)=0;
  virtual Bool_t createHit(HGeomHit*) {return kTRUE;}
  virtual void finalize() {}

  virtual Bool_t createVolume(HGeomMdcWire*, Int_t)             {return kFALSE;}
  virtual Int_t  createRotation(HGeomRotation*)                 {return -1;}
  virtual Bool_t positionNode(HGeomMdcWire*, HGeomNode*, Int_t) {return kFALSE;}
  virtual void   fillMdcCommonBlock(HGeomNode*)                 {}

  ClassDef(HGeomBuilder,0) // abstract base class for geometry builders
};

#endif /* !HGEOMBUILDER_H */
 hgeombuilder.h:1
 hgeombuilder.h:2
 hgeombuilder.h:3
 hgeombuilder.h:4
 hgeombuilder.h:5
 hgeombuilder.h:6
 hgeombuilder.h:7
 hgeombuilder.h:8
 hgeombuilder.h:9
 hgeombuilder.h:10
 hgeombuilder.h:11
 hgeombuilder.h:12
 hgeombuilder.h:13
 hgeombuilder.h:14
 hgeombuilder.h:15
 hgeombuilder.h:16
 hgeombuilder.h:17
 hgeombuilder.h:18
 hgeombuilder.h:19
 hgeombuilder.h:20
 hgeombuilder.h:21
 hgeombuilder.h:22
 hgeombuilder.h:23
 hgeombuilder.h:24
 hgeombuilder.h:25
 hgeombuilder.h:26
 hgeombuilder.h:27
 hgeombuilder.h:28
 hgeombuilder.h:29
 hgeombuilder.h:30
 hgeombuilder.h:31
 hgeombuilder.h:32
 hgeombuilder.h:33
 hgeombuilder.h:34
 hgeombuilder.h:35