Import Geant4 11.4.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2025-06-26 09:17:29 +02:00
parent 20a218bbe1
commit a499fb82e9
1941 changed files with 203285 additions and 95593 deletions
+24
View File
@@ -6,6 +6,30 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
## 2025-03-06 John Allison (visQt3D-V11-03-02)
- G4Qt3DViewer:
- Implement CompareForTransientsRedraw().
- Take advantage of ProcessTransients(), which reconstructs that part of
the graphical database for transient objects, e.g., trajectories,
without reconstructing the "permanent" (run-duration) objects, e.g.,
the detector. In other words, something short of a complete "kernel
visit". For example, if the time window changes.
- Maximises the efficiency of the recently implemented "generic" time
windowing.
## 2025-02-13 John Allison (visQt3D-V11-03-01)
- G4Qt3DViewer.cc: CompareForKernelVisit:
- Cause kernel visit if viewer start/end time changes.
- This is to take advantage of the new generic time window - modeling-V11-03-04.
## 2025-01-06 John Allison (visQt3D-V11-03-00)
- Co-works: visman-V11-03-00, interfaces-V11-03-00, modeling-V11-03-00,
opengl-V11-03-00, vis_toolssg-V11-03-00, openinventor-V11-03-00,
greps-V11-03-00.
- Re-instate the transparency slider (see lengthy explanation in management/History).
- G4Qt3DViewer:
- Initiate kernel visit if TransparencyByDepth or its options change.
## 2024-08-14 John Allison (visQt3D-V11-02-03)
- G4Qt3DViewer:
- Resolve the timing issues around switching to the vis sub-thread with the
@@ -57,6 +57,7 @@ protected:
void KernelVisitDecision ();
G4bool CompareForKernelVisit(G4ViewParameters&);
G4bool CompareForTransientsRedraw(G4ViewParameters&);
void keyPressEvent (QKeyEvent*);
void keyReleaseEvent (QKeyEvent*);
+24 -9
View File
@@ -144,15 +144,20 @@ void G4Qt3DViewer::DrawView()
// if necessary...
if (!fNeedKernelVisit) KernelVisitDecision();
G4bool kernelVisitWasNeeded = fNeedKernelVisit; // Keep (ProcessView resets).
fLastVP = fVP;
ProcessView (); // Clears store and processes scene only if necessary.
if (kernelVisitWasNeeded) {
// We might need to do something if the kernel was visited.
} else {
} else { // Or even if it was not!
if (!fTransientsNeedRedrawing) CompareForTransientsRedraw(fLastVP);
if (fTransientsNeedRedrawing) {
ProcessTransients();
}
}
fLastVP = fVP;
// ...before finally...
FinishView (); // Flush streams and/or swap buffers.
}
@@ -319,16 +324,14 @@ G4bool G4Qt3DViewer::CompareForKernelVisit(G4ViewParameters& vp)
fVP.GetDefaultTextVisAttributes()->GetColour()) ||
(vp.GetBackgroundColour ()!= fVP.GetBackgroundColour ())||
(vp.IsPicking () != fVP.IsPicking ()) ||
// Scaling for Open Inventor is done by the scene handler so it
// Scaling for Qt3D is done by the scene handler (is it really????) so it
// needs a kernel visit. (In this respect, it differs from the
// OpenGL drivers, where it's done in SetView.)
(vp.GetScaleFactor () != fVP.GetScaleFactor ()) ||
(vp.GetVisAttributesModifiers() !=
fVP.GetVisAttributesModifiers()) ||
(vp.IsSpecialMeshRendering() !=
fVP.IsSpecialMeshRendering()) ||
(vp.GetSpecialMeshRenderingOption() !=
fVP.GetSpecialMeshRenderingOption())
(vp.GetVisAttributesModifiers() != fVP.GetVisAttributesModifiers()) ||
(vp.IsSpecialMeshRendering() != fVP.IsSpecialMeshRendering()) ||
(vp.GetSpecialMeshRenderingOption()!= fVP.GetSpecialMeshRenderingOption())||
(vp.GetTransparencyByDepth() != fVP.GetTransparencyByDepth())
)
return true;
@@ -362,6 +365,18 @@ G4bool G4Qt3DViewer::CompareForKernelVisit(G4ViewParameters& vp)
(vp.GetSpecialMeshVolumes() != fVP.GetSpecialMeshVolumes()))
return true;
if (vp.GetTransparencyByDepth() > 0. &&
vp.GetTransparencyByDepthOption() != fVP.GetTransparencyByDepthOption())
return true;
return false;
}
G4bool G4Qt3DViewer::CompareForTransientsRedraw(G4ViewParameters& vp)
{
if (vp.GetTimeParameters() != fVP.GetTimeParameters()) {
return fTransientsNeedRedrawing = true;
}
return false;
}