Created attachment 402 [details] B1gdml source and build, and example screenshot output As part of the ESA CIRSOS Project we need to be able to visualise GDML geometries within the MS Windows 7. I have applications (part of this is ESA's GRAS application), which allow GDML geometry visualisation, and this works fine under Linux when using OpenGL-Qt environment, but either crashes or makes the volumes invisible under Windows 7. To demonstrate this in a small example, I’ve taken the Basic Example B1 and replaced the geometry with the GDML reader (using GRASGDMLDetectorConstruction). The example is called B1gdml (file B1gdml_example+figures.zip attached). I also attach images: - Figure 1 is the normal B1 example (non-GDML) which I get when using my Windows 7 - everything seems OK. - Figure 2 shows the case for the Win32 MSVC build (no geometry visible) - Figure 3 shows a representation of what I see using a OpenSuSE Linux build (geometry can be seen and also “touchables” appears within the “scene tree” widget list). This strongly indicates a problem originating more within Geant4. My and Fan Lei's experience with other MS Windows 7 using other G4 applications that use Qt-OpenGL and GDML is similar - invisible geometries, or the application crashes. The configurations for the build were: - Windows 7, Service Pack 1, MSVC using MS Visual Studio 2010 Express, Qt v4.8.6 - OpenSuSE v13.2, GCC v4.8.6, Qt v4.8 My first thoughts are that the problems occur in the overlap between the geometry/GDML and vis categories (rather than one of these only). Your assistance in this matter will be much appreciated.
The problem was in the use of the static instance of G4VisAttributes::Invisible in G4GDMLReadStructure. G4VisAttributes::Invisible to be deprecated and the method G4VisAttributes::GetInvisible() to be used instead. Incorrect initialisation of static instance: const G4VisAttributes G4VisAttributes::Invisible = G4VisAttributes (false); Correct use of static instance: const G4VisAttributes& G4VisAttributes::GetInvisible() { static const G4VisAttributes invisible = G4VisAttributes(false); return invisible; }