Salome HOME
Rename doc/tui folder from OpenParts to CADBuilder. SHAPER tui doc was not generated...
[modules/shaper.git] / doc / tui / CADBuilder / general_architecture.doc
diff --git a/doc/tui/CADBuilder/general_architecture.doc b/doc/tui/CADBuilder/general_architecture.doc
new file mode 100644 (file)
index 0000000..940f920
--- /dev/null
@@ -0,0 +1,33 @@
+/*!
+\page general_architecture General Architecture
+
+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.
+\n
+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.
+\n
+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. 
+\n
+
+<b>Main features of the general architecture of CAD Builder:</b>
+<ul>
+<li> CAD Builder consists of a one Module running within a Workshop.</li>
+<li> This Module produces one type of Document only.</li>
+<li> This Document consists of a main document and several sub-documents which can be stored and loaded as separated files.</li>
+<li> A Module is made of one or several Plug-ins implementing Features supported of the Module.</li>
+<li> These Features are structured by Workbenches.</li>
+<li> The Module communicates with the Workshop through Interfaces.</li>
+<li> The API of CAD Builder consists of the Interface of the Workshop and of Modules.</li>
+<li> A configuration file describes the composition of the Workshop where the Module and Plug-ins are referenced by their unique names.</li>
+</ul>
+\n\n
+\image html general_architecture_1.png
+\n\n
+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).
+\n
+For today there is a one implementation of CAD Builder application which implements Part Set functionality (PartSet_Module).
+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.
+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.
+\n
+
+
+*/