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;}
80 void AddPrimitivePostamble();
88 virtual G4bool ExtraPOProcessing
89 (
const G4Visible&,
size_t ) {
return true;}
90 virtual G4bool ExtraTOProcessing
91 (
const G4Visible&,
size_t ) {
return true;}
93 static G4int fSceneIdCount;
95 static G4int fDisplayListId;
96 static G4bool fMemoryForDisplayLists;
97 static G4int fDisplayListLimit;
107 G4TextPlus(
const G4Text& text): fG4Text(text), fProcessing2D(false) {}
118 PO& operator= (
const PO&);
119 G4int fDisplayListId;
123 G4TextPlus* fpG4TextPlus;
126 std::vector<PO> fPOList;
134 TO& operator= (
const TO&);
135 G4int fDisplayListId;
140 G4TextPlus* fpG4TextPlus;
143 std::vector<TO> fTOList;
147 std::map <const G4VSolid*, G4int, std::less <const G4VSolid*> > fSolidMap;
150 bool AddPrimitivePreambleInternal(
const G4Visible& visible,
bool isMarker,
bool isPolyline);
system("rm -rf microbeam.root")