Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * subject to DEFCON 705 IPR conditions. 21 // * By using, copying, modifying or distri 22 // * any work based on the software) you ag 23 // * use in resulting scientific publicati 24 // * acceptance of all terms of the Geant4 Sof 25 // ******************************************* 26 // 27 // 28 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 29 // 30 // MODULE: G4PolyhedronArbitrar 31 // 32 // Date: 15/06/2005 33 // Author: P R Truscott 34 // Organisation: QinetiQ Ltd, UK 35 // Customer: UK Ministry of Def 36 // Contract: C/MAT/N03517 37 // 38 // This software is the intellectual property 39 // DEFCON 705 IPR conditions. 40 // 41 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 42 // 43 // CHANGE HISTORY 44 // -------------- 45 // 46 // 31 October 2004, P R Truscott, QinetiQ Ltd, 47 // Created. 48 // 49 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 50 // 51 // DESCRIPTION 52 // ----------- 53 // 54 // 55 // 56 ////////////////////////////////////////////// 57 // 58 // 59 #include "G4PolyhedronArbitrary.hh" 60 ////////////////////////////////////////////// 61 // 62 G4PolyhedronArbitrary::G4PolyhedronArbitrary ( 63 const G4int nFacets) 64 { 65 AllocateMemory(nVertices, nFacets); 66 nVertexCount = 0; 67 nFacetCount = 0; 68 } 69 ////////////////////////////////////////////// 70 // 71 G4PolyhedronArbitrary::~G4PolyhedronArbitrary 72 {;} 73 ////////////////////////////////////////////// 74 // 75 void G4PolyhedronArbitrary::AddVertex (const G 76 { 77 if (nVertexCount == nvert + 1) 78 { 79 G4cerr <<G4endl; 80 G4cerr <<"ERROR IN G4PolyhedronArbitrary:: 81 G4cerr <<"ATTEMPT TO EXCEED MAXIMUM NUMBER 82 <<G4endl; 83 G4cerr <<G4endl; 84 } 85 else 86 { 87 nVertexCount++; 88 pV[nVertexCount] = v; 89 } 90 } 91 ////////////////////////////////////////////// 92 // 93 void G4PolyhedronArbitrary::AddFacet (const G4 94 const G4int iv3, const G4int iv4) 95 { 96 if (nFacetCount == nface) 97 { 98 G4cerr <<G4endl; 99 G4cerr <<"ERROR IN G4PolyhedronArbitrary:: 100 G4cerr <<"ATTEMPT TO EXCEED MAXIMUM NUMBER 101 <<G4endl; 102 G4cerr <<G4endl; 103 } 104 else if (iv1 < 1 || iv1 > nvert || iv2 < 1 | 105 iv3 < 1 || iv3 > nvert || iv4 > nv 106 { 107 G4cerr <<G4endl; 108 G4cerr <<"ERROR IN G4PolyhedronArbitrary:: 109 G4cerr <<"ATTEMPT TO INDEX VERTEX NUMBER W 110 G4cerr <<G4endl; 111 } 112 else if (iv1 > nVertexCount || iv2 > nVertex 113 iv4 > nVertexCount) 114 { 115 G4cerr <<G4endl; 116 G4cerr <<"ERROR IN G4PolyhedronArbitrary:: 117 G4cerr <<"VERTEX NEEDS TO BE DEFINED FIRST 118 G4cerr <<G4endl; 119 } 120 else 121 { 122 nFacetCount++; 123 pF[nFacetCount] = G4Facet(iv1, 0, iv2, 0, 124 } 125 } 126 ////////////////////////////////////////////// 127 // 128