# Category visVtk History

See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!

-------------------------------------------------------------------------------

## 2025-09-03 John Allison (visVtk-V11-03-00)
- G4VtkSceneHandler::ClearStore:
  - Clear both stores.

## 2024-10-17 John Allison (visVtk-V11-02-07)
- G4VtkMessenger.cc:
  - Added x3d to /vis/vtk/export format parameter guidance.
  - Set parameter omitables to false.

## 2024-10-07 Stewart Boogert (visVtk-V11-02-06)
- G4VtkViewer:
  - Added export for X3D file format

## 2024-08-13 John Allison (visVtk-V11-02-05)
- G4VtkQtViewer:
  - Resolve the timing issues around switching to the vis sub-thread with the
    use of G4CONDITIONWAITLAMBDA.

## 2024-07-12 Guy Barrand (visVtk-V11-02-04)
- G4VtkQtViewer: in DoneWithVisSubThread(), SwitchToMasterThread() protect against a
  possible null qGLW->context(). It permits to avoid a crash in case of doing /run/beamOn
  in vis.mac at startup.

## 2024-05-27 Guy Barrand (visVtk-V11-02-03)
- G4VtxQtViewer: MT: have the variables mWaitForVisSubThreadQtOpenGLContextMoved,
  mWaitForVisSubThreadQtOpenGLContextInitialized,
  c1_VisSubThreadQtOpenGLContextInitialized, c2_VisSubThreadQtOpenGLContextMoved local
  to the G4VtkQtViewer class. It avoids dead-locks in case of multiple Vtk viewers
  if doing a "/run/beamOn" in each of them. (Same problem and fix as seen with
  OGLI/OGLS. See also opengl-V11-02-01).

## 2024-03-25 Gabriele Cosmo (visVtk-V11-02-02)
- Use angle brackets <> for external Vtk package headers inclusion in
  G4VVtkPipeline.hh.

## 2024-03-20 Stewart Boogert (visVtk-V11-02-01)
- Fixed Ubuntu 22 & VTK 9.1 compilation error

## 2024-03-18 Gabriele Cosmo (visVtk-V11-02-00)
- Porting code to compile on Windows Visual-Studio:
  - Protected use of GNU pragmas in code.
  - Removed explicit symbol export for G4VtkInteractorStyle and
    vtkTensorGlyphColor types.
  - Consistently use system includes with angle brackets <> for external
    Vtk package.

## 2023-11-07 Stewart Boogert (visVtk-V11-01-15)
- Fixed missing circles in rendering (introduced in visVTK-V11-01-13)

## 2023-11-03 Ben Morgan (visVTK-V11-01-14)
- Add missing dependencies on internal modules
- Remove files no longer being built

## 2023-10-27 Stewart Boogert (vtkVtk-V11-01-13)
- Fixed gcc shadow warnings

## 2023-09-27 Stewart Boogert (visVtk-V11-01-12)
- Updated VTK viewer
  - Added off screen rendering
  - Fixed bug which locked UI interaction with VtkNative viewer
  - Many 3D output formats working including GLTF, PLY, OBJ, VRML
  - Remove cuboid offset present in rectilinear scoring meshes (caused an explosion of draw calls)
  - Fixed spherical marker size
  - Added a VTK example to highlight capabilities

## 2023-08-18 John Allison (visVtk-V11-01-11)
- G4VtkQt:
  - Simplify IsUISessionCompatible.
    - Cosmetic improvement to align with Vtk economical coding style.

## 2023-08-14 John Allison (visVtk-V11-01-10)
- G4VtkQt:
  - Simplify IsUISessionCompatible.
    - Exploit new method, G4UImanager::GetBaseSession (intercoms-V11-01-07).

## 2023-05-23 Gabriele Cosmo (visVtk-V11-01-09)
- Fixed compilation warnings for implicit type conversions on macOS/XCode>=14.1.

## 2023-04-07 Stewart Boogert (visVtk-v11-01-08)
- Add vtkUnstructuredGridPipeline for special mesh rendering

## 2023-03-27 Ben Morgan (visVtk-V11-01-07)
- Apply clang-tidy and clang-format fixes.
- Remove dead code and no-ops.

## 2023-03-23 Ben Morgan (visVtk-V11-01-06)
- Export public compile definitions to indicate availablity of specific drivers. Moves to
  "use on link" model.

## 2023-03-22 Stewart Boogert (visVtk-V11-01-05)
- Separate pipelines into source and include files
- Class inheritance for pipelines G4VVtkPipeline and ability to chain pipelines
- Separate interactive cutters, clippers.
- 2D transparent image overlay
- Improved geant4 commands (/vis/vtk/..)

## 2023-02-14 Stewart Boogert (visVtk-V11-01-04)
- Removed unused variables in preparation for special rendering pipeline

## 2023-02-13 Stewart Boogert (visVtk-V11-01-03)
- Refactor of VTK viewer with pipelines, geometry stores, improved 2D rendering,
  streamlined VTK cmake components.

## 2023-02-06 Ben Morgan (visVtk-V11-01-02)
- Isolate private headers and update dependencies

## 2023-02-03 Igor Semeniouk (visVtk-V11-01-01)
- G4VtkSceneHandler.cc : text justification to given coordinate

## 2023-01-30 Ben Morgan (visVtk-V11-01-00)
- Link to new G4UIcore/UIimplementation modules in place of former G4UIbasic/UIcommon

## 2022-11-25 Gabriele Cosmo (visVtk-V11-00-07)
- Fixed compilation warning for implicit type conversions on macOS/XCode 14.1.

## 2022-11-14 I. Hrivnacova (visVtk-V11-00-06)
- Replaced reinterpret_cast with static_cast where possible

## 2022-10-10 Igor Semeniouk (visVtk-V11-00-05)
- G4VtkViewer.hh : replaced sprintf by snprintf.

## 2022-09-06 Ben Morgan (visVtk-V11-00-04)
- Resolve inconsistencies in module dependencies

## 2022-03-22 Ben Morgan (visVtk-V11-00-03)
- Use geant4_module_sources to add optional sources
- Move setting of G4VIS_USE_VTK_QT flag on G4UIcommon module to that module's
  build script.

## 2022-01-28 Ben Morgan (visVtk-V11-00-02)
- Replace `geant4_global_library_target` with direct file inclusion and
  call to `geant4_add_category` to define library build from source modules.

## 2022-01-16 John Allison (visVtk-V11-00-01)
- `G4TVtkViewer`: Fix window location for VTKN;
  Introduce `pixelFactor` for Apple Mac.
- `G4VtkMessenger`: Fix typo (OpenGL -> Vtk) in message.

## 2021-12-10 Ben Morgan (visVtk-V11-00-00)
- Change to new Markdown History format.

---

# History entries prior to 11.0

8 November 2021 - Ben Morgan (visVtk-V10-07-03)
- Retire G4UI/G4INTY_... preprocessor symbols in toolkit build, only required
  by obsolete GNUmake system

15 October 2021 John Allison (visVtk-V10-07-02)
- Implement G4VtkQt::IsUISessionCompatible.

04 October 2021 Stewart Boogert / Laurie Nevay (visVtk-V10-07-01)
- Operational VTK viewer (VtkNative and VtkQt)
