@startuml left to right direction component cafProjectDataModel note right of [cafProjectDataModel] -- Top Level Directory -- - PdmObject and PdmField : Convenienece classes used when using all the intrinsic capabilities: Xml, Ui and Introspection Some utility classes: - Templated factory class - Multithreaded mutex - PdmObjectGroup - collection of PdmObjects end note component cafPdmCore note right of [cafPdmCore] cafAppEnum Classes derived from cafPdmFieldHandle cafPdmPointer end note component cafPdmUiCore note right of [cafPdmUiCore] Object editor handle Field editor handle Ui ordering for properties Ui ordering for tree view Selection manager end note component cafPdmXml note right of [cafPdmXml] Default object factory Serialization of objects to Xml end note component cafUserInterface note right of [cafUserInterface] Default object property editor Property view contained in a dialog (used to display preferences) Table editor Progress info PdmField editors (line, checkbox, list view, ...) end note component cafCommand note right of [cafCommand] Feature manager Base class for features Base class for feature commands Management of undo/redo end note component cafAnimControl component cafTensor component cafViewer note right of [cafViewer] Viewer widget used to display 3D models Mouse navigation policies end note component cafPdmCvf note right of [cafPdmCvf] Definition of default Ui editors for CVF classes Color3f Vec3d Mat4d end note cafPdmCore --> cafPdmUiCore cafPdmCore --> cafPdmXml cafPdmCore --> cafProjectDataModel cafPdmUiCore --> cafProjectDataModel cafPdmXml --> cafProjectDataModel cafProjectDataModel --> cafUserInterface cafProjectDataModel --> cafCommand cafAnimControl --> cafViewer cafProjectDataModel --> cafPdmCvf @enduml