# Category vistree 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!

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

## 2026-02-11 John Allison (vistree-V11-03-00)
- Move fVerbosityGuidance to G4ASCIITree factory.
  - It was a static variable in G4ASCIITreeMessenger - static to allow access - but
    it gives "AddressSanitizer: container-overflow" with "-fsanitize=address,undefined"
    (as discovered by user Davide Terzani, Bug Report 2699).

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

## 2022-11-06 John Allison (vistree-V11-00-02)
- Eliminate G4cerr and introduce G4warn.
  - `#define G4warn G4cout`
    - The above is temporary until a genuine G4warn output stream is
      implemented.
  - Change G4cerr to G4warn in all cases.
  - Change G4cout to G4warn in those cases where it is clearly
    an error report or a warning.

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

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

---

# History entries prior to 11.0

25 October 2021  Guy Barrand (vistree-V10-07-03)
- G4VTreeSceneHandler.hh: to quiet g++ about "AddPrimitive(G4Plotter&)", have:
    using G4VSceneHandler::AddPrimitive;

10 October 2021  John Allison  (vistree-V10-07-02)
- Migrate to modeling-V10-07-14:
  - G4PhysicalVolumeModel: Hold current transform as object, not as a pointer.

30 June 2021  John Allison  (vistree-V10-07-01)
- Requires greps-V10-07-09, modeling-V10-07-11 and visman-V10-07-11.
- Revise vis models. See visualization/modeling/History for more details.
- Consequent changes:
  o AddPrimitive(const G4Scale&) has been removed from all scene handlers.

14 April 2021 Ben Morgan (vistree-V10-07-00)
- Migrate to modular CMake build

12 December 2019 Ben Morgan (vistree-V10-06-00)
- Cleanup CMake build, removing obsolete granular library option and
  explicit include_directories.

06 July 2019  John Allison (vistree-V10-05-01)
- Part of vis-V10-05-21.
- G4VTreeSceneHandler::PreAddSolid: Fix typo in output message.

18 March 2019  Gabriele Cosmo (vistree-V10-05-00)
- Corrected few typos in comments.

11th March 2018  John Allison  (vistree-V10-04-00)
- G4ASCIITreeSceneHandler.cc:
  o Fix bug in suppressed writing of repeated parameterised volumes.
- G4ASCIITreeMessenger.cc:
  o Improve command guidance and advice printing.

31st August 2016  John Allison (vistree-V10-02-02)
- G4ASCIITreeSceneHandler.cc:
  o Overall mass(es) now calculated for any specified top volume,
    not just for the case of the world volume.
- G4ASCIITreeMessenger.cc:
  o Improved guidance.

14th August 2016  John Allison (vistree-V10-02-01)
- G4ASCIITree.cc and G4ASCIITreeMessenger.cc:
  o Changed default verbosity to 1 (shows logical volume names).

5th April 2016  John Allison  (vistree-V10-02-00)
- G4ASCIITreeSceneHandler.cc:
  o Prevented multiple writing of the informational header on
    the output file.

8th March 2015  John Allison  (vistree-V10-01-04 needs modeling-V10-01-01)
- G4ASCIITreeSceneHandler: Added polyhedron dump for verbosity >=7.

28th February 2015  John Allison  (vistree-V10-01-03)
- G4ASCIITreeSceneHandler: Tidied and cleaned up att values after use.

24th February 2015  John Allison  (vistree-V10-01-01)
- G4ASCIITreeSceneHandler: Added physical volume dump for verbosity >=6.

2nd February 2015  Gabriele Cosmo (vistree-V10-01-00)
- Fix to sources.cmake script to include missing dependency on external library.

7th October 2014  Laurent Garnier  (vistree-V10-00-01)
- Change a message from G4cout to G4cerr

15th November 2013  John Allison  (vistree-V09-06-01)
- Some changes as suggested by PVS.

2nd December 2012  John Allison  (vistree-V09-06-00)
  o Removed NURBS.

8th June 2012  John Allison (vistree-V09-05-02)
- Shadow clean.

10th April 2012  John Allison (vistree-V09-05-01)
- Migrated to G4Scene::Model.

12th January 2012  John Allison  (vistree-V09-05-00)
- G4VTreeSceneHandler.hh:
  o Removed empty implementations of Begin/EndPrimitives, so now
    picks up the default (and correct non-empty default
    implementations in G4VSceneHandler).  The problem is that
    objectTransformation must be set to something.  This was causing a
    G4Exception in G4VisManager::DrawT.

25th September 2011  John Allison  (vistree-V09-04-01)
- Tagged.

17th September 2011  John Allison
- Migrated to new G4Exception.

2nd June 2011  John Allison  (vistree-V09-04-00)
- Tagged.

23, December L. Garnier
- GNUmakefile : Remove OpenGL/Qt stuff from Makefile

13th November 2010  John Allison  (vistree-V09-03-00)
- Tagged inclusion of CMake stuff.

