File indexing completed on 2025-11-20 09:43:24
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035 #ifndef G4VGRAPHICSSYSTEM_HH
0036 #define G4VGRAPHICSSYSTEM_HH
0037
0038 #include "globals.hh"
0039
0040 #include <vector>
0041
0042 class G4VSceneHandler;
0043 class G4VViewer;
0044
0045 class G4VGraphicsSystem {
0046
0047 public:
0048
0049 enum Functionality {
0050 noFunctionality
0051 ,nonEuclidian
0052 ,twoD
0053 ,twoDStore
0054 ,threeD
0055 ,threeDInteractive
0056 ,virtualReality
0057 ,fileWriter
0058 };
0059
0060 G4VGraphicsSystem (const G4String& name,
0061 Functionality f);
0062
0063 G4VGraphicsSystem (const G4String& name,
0064 const G4String& nickname,
0065 Functionality f);
0066
0067 G4VGraphicsSystem (const G4String& name,
0068 const G4String& nickname,
0069 const G4String& description,
0070 Functionality f);
0071
0072 virtual ~G4VGraphicsSystem ();
0073
0074 virtual G4VSceneHandler* CreateSceneHandler (const G4String& name) = 0;
0075
0076 virtual G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name) = 0;
0077
0078
0079 const G4String& GetName () const {return fName;}
0080 const G4String& GetNickname () const {return fNicknames[0];}
0081 const std::vector<G4String>& GetNicknames () const {return fNicknames;}
0082 const G4String& GetDescription () const {return fDescription;}
0083 Functionality GetFunctionality () const {return fFunctionality;}
0084 virtual G4bool IsUISessionCompatible () const;
0085 void AddNickname (const G4String& nickname) {fNicknames.push_back(nickname);}
0086
0087 protected:
0088 G4String fName;
0089 std::vector<G4String> fNicknames;
0090 G4String fDescription;
0091 Functionality fFunctionality;
0092 };
0093
0094 std::ostream& operator << (std::ostream& os, const G4VGraphicsSystem& gs);
0095
0096 #endif