Geant4 Cross Reference |
1 // << 2 // ******************************************* 1 // ******************************************************************** 3 // * License and Disclaimer << 2 // * DISCLAIMER * 4 // * 3 // * * 5 // * The Geant4 software is copyright of th << 4 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 5 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 6 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 7 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 8 // * * 11 // * Neither the authors of this software syst 9 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 10 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 11 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 12 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 13 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 14 // * * 18 // * This code implementation is the result << 15 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 16 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 17 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 18 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 19 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 20 // ******************************************************************** 25 // 21 // >> 22 // $Id: G4VModelCommand.hh,v 1.2 2005/11/28 20:07:11 tinslay Exp $ >> 23 // GEANT4 tag $Name: geant4-08-00 $ 26 // 24 // 27 // Jane Tinslay, John Allison, Joseph Perl Nov 25 // Jane Tinslay, John Allison, Joseph Perl November 2005 28 // 26 // 29 // Class Description 27 // Class Description 30 // Templated base class for model messengers. 28 // Templated base class for model messengers. Commands specific to a particular 31 // concrete model should inherit from G4VModel 29 // concrete model should inherit from G4VModelCommand, with the concrete model 32 // type as the template parameter. 30 // type as the template parameter. 33 // Class Description - End: 31 // Class Description - End: 34 32 35 #ifndef G4VMODELCOMMAND_HH 33 #ifndef G4VMODELCOMMAND_HH 36 #define G4VMODELCOMMAND_HH 34 #define G4VMODELCOMMAND_HH 37 35 38 #include "G4UImessenger.hh" 36 #include "G4UImessenger.hh" 39 #include "G4String.hh" 37 #include "G4String.hh" 40 38 41 class G4UIcommand; 39 class G4UIcommand; 42 40 43 template <typename T> 41 template <typename T> 44 class G4VModelCommand : public G4UImessenger { 42 class G4VModelCommand : public G4UImessenger { 45 43 46 public: << 44 public: // With description 47 45 48 // Constructor << 46 G4VModelCommand(T* model); 49 G4VModelCommand(T* model, const G4String& pl << 47 // Input model 50 48 51 // Destructor << 52 virtual ~G4VModelCommand(); 49 virtual ~G4VModelCommand(); 53 50 54 // Methods << 55 G4String GetCurrentValue(G4UIcommand* comman 51 G4String GetCurrentValue(G4UIcommand* command); 56 G4String Placement(); << 57 52 58 protected: 53 protected: 59 54 60 // Access to model << 61 T* Model(); 55 T* Model(); >> 56 // Access to model 62 57 63 private: 58 private: 64 59 65 // Data members << 66 T* fpModel; 60 T* fpModel; 67 G4String fPlacement; << 61 68 }; 62 }; 69 63 70 template <typename T> 64 template <typename T> 71 G4VModelCommand<T>::G4VModelCommand(T* model, << 65 G4VModelCommand<T>::G4VModelCommand(T* model) 72 :fpModel(model) 66 :fpModel(model) 73 ,fPlacement(placement) << 74 {} 67 {} 75 68 76 template <typename T> 69 template <typename T> 77 G4VModelCommand<T>::~G4VModelCommand() {} 70 G4VModelCommand<T>::~G4VModelCommand() {} 78 71 79 template <typename T> 72 template <typename T> 80 G4String 73 G4String 81 G4VModelCommand<T>::GetCurrentValue(G4UIcomman 74 G4VModelCommand<T>::GetCurrentValue(G4UIcommand*) 82 { 75 { 83 return ""; 76 return ""; 84 } 77 } 85 78 86 template <typename T> 79 template <typename T> 87 T* 80 T* 88 G4VModelCommand<T>::Model() 81 G4VModelCommand<T>::Model() 89 { 82 { 90 return fpModel; 83 return fpModel; 91 } << 92 << 93 template <typename T> << 94 G4String << 95 G4VModelCommand<T>::Placement() << 96 { << 97 return fPlacement; << 98 } 84 } 99 85 100 #endif 86 #endif 101 87 102 88 103 89 104 90