00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef G4VGRAPHICSSYSTEM_HH
00037 #define G4VGRAPHICSSYSTEM_HH
00038
00039 #include "globals.hh"
00040
00041 class G4VSceneHandler;
00042 class G4VViewer;
00043
00044 class G4VGraphicsSystem {
00045
00046 public:
00047
00048 enum Functionality {
00049 noFunctionality,
00050 nonEuclidian,
00051 twoD,
00052 twoDStore,
00053 threeD,
00054 threeDInteractive,
00055 virtualReality
00056 };
00057
00058 G4VGraphicsSystem (const G4String& name,
00059 Functionality f);
00060
00061 G4VGraphicsSystem (const G4String& name,
00062 const G4String& nickname,
00063 Functionality f);
00064
00065 G4VGraphicsSystem (const G4String& name,
00066 const G4String& nickname,
00067 const G4String& description,
00068 Functionality f);
00069
00070 virtual ~G4VGraphicsSystem ();
00071
00072 virtual G4VSceneHandler* CreateSceneHandler (const G4String& name) = 0;
00073
00074 virtual G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name) = 0;
00075
00076
00077 const G4String& GetName () const;
00078 const G4String& GetNickname () const;
00079 const G4String& GetDescription () const;
00080 Functionality GetFunctionality () const;
00081 virtual G4bool IsUISessionCompatible () const;
00082 void SetName (const G4String&);
00083 void SetNickname (const G4String&);
00084 void SetDescription (const G4String&);
00085 void SetFunctionality (Functionality);
00086
00087 protected:
00088 G4String fName;
00089 G4String fNickname;
00090 G4String fDescription;
00091 Functionality fFunctionality;
00092 };
00093
00094 std::ostream& operator << (std::ostream& os, const G4VGraphicsSystem& gs);
00095
00096 #include "G4VGraphicsSystem.icc"
00097
00098 #endif