35 #ifndef ANA_OBJECT_OBJECTUTILS_D_H
36 #define ANA_OBJECT_OBJECTUTILS_D_H
46 template <
typename iterator>
49 const std::set<AObject *> & setobj )
53 AObject::ParentList::const_iterator ip, fp;
56 std::set<AObject *> setobj2;
57 const std::set<AObject *> *psetobj = &setobj;
60 for( obj=begin; obj!=end; ++obj )
61 setobj2.insert( *obj );
64 std::set<AObject *>::const_iterator soe = psetobj->end();
66 for( obj=begin; obj!=end; ++obj )
68 for( ip=(*obj)->Parents().begin(), fp=(*obj)->Parents().end();
69 ip!=fp && psetobj->find( *ip ) == soe; ++ip ) {}
76 switch( (*obj)->type() )
84 if( !(*io)->name().empty() )
85 cat_name += (*io)->name();
87 cat_name +=
"<unnamed>";
88 for( ++io; io!=fo; ++io )
91 if( !(*io)->name().empty() )
92 cat_name += (*io)->name();
94 cat_name +=
"<unnamed>";
100 if( !(*obj)->name().empty() )
101 cat_name += (*obj)->name();
103 cat_name +=
"<unnamed>";
107 if( limit != 0 && cat_name.length() >= limit )
109 cat_name.replace( limit, cat_name.length(),
" ..." );
Multi-object generic iterator.
Multi-object : base abstract class for objects that contain others.
static std::string catObjectNames(const std::set< AObject * > &setobj, size_t limit=0)