33#ifdef G4VIS_BUILD_OPENGL_DRIVER
35#ifndef G4OPENGLSTOREDSCENEHANDLER_HH
36#define G4OPENGLSTOREDSCENEHANDLER_HH
46class 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&);
67 void AddPrimitive (
const G4NURBS&);
69 void ClearTransientStore ();
71 static G4int GetDisplayListLimit() {
return fDisplayListLimit;}
72 static void SetDisplayListLimit(
G4int lim) {fDisplayListLimit = lim;}
79 void AddPrimitivePostamble();
87 virtual G4bool ExtraPOProcessing
88 (
const G4Visible&,
size_t ) {
return true;}
89 virtual G4bool ExtraTOProcessing
90 (
const G4Visible&,
size_t ) {
return true;}
92 static G4int fSceneIdCount;
94 static G4int fDisplayListId;
95 static G4bool fMemoryForDisplayLists;
96 static G4int fDisplayListLimit;
106 G4TextPlus(
const G4Text& text): fG4Text(text), fProcessing2D(false) {}
117 PO& operator= (
const PO&);
118 G4int fDisplayListId;
122 G4TextPlus* fpG4TextPlus;
125 std::vector<PO> fPOList;
133 TO& operator= (
const TO&);
134 G4int fDisplayListId;
139 G4TextPlus* fpG4TextPlus;
142 std::vector<TO> fTOList;
146 std::map <const G4VSolid*, G4int, std::less <const G4VSolid*> > fSolidMap;