G4VisFilterManager< T > Class Template Reference

#include <G4VisFilterManager.hh>


Public Types

typedef G4VFilter< T > Filter
typedef G4VModelFactory< FilterFactory

Public Member Functions

 G4VisFilterManager (const G4String &)
virtual ~G4VisFilterManager ()
void Register (Filter *)
void Register (Factory *)
bool Accept (const T &)
G4String Placement () const
void SetMode (const FilterMode::Mode &)
void SetMode (const G4String &)
FilterMode::Mode GetMode () const
void Print (std::ostream &ostr, const G4String &name="") const
const std::vector< Filter * > & FilterList () const
const std::vector< Factory * > & FactoryList () const


Detailed Description

template<typename T>
class G4VisFilterManager< T >

Definition at line 47 of file G4VisFilterManager.hh.


Member Typedef Documentation

template<typename T>
typedef G4VModelFactory<Filter> G4VisFilterManager< T >::Factory

Definition at line 58 of file G4VisFilterManager.hh.

template<typename T>
typedef G4VFilter<T> G4VisFilterManager< T >::Filter

Definition at line 57 of file G4VisFilterManager.hh.


Constructor & Destructor Documentation

template<typename T>
G4VisFilterManager< T >::G4VisFilterManager ( const G4String  ) 

Definition at line 94 of file G4VisFilterManager.hh.

References FilterMode::Hard.

00095   :fPlacement(placement)
00096 {
00097   fMode = FilterMode::Hard;
00098 }

template<typename T>
G4VisFilterManager< T >::~G4VisFilterManager (  )  [virtual]

Definition at line 101 of file G4VisFilterManager.hh.

00102 {
00103   // Cleanup
00104   std::vector<G4UImessenger*>::iterator iterMsgr = fMessengerList.begin();
00105   
00106   while (iterMsgr != fMessengerList.end()) {
00107     delete *iterMsgr;
00108     iterMsgr++;
00109   }
00110   
00111   typename std::vector<Factory*>::iterator iterFactory = fFactoryList.begin();
00112   
00113   while (iterFactory != fFactoryList.end()) {
00114     delete *iterFactory;       
00115     iterFactory++;
00116   }
00117 
00118   typename std::vector<Filter*>::iterator iterFilter = fFilterList.begin();
00119   
00120   while (iterFilter != fFilterList.end()) {
00121     delete *iterFilter;       
00122     iterFilter++;
00123   }
00124 }


Member Function Documentation

template<typename T>
bool G4VisFilterManager< T >::Accept ( const T &   ) 

Definition at line 144 of file G4VisFilterManager.hh.

Referenced by G4VisManager::FilterDigi(), G4VisManager::FilterHit(), and G4VisManager::FilterTrajectory().

00145 {
00146   typename std::vector<Filter*>::const_iterator iter = fFilterList.begin();
00147   bool passed(true);
00148   
00149   while (passed && (iter != fFilterList.end())) {
00150     passed = (*iter)->Accept(obj);
00151     iter++;
00152   }
00153 
00154   return passed;
00155 }

template<typename T>
const std::vector< G4VModelFactory< G4VFilter< T > > * > & G4VisFilterManager< T >::FactoryList (  )  const

Definition at line 239 of file G4VisFilterManager.hh.

00240 { 
00241   return fFactoryList;
00242 }

template<typename T>
const std::vector< G4VFilter< T > * > & G4VisFilterManager< T >::FilterList (  )  const

Definition at line 232 of file G4VisFilterManager.hh.

00233 { 
00234   return fFilterList;
00235 }

template<typename T>
FilterMode::Mode G4VisFilterManager< T >::GetMode (  )  const

Definition at line 193 of file G4VisFilterManager.hh.

Referenced by G4VisManager::DispatchToModel().

00194 {
00195   return fMode;
00196 }

template<typename T>
G4String G4VisFilterManager< T >::Placement (  )  const

Definition at line 159 of file G4VisFilterManager.hh.

Referenced by G4VisManager::RegisterMessengers().

00160 {
00161   return fPlacement;
00162 }

template<typename T>
void G4VisFilterManager< T >::Print ( std::ostream &  ostr,
const G4String name = "" 
) const

Definition at line 200 of file G4VisFilterManager.hh.

References G4String::isNull().

00201 { 
00202   ostr<<"Registered filter factories:"<<std::endl;
00203   typename std::vector<Factory*>::const_iterator iterFactory = fFactoryList.begin();
00204 
00205   while (iterFactory != fFactoryList.end()) {
00206     (*iterFactory)->Print(ostr);
00207     iterFactory++;
00208   }
00209 
00210   if (0 == fFactoryList.size()) ostr<<"  None"<<std::endl;
00211 
00212   ostr<<std::endl;
00213   ostr<<"Registered filters:"<<std::endl;
00214 
00215   typename std::vector<Filter*>::const_iterator iterFilter = fFilterList.begin();
00216 
00217   while (iterFilter != fFilterList.end()) {
00218     if (!name.isNull()) {
00219       if ((*iterFilter)->Name() == name) (*iterFilter)->PrintAll(ostr);
00220     }
00221     else {
00222       (*iterFilter)->PrintAll(ostr);
00223     }
00224     iterFilter++;
00225   }
00226 
00227   if (0 == fFilterList.size()) ostr<<"  None"<<std::endl;
00228 }

template<typename T>
void G4VisFilterManager< T >::Register ( Factory  ) 

Definition at line 135 of file G4VisFilterManager.hh.

00136 {
00137   fFactoryList.push_back(factory);
00138 
00139   fMessengerList.push_back(new G4VisCommandModelCreate<Factory>(factory, fPlacement));
00140 }

template<typename T>
void G4VisFilterManager< T >::Register ( Filter  ) 

Definition at line 128 of file G4VisFilterManager.hh.

Referenced by G4VisManager::RegisterModel(), and G4VisManager::RegisterModelFactory().

00129 {
00130   fFilterList.push_back(filter);
00131 }

template<typename T>
void G4VisFilterManager< T >::SetMode ( const G4String  ) 

Definition at line 166 of file G4VisFilterManager.hh.

References G4Exception(), FilterMode::Hard, JustWarning, G4VisFilterManager< T >::SetMode(), FilterMode::Soft, and G4String::toLower().

00167 {
00168   bool result(false);
00169   
00170   G4String myMode(mode);
00171   myMode.toLower();
00172 
00173   if (myMode == "soft") {result = true; SetMode(FilterMode::Soft);}
00174   else if (myMode == "hard") {result = true; SetMode(FilterMode::Hard);}
00175 
00176   if (!result) {
00177     G4ExceptionDescription ed;
00178     ed << "Invalid Filter mode: "<<mode;
00179     G4Exception
00180       ("G4VisFilterManager::SetMode(const G4String& mode)", "visman0101", JustWarning, ed);
00181   }
00182 }

template<typename T>
void G4VisFilterManager< T >::SetMode ( const FilterMode::Mode  ) 

Definition at line 186 of file G4VisFilterManager.hh.

Referenced by G4VisFilterManager< T >::SetMode().

00187 {
00188   fMode = mode;
00189 }


The documentation for this class was generated from the following file:
Generated on Mon May 27 17:53:47 2013 for Geant4 by  doxygen 1.4.7