| Summary: | Visualization of G4Polyhedra with HepRepFile and OGLIX gets stuck in g4.9.4 | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | Alex <alexjaguar> |
| Component: | visualization | Assignee: | perl |
| Status: | RESOLVED LATER | ||
| Severity: | normal | ||
| Priority: | P5 | ||
| Version: | 9.4 | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| Attachments: |
The union of 5 rails
A single rail zoomed Source code of a simple test program to reproduce the bug |
||
|
Description
Alex
2011-02-23 11:28:52 CET
Any news on this bug? It still remains in G4.9.4.p01. Created attachment 139 [details]
The union of 5 rails
Created attachment 140 [details]
A single rail zoomed
Created attachment 141 [details]
Source code of a simple test program to reproduce the bug
Hello again, I tried to dig deeper and found out the source of the problem. We have series of solid unions. The first union is of the rail shape (three united boxes). The 4 of rails are positions in parallel, and then 8 more perpendicular with intersections. It creates a complicated volume and as far as I understood this solid is internally converted to G4Polyhedra for visualization. I guess there appear too many vertices/edges that the BooleanProcessor goes to a very long loop, and cannot handle it (or at least does it very slow). However, if I put 4 parallel and 1 perpendicular rail, it works. Putting 2 perpendicular may work, I did not wait enough, but this outputs warnings: BooleanProcessor::createPolyhedron : too many edges Maybe this is not a very good way to create solids, I simplified that in our geometry, but if you consider this as a problem in G4, then I created a very simple test program based on exampleN01+exampleN02. I made comments in src/ExN01DetectorConstruction.cc to explain what cases work and what don't. There is also a vis.mac macro to create a HepRep file. I also attach two pictures of a) the single rail and b) the union of 4+1 of them (the maximum that works). Alex. Because we are aware that the boolean visualization is imperfect, we will save this as a test case for whatever future time when we have sufficient resources to significantly revise the boolean visualization. We thank the user for providing a clear test case. |