34 #ifdef G4VIS_BUILD_OPENGL_DRIVER    51 G4OpenGLImmediateSceneHandler::G4OpenGLImmediateSceneHandler
    53   G4OpenGLSceneHandler (system, fSceneIdCount++, name)
    56 G4OpenGLImmediateSceneHandler::~G4OpenGLImmediateSceneHandler ()
    61 G4bool G4OpenGLImmediateSceneHandler::AddPrimitivePreamble(
const G4VMarker& visible)
    63     return AddPrimitivePreambleInternal(visible, 
true, 
false);
    65 G4bool G4OpenGLImmediateSceneHandler::AddPrimitivePreamble(
const G4Polyline& visible)
    67   return AddPrimitivePreambleInternal(visible, 
false, 
true);
    69 G4bool G4OpenGLImmediateSceneHandler::AddPrimitivePreamble(
const G4Polyhedron& visible)
    71   return AddPrimitivePreambleInternal(visible, 
false, 
false);
    74 G4bool G4OpenGLImmediateSceneHandler::AddPrimitivePreambleInternal(
const G4Visible& visible, 
bool isMarker, 
bool isPolyline)
    79   G4bool transparency_enabled = 
true;
    80   G4bool isMarkerNotHidden = 
true;
    81   G4OpenGLViewer* pViewer = 
dynamic_cast<G4OpenGLViewer*
>(fpViewer);
    83     transparency_enabled = pViewer->transparency_enabled;
    84     isMarkerNotHidden = pViewer->fVP.IsMarkerNotHidden();
    87   G4bool isMarkerOrPolyline = isMarker || isPolyline;
    88   G4bool treatAsTransparent = transparency_enabled && opacity < 1.;
    89   G4bool treatAsNotHidden = isMarkerNotHidden && (isMarker || isPolyline);
    91   if (fProcessing2D) glDisable (GL_DEPTH_TEST);
    93     if (isMarkerOrPolyline && isMarkerNotHidden)
    94       glDisable (GL_DEPTH_TEST);
    95     else {glEnable (GL_DEPTH_TEST); glDepthFunc (GL_LEQUAL);}
    98   if (fThreePassCapable) {
   103     if (!(fSecondPassForTransparency || fThirdPassForNonHiddenMarkers)) {
   105       if (treatAsTransparent) {  
   106         fSecondPassForTransparencyRequested = 
true;
   108       if (treatAsNotHidden) {    
   109         fThirdPassForNonHiddenMarkersRequested = 
true;
   112       if (treatAsTransparent || treatAsNotHidden) {
   118     if (fSecondPassForTransparency) {
   119       if (!treatAsTransparent) {
   125     if (fThirdPassForNonHiddenMarkers) {
   126       if (!treatAsNotHidden) {
   133   if (fpViewer->GetViewParameters().IsPicking()) {
   134     glLoadName(++fPickName);
   136     LoadAtts(visible, holder);
   137     fPickMap[fPickName] = holder;
   140   if (transparency_enabled) {
   149 void G4OpenGLImmediateSceneHandler::AddPrimitive (
const G4Polyline& polyline)
   151   G4bool furtherprocessing = AddPrimitivePreamble(polyline);
   152   if (furtherprocessing) {
   153     G4OpenGLSceneHandler::AddPrimitive(polyline);
   157 void G4OpenGLImmediateSceneHandler::AddPrimitive (
const G4Polymarker& polymarker)
   159   G4bool furtherprocessing = AddPrimitivePreamble(polymarker);
   160   if (furtherprocessing) {
   161     G4OpenGLSceneHandler::AddPrimitive(polymarker);
   165 void G4OpenGLImmediateSceneHandler::AddPrimitive (
const G4Text& text)
   169   G4bool furtherprocessing = AddPrimitivePreamble(text);
   170   if (furtherprocessing) {
   171     G4OpenGLSceneHandler::AddPrimitive(text);
   175 void G4OpenGLImmediateSceneHandler::AddPrimitive (
const G4Circle& circle)
   177   G4bool furtherprocessing = AddPrimitivePreamble(circle);
   178   if (furtherprocessing) {
   179     G4OpenGLSceneHandler::AddPrimitive(circle);
   183 void G4OpenGLImmediateSceneHandler::AddPrimitive (
const G4Square& square)
   185   G4bool furtherprocessing = AddPrimitivePreamble(square);
   186   if (furtherprocessing) {
   187     G4OpenGLSceneHandler::AddPrimitive(square);
   191 void G4OpenGLImmediateSceneHandler::AddPrimitive (
const G4Scale& 
scale)
   193   G4bool furtherprocessing = AddPrimitivePreamble(scale);
   194   if (furtherprocessing) {
   195     G4OpenGLSceneHandler::AddPrimitive(scale);
   199 void G4OpenGLImmediateSceneHandler::AddPrimitive (
const G4Polyhedron& polyhedron)
   203   G4bool furtherprocessing = AddPrimitivePreamble(polyhedron);
   204   if (furtherprocessing) {
   205     G4OpenGLSceneHandler::AddPrimitive(polyhedron);
   209 void G4OpenGLImmediateSceneHandler::BeginPrimitives
   212   G4OpenGLSceneHandler::BeginPrimitives (objectTransformation);
   214   G4OpenGLTransform3D oglt (objectTransformation);
   228   glMultMatrixd (oglt.GetGLMatrix ());
   231 void G4OpenGLImmediateSceneHandler::EndPrimitives ()
   238   G4OpenGLSceneHandler::EndPrimitives ();
   241 void G4OpenGLImmediateSceneHandler::BeginPrimitives2D
   244   G4OpenGLSceneHandler::BeginPrimitives2D(objectTransformation);
   248   glMatrixMode (GL_PROJECTION);
   251   G4OpenGLViewer* pViewer = 
dynamic_cast<G4OpenGLViewer*
>(fpViewer);
   253     pViewer->g4GlOrtho (-1., 1., -1., 1., -G4OPENGL_FLT_BIG, G4OPENGL_FLT_BIG);
   255   glMatrixMode (GL_MODELVIEW);
   258   G4OpenGLTransform3D oglt (objectTransformation);
   259   glMultMatrixd (oglt.GetGLMatrix ());
   260   glDisable(GL_DEPTH_TEST);  
   261 #ifndef G4OPENGL_VERSION_2   262   glDisable (GL_LIGHTING);   
   266 void G4OpenGLImmediateSceneHandler::EndPrimitives2D()
   269   glMatrixMode (GL_PROJECTION);
   271   glMatrixMode (GL_MODELVIEW);
   277   G4OpenGLSceneHandler::EndPrimitives2D ();
   280 void G4OpenGLImmediateSceneHandler::BeginModeling () {
   284 void G4OpenGLImmediateSceneHandler::EndModeling () {
   288 void G4OpenGLImmediateSceneHandler::ClearTransientStore ()
   292     fpViewer -> SetView ();
   293     fpViewer -> ClearView ();
   294     fpViewer -> DrawView ();
   298 G4int G4OpenGLImmediateSceneHandler::fSceneIdCount = 0;
 
virtual void BeginModeling()
 
G4double GetAlpha() const
 
G4double GetGreen() const
 
virtual void EndModeling()
 
system("rm -rf microbeam.root")