28#ifndef G4OPENINVENTORVIEWER_HH
29#define G4OPENINVENTORVIEWER_HH
31#ifdef G4VIS_BUILD_OI_DRIVER
42class Geant4_SoImageWriter;
43class Geant4_SoGL2PSAction;
44class G4OpenInventorSceneHandler;
51class G4OpenInventorViewer:
public G4VViewer {
57 virtual void KernelVisitDecision();
59 G4OpenInventorViewer(G4OpenInventorSceneHandler& scene,
61 virtual ~G4OpenInventorViewer();
63 virtual void ViewerRender() = 0;
64 virtual SoCamera* GetCamera() = 0;
66 void WritePostScript(
const G4String& file =
"g4out.ps");
67 void WritePixmapPostScript(
const G4String& file =
"g4out.ps");
68 void WriteInventor(
const G4String& file =
"g4out.iv");
69 void SceneGraphStatistics();
72 void SetPreviewAndFull();
76 void SetReducedWireFrame(
bool);
82 static void GroupCameraSensorCB(
void*,SoSensor*);
83 static void CameraSensorCB(
void*,SoSensor*);
84 static void pointAt(SoCamera*,
const SbVec3f & targetpoint,
const SbVec3f & upvector);
85 static void lookAt(SoCamera*,
const SbVec3f & dir,
const SbVec3f & up);
86 static void lookedAt(SoCamera*,SbVec3f & dir, SbVec3f & up);
93 static void SelectionCB(
void*,SoPath*);
94 G4OpenInventorSceneHandler& fG4OpenInventorSceneHandler;
96 SoSelection* fSoSelection;
97 Geant4_SoImageWriter* fSoImageWriter;
98 Geant4_SoGL2PSAction* fGL2PSAction;
99 SoNodeSensor* fGroupCameraSensor;
100 SoNodeSensor* fCameraSensor;
virtual void DrawView()=0
virtual void ClearView()=0