Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration and of QinetiQ Ltd, * 20 // * subject to DEFCON 705 IPR conditions. * 21 // * By using, copying, modifying or distributing the software (or * 22 // * any work based on the software) you agree to acknowledge its * 23 // * use in resulting scientific publications, and indicate your * 24 // * acceptance of all terms of the Geant4 Software license. * 25 // ******************************************************************** 26 // 27 // 28 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 29 // 30 // MODULE: G4PolyhedronArbitrary.hh 31 // 32 // Date: 15/06/2005 33 // Author: P R Truscott 34 // Organisation: QinetiQ Ltd, UK 35 // Customer: UK Ministry of Defence : RAO CRP TD Electronic Systems 36 // Contract: C/MAT/N03517 37 // 38 // This software is the intelectual property of QinetiQ Ltd, subject 39 // DEFCON 705 IPR conditions. 40 // 41 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 42 // 43 // CHANGE HISTORY 44 // -------------- 45 // 46 // 11th November 2011, J Allison. Added private copy constructor and 47 // assignment operator added to satisfy Coverity. 48 // 27th July 2011, J Allison. Added SetReferences and InvertFacets. 49 // SetReferences is necessary at the end to complete the polyhedron. 50 // It particularly matters if the polyhedron suffers subsequent 51 // boolean operations. 52 // InvertFacets can be useful. 53 // 13 January 2006, J Allison. Removed unnecessary operator= functions. 54 // 31 October 2004, P R Truscott, QinetiQ Ltd, UK 55 // Created. 56 // 57 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 58 // 59 // DESCRIPTION 60 // ----------- 61 // 62 // 63 // 64 /////////////////////////////////////////////////////////////////////////////// 65 // 66 // 67 #ifndef G4PolyhedronArbitrary_h 68 #define G4PolyhedronArbitrary_h 1 69 70 #include "G4Polyhedron.hh" 71 #include "G4ThreeVector.hh" 72 73 /////////////////////////////////////////////////////////////////////////////// 74 // 75 class G4PolyhedronArbitrary : public G4Polyhedron 76 { 77 public: 78 G4PolyhedronArbitrary (const G4int nVertices, const G4int nFacets); 79 ~G4PolyhedronArbitrary () override; 80 // Private copy constructor and assignment operator added to satisfy 81 // Coverity - JA 11/11/11. 82 G4PolyhedronArbitrary(const G4PolyhedronArbitrary&) = delete; 83 G4PolyhedronArbitrary& operator= (const G4PolyhedronArbitrary&) = delete; 84 85 void AddVertex (const G4ThreeVector& v); 86 void AddFacet (const G4int iv1, const G4int iv2, const G4int iv3, 87 const G4int iv4=0); 88 89 // Call this after all vertices and facets have been added. 90 void SetReferences() {HepPolyhedron::SetReferences();} 91 92 // Can be useful. 93 void InvertFacets() {HepPolyhedron::InvertFacets();} 94 95 protected: 96 G4int nVertexCount; 97 G4int nFacetCount; 98 99 }; 100 #endif 101 /////////////////////////////////////////////////////////////////////////////// 102 // 103 104