25th March 2007  John Allison  (vistree-V08-02-01)
- Removed GAGTree.

5th January 2007  John Allison  (vistree-V08-02-00)
- Bug fix: Format of total mass.

11th December 2006  John Allison
- Trapped sequential G4PVPlacements.

5th November 2006  John Allison  (vistree-V08-01-02)
- Protected against zero material pointer.

1st November 2006  John Allison  (vistree-V08-01-01)
- G4ASCIITreeSceneHandler.cc: Added printing of material name.

3rd July 2006  John Allison  (vistree-V08-01-00)
- G4ASCIITreeSceneHandler.cc: Layout improvement.

4th May 2006  John Allison (vistree-V08-00-04)
- Improved protection for null models and parameters.

19th April March 2006  John Allison (vistree-V08-00-03)
- G4GAGTreeSceneHandler.cc: Migration away from EstablishSpecials mechanism
  to direct access to G4PhysicalVolumeModel.
- Replaced previousMotherID == i->rend() that gives problems on VC++ Net 7.1.

28th March 2006  John Allison (vistree-V08-00-02)
- Made compatible with modeling-V08-00-05.
- Migration away from EstablishSpecials mechanism.

14th March 2006  John Allison (vistree-V08-00-01)
- G4VTree and G4ASCIITree: Minor improvements to readability of code.

8th February 2006  John Allison (vistree-V08-00-00)
- G4ASCIITree: Fixed bug in treatment of repeated replicas.

22nd November 2005  John Allison  (vistree-V07-01-01)
- Refined guidance and printing.

13th October 2005  John Allison  (vistree-V07-01-00)
- Fixed bug in mass calculations.
- Migrated to <sstream>.

22nd September 2004  John Allison  (vistree-V06-02-01)
- Fixed directory name (trailing /).
- Fixed memory leak in G4ASCIITreeSceneHandler.

13th September 2004  John Allison  (vistree-V06-02-00)
- Improved ASCIITree:
  verbosity >= 3: prints volume, density of all volumes in hierarchy.
  verbosity >= 4: calculates the mass of the complete geometry tree taking
    into account daughters up to the depth specified for each physical
    volume in the current scene.  Culling is ignored so that all volumes
    are processed.  The calculation is quite tricky, since it involves
    subtracting the mass of that part of the mother that is occupied by
    each daughter and then adding the mass of the daughter, and so on
    down the heirarchy.  Uses G4PhysicalVolumeMassScene.
  Added option to write to file (/vis/ASCIITree/set/outFile).
- Minor changes to comments in header files of G4VTreeScenehandler and
  G4GAGTreeScenehandler.

6th November 2003  John Allison  (vis-V05-02-03)
- Improved printing.

4th October 2003  Gabriele Cosmo (vis-V05-02-01)
- Simplified GNUmakefile.

04th June 2003  Gabriele Cosmo  (vistree-V05-01-00)
- Fixed trivial warning in G4GAGTreeList.hh.
- Fixes for inclusion of <strstream> in G4GAGTreeSceneHandler.cc
  in view of the g4std wrappers migration.

11th December 2002  John Allison  (vis-V04-01-10)
- Fixed default view parameters (global culling false).

24th August 2001  John Allison  (vis-V03-02-13)
- Replaced Dump by RequestPrimitives.  No change of functionality.

25th July 2001  John Allison  (vis-V03-02-07)
- Improved use of G4PhysicalVolumeModel::CurtailDescent().

15th June 2001  John Allison (vis-V03-01-06)
- Changed char* to const char* in G4GAGTreeList.hh".
- Added 2nd template argument (less) to sets in G4ASCIITreeSceneHandler and
  G4GAGTreeSceneHandler.

15th June 2001  Satoshi Tanaka (vis-V03-01-05)
- The  first committing of GAGTree driver.
- Other files are the same as vis-V03-01-04

5th June 2001  John Allison (vis-V03-01-04)
- Moved re-useable code from G4ASCIITree to G4VTree.

4th June 2001  John Allison
- G4ASCIITree: Added logical volume name and solid name and type under
  verbosity control.
- Forced culling off so that all volumes are seen, even if "invisible".

25th May 2001  John Allison
- Bug fix in G4ASCIITree.cc: initialise fVerbosity(0).

24th May 2001  John Allison  (vis-V03-01-03)
- Added missing files G4ASCIITreeMessenger.hh/cc.
- Bug fix in G4ASCIITreeMessenger.cc: currentAsDefault = true.

22nd May 2001  John Allison
- Refined ASCIITree.

10th April 2001  John Allison (vis-V03-01-00)
- Added first version of ASCIITree to dump geometry hierarchy to
  standard output as ASCII stream.
  This requires two new environment variables:
    G4VIS_BUILD_ASCIITREE_DRIVER
    G4VIS_USE_ASCIITREE
  and config-V03-01-00.

5th April 2001  John Allison (vis-V03-01-00)
- First version of G4VTree and G4ASCIITree.
