21 #include "cafChildFieldHandle.h" 22 #include "cafVisitor.h" 33 template <
typename ObjectType = ObjectHandle>
37 using Selector = std::function<bool( const ObjectType* )>;
40 : m_selector( selector )
46 CAFFA_ASSERT(
object );
47 CAFFA_TRACE(
"Visiting OBJECT " << object->uuid() );
48 auto typedObject =
dynamic_cast<const ObjectType*
>( object );
49 if ( typedObject && ( !m_selector || m_selector( typedObject ) ) )
51 m_objects.push_back( typedObject );
55 void visitField(
const FieldHandle* field )
override {}
57 const std::list<const ObjectType*>& objects()
const {
return m_objects; }
61 std::list<const ObjectType*> m_objects;
67 template <
typename ObjectType = ObjectHandle>
71 using Selector = std::function<bool( const ObjectType* )>;
74 : m_selector( selector )
77 const std::list<ObjectType*>& objects() {
return m_objects; }
82 auto typedObject =
dynamic_cast<ObjectType*
>( object );
83 if ( typedObject && ( !m_selector || m_selector( typedObject ) ) )
85 m_objects.push_back( typedObject );
93 std::list<ObjectType*> m_objects;
Definition: cafObjectCollector.h:34
Definition: cafVisitor.h:49
Definition: cafObjectHandle.h:47
Base class for all fields, making it possible to handle them generically.
Definition: cafFieldHandle.h:19
Definition: cafObjectCollector.h:68
Definition: cafVisitor.h:32
Main Caffa namespace.
Definition: cafApplication.h:30