# Category geom-specific 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-11-12 Gabriele Cosmo (geom-specific-V11-03-11) - Fixed potential thread-safety issue in GetCubicVolume() and GetSurfaceArea() on all solids in case those functions are called from worker threads. ## 2025-09-25 Gabriele Cosmo (geom-specific-V11-03-10) - Reorganised and enriched comments in headers to follow Doxygen style. - Removed virtual specifications from utility class G4ClippablePolygon. - Removed static protected functions in G4Hype and made them private. - Removed unneeded static data/specifications in G4Voxelizer. - Moved inline methods definitions of G4TriangularFacet, G4QuadrangularFacet, G4SurfBits, G4TwistBoxSide, G4TwistTrapParallelSide and G4TwistTrapAlphaSide to .icc files. ## 2025-08-31 Evgueni Tcherniaev (geom-specific-V11-03-09) - G4GenericTrap: improved estimation of safety distance by adopting Lipschitz-based implementation. Contribution by Nazar Misyats (ENS, Rennes), CERN summer student 2025. ## 2025-08-26 Gabriele Cosmo (geom-specific-V11-03-08) - Applied clang-tidy fixes: basic, modernize-loop-convert, modernize-use-default-member-init, readability-redundant-member-init, readability-implicit-bool-conversion, readability-braces-around-statements, readability-else-after-return. ## 2025-08-21 Andrei Gheata (geom-specific-V11-03-07) - G4UGenericTrap.cc: Using a backward-compatible different interface to retrieve vertices from VecGeom, allowing for some arrays cleanup. ## 2025-03-13 Evgueni Tcherniaev (geom-specific-V11-03-06) - G4PolyPhiFace.cc, G4PolyconeSide.cc, G4PolyhedraSide.cc, G4TwistedTubs.cc, G4VCSGfaceted.cc, G4VTwistedFaceted.cc: used G4QuickRand() - G4EllipticalCone.cc, G4EllipticalTube.cc, G4Voxelizer.cc: removed unnecessary headers ## 2025-03-07 Soon Yung Jun (geom-specific-V11-03-05) - G4Polyhedra, G4UPolyhedra: Verify the validity of the delta phi to restore visualization of HepPolyhedronPgon ## 2025-02-23 Evgueni Tcherniaev (geom-specific-V11-03-04) - G4Ellipsoid, G4EllipticalTibe: Code optimization in GetPointOnSurface(). - G4TessellatedSolid, G4TriangularFacet, G4QuadrangularFacet: use G4QuickRand(). ## 2025-02-19 Evgueni Tcherniaev (geom-specific-V11-03-03) - G4EllipticalCone: Code optimization in GetPointOnSurface(); SetSemiAxis(), SetZCut() moved to *.cc - G4Hype: Code optimization in GetPointOnSurface(). ## 2025-02-16 Evgueni Tcherniaev (geom-specific-V11-03-02) - G4Paraboloid: Implemented uniform sampling of random points. ## 2025-02-03 Gabriele Cosmo (geom-specific-V11-03-01) - Removed fake default constructor from G4U* wrappers, clearing compilation warnings on gcc-14. ## 2025-01-25 Evgueni Tcherniaev (geom-specific-V11-03-00) - G4Hype: Revised surface area calculation and random point sampling. ## 2024-10-01 Evgueni Tcherniaev (geom-specific-V11-02-08) - G4GenericTrap: Fixed minor defect reported by Coverity. ## 2024-07-18 Alvaro Tolosa-Delgado (geom-specific-V11-02-07) - Remove internal state of G4TwistedTubs and G4VTwistedFaceted. ## 2024-07-10 Evgueni Tcherniaev (geom-specific-V11-02-06) - G4ExtrudedSolid: Fixed defects reported by Coverity ## 2024-07-08 Gabriele Cosmo (geom-specific-V11-02-05) - Fixed reported Coverity defect; in G4Voxelizer, use std::move instead of plain vector copy in methods BuildReduceVoxels(..), BuildReduceVoxels2(..), BuildBoundaries() and CreateMiniVoxels(..). ## 2024-05-29 Evgueni Tcherniaev (geom-specific-V11-02-04) - Added new methods GetNumOfConstituents() and IsFaceted(). ## 2024-05-27 Evgueni Tcherniaev (geom-specific-V11-02-03) - Completely revised G4GeneriTrap, it addresses the problem report #2547 ## 2024-05-26 Evgueni Tcherniaev (geom-specific-V11-02-02) - New testG4GenericTrap.cc ## 2024-04-02 Gabriele Cosmo (geom-specific-V11-02-01) - Applied trivial clang-tidy fixes to classes, i.e. use of 'override' and 'default' keywords. ## 2024-02-01 Gabriele Cosmo (geom-specific-V11-02-00) - Use std::size_t for array sizes in G4PolyhedraSide and G4PolyPhiFace. ## 2023-07-10 Evgueni Tcherniaev (geom-specific-V11-01-06) - Fixed bounding box calculation in G4VTwistedFaceted::BoundingLimits(). ## 2023-06-16 Stephan Hageboeck (geom-specific-V11-01-05) - Fix an uninitialised value in G4VCSGfaceted::SurfaceNormal(). ## 2023-06-12 Gabriele Cosmo (geom-specific-V11-01-04) - Use const iterator in G4Voxelizer::GetPointVoxel(). - Fixed use of index in G4Tet::GetPointOnSurface(). ## 2023-05-10 Gabriele Cosmo (geom-specific-V11-01-03) - Applied clang-tidy fixes (readability, modernization, performance, ...). ## 2023-03-20 Gabriele Cosmo (geom-specific-V11-01-02) - Fixed more potential uninitialised values in G4PolyconeSide, G4SolidExtentList and G4VTwistSurface. ## 2023-03-13 Gabriele Cosmo (geom-specific-V11-01-01) - Fixed potential uninitialised value for boundary type in G4VTwistSurface::GetBoundaryAtPZ(). ## 2023-01-02 Evgueni Tcherniaev (geom-specific-V11-01-00) - G4QuadrangularFacet: Fixed warning message ## 2022-11-10 Gabriele Cosmo (geom-specific-V11-00-10) - Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1. ## 2022-10-05 Gabriele Cosmo (geom-specific-V11-00-09) - Fixed compilation warnings in Intel/icx compiler for variables set but never used. ## 2022-04-03 Evgueni Tcherniaev (geom-specific-V11-00-08) - G4GenericTrap.cc, G4UGenericTrap.cc, G4UExtrudedSolid.cc, G4TessellatedSolid.cc, G4TessellatedSolid.cc: revision of CreatePolyhedron() ## 2022-02-04 Evgueni Tcherniaev (geom-specific-V11-00-07) - G4VTwistedFaceted: used numerical evaluation of a single integral to calculate lateral face surface area ## 2022-02-01 Evgueni Tcherniaev (geom-specific-V11-00-06) - G4ExtrudedSolid, G4UExtrudedSolid: added default values for parameters in the constructor with two z-sections - G4ExtrudedSolid::ZSection, G4UExtrudedSolid::ZSection: added default constructor ## 2022-01-26 Evgueni Tcherniaev (geom-specific-V11-00-05) - G4GenericTrap::GetCubicVolume(): calculation of volume using analytical expression; removed private function GetFaceCubicVolume(); - G4GenericTrap::GetSurfaceArea(): improved calculation of the area of lateral faces; private functions GetFaceSurfaceArea(), GetTwistedFaceSurfaceArea() replaced with private function GetLateralFaceArea() ## 2022-01-21 Evgueni Tcherniaev (geom-specific-V11-00-04) - G4Ellipsoid::LateralSurfaceArea(): Enhanced calculation of the lateral surface area ## 2022-01-11 Evgueni Tcherniaev (geom-specific-V11-00-03) - G4VTwistedFaceted: fCubicVolume, fSurfaceArea made protected, GetCubicVolume(), GetSurfaceArea() moved to *.cc - G4VTwistedFaceted, G4TwistedBox, G4TwistedTrd: optimized calculation of volume and surface area ## 2022-01-06 Evgueni Tcherniaev (geom-specific-V11-00-02) - G4TwistedTubs: Implemented GetSurfaceArea() based on analytical expressions; added private functions GetLateralArea() and GetPhiCutArea() ## 2021-12-19 Evgueni Tcherniaev (geom-specific-V11-00-01) - G4Hype: Used analytical expression in GetCubicVolume() and GetSurfaceArea() ## 2021-12-10 Ben Morgan (geom-specific-V11-00-00) - Change to new Markdown History format --- # History entries prior to 11.0 03-December-2021 E.Tcherniaev (geom-specific-V10-07-13) - G4TwistedTubs: Accurate calculation of the bounding box in BoundingLimits() and GetExtent(), fixing measured performance penalty. Addressing problem report #2450. - G4TwistedTubs, G4VTwistedFaceted: Fixed GetCubicVolume() 15-October-2021 E.Tcherniaev (geom-specific-V10-07-12) - G4Tet, G4UTet: Added SetBoundingLimits() 06-October-2021 E.Tcherniaev (geom-specific-V10-07-11) - G4Tet: some changes in calculation of bounding box - G4UTet: added CheckDegeneracy() and SetVertices() 27-September-2021 E.Tcherniaev (geom-specific-V10-07-10) - Added degeneracyFlag to the list of parameters of G4Tet::SetVertices(), it addresses first part of the problem report #2427 24-September-2021 E.Tcherniaev (geom-specific-V10-07-09) - Implemented G4TesselatedSolid::GetFacetIndex(p) 10-September-2021 E.Tcherniaev (geom-specific-V10-07-08) - Implemented G4TesselatedSolid::CheckStructure() - Optimisation in G4TessellatedSolid::SetExtremeFacets(): shuffle of vertices and checking of six extreme vertices 21-July-2021 E.Tcherniaev (geom-specific-V10-07-07) - More accurate calculation of distance from point to triangle in G4TriangularFacet, it addresses problem report #2401 25-June-2021 G.Cosmo (geom-specific-V10-07-06) - Added missing accessor in G4UTet. 12-May-2021 E.Tcherniaev (geom-specific-V10-07-05) - Reimplemented CreatePolyhedron() in G4Polyhedra, G4Polycone, G4GenericPolycone, G4UPolyhedra, G4UPolycone, G4UGenericPolycone 30-April-2021 G.Cosmo (geom-specific-V10-07-04) - Fixed use of conversion factor in G4UPolyhedra wrapper for "generic" polyhedra constructs. 19-April-2021 E.Tcherniaev (geom-specific-V10-07-03) - G4Polyhedra, G4Polycone: Fix calculation of endPhi for the case of negative phiStart, it addresses also problem report #2362 30-March-2021 B.Morgan (geom-specific-V10-07-02) - Migrate sources.cmake to modular build API 18-March-2021 E.Tcherniaev (geom-specific-V10-07-01) - Fix calculation of bounding box position in G4Voxelizer::BuildVoxelLimits(), it addresses problem report #2301 13-January-2021 G.Cosmo (geom-specific-V10-07-00) - Reduce cases of bad speculation in G4PolyhedraSide::Inside() and G4PolyPhiFace::InsideEdges(), based on report in profiling analysis by G.Amadio. 30-October-2020 E.Tcherniaev (geom-specific-V10-06-10) - G4Polycone: Revised GetPointOnSurface(); Added protected auxiliary method SetSurfaceElements(); Removed GetPointOnCone(), GetPointOnTubs(), GetPointOnCut(), GetPointOnRing(); - G4GenericPolycone: Revised GetPointOnSurface(); Added protected auxiliary method SetSurfaceElements(); - G4Polyhedra: Revised GetPointOnSurface(); Added protected auxiliary method SetSurfaceElements(); Removed GetPointOnPlane(), GetPointOnTriangle(); 01-October-2020 E.Tcherniaev (geom-specific-V10-06-09) - G4Polycone, G4GenericPolycone, G4Polyhedra: implemented GetSurfaceArea(), GetCubicVolume(). May 21, 2020 Guilherme Lima (geom-specific-V10-06-08) ---------------------------- - Fix constructor signatures in G4UExtrudedSolid wrappers, to match those in G4 version. There were missing const and reference qualifiers in non-POD parameters. 30-April-2020 G.Cosmo (geom-specific-V10-06-07) - Adopt new convention for location of headers in VecGeom for all wrappers. 09-April-2020 E.Tcherniaev (geom-specific-V10-06-06) - Added G4GenericTrap::GetTwistedFaceSurfaceArea(). - testG4GenericTrap.cc: fixed test for calculation of surface area. - testG4ExtrudedSolid.cc: fixed assert statements for cases where point flys along the surface (DistanceToIn() returns kInfinity). 17-January-2020 E.Tcherniaev (geom-specific-V10-06-05) - Implemented G4Tet::SetVertices(), it addresses request made at Geant4 Technical Forum. 14-January-2020 Gabriele Cosmo (geom-specific-V10-06-04) - Added protection in G4VFacet header for double definition of global symbols from Windows Kits code. 08-January-2020 E.Tcherniaev (geom-specific-V10-06-03) - Complete revision of G4Tet, speed up, new testG4Tet.cc. It also fixes issues spotted by new unit test. 16-December-2019 E.Tcherniaev (geom-specific-V10-06-02) - Complete revision of G4Ellipsoid, it fixes issues with former implementation, in particular it addresses problem report #2206. 30%-70% speed-up in all main methods. 11-December-2019 B.Morgan (geom-specific-V10-06-01) - Cleanup CMake build, removing obsolete granular library options and explicit include_directories. 10-December-2019 G.Cosmo (geom-specific-V10-06-00) - Re-established parameterisation mechanism for G4Tet and G4UTet which was removed by mistake. Addressing problem report #2209. 26-November-2019 G.Cosmo (geom-specific-V10-05-21) - Fixed cases of implicit type conversions from size_t to G4int. 05-November-2019 E.Tcherniaev (geom-specific-V10-05-20) - G4TesselatedSolid.cc: fixed minor Coverity defect (uninitialized array) 07-October-2019 E.Tcherniaev (geom-specific-V10-05-19) - G4TesselatedSolid.cc: fixed minor Coverity defect 16-September-2019 G.Cosmo (geom-specific-V10-05-18) - Rationalise header inclusions for faceted solids. 06-September-2019 G.Cosmo (geom-specific-V10-05-17) - Removed unnecessary forward declaration in G4VFacet header. 29-August-2019 G.Cosmo (geom-specific-V10-05-16) - Minor c++11 revision and headers cleanup. Code formatting. - Use pre-increment wherever possible. 19-August-2019 G.Lima (geom-specific-V10-05-15) - G4ExtrudedSolid: fixed a bug in DistanceToOut(), affecting extruded solids defined off-center along the z-axis. 19-August-2019 G.Cosmo (geom-specific-V10-05-14) - G4GenericTrap: fixed compilation warnings for variable shadowing on clang-8. 13-August-2019 G.Cosmo (geom-specific-V10-05-13) - Enabled wrappers for VecGeom implementation of G4EllipticalTube, G4EllipticalCone and G4Ellipsoid. 10-July-2019 E.Tcherniaev (geom-specific-V10-05-12) - Fixed G4UExtrudedSolid::CreatePolyhedron(). Addressing visualization part of the problem report #2171. 04-July-2019 G.Cosmo (geom-specific-V10-05-11) - Avoid defining kCarTolerance as 'static const' in G4VFacet. Addressing problem report #2172. 11-June-2019 E.Tcherniaev (geom-specific-V10-05-10) - Use GetVertices() instead of GetParametersList() in the wrapper G4UTet. 29-May-2019 G.Cosmo (geom-specific-V10-05-09) - Fixed minor Coverity defects. 20-May-2019 G.Cosmo (geom-specific-V10-05-08) - Defined move constructor and move assignment operator for G4TriangularFacet. 14-May-2019 B.Morgan (geom-specific-V10-05-07) - Add inclusion of new G4GeomTypes.hh header to those headers allowing VecGeom replacement. - See also geommng-10-05-05 23-April-2019 G.Cosmo (geom-specific-V10-05-06) - Modified G4PolyconeSide and G4PolyhedraSide to use only trivial types for MT splitted data in G4PlSideData and G4PhSideData respectively. 16-April-2019 G.Cosmo (geom-specific-V10-05-05) - Protected check in G4TwistTubsSide::DistanceToPlane() withing debug flag. 4-April-2019 G.Cosmo (geom-specific-V10-05-04) - Enabled wrapper for VecGeom implementation of G4GenericPolycone. 15-February-2019 E.Tcherniaev (geom-specific-V10-05-03) - Accurate calculation of radical in G4IntersectingCone. It addresses the problem report #2111. 4-February-2019 G.Cosmo (geom-specific-V10-05-02) - Fix in G4EllipticalTube::CheckParameters() for typo in condition. 30-January-2019 G.Cosmo (geom-specific-V10-05-01) - Disabled precise computation of extent and use simple bounding-box in CalculateExtent() for G4Tet and G4TessellatedSolid, to speed up intialisation in setups with relatively complex meshes. - Apply bounding-box calculation for extent also for corresponding VecGeom wrappers. 24-January-2019 E.Tcherniaev (geom-specific-V10-05-00) - Completely revised, more robust and performant G4EllipticalTube; new exhaustive test/testEllipticalTube.cc based on Shape Conventions. 20-September-2018 G.Cosmo (geom-specific-V10-04-15) - Make G4UPolycone wrapper inheriting from vecgeom::GenericUnplacedPolycone, following the latest changes in VecGeom. 13-September-2018 G.Cosmo (geom-specific-V10-04-14) - G4UTessellatedSolid, G4UExtrudedSolid: removed leftover use of UVector3 and replaced with U3Vector. 23-August-2018 G.Cosmo (geom-specific-V10-04-13) - Enabled VecGeom wrapper for G4Tet. 10-August-2018 A.Gheata (geom-specific-V10-04-12) - Make G4UHype wrapper inheriting from vecgeom::GenericUnplacedHype, following the latest changes in VecGeom. 12-July-2018 G.Cosmo (geom-specific-V10-04-11) - Removed G4SolidsWorkspacePool class. Adapted G4SolidsWorkspace to use templated class G4TWorkspacePool. - Coworks with tags in geometry/volumes, run and visualization/management. 25-Jun-2018 G.Cosmo (geom-specific-V10-04-10) - Use dynamic_cast to attempt fix for spurious compilation warnings on CentOS7/gcc-5.3 on G4UTessellatedSolid wrapper. 17-May-2018 J.Madsen (geom-specific-V10-04-09) - Updated "thread-local-static-var" model to "function-returning-thread-local-static-reference" model which fixes Windows DLL + MT 11-April-2018 G.Cosmo (geom-specific-V10-04-08) - Replaced USOLIDS_LIBRARIES with VECGEOM_LIBRARIES in sources.cmake. 13-February-2018 E.Tcherniaev (geom-specific-V10-04-07) - Corrected conversion of input parameters to internal structure (used for caching for adoption in GDML persistency) in G4UPolycone and G4UPolyhedra wrappers. 9-February-2018 G.Cosmo (geom-specific-V10-04-06) - Caching facets and vertices in G4UTessellatedSolid wrapper for properly treating indexing in facets. 31-January-2018 G.Cosmo (geom-specific-V10-04-05) - Corrected use of facets indeces in G4UTessellatedSolid for visualization. - Minor cleanup in G4TessellatedSolid::CreatePolyhedron(), no functional changes. 15-January-2018 G.Cosmo (geom-specific-V10-04-04) - Added validity checks in G4UTessellatedSolid::AddFacet(). 11-January-2018 G.Cosmo (geom-specific-V10-04-03) - Added and enabled VecGeom wrapper for G4TessellatedSolid. Requires tags cmake-V10-04-01 and config-V10-04-00. 20-December-2017 G.Cosmo (geom-specific-V10-04-02) - Enabled VecGeom wrappers for G4ExtrudedSolid and G4Hype. 13-December-2017 E.Tcherniaev (geom-specific-V10-04-01) - Removed redundant data initialistion in G4ExtrudedSolid constructors. 11-December-2017 E.Tcherniaev (geom-specific-V10-04-00) - Added missing initialisation of two data-members in copy-ctor and assignment operator of G4ExtrudedSolid. Addressing problem report #2016. 22-November-2017 G.Cosmo (geom-specific-V10-03-25) - Fix in SurfaceNormal() for G4ExtrudedSolid to assure explicit counting of the surfaces where the point is placed on edg 2-November-2017 G.Cosmo (geom-specific-V10-03-24) - Fixed compilation warning introduced with last tag. 31-October-2017 E.Tcherniaev (geom-specific-V10-03-23) - Added specialised implementation for constructs defining a non-convex right prism in G4ExtrudedSolid. 20-October-2017 G.Cosmo (geom-specific-V10-03-22) - G4TessellatedSolid: print also solid's name in StreamInfo(). 17-October-2017 G.Cosmo (geom-specific-V10-03-21) - Added VecGeom wrapper G4UHype for G4Hype, not yet activated, pending fixes in VecGeom. 16-October-2017 G.Cosmo (geom-specific-V10-03-20) - Temporarly disabled wrappers for G4Tet and G4GenericPolycone, pending their corresponding implementation in VecGeom. 28-September-2017 G.Cosmo (geom-specific-V10-03-19) - Corrected initialisation of polyhedra by vertices in G4UPolyhdra wrapper following the changes in VecGeom. 15-September-2017 G.Cosmo (geom-specific-V10-03-18) - G4SolidsWorkspacePool: use DLL export flag for static thread-local symbol of the workspace. 12-September-2017 G.Cosmo (geom-specific-V10-03-17) - G4Voxelizer: directly set components for bounding-box instead of recreating it in BuildBoundingBox(..). 8-September-2017 E.Tcherniaev (geom-specific-V10-03-16) - Added specialised implementation for constructs defining a convex right prism in G4ExtrudedSolid. 4-September-2017 G.Cosmo (geom-specific-V10-03-15, 14) - Temporarly disabled wrapper for extruded-solid, pending implementation of extruded-solid in VecGeom. 16-August-2017 J.Allison (geom-specific-V10-03-13) - Twisted solids: Fixed bug in drawing polyhedra with negative twist angle. Addressing problem report #1995. 27-July-2017 E.Tcherniaev (geom-specific-V10-03-12) - G4EllipticalCone: corrected samping of random points on lateral surface in function GetPointOnSurface(). 24-July-2017 E.Tcherniaev (geom-specific-V10-03-11) - G4EllipticalCone: improved GetPointOnSurface() to have uniform sampling of points, using function G4RandomPointOnEllipse(). 20-July-2017 E.Tcherniaev (geom-specific-V10-03-10, 09) - G4EllipticalCone: reviewed implementation of Inside(), DistanceToIn/Out(p), SurfaceNormal() and GetPointOnSurface(); made more compact and performant. Addressing problem report #1974. 15-June-2017 G.Cosmo (geom-specific-V10-03-08) - Enabled adapter also in G4UPolycone wrapper. - Added check on open solid for G4UPolyhedra wrapper. 6-June-2017 G.Cosmo (geom-specific-V10-03-07) - Enable adapter for VecGeom shapes in G4U* wrappers for: paraboloid, polyhedra and GenericTrap. From now on, wrappers depends directly on VecGeom shapes implementation. USolids API is deprecated and no longer supported. 24-May-2017 G.Cosmo (geom-specific-V10-03-06) - Renamed ambiguous name Extent() in all solids and G4U* wrappers to BoundingLimits(). Change required in order to avoid signature conflict with VecGeom in G4U* wrappers. Requires tag geommng-V10-03-16. 11-May-2017 G.Cosmo (geom-specific-V10-03-05) - Removed potential race condition in G4VTwistSurface::AmIOnLeftSide(). Addressing problem report #1972. 7-April-2017 G.Cosmo (geom-specific-V10-03-04) - Renamed G4SurfaceVoxelizer to G4Voxelizer and extended to support voxelisation of shapes in 3D space. Adapted G4TessellatedSolid accordingly. 13-March-2017 G.Cosmo (geom-specific-V10-03-03) - G4SolidsWorkspacePool: implemented CleanUpAndDestroyAllWorkspaces(), to be called by worker threads. Removed declaration (i.e. not implemented) of protected method ReleaseAndDestroyWorkspace(). 2-March-2017 E.Tcherniaev (geom-specific-V10-03-02) - Fixed possible rounding off error in calculation of 'astep' (max angle for one step) in CalculateExtent() for G4Polycone, G4GenericPolycone and related USolids wrappers. 27-February-2017 E.Tcherniaev (geom-specific-V10-03-01) - Revised implementation of GetCubicVolume() and GetSurfaceArea() for G4EllipticalTube, to return exact values. - Revised implementation of GetSurfaceArea() for G4EllipticalCone, to return exact value; moved both GetCubicVolume() and GetSurfaceArea() to be not inline. 13-December-2016 G.Cosmo (geom-specific-V10-03-00) - Correction in G4UExtrudedSolid to signature for CalculateExtent(). Fixes issue of undefined symbol if extruded-solid not included in the list of VecGeom wrappers to activate. 30-November-2016 E.Tcherniaev (geom-specific-V10-02-25) - Call RemoveRedundantVertices() from G4GeomTools in CalculateExtent() for G4Polycone, G4Polyhedra and related USolids wrappers. - Fix in G4Parabolid and G4UParaboloid for correct computation of extent. 18-November-2016 E.Tcherniaev (geom-specific-V10-02-24) - Added consistency checks for extent computation in USolids wrappers. - Fix in cached parameters in G4UPolyhedra. 10-November-2016 G.Cosmo (geom-specific-V10-02-23) - G4UPolyhedra re-introduced new implementation of CalculateExtent() using G4BoundingEnvelope and extended wrapper to cache corners and start/end Phi parameters, to overcome issues in VecGeom on treatment of angles. 10-November-2016 E.Tcherniaev (geom-specific-V10-02-22) - Added caching of corners and implementation of GetCorner() in G4UPolycone in order to assure correct translation. - Withdrawn changes in G4UPolyhedra introduced in tag geom-specific-V10-02-16 until understood proper conversion from VecGeom. 7-November-2016 E.Tcherniaev (geom-specific-V10-02-21) - Correction in G4EllipticalCone::DistanceToOut(p) to make it more accurate. - Added optional debug flag G4BBOX_EXTENT in GNUMake build to compare extent calculation by simply using bounding-box. 3-November-2016 G.Cosmo (geom-specific-V10-02-20, 19) - Fix in G4PolyPhiFace for potential unitialised data in Inside(). 31-October-2016 E.Tcherniaev (geom-specific-V10-02-18) - Re-implemented CalculateExtent() to make use of G4BoundingEnvelope and removed no-longer used method CreateRotatedVertices() in G4Polyhedra, G4EllipticalCone, G4Polycone, G4Paraboloid, G4ExtrudedSolid, G4Hype, G4GenericPolycone, G4TessellatedSolid, G4TwistedTubs and related USolids wrappers. - Use G4RandFlat instead of RandFlat. 21-October-2016 G.Cosmo (geom-specific-V10-02-17) - Moved initialisation of G4GeomSplitter thread-local data to be inline along with generic template type. Fixing compilation/linking errors on clang-3.9 and XCode-8 on MacOS. 19-October-2016 E.Tcherniaev (geom-specific-V10-02-16) - Reimplemented CalculateExtent() in G4Polycone, G4Polyhedra, G4GenericPolycone and associated USolids wrappers, to make use of G4BoundingEnvelope. 5-October-2016 E.Tcherniaev (geom-specific-V10-02-15, 14) - Reimplemented CalculateExtent() in G4Tet, G4UTet, G4GenericTrap, G4UGenericTrap, G4EllipticalTube and G4VTwistedFaceted, to make use of G4BoundingEnvelope; removed no-longer used method CreateRotatedVertices(). 20-September-2016 G.Cosmo (geom-specific-V10-02-13) - Moved accessors/modifiers for splitter data to non-inline in G4PolyhedraSide and G4PolyconeSide. Explicitly initialise G4GeomSplitter data in G4SolidsWorkspace translation unit. Fixing compilation/linking errors on clang-3.9 and XCode-8 on MacOS. 06-July-2016 E.Tcherniaev (geom-specific-V10-02-12) - Fixed monir typo in function Create() for G4Polycone, G4Polyhedra and G4GenericPolycone. Fixed minor typos in G4GenericTrap::SurfaceNormal() and G4VTwistSurface::CurrentStatus::ResetfDone(). Issues detected by PVS-Studio static code analyzer. Addressing problem report #1876. 24-May-2016 G.Cosmo (geom-specific-V10-02-11) - Correction in G4UExtrudedSolid for definition of CreatePolyhedron(). 20-May-2016 G.Cosmo (geom-specific-V10-02-10) - Moved accessors and modifiers in USolids wrappers to be not inlined. Required modification in order to allow correct dispatching to VecGeom types. 15-Apr-2016 G.Cosmo (geom-specific-V10-02-09) - Added flag in USolids wrappers for partial use of USolids/VecGeom types. 31-Mar-2016 G.Cosmo (geom-specific-V10-02-08, 07) - Added overloaded CreatePolyhedron() method to USolids wrappers. It is now possible to visualize supported VecGeom shapes. - Added implementation of CreatePolyhedron() in UExtrudedSolid wrapper. 10-Mar-2016 G.Cosmo (geom-specific-V10-02-06) - Added overloaded GetEntityType() method to USolids wrappers. 07-Mar-2016 E.Tcherniaev (geom-specific-V10-02-05) - Fix in G4IntersectingCone for smaller precision constant in LineHitsCone1() and LineHitsCone2(). Fixes issue observed in G4GenericPolycone. Addressing problem report #1794. 03-Mar-2016 G.Cosmo (geom-specific-V10-02-04) - Fixed compilation warnings for potential uninitialised values in G4ExtrudedSolid::CheckPolygon() function introduced in previous tag. 03-Mar-2016 E.Tcherniaev (geom-specific-V10-02-03) - Added 'const' qualifier for methods in G4ExtrudedSolid. Added CheckPolygon() to remove collinear and coincident points from polygons. - G4QuadrangularFacet: added exhaustive tests in constructor to catch potential problems with a quadrangular facet: collinear vertices, non planar surface, degenerate, concave or self intersecting quadrilateral. - G4TriangularFacet: Improved test in constructor to detect degenerate (too small or too narrow) triangles. 25-Feb-2016 E.Tcherniaev (geom-specific-V10-02-02) - Correction in G4ExtrudedSolid::AddGeneralPolygonFacets() for precision treatment in construction of tessels to avoid cases of collinear points and consequent degenerating triangles. Address problem report #1777. - Use pre-computed kCarToleranceHalf constant in G4ExtrudedSolid, now protected in G4TessellatedSolid. - Improved algorithms for computation of area in G4TriangularFacet and G4QuadrangularFacet. Added post-const qualifier to GetArea(). 16-Feb-2016 G.Cosmo (geom-specific-V10-02-01) - Revised implementation for GetSurfaceArea() and GetCubicVolume() in G4GenericTrap (E.Tcherniaev). - Protected debug warning in G4GenericTrap::SurfaceNormal() within G4SPECSDEBUG. 02-Feb-2016 E.Tcherniaev (geom-specific-V10-02-00) - Fix in G4GenericTrap for compuation of extent. Addressing problem report #1809. - Use dot() in formula for computation of GetCubicVolume() in G4TessellatedSolid. 18-Nov-2015 G.Cosmo (geom-specific-V10-01-15) - Added specialised implementation for GetCubicVolume() in G4TessellatedSolid (J.Allison). 29-Oct-2015 G.Cosmo (geom-specific-V10-01-14) - Added debug printouts within G4SPECSDEBUG in G4TessellatedSolid for DistanceToIn/Out(p,v) to identify potential wrong responses. 26-Oct-2015 G.Cosmo (geom-specific-V10-01-13) - Removed redundant condition in G4Polyhedra and G4polycone SetOriginalParameters() method. 23-Oct-2015 G.Cosmo (geom-specific-V10-01-12) - G4PolyhedraSide: moved internal struct definitions to public section to overcome deficiencies in object-persistency class parsing. 07-Oct-2015 G.Cosmo (geom-specific-V10-01-11) - Protected compilation of USolid wrappers with G4GEOM_USE_USOLIDS flag. 01-Sep-2015 G.Cosmo (geom-specific-V10-01-10) - Corrected conditional compilation flag in G4UParaboloid.cc. 31-Aug-2015 G.Cosmo (geom-specific-V10-01-09) - Added USolids/VecGeom wrapper for G4Paraboloid (G.Lima/FNAL). Activated only for external USolids/VecGeom installation. 13-Aug-2015 G.Cosmo (geom-specific-V10-01-08) - Checked for potential never-ending loops. No issues found, only added annotations. 05-Aug-2015 G.Cosmo (geom-specific-V10-01-07) - Minor code cleanup in G4SurfaceVoxelizer. 03-Mar-2015 G.Cosmo (geom-specific-V10-01-06) - Use accessors x(), y() and z() from UVector3, instead of directly accessing its data-members. Co-work with tag "geom-usolids-V10-01-09". 23-Feb-2015 T.Nikitina (geom-specific-V10-01-05) - Fix in SetOriginalParameters() for G4Polycone and G4Polyhedra, in case of presence of 'rings' structures. Addressing problem report #1705. 26-Jan-2015 G.Cosmo (geom-specific-V10-01-04) - Renamed DistanceAwayForInside() to DistanceAway() and use polymorphism. 26-Jan-2015 T.Nikitina (geom-specific-V10-01-03, 02) - Added special method for Inside 'DistanceAwayForInside()' in order to fix precision problem of calculation of DistanceToSide() in G4PolyconeSide. 21-Jan-2015 T.Nikitina (geom-specific-V10-01-01) - Fixed triangularisation method AddGeneralPOlygoneFacets() in G4ExtrudedSolid by avoiding flat triangles. - Added warning message to G4TriangularFacet constructor if Area is 0; i.e., case of flat triangle. - Addressing problem report #1703. 12-Dec-2014 G.Cosmo (geom-specific-V10-01-00) - Use canonical form for operator=() in G4PolyconeHistorical and G4PolyhedraHistorical. 17-Sep-2014 G.Cosmo (geom-specific-V10-00-11) - Added wrappers for UExtrudedSolid and UGenericTrap; adapted switches to original G4 types accordingly. Requires tag "geom-usolids-V10-00-16". 01-Sep-2014 G.Cosmo (geom-specific-V10-00-10) - Fixed use of polyhedron pointer, to avoid race condition in MT when parameterised volumes are visualised. 22-May-2014 G.Cosmo (geom-specific-V10-00-09) - Added protection in generic constructor of G4Polyhedra for the case when improper number of sides is given as input. 10-Apr-2014 G.Cosmo (geom-specific-V10-00-08) - Get rid of deprecated 'register' storage class specifier in source files. 31-Mar-2014 G.Cosmo (geom-specific-V10-00-07) - Fixed signature of assignment operator to G4VCSGfaceted. 31-Mar-2014 G.Cosmo (geom-specific-V10-00-06) - Fixed signature of assignment operator to G4Polycone, G4Polyhedra and and G4GenericPolycone. 05-Mar-2014 G.Cosmo (geom-specific-V10-00-05) - Fixed proper handling of polyhedron pointer in solids, to avoid memory leak for visualization of parameterised volumes. 12-Feb-2014 G.Cosmo (geom-specific-V10-00-04) - Simply reset polyhedron pointer to zero for modifiers of G4U* wrappers in parameterisation. Resolves crash in MT visualization when using USolids. 12-Feb-2014 G.Cosmo (geom-specific-V10-00-03 [and -02]) - Added correct cloning mechanism in G4U* wrappers. Addressing problem report #1553. 18-Dec-2013 T.Nikitina (geom-specific-V10-00-01) - Fix in G4GenericTrap::InsidePolygone() to check if p lies between the two extremes of the segment. Addressing problem report #1541. 17-Dec-2013 G.Cosmo (geom-specific-V10-00-00) - Corrected left-over debug printout in G4Polycone::SetOriginalParameters(). 04-Dec-2013 G.Cosmo (geom-specific-V09-06-36) - Corrected left-over debug printout in G4Polyhedra::SetOriginalParameters(). 22-Nov-2013 G.Cosmo (geom-specific-V09-06-35) - Correction to USolids wrappers for proper setting of name to base class. 19-Nov-2013 J.Apostolakis (geom-specific-V09-06-34) - Fix for issue identified by Coverity: fixed implementation of G4SolidsWorkspacePool singleton. 20-Nov-2013 T.Mikitina (geom-specific-V09-06-33) - Fixed Coverity defects to USolids wrappers. 14-Nov-2013 G.Cosmo (geom-specific-V09-06-32, 31) - Enabled use of Reset() in G4UPolycone. - Corrections to G4UPolycone and G4UPolyhedra to allow for visualization of parameterisations on these solids. 13-Nov-2013 G.Cosmo (geom-specific-V09-06-30) - Correction to G4UTet and G4UGenericPolycone to explicitly include symbols re-definitions from G4Tet and G4GenericPolycone respectively. 12-Nov-2013 G.Cosmo (geom-specific-V09-06-29) - Added dummy method G4UPolycone::Reset(). NOTE: Required related implementation (currently missing!) in UPolycone. 12-Nov-2013 G.Cosmo (geom-specific-V09-06-28) - Correction to USolids switch mechanism for G4Polycone. 08-Nov-2013 J.Apostolakis (geom-specific-V09-06-27) - G4SolidsWorkspace: cleanup of verbosity. Reduced verbosity by making it optional. Added Set/Get Verbose methods to toggle and view it. Added parameter to constructor for verbosity (default=off). 07-Nov-2013 G.Cosmo (geom-specific-V09-06-26) - Moved wrappers from usolids module. Fixed internal dispatcher method for parameterisation in all wrappers. - Added switching mechanism for G4GenericPolycone, G4Polycone, G4Polyhedra and G4Tet. 06-Nov-2013 G.Cosmo (geom-specific-V09-06-25) - Added switch mechanism for USolids (G4GenericPolycone, G4Polycone, G4Polyhedra, G4Tet). Renamed related G4 types to 'G4O'. - Moved wrappers from USolids module. 01-Nov-2013 G.Cosmo (geom-specific-V09-06-24) - Corrected CMake script. 31-Oct-2013 G.Cosmo (geom-specific-V09-06-23) - Fix for in G4Polyhedra::SetOriginalParameters(). (T.Nikitina) - Moved G4PolyconeHistorical and G4PolyhedraHistorical in separate translation units. 29-Oct-2013 T.Nikitina (geom-specific-V09-06-22) - Split G4Polycone for polycones with decreasing Z-sections. Introduced new class G4GenericPolycone. - Fixed conversion of generic construct for G4Polyhedra. 17-Oct-2013 J.Apostolakis/A.Dotti (geom-specific-V09-06-21) - Cleanup of code for workspace. 16-Oct-2013 J.Apostolakis/A.Dotti (geom-specific-V09-06-20) - Created G4SolidsWorkspacePool class, to manage Workspaces Fixed Singleton G4SolidsWorkspacePool for thread safe creation of object. 04-Oct-2013 J.Apostolakis (geom-specific-V09-06-19) - Retagged. NOTE: requires tag "geommng-V09-06-12" and co-works with "geomvol-V09-06-13". 04-Oct-2013 J.Apostolakis (geom-specific-V09-06-18) - Created G4SolidsWorkspace class, to create, initialize and destroy per-thread state of PolyCone Sides and PolyHedra Sides. 27-Aug-2013 G.Cosmo (geom-specific-V09-06-17) - Enabled G4Ellipsoid for parameterisation. 14-Aug-2013 G.Cosmo (geom-specific-V09-06-16) - Move function-scoped 'static const' values for half-tolerances to private data members of classes, to overcome false-positive race-conditions defects reported by Valgrind in MT mode. - Fix in G4TessellatedSolid::DistanceToIn(p,v) for specific cases where points are located near surface (T.Nikitina). 16-Jul-2013 M.Gayer (geom-specific-V09-06-15) - Fix in G4SurfaceVoxelizer affecting tessellated-solid (and extruded-solid) for wrong computation of DistanceToIn(p,v) for points outside, when optimisation is active. 11-Jul-2013 G.Cosmo (geom-specific-V09-06-14) - Fixed compilation warning in G4Polycone on MacOS/clang. 09-Jul-2013 T.Nikitina (geom-specific-V09-06-13) - Extended method SetOriginalParameters() in G4Polycone in order to handle all possible cases of conversion of generic polycone to polycone with (Rmin,Rmaz,Z) parameters. Addressing problem report #1462. 03-Jun-2013 G.Cosmo (geom-specific-V09-06-12) - Fixed minor Coverity defect in G4PolyhedraSide and G4PolyconeSide. 22-Apr-2013 J.Apostolakis (geom-specific-V09-06-11) - Revised G4ExtrudedSolid::IsSameLine to use the perpendicular distance to a line when deciding - not the y-intercept difference. ( Issue responsible for a problem in Subtraction Solid in Atlas. Tatiana & Ivana contributed to debugging. ) - Changed GNUmakefile in test directory to work with Cmake and granular builds. 16-Apr-2013 T.Nikitina (geom-specific-V09-06-10) - Fix in calculation of normal in G4Tet::DistanceToOut(p,v,..) and SurfaceNormal(p). - Fix in G4Polycone::GetPointOnCone() for cases of shape with decreasing Z. Fixes cases of false report for overlaps detection. Problem report #1462. Added check with exception in constructor for polycone with rInner > rOuter for the same Z. 18-Mar-2013 G.Cosmo (geom-specific-V09-06-09) - G4TessellatedSolid: fixed problem with navigation in tessellated solids with concave surfaces. Addresses problem report #1456. - More cleanup from MT changes in G4VTwistSurface and G4Tet. 12-Mar-2013 G.Cosmo (geom-specific-V09-06-08) - Added public accessors for MT data to G4PolyconeSide and G4PolyhedraSide. 11-Mar-2013 G.Cosmo (geom-specific-V09-06-07) - Redefined G4DLL_API to G4GEOM_DLL to avoid cases of macro redefinition. 08-Mar-2013 G.Cosmo (geom-specific-V09-06-06) - Renamed G4MT macros to safer ID in G4PolyconeSide and G4PolyhedraSide. 07-Mar-2013 G.Cosmo (geom-specific-V09-06-05) - Adopt G4GeomSplitter instead of G4MTTransitory in G4PolyconeSide and G4PolyhedraSide. Fixed import/export of static symbols for WIN32 DLLs build. 22-Feb-2013 G.Cosmo (geom-specific-V09-06-04) - Cleanup changes for multi-threading in G4Tet, G4VTwistSurface, G4PolyconeSide and G4PolyhedraSide. - Removed unused private data member in G4TwistTrapParallelSide. 07-Mar-2013 G.Cosmo (geom-specific-V09-06-05) - Adopt G4GeomSplitter instead of G4MTTransitory in G4PolyconeSide and G4PolyhedraSide. Fixed import/export of static symbols for WIN32 DLLs build. 22-Feb-2013 G.Cosmo (geom-specific-V09-06-04) - Cleanup changes for multi-threading in G4Tet, G4VTwistSurface, G4PolyconeSide and G4PolyhedraSide. - Removed unused private data member in G4TwistTrapParallelSide. 11-Jan-2013 G.Cosmo (geom-specific-V09-06-03) - Fixed condition in G4VTwistSurface::GetBoundaryLimit() for logical error. Addressing problem report #1420. 20-Dec-2012 M.Gayer (geom-specific-V09-06-02) - Fixed cases of hang-ups in G4ExtrudedSolid on 32-bits platforms, due to G4TessellatedSolid and G4SurfVoxelizer, caused by accessing bitmask arrays with negative indexes. The problem was related to floating-point rounding, which can be different even on same platform with debug/release version. Assure same number of computed voxels on 32-bit/64-bit platforms. Fixed error in SetVertexIndex() method, which might cause problems on certain configurations even for 64-bit systems. Fixed minor memory leaks. - Code cleanup for use of G4endl and tabs... 14-Dec-2012 G.Cosmo (geom-specific-V09-06-01) - Restored SVN id headers. 02-Dec-2012 J.Allison (geom-specific-V09-06-00) - Removed NURBS. 29-Nov-2012 G.Cosmo (geom-specific-V09-05-24) - Remove inclusion of G4PhysicalConstants.hh from G4SurfaceVoxelizer.hh. - Fixed unit test for compilation errors. 28-Nov-2012 G.Cosmo (geom-specific-V09-05-23) - Fixed more cases of inclusion of constants header. 23-Nov-2012 G.Cosmo (geom-specific-V09-05-22) - Added 'const' qualifiers to signature in G4VoxelComparator::operator() for porting on AIX-xlC compiler. 14-Nov-2012 P.Mato (geom-specific-V09-05-21) - Added #undef NDEBUG in unit tests to ensure assert works also in full optimised mode. 14-Nov-2012 P. Mato (geom-specific-V09-05-20) - Added #undef NDEBUG in unit tests to ensure that assert always works 13-Nov-2012 M.Gayer (geom-specific-V09-05-19) - More fixes for out-of-bound array accesses in G4SurfaceVoxelizer. 12-Nov-2012 M.Gayer (geom-specific-V09-05-18) - Fixed out-of-bound array access in BuildReduceVoxels2(). 06-Nov-2012 G.Cosmo (geom-specific-V09-05-17) - Correction in sources.cmake script for missing .icc file. 06-Nov-2012 G.Cosmo (geom-specific-V09-05-16) - Fixed Coverity defects in new code (M.Gayer). - Minor fixes for porting on AIX. 01-Nov-2012 G.Cosmo (geom-specific-V09-05-15) - Fixed compilation of debug code under G4SPECSDEBUG. 01-Nov-2012 M.Gayer (geom-specific-V09-05-14) - Corrected signature for voxels count methods in G4SurfaceVoxelizer. 31-Oct-2012 M.Gayer (geom-specific-V09-05-13) - Added set/get methods for voxels count in G4SurfaceVoxelizer. 30-Oct-2012 M.Gayer (geom-specific-V09-05-12) - Fixed indexing of vertices in facets for tessellated-solid and some cleanup. 27-Oct-2012 G.Cosmo (geom-specific-V09-05-11) - Fixed initialization of data in G4SurfaceVoxelizer (M.Gayer). - Added post-const qualifier to G4VertextComparator::operator() in G4TessellatedSolid. - Fixed more compilation warnings on unused variable. 26-Oct-2012 G.Cosmo (geom-specific-V09-05-10) - Corrected compilation problem on G4SurfBits for use of fprint(). - Polished comments in disclaimer in new updated classes. 25-Oct-2012 G.Cosmo (geom-specific-V09-05-09) - Corrected compilation warnings on Linux and fixed use of memset/memcpy. 25-Oct-2012 G.Cosmo (geom-specific-V09-05-08) - Correction to sources.cmake. 19-Oct-2012 M.Gayer (geom-specific-V09-05-07) - Complete rewrite of G4TessellatedSolid resulting in reduced memory requirements by 50%, and factor of tens or more speedup for number of facets of the order of thousands, thanks to ad-hoc voxelization of the surface. Factor of thousands speedup when number of facets of the order of hundreds thousand. New classes introduced, G4SurfBits and G4SurfaceVoxelizer. 12-Jun-2012 G.Cosmo (geom-specific-V09-05-06) - Explicitly use inclusion of headers for system of units and physical constants, in plan to remove implicit inclusion from globals.hh. 14-May-2012 G.Cosmo (geom-specific-V09-05-05) - Fixed spurious cases of hidden variable visibility, detected with '-Wshadow' compilation option on gcc compiler. 06-Apr-2012 M.Kelsey (geom-specific-V09-05-04) - Modified GetPointOnSurface() to throw sqrt(r) uniformly for disk surfaces, in G4Paraboloid, G4Polycone and G4TwistedTubs. 13-Dec-2011 G.Cosmo (geom-specific-V09-05-03, 02, 01) - Fixed trivial Coverity defects in G4TwistedTubs and G4VTwisteFaceted for missing protection against self-assignment. 09-Dec-2011 T.Nikitina (geom-specific-V09-05-00) - Fix in G4EllipticalCone in DistanceToIn(p,v) to exclude imaginary solution (virtual cone) when distance is calculated. 10-Nov-2011 G.Cosmo (geom-specific-V09-04-09) - Fixed trivial Coverity defects on assignment operators... 25-Oct-2011 G.Cosmo (geom-specific-V09-04-08) - Fixed logic in G4VTwistSurface::GetEdgeVisibility() in treatment of corners. 16-Sep-2011 G.Cosmo (geom-specific-V09-04-07) - Fix compilation error in code within G4SPECSDEBUG. No functional changes. 13-Sep-2011 I.Hrivnacova (geom-specific-V09-04-06) - G4TriangularFacet: fixed tests where square root was compared to half Cartesian tolerance; now compared to kCarTolerance. Addressing problem report #1242. 25-Aug-2011 G.Cosmo - Migrated to new G4Exception scheme for warnings and errors. - Defined scheme for warnings/errors coding: + 1xxx for warnings, 0xxx for errors. Code numbering: + 0001: not supported or implemented features; + 0002: invalid setup/construct; + 0003: invalid run condition; + 1001: incorrect setup; automatically adapted. + 1002: notification. - Added unit test for G4ExtrudedSolid (J.Apostolakis). 22-Aug-2011 I.Hrivnacova (geom-specific-V09-04-05) - Fix in G4TriangularFacet::Intersect() to take into account geometrical tolerance and cases of zero distance from surface's facet. - Fix in G4TessellatedSolid::DistanceToOut(p) and DistanceToIn(p) to exactly compute distance from facet avoiding use of 'outgoing' flag shortcut variant. - Addressing problem report #1242. 17-Aug-2011 T.Nikitina (geom-specific-V09-04-04) - Fix in G4Paraboloid::DistanceToIn(p,v) and DistanceToIn(p) to properly take into account tolerance and provide better estimation of distance respectively. Addresses problem report #1234. 04-Aug-2011 T.Nikitina (geom-specific-V09-04-03) - Added SetReferences() and InvertFacets() to G4GenericTrap::CreatePolyhedron() for proper visualisation of Boolean compositions with G4GenericTrap. - Added SetReferences() to G4TessellatedSolid::CreatePolyhedron() for proper visualisation of Boolean compositions with G4TessellatedSolid. - Requires tag "greps-V09-04-04", for addressing problem report #1235. 17-May-2011 I.Hrivnacova (geom-specific-V09-04-02) - G4ExtrudedSolid: fix in Inside(p) for false overlap reporting. Addressing problem report #1211. 12-May-2011 G.Cosmo (geom-specific-V09-04-01) - Fixed compilation warnings from gcc-4.6.0 for variables set but not used. 06-May-2011 G.Cosmo (geom-specific-V09-04-00) - Use G4 typedef for CLHEP types. 26-Nov-2010 T.Nikitina (geom-specific-V09-03-20) - Fixes in G4GenericTrap reported by SBT unit test in SurfaceNormal(), DistanceToPlane() and VisExtent(). 16-Nov-2010 T.Nikitina (geom-specific-V09-03-19) - G4EllipticalCone: fixes in DistanceToIn(p,v) and DistanceToOut(p,v) for correct handling of point on the surface. Corrected formula for SurfaceNormal(p). 10-Nov-2010 T.Nikitina (geom-specific-V09-03-18) - Added checks on crossing of vertices and too big twisted angle in G4GenericTrap. - Fixed case of division by zero in G4TwistedTubs. - Added unit test for G4Polyhedra. 02-Nov-2010 G.Cosmo (geom-specific-V09-03-17) - More fixes on Coverity reports for G4TessellatedSolid and G4ReduciblePolygon. 20-Oct-2010 G.Cosmo (geom-specific-V09-03-16) - Implemented Clone() virtual method for all solids, returning a pointer to a dynamically allocated copy of the solid. To be used by Geant4-MT. 23-Sep-2010 G.Cosmo (geom-specific-V09-03-15) - Initialize fpPolyhedron to zero in copy-ctor and operator=(). - Completed implementation of copy-ctor and operator=() for facets. 20-Sep-2010 G.Cosmo (geom-specific-V09-03-14) - Implemented copy-constructor and assignment operator for all solids to facilitate conversion to Geant4-MT. 08-Sep-2010 G.Cosmo (geom-specific-V09-03-13) - Correction to previous fix in G4ReduciblePolygon to avoid deleting current 'vertexHead' pointer. 07-Sep-2010 G.Cosmo (geom-specific-V09-03-12) - Fix within G4CSGDEBUG code for restoring cout precision. - Fix in G4ReduciblePolygon::RemoveRedundantVertices() to avoid potential case of dereferencing freed pointer. 19-Aug-2010 T.Nikitina (geom-specific-V09-03-11) - G4EllipticalTube: extended implementation of SurfaceNormal(p) in agreement with canonical form. Added unit test testG4EllipticalTube.cc. 16-Jul-2010 G.Cosmo (geom-specific-V09-03-10) - Fixed cases of division by zero in G4VTwistSurface and G4TwistBoxSide. - Use INT_MAX as initialisation for max limits in G4SolidExtentList. 12-Jul-2010 G.Cosmo (geom-specific-V09-03-09) - Added dummy initialization to members in struct G4PolyPhiFace::G4PolyPhiFaceEdge, struct G4ReduciblePolygon::ABVertex. G4Ellipsoid, G4EllipticalTube, G4EnclosingCylinder, G4ExtrudedSolid, G4Hype, G4IntersectingCone, G4Paraboloid, G4PolyPhiFace, G4Polycone, G4PolyconeSide, G4Polyhedra, G4PolyhedraSide, G4QuadrangularFacet, G4ReduciblePolygon, G4TessellatedSolid, G4TriangularFacet, G4TwistBoxSide, G4TwistTrapAlphaSide, G4TwistTrapFlatSide, G4TwistTrapParallelSide, G4TwistTubsFlatSide, G4TwistTubsHypeSide, G4TwistTubsSide, G4TwistedTubs, G4VCSGfaceted, G4VFacet, G4VTwistSurface, G4VTwistedFaceted. - Fixed case of dereferencing null pointer in methods G4EllipticalTube::DistanceToOut(p,v), G4VCSGfaceted::DistanceToIn(p,v) and G4VCSGfaceted::DistanceToOut(p,v). - Fixed unecessary object copy as argument in method G4PolyhedraSide::IntersectSidePlane(). - Avoid possible case of derefencing null pointer in G4ReduciblePolygon RemoveDuplicateVertices() and RemoveRedundantVertices() methods. - Replaced calls to std::abs() with std::fabs() where suitable. 16-Jun-2010 G.Cosmo (geom-specific-V09-03-08) - Fixed deletion of internal arrays in CreatePolyhedron() for G4Polycone and G4Polyhedra. 11-Jun-2010 T.Nikitina (geom-specific-V09-03-07) - G4GenericTrap: fixed cases of zero dToIn/sToOut when vertices are collapsed to triangle, line or point. Added new methods handling those specific cases. - Added unit test for G4GenericTrap. 10-Jun-2010 I.Hrivnacova - G4GenericTrap: fixed parameter names in CalculateExtent() for the test case construction through tessellated facets. 09-Jun-2010 G.Cosmo - G4GenericTrap: moved internal methods to private section and reordered in source file. Added missing implementation for IsTwisted() method. 03-Jun-2010 T.Nikitina, G.Cosmo (geom-specific-V09-03-06) - G4GenericTrap: o Fixed initialization of fSurfaceArea and fCubicVolume and calculation of surface area. o Fixed error in Inside(p) function, and corrected use std::fabs() instead of std::abs() for floating point values. o Added missing initialisation of fpPolyhedron pointer. o More corrected signatures for use of non-const references for vectors passed as arguments to functions. 02-Jun-2010 G.Cosmo (geom-specific-V09-03-05) - G4GenericTrap: use const reference for vector of vertices passed as argument in constructor and accessor. 27-May-2010 T.Nikitina (geom-specific-V09-03-04) - First implementation of G4GenericTrap shape, a new solid representing an arbitrary trapezoid with up to 8 vertices standing on two parallel planes perpendicular to the Z axis. 28-Apr-2010 P.R.Truscott (geom-specific-V09-03-03) - Fix in G4TriangularFacet and G4TessellatedSolid to correct treatment of optical photon transport related to internal reflection at surface. Addresses problem report #1103. 15-Apr-2010 I.Hrivnacova (geom-specific-V09-03-02) - G4ExtrudedSolid: eliminated requirement for clockwise ordering of polygon vertices. Added a check for vertices ordering; if vertices are defined anti-clockwise their ordering is reverted. Fix in polygon facet triangularization for consequent concave vertices. 24-Feb-2010 G.Cosmo (geom-specific-V09-03-01) - Adopt caching of Phi in G4PolyconeSide and G4PolyhedraSide to avoid unnecessary consecutive computations on the same point. 10-Feb-2010 G.Cosmo (geom-specific-V09-03-00) - Use kInfinity for initialising minimum and maximum allowed extent for G4SolidExtentList of faceted solids. 11-Nov-2009 G.Cosmo (geom-specific-V09-02-08) - Avoid fake (and redundant) assignment of value to 3-vector in G4PolyconeSide and G4TwistTubsSide. 24-Sep-2009 T.Nikitina (geom-specific-V09-02-07) - G4Ellipsoid: refined fix in DistanceToIn(p,v) for points located on the curved surface, and correct treatment of geometrical tolerance. 09-Sep-2009 G.Cosmo (geom-specific-V09-02-06) - G4Ellipsoid: fixed usage of half-tolerances (radial and Cartesian) in DistanceToIn(p,v), based on incorrect assumptions introduced in tag "geom-specific-V09-02-04", responsible for zero steps on configurations with cut in Z. Addresses problem report #1076. 04-Aug-2009 T.Nikitina (geom-specific-V09-02-05) - G4Ellipsoid: o Fixes in Inside(p) and in DistanceToIn(p,v) for points located on the curved surface within tolerance. Final fix for issue reported in problem report #1050 and concerning warnings reported by grid_test. o Adopt pre-computed half-tolerance values for optimisation. 23-Jul-2009 T.Nikitina (geom-specific-V09-02-04) - G4Ellipsoid: fix to DistanceToIn(p,v) in the calculation of the roots of the quadratic equation and in DistanceToOut(p,v) in the calculation of the normal on cut surfaces. Final fix for problem report #1022 and #1050. - G4PolyconeSide: added protection in method Normal(), addressing problem report #1073. 30-Jun-2009 T.Nikitina (geom-specific-V09-02-03) - G4Ellipsoid: introduced to DistanceToIn(p,v) splitting of the distance for point very far from intersection area and big difference between solid dimensions and distance to it; resolves issue observed on 64 bits problem. Also addressing problem report #1022. 08-May-2009, G.Cosmo (geom-specific-V09-02-02) - Corrected typo in base implementation of G4VCSGfaceted::GetSurfaceArea(), which was erroneously returning cubic volume estimation. Addresses problem report #1062. 27-Apr-2009, G.Cosmo (geom-specific-V09-02-01) - Relaxed error condition in G4TessellatedSolid::Inside(p) to warning, for excess of max trials and anomalous conditions in distance calculation. Added more printout information when error condition is detected. 27-Feb-2009, T.Nikitina (geom-specific-V09-02-00) - Fix in G4Paraboloid::DistanceToOut(p,v,..) for the computation of normal to surface; added missing normalisation to unit, following remark in the Geometry Forum Hypernews posting #953. 21-Nov-2008, G.Cosmo (geom-specific-V09-01-19) - Added missing accessors to G4EllipticalCone, required for detector persistency. 13-Nov-2008, G.Cosmo (geom-specific-V09-01-18) - Corrected initialisation of algorithm in G4TriangularFacet constructor. 30-Oct-2008, I.Hrivnacova (geom-specific-V09-01-17) - G4ExtrudedSolid: fixed bug in the decomposition of polygonal sides for quadrangular facets in MakeFacets(). Addresses problem report #1029. 23-Sep-2008, T.Nikitina (geom-specific-V09-01-16) - Corrected algorithm in G4TriangularFacet::GetPointOnFace() according to suggestion advanced in problem report #1025. Fixes a problem of false overlaps detection related to G4ExtrudedSolid and G4TessellatedSolid. 12-Sep-2008, G.Cosmo (geom-specific-V09-01-15) - G4VFacet: corrected increment of indeces in operator==(), following problem report #1024. 25-Jul-2008, I.Hrivnacova (geom-specific-V09-01-14) - G4ExtrudedSolid: fix in polygon decomposition; systematically use half kCarTolerance instead of kCarTolerance; added solid name in the error messages coming from fatal exceptions. 16-Jul-2008, T.Nikitina (geom-specific-V09-01-13) - G4Paraboloid: revised DistanceToOut(p,v,...) in answer to problem report #1015. Fixed precision problem when solving quadratic equation; apply comparison with kCarTolerance and not with zero; fixed logic problem in algoritm for points on surface and direction inside, relative to directions along Z, (0,0,Vz). 22-May-2008, G.Cosmo (geom-specific-V09-01-12) - Removed left-over debug printout in G4VCSGFaceted::DistanceToIn(). 15-May-2008, T.Nikitina (geom-specific-V09-01-11) - Enhanced GetPointOnSurface() for generic G4Polycone and G4Polyhedra constructs; the method uses new triangulation algorithm for G4PolyPhiFace. - G4ExtrudedSolid: added missing 'std' namespace to standard mathematical function calls. 28-Apr-2008, T.Nikitina (geom-specific-V09-01-10) - Added kCarTolerance in definition of "low" and "high" cone limits in R and in Z in order to protect against numerical errors. This fixes cases of DistanceToIn(p,v) returning 'kInfinity' when p+t*v cross intersection between two cones. 25-Apr-2008, T.Nikitina (geom-specific-V09-01-09) - Added protection against NaN in G4IntersectingCone::LineHitsCone1() in case of configuration where a conic section becomes a tube. - G4EllipticalCone: removed some debug printouts. 14-Apr-2008, T.Nikitina (geom-specific-V09-01-08) - G4Hype: refined polyhedron representation for correct visualization of the shape. Coworks with tag "greps-V09-01-04". 13-Mar-2008, G.Cosmo (geom-specific-V09-01-07) - Cleared compilation warnings in G4Paraboloid and G4TessellatedSolid on gcc-4.3.0 for ambiguous use of parentheses in condition statements. 28-Feb-2008, I.Hrivnacova (geom-specific-V09-01-06) - Correction to previous fix in G4ExtrudedSolid: testing on the edges has to be limited to the line segment, for this purpose a new internal method IsSameLineSegment() has been introduced for use instead of IsSameLine(). - Updated and extended unit test testG4ExtrudedSolid.cc. 27-Feb-2008, I.Hrivnacova (geom-specific-V09-01-05) - Fix in G4TessellatedSolid::DistanceToOut(p,v,..) to compute normal only if specified by flag in input. - Fix in G4ExtrudedSolid::Inside(p) for correctly handling the case of points located on the edges of triangles which are not the outline edges of the polygon. 21-Feb-2008, T.Nikitina (geom-specific-V09-01-04) - G4Polyhedra: fixed problem of out-of-bound access to vectors in GetPointOnSurface(). 20-Feb-2008, I.Hrivnacova (geom-specific-V09-01-03) - G4TessellatedSolid: fixed bug in copy-constructor and internal method CopyObjects() for cloning of facets. 05-Feb-2008, I.Hrivnacova (geom-specific-V09-01-02) - G4ExtrudedSolid: bug fix in MakeFacets() to fill 'fTriangles' also in case of polygon with 3 or 4 vertices, as they are needed for Inside(p). 02-Feb-2008, I.Hrivnacova (geom-specific-V09-01-01) - Corrected triangularization of polygon, now correctly handling case of concave shapes. - Corrected order of arguments in G4Paraboloid constructor. 16-Jan-2008, I.Hrivnacova (geom-specific-V09-01-00) - In G4ExtrudedSolid::MakeFacets(), now adding triangular facets before quadrangular ones, following logic behind G4TessellatedSolid. 12-Dec-2007, G.Cosmo (geom-specific-V09-00-08a) - Remove use of global static constant from singleton initialisation in G4TessellatedGeometryAlgorithms class. Use 'sqrEpsilon' as local value. 15-Nov-2007, P.Truscott (geom-specific-V09-00-08) - Reviewed implementation of G4TessellatedSolid::CalculateExtent() to make it more robust and precise, following suggestion by S.Seibert addressed in problem report #983, now fixed. 12-Oct-2007, G.Cosmo (geom-specific-V09-00-07) - Corrected wrong boolean condition in method IntersectLineAndTriangle2D() of G4TessellatedGeometryAlgorithms causing compilation error on VC++8. 09-Oct-2007, G.Cosmo (geom-specific-V09-00-06) - Reviewed G4TessellatedSolid classes in order not to make use of random numbers for selection of direction (by P.Truscott). 02-Oct-2007, G.Cosmo - Removed debug printout in G4Polycone::GetPointOnCone(). 23-Aug-2007, G.Cosmo (geom-specific-V09-00-05) - Revision of G4TessellatedSolid classes: o Fixed problem report #931 by P.Truscott, based on suggestion of R.Holmberg. Modified classes G4TessellatedSolid and G4TriangularFacet. o Modified data and accessor 'centroid' and 'GetCentroid()' for G4VFacet; replaced by 'circumcentre' and 'GetCircumcentre()' respectively. o Added utility class G4TessellatedGeometryAlgorithms. - Added formulas for calculating SemiAxis and Zheight in G4EllipticalCone (by T.Nikitina). 20-Aug-2007, T.Nikitina & L.Lindroos (geom-specific-V09-00-04) - Revision of G4EllipticalCone: o DistanceToIn(p): corrected answer for p.z()<-zTopCut and for the point p on the surface. o DistanceToOut(p,v): now returning positive solution or zero when crossing the elliptical surface. o Fix in DistanceToOut(p) which was giving always zero. o Corrected visualisation error of solid in graphics_reps. o Added some formulas on how to pre-calculate 'SemiAxis' and 'zheight'. o Added checkDistanceToOut() method to unit test. - Corrections to G4Paraboloid: o Fixed bug in CalculateSurfaceArea() method o Added correct initialisation of 'fPolyhedron' in constructor. o Added unit test testG4Paraboloid. 13-Aug-2007, W.Pokorski (geom-specific-V09-00-03) - G4PolyconeSide: added workaround to initialisation of 'corners' vector, to allow for object persistency with Root-I/O (W.Pokorski). 18-Jul-2007, G.Cosmo (geom-specific-V09-00-02) - New specific G4Paraboloid with cuts along the Z axis (by L.Lindroos). - Fixed dummy constructors of G4Polycone and G4PolyPhiFace for initialisation of 'edges' and 'corners'. - Coworks with tag "greps-V09-00-01". 12-Jul-2007, T.Nikitina (geom-specific-V09-00-01) - Fix in G4Polyhedra::GetPointOnSurface() to correctly treat 'totalPhi' instead of 'endPhi' for the case of open shapes and 'twopi' for not open shapes. 05-Jul-2007, T.Nikitina (geom-specific-V09-00-00) - Fix in G4Polyhedra::GetPointOnSurface() for the case when number of sectors (numSide) is equal to 1. At the origin of problems observed when checking overlaps for polyhedra solids defined as such. 31-May-2007, G.Cosmo (geom-specific-V08-03-03) - Fixed initialisation of constants in constructor for - G4VTwistSurface, G4PolyPhiFace, G4PolyconeSide, G4PolyhedraSide - following latest changes for tunable tolerance. 25-May-2007, G.Cosmo (geom-specific-V08-03-02) - Fixed default response of DistToIn/DistToOut for twisted solids. - Use G4TWISTDEBUG instead of G4SPECSDEBUG as debug conditional flag for twisted solids. - Some cleanup in G4TwistTrapAlphaSide code. 18-May-2007, G.Cosmo (geom-specific-V08-03-01) - Use kAngTolerance and kRadTolerance from G4GeometryTolerance class. - Coworks with tag "global-V08-03-03". 11-May-2007, T.Nikitina (geom-specific-V08-03-00) - Use call to G4GeometryTolerance instead of kCarTolerance where needed. - Requires tag "global-V08-03-00" and related tag set. 26-Apr-2007, T.Nikitina (geom-specific-V08-02-05) - Fix in GetPointOnSurface() for G4Polycone to consider also points laying on rings when consecutive Z-sections are coincident. Added method GetPointOnRing(). - Added unit test testPointOnSurfacePoly.cc. 27-Feb-2007, I.Hrivnacova (geom-specific-V08-02-04) - Added specialised constructor for handling Z-sections in G4ExtrudedSolid. - Cleared unecessary declaration of IsInside() methods in G4TriangularFacet and G4QuadrangularFacet. - Updated unit test for G4ExtrudedSolid. 26-Feb-2007, I.Hrivnacova (geom-specific-V08-02-04) - Added specialised constructor for handling Z-sections in G4ExtrudedSolid. - Cleared unecessary declaration of IsInside() methods in G4TriangularFacet and G4QuadrangularFacet. - Updated unit test for G4ExtrudedSolid. 15-Feb-2007, I.Hrivnacova (geom-specific-V08-02-03) - Corrected caching of values in G4ExtrudedSolid. - Bug fix in G4TriangularFacet::Intersect() to allow for correct update of 'Distance' in condition. - Updated unit test for G4ExtrudedSolid. 09-Feb-2007, G.Cosmo (geom-specific-V08-02-02) - Introduced new shape G4ExtrudedSolid, a solid representing the extrusion of an arbitrary polygon with fixed outline in the two Z sections. New files: G4ExtrudedSolid[.hh.icc.cc] and testG4ExtrudedSolid.cc by I.Hrivnacova. - G4TessellatedSolid: o Made relevant solid's methods virtual, to be used as base class. o Added implementation for GetSurfaceArea() and GetPointOnSurface() methods. o Added protection in SurfaceNormal() method in case of facet not found. o Check and return kOutside in Inside() if point out of solid's extent. 01-Feb-2007, G.Cosmo (geom-specific-V08-02-01) - Fix in G4PolyconeSide::DistanceAway() for correct estimation of distance for the case of Phi sections (T.Nikitina). Addresses problem report #598. - Updated unit test for G4Polycone to consider new test case. 22-Jan-2007, G.Cosmo (geom-specific-V08-02-00) - Do not scale reducible-polygon in G4Polyhedra::Reset() method. The 'original_parameters' structure offered as input through the accessors are always assumed to be already scaled by the 'cos(0.5*phiTotal/theNumSide)' factor. Addresses problem report #873. - Fixed warning printout in G4Polycone::Reset(). 15-Nov-2006, J.Allison (geom-specific-V08-01-04) - Fixed typo in G4Polycone::CreatePolyhedron() introduced by mistake in the last cleanup of the source code. 13-Nov-2006, G.Cosmo (geom-specific-V08-01-03) - Added concrete implementation of GetSurfaceArea() in G4Tet (M.H.Mendenhall). 08-Nov-2006, G.Cosmo (geom-specific-V08-01-02) - Cleared compilation warnings on SUN-CC for changes in the last tag. Fixed overloaded class variables in G4Polyhedra and G4Polycone implementation of CreatePolyhedron(). 31-Oct-2006, J.Allison (geom-specific-V08-01-01) - Implemented CreatePolyhedron() for G4Polyhedra and G4Polycone. 20-Oct-2006, G.Cosmo (geom-specific-V08-01-00) - Implemented caching mechanism for computation of surface area in all solids and base classes, as done for the geometrical volume computation. - Added missing fake constructor for object persistency to G4TessellatedSolid. 20-Jun-2006, G.Cosmo (geom-specific-V08-00-10) - Added accessor method GetVertices() in G4Tet to return the list of vertices composing the solid. Required for GDML persistency. 06-Jun-2006, G.Cosmo (geom-specific-V08-00-09) - Added protection against NaNs in G4PolyconeSide::Normal() for points at the origin. 19-May-2006, G.Cosmo (geom-specific-V08-00-08) - Fix in G4Ellipsoid::SetZCuts() and G4EllipticalTube::SetZCut() for usage of uninitialised variables. 08-May-2006, G.Cosmo (geom-specific-V08-00-07) - Cleared compilation warning on SUN-CC in G4TriangularFacet.cc. 04-May-2006, G.Cosmo (geom-specific-V08-00-06) - Use different names for unit tests to avoid confusing liblist ... 03-May-2006, G.Cosmo (geom-specific-V08-00-05) - Added four unit tests for G4TessellatedSolid. 24-Mar-2006, G.Cosmo (geom-specific-V08-00-04) - G4TwistedTubs: defined exact estimation for GetCubicVolume(), similar to the one adopted for G4Tubs. 03-Mar-2006, G.Cosmo (geom-specific-V08-00-03) - Corrected boolean condition in G4TriangularFacet::Intersect(). Use '&&' operator in condition. Allows for porting on WIN32-VC. 01-Mar-2006, G.Cosmo (geom-specific-V08-00-02) - Introducing first implementation of a tessellated solid, contribution of P.R.Truscott (QinetiQ Ltd, UK). New classes: G4QuadrangularFacet, G4TessellatedSolid, G4TriangularFacet and G4VFacet. - Requires tag "greps-V08-00-00". 12-Jan-2006, J.Allison (geom-specific-V08-00-01) - G4TwistedTubs and G4VTwistedFaceted::CreatePolyhedron(): parameterised polyhedron mesh approximation in terms of G4Polyhedron::GetNumberOfRotationSteps(). This is (a) more economical and (b) amenable to user control. 19-Dec-2005, O.Link (geom-specific-V08-00-00) - Fixes in G4EllipticalCone: o Changed GetPointOnSurface(), which was not uniform in endcaps. o Bug fix in Inside(), which was not correct for the elliptic mantel. Made test similar as in G4EllipticTube. o Several fixes in DistanceToIn/Out(): for looping events (shortest distance was taken, even if 0); now comparing the distance to the endcap and to the mantel and decide afterwards which distance is shortest; added check n*v. o The code is now "good" at 90%. Still 10% wrong reconstructed events. e.g there is a problem is DistanceToOut(): missed the intersection (reconstruction took the encap instead of the mantel). 09-Dec-2005, O.Link - Fixed visibility of soft edges on the twisted solids. 08-Dec-2005, O.Link (geom-specific-V07-01-14) - Fixed bug in G4VTwistSurface::ComputeLocalPoint(p) for point coordinate transformation. The bug affected only G4TwistTrapFlatSide. 06-Dec-2005, G.Cosmo (geom-specific-V07-01-13) - Fixed compilation errors on WIN32-VC for last tag changes. 05-Dec-2005, O.Link (geom-specific-V07-01-12) - Added polyhedron definition for twisted solids (G4TwistedTrap, G4TwistedTrd, G4TwistedBox, G4TwistedTubs) for visualization. 30-Nov-2005, G.Cosmo (geom-specific-V07-01-11) - Trivial fixes for porting on CLHEP-2.0.X series. 18-Nov-2005, O.Link (geom-specific-V07-01-10) - Renamed classes for twisted solids set, to identify them in the twisted framework. 17-Nov-2005, O.Link - G4VTwistedFacted: o corrected bug in DistanceToSurface() implementation o added GetPointOnSurface() method - G4TwistedTubs: o added GetPointOnSurface() method - G4Hype: o corrected surface area calculation used in GetPointOnSurface() 17-Nov-2005, G.Cosmo (geom-specific-V07-01-09) - More fixes required for direct object persistency to G4Polycone, G4polyhedra and related utility classes. 10-Nov-2005, J.Allison (geom-specific-V07-01-08) - G4Tet: o Added implementation for GetPolyhedron() and GetCubicVolume(). o Corrected order of specifying vertices in CreatePolyhedron(). 09-Nov-2005, G.Cosmo (geom-specific-V07-01-07) - Added fake default constructor for all concrete solids and relevant utility classes, for usage of direct object persistency. - Implemented changes to support CLHEP-2.0.X for explicit usage of the CLHEP/HepGeom namespaces for CLHEP types. 07-Nov-2005, G.Cosmo (geom-specific-V07-01-06) - G4Ellipsoid: replaced call to hypot(x,y) with std::sqrt(x*x+y*y) for porting to ISO standard. 02-Nov-2005, G.Cosmo (geom-specific-V07-01-05) - G4Polyhedra, G4Polycone: o Protected case of generic construct for visualization. o Introduced explicit flag and method IsGeneric() to identify the kind of constructor used. 29-Sep-2005, G.Cosmo (geom-specific-V07-01-04) - Fix in G4EllipticalCone methods DistanceToIn() and DistanceToOut(). Added unit test for it (by D.Anninos). - Coworks with tag "greps-V07-01-02". 10-Aug-2005, G.Cosmo (geom-specific-V07-01-03) - Introduced new solid G4EllipticalCone, a full cone with elliptical base that can be cut in Z (by D.Anninos). Coworks with tag "greps-V07-01-02". 08-Aug-2005, D.Anninos (geom-specific-V07-01-02) - Added GetPointOnSurface() for all solids except twisted ones. The method returns a random point according to a quasi-uniform distribution along the surface. 18-Jul-2005, G.Cosmo (geom-specific-V07-01-01) - Fixed compilation warning on WIN32-VC for G4VSurface.cc. - Not including G4Tet. 06-Jul-2005, G.Cosmo (geom-specific-V07-01-00) - Added new shape G4Ellipsoid. Coworks with tag "greps-V07-01-00". Contribution of G.Horton-Smith and G.Guerrieri. Code cleanup, and added default arguments for cuts, added first implementation of unit test. - Corrected unit tests for twisted-box/trap. - Not including G4Tet. 15-Jun-2005, J.Apostolakis - Introduced new solid G4Tet, contribution of M.H.Mendenhall and R.A.Weller, Vanderbilt University, USA. 29-Apr-2005, O.Link (geom-specific-V07-00-04) - G4TwistedSurface: fixed bug in GetAreaCode() affecting G4TwistedTubs. 04-Apr-2005, G.Cosmo (geom-specific-V07-00-03) - Added test for Number-Of-Rotation-Steps in GetPolyhedron() for G4VCSGfaceted, G4Hype and G4EllipticalTube (by J.Allison). Requires tag "greps-V07-00-02". - Added elementary implementation of CreatePolyhedron() for G4Hype, G4TwistedBox, G4TwistedTubs, G4TwistedTrd, G4TwistedTrap. - Some code cleanup. 18-Mar-2005, O.Link (geom-specific-V07-00-02) - New generic framework for twisted solids G4TwistedBox, G4TwistedTrd and G4TwistedTrap: inheriting now from the base class G4VTwistedFaceted. - Extended G4TwistedTrap to support setups with different trapezoidal endcaps with centres not necessarily on a line parallel to the z axis. - Added G4TwistedTrd and general G4TwistedTrap as test cases in test. 03-Mar-2005, J.Allison - Changed AddThis() to AddSolid() for all solids in the implementation of DescribeYourselfTo(G4VGraphicsScene&). 01-Mar-2005, O.Link (geom-specific-V07-00-01) - Fixed compilation warnings on WIN32-VC for G4VSurface.cc. 14-Feb-2005, O.Link (geom-specific-V07-00-00) - Use new polynom approximations based on new solver based on Jenkins-Traub algorithm, for twisted-box and twisted-trap. - Fixed bug in the usage of 'fmod' and adopt special treatment for 'parallel' events in G4TwistedBoxSide and G4TwistedTrapSide. - Coworks with tag "global-V07-00-00". 08-Dec-2004, O.Link (geom-specific-V06-02-07) - Extensions to twisted box/trap shapes to consider all 4 solutions for determining correct intersections. 29-Nov-2004, O.Link (geom-specific-V06-02-06) - G4TwistedTrapSide, G4TwistedBoxSide: improved (analytical) version of GetPhiUAtX() method. 24-Nov-2004, O.Link (geom-specific-V06-02-05) - Fixed bug in description of twisted trapezoid side. 12-Nov-2004, O.Link (geom-specific-V06-02-04) - Added G4TwistedBox - a twisted box with twist angle alpha, length a/2,b/2,L/2. - Added G4TwistedTrap - a twisted trapezoid (still in debug state) - Changed in G4VSurface.icc: - GetNeighbours(): corrected axiscode (was returning the wrong neighbours) - SetNeighbours(): fixed problem #685 (index out of range) - Added tests for G4TwistedBox and G4TwistedTrap in specific/test. - Added G4TwistedBox and G4TwistedTrap in system testing, test10. 22-Oct-2004, D.C.Williams (geom-specific-V06-02-03) - Fix in G4PolyconeSide::Inside for points at radius = 0 for phi slides solids with an inner radius. Addresses problem report #598. 10-Oct-2004, J.Allison (geom-specific-V06-02-02) - Added GetPolyhedron, a smart access function that creates a G4Polyhedron on request and stores for future access. A null pointer means "not available". 22-Sep-2004, G.Cosmo (geom-specific-V06-02-01) - Added implementation of GetCubicVolume() with cashing mechanism for solids: G4EllipticalTube, G4Hype, G4Polyhedra, G4Polycone, G4TwistedTubs. 01-Sep-2004, D.C.Williams (geom-specific-V06-02-00) - G4VCSGfaceted: fix for rare anomalous situation in which DistanceToOut(p,v,..) will report kInfinity, make an additional check for the point p on the surface, in which case will report zero. Addresses problem observed in G4Polyhedra and reported in #650. 07-Jun-2004, G.Cosmo (geom-specific-V06-01-04) - Fixed compilation problem in G4TwistedSurface.cc on WIN32-VC. 28-May-2004, G.Cosmo (geom-specific-V06-01-03) - Fixed archiving problem on WIN32-VC7: replaced structs with classes in G4VSurface. - Replaced misleading names for masks in G4VSurface and moved inlined methods of nested classes to .cc. 25-May-2004, G.Cosmo (geom-specific-V06-01-02) - Fixed compilation problem on SUN-CC. Made EValidate enum public in G4VSurface.hh. 24-May-2004, G.Cosmo (geom-specific-V06-01-01) - Removed compilation warnings and minor cleanup... 19-May-2004, O.Link (geom-specific-V06-01-00) - First implementation of a framework for twisted surfaces, integrated from the original version of Kotoyo Hoshina (hoshina@hepburn.s.chiba-u.ac.jp) implemented in the 'Jupiter' application. o Includes new specific twisted shape: G4TwistedTubs. o New classes: G4VSurface, G4TwistedSurface, G4HyperbolicSurface, G4FlatSurface, G4TwistedTubs. o Cleanup of original code (debugging messages, compiler errors, migration of g4std to new convention...) o New organisation of class G4TwistedTubs: now independent of XXXSurface; removed backpointer 'fSolid' from XXXSurface to G4TwistedTubs. o New form of constructors in G4TwistedSurface, G4HyperbolicSurface and G4FlatSurface. o Change in G4TwistedSurface::DistanceToIn(p,v,...): roundoff correction. 12-Jan-2004, G.Cosmo (geom-specific-V06-00-00) - G4PolyhedraSide.cc: fixed bug in which particles could "leak" out the center of a face if inner radius = 0. Fixes problem report #547. (D.Williams) 22-Nov-2003, G.Cosmo (geom-specific-V05-02-07) - Fixed upper bound for protection check introduced in G4Polycone and G4Polyhedra constructors. 17-Nov-2003, G.Cosmo (geom-specific-V05-02-06) - Added protections in G4Polycone and G4Polyhedra constructors for invalid constructs with no contiguous segments in Z planes as input. 04-Nov-2003, G.Cosmo (geom-specific-V05-02-05) - Added SetOriginalParameters() method to G4Polycone and G4Polyhedra. 03-Nov-2003, G.Cosmo (geom-specific-V05-02-04) - Code cleanup and headers inclusion review (replaced by forward declarations where necessary). 28-Oct-2003, G.Cosmo (geom-specific-V05-02-03) - Migrated to new G4Exception scheme. 20-Oct-2003, G.Cosmo (geom-specific-V05-02-02) - Added Reset() method in G4Polycone and G4Polyhedra to allow recalculation and reshape of the solid if new original_parameters are provided. 30-Sep-2003, G.Cosmo (geom-specific-V05-02-01) - Updated GNUmakefile for unit tests, according to new structure introduced in "geometry-V05-02-00". 16-Jun-2003, G.Cosmo (geom-specific-V05-02-00) - Added accessors to original_parameters for G4Polycone and G4Polyhedra. Made G4PolyconeHistorical and G4PolyhedraHistorical classes in global scope (temporary solution). 28-Mar-2003, G.Cosmo (geom-specific-V05-00-00) - Fixed initialisation of base class in copy contructor for: G4PolyPhiFace, G4PolyconeSide, G4PolyhedraSide. - Fixed trivial pedantic warnings on G4Polycone and G4Polyhedra. 30-Oct-2002, G.Cosmo (geom-specific-V04-01-01) - Fixed un-initialised data members in constructors of classes: G4ClippablePolygon, G4EnclosingCylinder, G4PolyconeSide, G4ReduciblePolygon, G4VCSGfaceted. 28-Oct-2002, G.Cosmo (geom-specific-V04-01-00) - Added implementation of StreamInfo() to comply with new interface for G4VSolid in "geommng-V04-01-03". - Created .icc files for G4EllipticalTube, G4Polyhedra and G4Polycone. - Some cosmetic changes to code formatting: removed characters and adopt uniform code indentation. 08-May-2002, J.Allison (geom-solids-specific-V04-00-01) - Implemented G4EllipticalTube::CreatePolyhedron. 10-Jan-2002, G.Cosmo (geom-solids-specific-V04-00-00) - Updated unit tests. 20-Apr-2001, G.Cosmo (geom-solids-specific-V03-01-00) - Migration to STL vector: o In G4ClippablePolygon, migrated G4ThreeVectorList typedef and made private to class. 03-Apr-2001, D.Williams (geom-solids-specific-V03-00-01) ----------------------- - G4IntersectingCone.cc: make small adjustment to help with roundoff error in LineHitsCone1() and LineHitsCone2(). 08-Jan-2001, D.Williams (geom-solids-specific-V03-00-00) ----------------------- - G4Hype.cc: Added protecton against zero v.z in DistanceToOut. 20-Nov-2000, G.Cosmo (geom-solids-specific-V02-00-04) --------------------- - Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options: o commented out variables declared and not used. o fixed declaration of variables used before being initialised. o fixed order of initialisation of member data in constructors. o fixed usage of unsigned-int (size_t) for array indeces. 13-Nov-2000, G.Cosmo (geom-solids-specific-V02-00-03) -------------------- - Added definition of empty constructor for G4ClippablePolygon which went lost by mistake... 02-Nov-2000, G.Cosmo (geom-solids-specific-V02-00-02) -------------------- - QA code revision and cleanup (+fixes from CodeWizard filtering): o Avoid inline virtual methods. o General cosmetics for Software Reference Manual. 23-Oct-2000, D.Williams (geom-solids-specific-V02-00-01) ----------------------- - G4IntersectingCone.cc: the check for a zero radical has been adjusted to be less sensitive to round off error in LineHitsCone1(), LineHitsCone2(). This fixes a problem discovered in BaBar. 12-Sep-2000, G.Cosmo (geom-solids-specific-V02-00-00) -------------------- - Organised comments to headers for Software Reference Manual. 27-Jun-2000, G.Cosmo (geom-solids-specific-V01-01-02) -------------------- - G4Polycone[.hh.cc]: better fix for bug-report #110. Removed struct and replaced with class. 26-Jun-2000, G.Cosmo (geom-solids-specific-V01-01-01) -------------------- - G4Polycone.cc: fixed memory leak by invoking destruction of member enclosingCylinder, which was not cleaned up in the destructor. This fixes problem report #107. - G4Polycone.hh: added forward declaration of struct G4PolyconeHistorical and made it friend, for porting on KCC --strict. This fixes report #110. - G4Polyhedra.hh: fixed typo in method name. Changed GetNumSIde() to GetNumSide(). This fixes problem report #105. 08-Jun-2000, G.Gracia --------------------- - G4VCSGfaceted.cc: fix for Win/NT in function GetExtent(). 27-Apr-2000, G.Cosmo -------------------- - Removed dependency over the CSG domain in GNUmakefile. 18-Apr-2000, D.Williams ----------------------- - Removed meaningless "const" specifiers from methods in G4ClippablePolygon, and G4EllipticalTube. - G4EllipticalTube, G4Hype and G4VCSGfaceted now inherit directly from G4VSolid (before was G4CSGSolid). - Reintroduced GetExtent() in G4EllipticalTube, G4Hype and G4VCSGfaceted (in principle, not needed). - Modified assertations in unit test testG4Hype.cc. 11-Apr-2000, J.Allison ---------------------- - Removed implementations of GetExtent in most sub-classes of G4VSolid (a default implementation exists in G4VSolid). - All implementations of DescribeYourselfTo (G4VGraphicsScene& scene) const now correctly written: scene.AddThis(*this). 05-Apr-2000, G.Cosmo (geom-solids-specific-V01-01-00) -------------------- - Restructured solids/CSG domain, by moving to "specific" the following classes: G4ClippablePolygon, G4EnclosingCylinder, G4Hype, G4PolyPhiFace, G4Polycone, G4PolyconeSide, G4Polyhedra, G4PolyhedraSide, G4ReduciblePolygon, G4IntersectingCone, G4SolidExtentList, G4VCSGface, G4VCSGfaceted. The new module's library for "specific" is now called 'G4specsolids'. - Created specific/test directory and moved testG4Hype.cc and testG4Polycone,cc from CSG/test. - Organised class description comments for the Software Reference Manual and added CVS headers to files. 29-Mar-2000, D.Williams ----------------------- - Added first implementation of G4EllipticalTube. It defines a simple elliptical tube, as in geant3 "ELTU". Files introduced: G4EllipticalTube[.hh.cc]. 25-Mar-2000, G.Cosmo -------------------- - History file created.