21 #include "cafChildFieldHandle.h"
22 #include "cafObjectHandle.h"
23 #include "cafVisitor.h"
32 template <
typename ObjectType = ObjectHandle>
36 using Callback = std::function<void( ObjectType* )>;
37 using Selector = std::function<bool(
const ObjectType* )>;
40 : m_selector( selector )
41 , m_callback( callback )
47 auto typedObject =
dynamic_cast<ObjectType*
>( object );
48 if ( typedObject && ( !m_selector || m_selector( typedObject ) ) )
50 m_callback( typedObject );
53 for (
auto field : object->
fields() )
55 field->accept(
this );
63 for (
auto object : childField->childObjects() )
65 object->accept(
this );
Definition: cafChildFieldHandle.h:35
Definition: cafVisitor.h:43
Base class for all fields, making it possible to handle them generically.
Definition: cafFieldHandle.h:23
Definition: cafObjectHandle.h:55
std::list< FieldHandle * > fields() const
Definition: cafObjectHandle.cpp:51
Main Caffa namespace.
Definition: __init__.py:1