Salome HOME
Change name of standalone application from OpenParts to CADBuilder
[modules/shaper.git] / doc / tui / OpenParts / general_architecture.doc
1 /*!
2 \page general_architecture General Architecture
3
4 CAD Builder is made of Workshop (see XGUI_Workshop) which loads a Module (see ModuleBase_IModule), connecting its features with GUI, providing it with services for launching of operations, tools for user inputs and visualisation of results. The Module can consist of one or several plug-ins which provide implementation of Module features. Each plug-in can implement one or several features. These features can be structured by Workbenches within Workshop. Workshop provides introducing of these Workbenches within main window in form of menus or/and tool bars.
5 \n
6 Workshop interacts with a Module with help of specific interface defined in ModuleBase package. Each module for CAD Builder application has to implement ModuleBase_IModile interface.
7 \n
8 A Module manages a one document (ModelAPI_Document). This document consists of a one root document and several, loaded by request, sub-documents. Each sub-document can be stored in a single file. 
9 \n
10
11 <b>Main features of the general architecture of CAD Builder:</b>
12 <ul>
13 <li> CAD Builder consists of a one Module running within a Workshop.</li>
14 <li> This Module produces one type of Document only.</li>
15 <li> This Document consists of a main document and several sub-documents which can be stored and loaded as separated files.</li>
16 <li> A Module is made of one or several Plug-ins implementing Features supported of the Module.</li>
17 <li> These Features are structured by Workbenches.</li>
18 <li> The Module communicates with the Workshop through Interfaces.</li>
19 <li> The API of CAD Builder consists of the Interface of the Workshop and of Modules.</li>
20 <li> A configuration file describes the composition of the Workshop where the Module and Plug-ins are referenced by their unique names.</li>
21 </ul>
22 \n\n
23 \image html general_architecture_1.png
24 \n\n
25 Feature is a peace of code which performs an operation. The Feature is a main component of a plug-in. It consists of input attributes, operation functionality and result objects (one or several). All features are defined in plug-ins by the specific feature developer (in C++ or python).
26 \n
27 For today there is a one implementation of CAD Builder application which implements Part Set functionality (PartSet_Module).
28 The geometric model (i.e. the whole geometry produce by PartSet) is created through operations, or features (ModelAPI_Feature), which define a meaningful piece of design (see \ref Plugins group). In order to easily create dedicated variants of the modeler, also to gradually develop CAD Builder, each feature is implemented in a <i>Plug-in</i> (ModelAPI_Plugin, a piece of application including its own GUI, built separately from the application. It is loaded dynamically to the application). In other words, a Module is made of a collection of Plug-ins.
29 Each sub-document contains a data of a one Part. When the user saves its session, all documents are saved: the PartSet and each Part.
30 \n
31
32
33 */