Geant4 Cross Reference |
>> 1 // This code implementation is the intellectual property of >> 2 // the GEANT4 collaboration. 1 // 3 // 2 // ******************************************* << 4 // By copying, distributing or modifying the Program (or any work 3 // * License and Disclaimer << 5 // based on the Program) you indicate your acceptance of this statement, 4 // * << 6 // and all its terms. 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 // * By using, copying, modifying or distri << 21 // * any work based on the software) you ag << 22 // * use in resulting scientific publicati << 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* << 25 // << 26 // 7 // >> 8 // $Id: G3RotTable.cc,v 1.12 2000/07/24 11:32:14 gcosmo Exp $ >> 9 // GEANT4 tag $Name: geant4-03-00 $ 27 // 10 // 28 // by I.Hrivnacova, 27 Sep 99 11 // by I.Hrivnacova, 27 Sep 99 29 12 30 #include "G3RotTable.hh" 13 #include "G3RotTable.hh" 31 14 32 G3RotTable::G3RotTable() 15 G3RotTable::G3RotTable() 33 { 16 { 34 fRotVector = new G3RotMatrixVector(); 17 fRotVector = new G3RotMatrixVector(); 35 } 18 } 36 19 37 G3RotTable::~G3RotTable() 20 G3RotTable::~G3RotTable() 38 { 21 { 39 fRotVector->clear(); 22 fRotVector->clear(); >> 23 //fRotVector->clearAndDestroy(); 40 delete fRotVector; 24 delete fRotVector; 41 } 25 } 42 26 43 G4RotationMatrix* G3RotTable::Get(G4int id) co 27 G4RotationMatrix* G3RotTable::Get(G4int id) const 44 { 28 { 45 for (size_t i=0; i<fRotVector->size(); i++) << 29 for (G4int i=0; i<fRotVector->entries(); i++) { 46 G3RotTableEntry* rte = (*fRotVector)[i]; 30 G3RotTableEntry* rte = (*fRotVector)[i]; 47 if (id == rte->GetID()) return rte->GetMat 31 if (id == rte->GetID()) return rte->GetMatrix(); 48 } 32 } 49 return 0; 33 return 0; 50 } 34 } 51 35 52 void G3RotTable::Put(G4int id, G4RotationMatri 36 void G3RotTable::Put(G4int id, G4RotationMatrix* matrix) 53 { 37 { 54 G3RotTableEntry* rte = new G3RotTableEntry(i 38 G3RotTableEntry* rte = new G3RotTableEntry(id, matrix); 55 fRotVector->push_back(rte); << 39 fRotVector->insert(rte); 56 } 40 } 57 41 58 void G3RotTable::Clear() 42 void G3RotTable::Clear() 59 { 43 { 60 G3RotTableEntry* a; << 44 fRotVector->clearAndDestroy(); 61 while (fRotVector->size()>0) { << 62 a = fRotVector->back(); << 63 fRotVector->pop_back(); << 64 for (G3RotMatrixVector::iterator i=fRotVec << 65 i!=fRotVe << 66 if (*i==a) { << 67 i = fRotVector->erase(i); << 68 } << 69 else { << 70 ++i; << 71 } << 72 } << 73 if ( a ) delete a; << 74 } << 75 } 45 } 76 46