33 #ifdef G4VIS_BUILD_OPENGL_DRIVER
35 #ifndef G4OPENGLSTOREDSCENEHANDLER_HH
36 #define G4OPENGLSTOREDSCENEHANDLER_HH
46 class G4OpenGLStoredSceneHandler:
public G4OpenGLSceneHandler {
48 friend class G4OpenGLStoredViewer;
53 virtual ~G4OpenGLStoredSceneHandler ();
54 void BeginPrimitives (
const G4Transform3D& objectTransformation);
55 void EndPrimitives ();
56 void BeginPrimitives2D (
const G4Transform3D& objectTransformation);
57 void EndPrimitives2D ();
58 void BeginModeling ();
64 void AddPrimitive (
const G4Text&);
65 void AddPrimitive (
const G4Scale&);
68 void ClearTransientStore ();
70 static G4int GetDisplayListLimit() {
return fDisplayListLimit;}
71 static void SetDisplayListLimit(
G4int lim) {fDisplayListLimit = lim;}
78 void AddPrimitivePostamble();
86 virtual G4bool ExtraPOProcessing
87 (
const G4Visible&,
size_t ) {
return true;}
88 virtual G4bool ExtraTOProcessing
89 (
const G4Visible&,
size_t ) {
return true;}
91 static G4int fSceneIdCount;
93 static G4int fDisplayListId;
94 static G4bool fMemoryForDisplayLists;
95 static G4int fDisplayListLimit;
105 G4TextPlus(
const G4Text& text): fG4Text(text), fProcessing2D(false) {}
116 PO& operator= (
const PO&);
117 G4int fDisplayListId;
121 G4TextPlus* fpG4TextPlus;
124 std::vector<PO> fPOList;
132 TO& operator= (
const TO&);
133 G4int fDisplayListId;
138 G4TextPlus* fpG4TextPlus;
141 std::vector<TO> fTOList;
145 std::map <const G4VSolid*, G4int, std::less <const G4VSolid*> > fSolidMap;