Modules | |
Action | |
Application | |
Component | |
Utils | |
Viewer | |
Classes | |
class | camitk::Core |
Core class specifies the basic static information for the CamiTK API. More... | |
class | camitk::ExtensionManager |
This class is used to manage all plugins loaded by the application. More... | |
class | camitk::HistoryComponent |
HistoryComponent class describes the component information (name, type) stored in the history. More... | |
class | camitk::HistoryItem |
HistoryItem class describes the entry of an action used in a pipeline, in the history. More... | |
The CamiTK Core library represents the base of CamiTK.
CamiTK core allows extensions to communicate and works together, for this it's the base of CamiTK and any extension using CamiTK requires the CamiTK Core library.
CamiTK core architecture follows the Model-View-Presenter (MVP) design-pattern. It helps dividing the logic in two parts : domain logic (data structures and algorithms) and application logic (the Model, GUI aspects to present and interact with the domain logic).
CamiTK follows the Components Based Software Engineering (CBSE) principles. Each new functionality to the framework is a new module represented as a dynamic library (.dll on windows, .so on Linux systems). These principles guarantee CamiTK to be higly modular and easier to maintain. CamiTK is provided with its core and basic modules (to handle 2D and 3D images using VTK for instance). You can easily add new modules to the framework or create new camitk-application.
To do so, 'viewers' (application logic modules) are used to present and interact with the domain logic : the 'components' (the data logic, the data structures) and the 'actions' (the processing logic, the algorithms to be used on these components). In order to easily glue together all this modules CamiTK uses a Service Layer Pattern. This service layer can be seen as a contract from the viewers consumers of services provided by the 'components' and 'actions'. The viewers interact with the components without knowing exactly which kind of data it represents.