00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00057
00058
00059 #include "G4PolyhedronArbitrary.hh"
00061
00062 G4PolyhedronArbitrary::G4PolyhedronArbitrary (const G4int nVertices,
00063 const G4int nFacets)
00064 {
00065 AllocateMemory(nVertices, nFacets);
00066 nVertexCount = 0;
00067 nFacetCount = 0;
00068 }
00070
00071 G4PolyhedronArbitrary::~G4PolyhedronArbitrary ()
00072 {;}
00074
00075 void G4PolyhedronArbitrary::AddVertex (const G4ThreeVector v)
00076 {
00077 if (nVertexCount == nvert + 1)
00078 {
00079 G4cerr <<G4endl;
00080 G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddVertex" <<G4endl;
00081 G4cerr <<"ATTEMPT TO EXCEED MAXIMUM NUMBER OF VERTICES : " << nVertexCount
00082 <<G4endl;
00083 G4cerr <<G4endl;
00084 }
00085 else
00086 {
00087 nVertexCount++;
00088 pV[nVertexCount] = v;
00089 }
00090 }
00092
00093 void G4PolyhedronArbitrary::AddFacet (const G4int iv1, const G4int iv2,
00094 const G4int iv3, const G4int iv4)
00095 {
00096 if (nFacetCount == nface)
00097 {
00098 G4cerr <<G4endl;
00099 G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddFacet" <<G4endl;
00100 G4cerr <<"ATTEMPT TO EXCEED MAXIMUM NUMBER OF FACETS : " << nFacetCount
00101 <<G4endl;
00102 G4cerr <<G4endl;
00103 }
00104 else if (iv1 < 1 || iv1 > nvert || iv2 < 1 || iv2 > nvert ||
00105 iv3 < 1 || iv3 > nvert || iv4 > nvert)
00106 {
00107 G4cerr <<G4endl;
00108 G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddFacet" <<G4endl;
00109 G4cerr <<"ATTEMPT TO INDEX VERTEX NUMBER WHICH IS OUT-OF-RANGE : " <<G4endl;
00110 G4cerr <<G4endl;
00111 }
00112 else if (iv1 > nVertexCount || iv2 > nVertexCount || iv3 > nVertexCount ||
00113 iv4 > nVertexCount)
00114 {
00115 G4cerr <<G4endl;
00116 G4cerr <<"ERROR IN G4PolyhedronArbitrary::AddFacet" <<G4endl;
00117 G4cerr <<"VERTEX NEEDS TO BE DEFINED FIRST : " <<G4endl;
00118 G4cerr <<G4endl;
00119 }
00120 else
00121 {
00122 nFacetCount++;
00123 pF[nFacetCount] = G4Facet(iv1, 0, iv2, 0, iv3, 0, iv4, 0);
00124 }
00125 }
00127