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)