00001 // $Header: /nfs/slac/g/glast/ground/cvs/gismo/gismo/Gismo.h,v 1.4 2001/01/23 03:41:32 burnett Exp $ 00002 // Author: Toby Burnett 00003 00004 #ifndef GISMO_H 00005 #define GISMO_H 00006 00007 // forward declarations 00008 class World; 00009 class Generator; 00010 class Medium; 00011 class Field; 00012 class Interactor; 00013 namespace gui {class DisplayControl;} 00014 00016 class Gismo { 00017 public: 00018 00025 Gismo(float size, Generator* gen , gui::DisplayControl* dcon); 00026 00028 Gismo& addMaterialPath(const char* path); 00029 00031 Gismo& setKEcutoff(float); 00033 00036 Gismo& setMaxStep(float); 00037 00039 00042 Gismo& addInteractor(Interactor*); 00043 00045 Gismo& setGenerator(Generator* gen); 00046 00048 Gismo& setField(Field* field); 00049 00050 00051 00053 void finishSetup(); 00054 00056 void generate(); 00057 00059 Generator* event()const; 00060 00061 00063 const char* eventTitle()const; 00064 00066 ~Gismo(); 00067 00068 static Gismo* instance(); 00069 private: 00070 static Gismo* s_instance; 00071 00072 World* m_world; 00073 Generator* m_generator; 00074 00075 class DisplayEvent; 00076 class PrintEvent; 00077 class PrintPDT; 00078 class PrintMaterials; 00079 }; 00080 #endif 00081
1.2.3 written by Dimitri van Heesch,
© 1997-2000