Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/smesh.git] / doc / salome / tui / extra / PluginMeshers.txt
diff --git a/doc/salome/tui/extra/PluginMeshers.txt b/doc/salome/tui/extra/PluginMeshers.txt
deleted file mode 100644 (file)
index 71e58b2..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-#######################################################################################
-# File   : PluginMeshers.txt
-# Author : Julia DOROVSKIKH
-# Module : SMESH
-# $Header$
-#######################################################################################
-#
-# How to add your own mesher (as a set of hypotheses and algorithms) to the application
-#
-#######################################################################################
-
-1. Create mesher plugin package, e.g. MyMesher.
-
-2. Create XML file to describe all algorithms and hypotheses, provided by plugin package
-   (see SMESH_SRC/resources/SMESH_Meshers.xml for example).
-
-   <meshers-group name="MyName"
-                  resources="MyResourceKey"
-                  server-lib="libMyServerLib.so"
-                 gui-lib="libMyClientLib.so">
-     <hypotheses>
-       <hypothesis type="MyHypType1"
-                  label-id="My beautiful hypothesis name"
-                  icon-id="my_hypo_1_icon.png"/>
-     </hypotheses>
-     <algorithms>
-       <algorithm type="MyAlgType1"
-                 label-id="My beautiful algorithm name"
-                 icon-id="my_algo_1_icon.png"/>
-     </algorithms>
-   </meshers-group>
-
-   Attributes of <meshers-group> tag:
-
-        - value of <name> attribute is used to collect hypotheses/algoritms in groups;
-          you can also use this attribute for short description of your mesher plugin
-
-        - value of <resources> attribute (MyResourceKey) is used to access resources
-          (messages and icons) from GUI (see paragraphs 4.2 and 5);
-          currently it should coincide with the name of plugin package; this limitation
-          will be eliminated in the further development.
-
-        - value of <server-lib> attribute describes the name of your mesher's
-          server plugin library (See paragraph 3)
-
-        - value of <gui-lib> attribute describes the name of your mesher's
-          client plugin library (See paragraph 4)
-
-   Attributes of <hypothesis/algorithm> tag:
-
-        - value of <type> attribute is an unique name of the hypothesis/algorithm
-
-          * It is a value of _name field of your hypothesis class
-            (see paragraph 3, implementation of constructor of
-             StdMeshers_LocalLength class: _name = "LocalLength")
-
-          * It is a key to each certain hypothesis class
-            (see paragraph 3, implementation of "GetHypothesisCreator()" method in StdMeshers_i.cxx)
-
-          * It is a key to each certain hypothesis GUI
-            (see paragraph 4, implementation of "StdMeshersGUI_HypothesisCreator::CreateHypothesis()"
-             and "StdMeshersGUI_HypothesisCreator::EditHypothesis()" methods in StdMeshersGUI.cxx)
-
-          * It is a key to each certain hypothesis icon in Object Browser
-            (see paragraph 4.2.1)
-
-        - value of <label-id> attribute is displayed in the GUI in the list
-          of available hypotheses/algorithms ("Create Hypothesis/Algorithm" dialog)
-
-        - value of <icon-id> attribute is a name of icon file, which is displayed in GUI
-          in the list of available hypotheses/algorithms ("Create Hypothesis/Algorithm" dialog)
-
-   Note: All attributes values are accessible in your GUI via HypothesisData class
-         (see paragraph 4.1)
-
-   Note: The environment variable SMESH_MeshersList contains the list of plugins names, 
-         separated by colon (":") symbol, e.g.:
-
-        setenv SMESH_MeshersList StdMeshers:NETGENPlugin
-
-        Please, pay attention that StdMeshers should also be included into this environment variable,
-        if you want to use standard hypotheses/algorithms, provided with SMESH module.
-        
-        The SALOME automatically locates XML files, searching them in the following directories:
-
-         ${<PLUGINNAME>_ROOT_DIR}/share/salome/resources/<plugin>
-         ${SALOME_<PluginName>Resources}
-         ${HOME}/.salome/resources
-         ${KERNEL_ROOT_DIR}/share/salome/resources/kernel
-
-        where <PluginName> is a name of each mesher plugin package
-
-3. Build server plugin library <libMyServerLib.so>.
-
-   3.1. Define interface to your hypotheses and algorithms.
-
-        Example: SMESH_SRC/idl/SMESH_BasicHypothesis.idl
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_Algorithm.idl
-
-   3.2. Implement functionality of your hypotheses and algorithms.
-        Inherit corresponding classes from SMESH.
-
-        Example: SMESH_SRC/src/StdMeshers/StdMeshers_*
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D
-
-   3.3. Implement interface to your hypotheses and algorithms.
-        Inherit corresponding classes from SMESH_I.
-
-        Example: SMESH_SRC/src/StdMeshers_I/SMESH_*_i
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_NETGEN_3D_i
-
-   3.4. Implement being exported method.
-
-        GenericHypothesisCreator_i* GetHypothesisCreator (const char* aHypType)
-
-       <aHypType> is a value of <type> attribute in the XML-description file
-
-        Example: SMESH_SRC/src/StdMeshers_I/StdMeshers_i.cxx
-                 NETGENPLUGIN_SRC/src/NETGENPlugin_i.cxx
-
-4. Build client (GUI) plugin library <libMyClientLib.so>.
-   This step is required only if your hypotheses/algorithms need specific GUI for their construction.
-
-   4.1. Implement the required GUI (e.g. construction dialog boxes).
-
-        Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI_*Dlg
-
-        Note: all data from XML-description files is accessible in your GUI via HypothesisData class
-              (mySMESHGUI->GetHypothesisData (aHypType),
-              see SMESHGUI_Hypotheses.h for HypothesisData definition)
-
-   4.2. Provide icons and messages for your GUI.
-
-        4.2.1. Implement resource files
-               MyResourceKey_icons.po and MyResourceKey_msg_en.po
-
-               Example: SMESH_SRC/src/StdMeshersGUI/StdMeshers_*.po
-                        NETGENPLUGIN_SRC/src/NETGENPlugin_icons.po
-
-               Note: ICON_SMESH_TREE_HYPO_MyHypType1 is ID of icon for Object Browser
-                     for hypothesis with type="MyHypType1".
-
-                     ICON_SMESH_TREE_ALGO_MyAlgType1 is ID of icon for Object Browser
-                     for algorithm with type="MyAlgType1".
-
-               See paragraph 2 for definition of MyResourceKey, MyHypType1, MyAlgType1.
-
-        4.2.2. Define environment variable SALOME_<MyResourceKey>Resources to point to the 
-               directory where resources are situated.
-
-               Example: setenv SALOME_StdMeshersResources ${SMESH_ROOT_DIR}/share/salome/resources/smesh
-
-   4.3. Implement your Hypothesis Creator and being exported method
-
-        SMESHGUI_GenericHypothesisCreator* GetHypothesisCreator
-          (QString aHypType, QString aServerLibName, SMESHGUI* aSMESHGUI)
-
-       <aHypType> is to pass a value of <type> attribute in XML-description file;
-       <aServerLibName> is to pass a value of <server-lib> attribute in XML-description file.
-
-        Example: SMESH_SRC/src/StdMeshersGUI/StdMeshersGUI.cxx
-
-5. If your hypotheses/algorithms do not need specific GUI,
-   but you want to provide icons for object browser, see 4.2 paragrath
-
-6. Setup your SALOME environment.
-
-   6.1. Add your plugin to the LD_LIBRARY_PATH, PYTHONPATH (and maybe PATH) environment variables, e.g.:
-
-      setenv PATH <path-to-my-plugin>/bin/salome:${PATH}
-      setenv LD_LIBRARY_PATH <path-to-my-plugin>/lib/salome:${LD_LIBRARY_PATH}
-      setenv PYTHONPATH <path-to-my-plugin>/lib/python2.2/site-packages/salome:${PYTHONPATH}
-   
-   6.2. Set mesher plugin resources environment variable (see 4.2.2 paragraph)
-
-Note: If you use runSalome.py script from KERNEL package to launch SALOME, you may not to set 
-      environment variables, because this script sets them itself. All what you should do is
-      to add <plugin> section to your ${HOME}/.salome/salome.launch file for SMESH module section:
-
-      ...
-      <modules-list>
-          ...
-         <module name="SMESH">
-              <plugin name="MyMesher"/>
-          </module>
-          ...
-      </modules-list>
-      ...