32 #ifndef G4VISFILTERMANAGER_HH
33 #define G4VISFILTERMANAGER_HH
35 #include "G4String.hh"
41 namespace FilterMode {
78 const std::vector<Filter*>&
FilterList()
const;
94 :fPlacement(placement)
103 std::vector<G4UImessenger*>::iterator iterMsgr = fMessengerList.begin();
105 while (iterMsgr != fMessengerList.end()) {
110 typename std::vector<Factory*>::iterator iterFactory = fFactoryList.begin();
112 while (iterFactory != fFactoryList.end()) {
117 typename std::vector<Filter*>::iterator iterFilter = fFilterList.begin();
119 while (iterFilter != fFilterList.end()) {
125 template <
typename T>
129 fFilterList.push_back(filter);
132 template <
typename T>
136 fFactoryList.push_back(factory);
141 template <
typename T>
145 typename std::vector<Filter*>::const_iterator iter = fFilterList.begin();
148 while (passed && (iter != fFilterList.end())) {
149 passed = (*iter)->Accept(obj);
156 template <
typename T>
163 template <
typename T>
177 ed <<
"Invalid Filter mode: "<<mode;
179 (
"G4VisFilterManager::SetMode(const G4String& mode)",
"visman0101",
JustWarning, ed);
183 template <
typename T>
190 template <
typename T>
197 template <
typename T>
201 ostr<<
"Registered filter factories:"<<std::endl;
202 typename std::vector<Factory*>::const_iterator iterFactory = fFactoryList.begin();
204 while (iterFactory != fFactoryList.end()) {
205 (*iterFactory)->Print(ostr);
209 if (0 == fFactoryList.size()) ostr<<
" None"<<std::endl;
212 ostr<<
"Registered filters:"<<std::endl;
214 typename std::vector<Filter*>::const_iterator iterFilter = fFilterList.begin();
216 while (iterFilter != fFilterList.end()) {
218 if ((*iterFilter)->Name() ==
name) (*iterFilter)->PrintAll(ostr);
221 (*iterFilter)->PrintAll(ostr);
226 if (0 == fFilterList.size()) ostr<<
" None"<<std::endl;
229 template <
typename T>
230 const std::vector< G4VFilter<T>* >&
236 template <
typename T>
237 const std::vector< G4VModelFactory< G4VFilter<T> >* >&