#ifndef _CALOR_MAKE_VIEW_HH_ #define _CALOR_MAKE_VIEW_HH_ ////////////////////////////////////////////////////////////////////////// // // Function: calorMakeView.hh // Purpose: Generic view making function. It needs a // source container, a destination container // and a predicate class. // // Created: 12/09/99 Pierre Savard // History: // ////////////////////////////////////////////////////////////////////////// #include "Edm/StorableObject.hh" #include "Edm/ConstHandle.hh" #include "Edm/Handle.hh" template void calorMakeView(SRC& src, DEST& dest, PRED pred) { dest.clear(); typename SRC::const_iterator i = src.begin(); while(i!=src.end()) { if(pred(*i)==true) dest.push_back(&(*i)); ++i; } } template void calorMakeView(SRC* src, DEST& dest, PRED pred) { dest.clear(); typename SRC::const_iterator i = src->begin(); while(i!=src->end()) { if(pred(*i)==true) dest.push_back(&(*i)); ++i; } } template void calorMakeView(SRC& src, DEST* dest, PRED pred) { dest->clear(); typename SRC::const_iterator i = src.begin(); while(i!=src.end()) { if(pred(*i)==true) dest->push_back(&(*i)); ++i; } } template void calorMakeView(SRC* src, DEST* dest, PRED pred) { dest->clear(); typename SRC::const_iterator i = src->begin(); while(i!=src->end()) { if(pred(*i)==true) dest->push_back(&(*i)); ++i; } } template void calorMakeView(ConstHandle& src, DEST& dest, PRED pred){ dest.clear(); typename SRC::const_iterator i = src->begin(); while(i!=src->end()) { if(pred(i)==true) dest.push_back(&(*i)); ++i; } } #endif // _CALOR_MAKE_VIEW_HH_