From c8b92da279ed8281b1b355ea767612c72fab6d7c Mon Sep 17 00:00:00 2001 From: jean-pierre roux Date: Mon, 13 Oct 2008 08:03:57 +0000 Subject: [PATCH] doc update --- .../bbFillUpPackageForm.png | Bin 542216 -> 23210 bytes .../bbtkPackageDevelopersGuide.tex | 74 +++++++++++++----- 2 files changed, 56 insertions(+), 18 deletions(-) diff --git a/kernel/doc/bbtkPackageDevelopersGuide/bbFillUpPackageForm.png b/kernel/doc/bbtkPackageDevelopersGuide/bbFillUpPackageForm.png index dbc5e2ce298b391264d71ff8bfcd5239b141cd4a..f51ab6b0899e7ee25d74305ecbc250ddea6b2c89 100644 GIT binary patch literal 23210 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 literal 542216 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 diff --git a/kernel/doc/bbtkPackageDevelopersGuide/bbtkPackageDevelopersGuide.tex b/kernel/doc/bbtkPackageDevelopersGuide/bbtkPackageDevelopersGuide.tex index fed2af0..e513cab 100644 --- a/kernel/doc/bbtkPackageDevelopersGuide/bbtkPackageDevelopersGuide.tex +++ b/kernel/doc/bbtkPackageDevelopersGuide/bbtkPackageDevelopersGuide.tex @@ -48,14 +48,14 @@ Laurent Guigues, Jean-Pierre Roux Any black box must be included in a \bbtk package, that is in a particular shared library which can be loaded dynamically by \bbtk (hence applications which use \bbtkns, -such as the interpreter \bbi, launched by the development environment +such as the development environment, \bbStudions). \begin{enumerate} \item \textbf{Create a new package. } Before defining any black box you have to create a package, or more precisely -the files which will allow you to generate the package +the source files which will allow you to generate the package (compile and link the shared library) and may be install it. \texttt{bbStudio} does it for you. @@ -74,6 +74,9 @@ that the existing project remain external to the package project. You will have to create your new package in a new location and may be include/link against existing libraries. \end{itemize} +You'll have to run the standalone application \bbCreatePackagens, that allows +to create the basic file architecture +to start the development of a new black box package. \item \textbf{Describe your new box. } You can do it either : @@ -85,6 +88,10 @@ When configuring your project with \cmake, the utility \bbfy will then generate the corresponding \CPP code. \end{itemize} + +You'll have to run the standalone application \bbCreateBlackbox allows to create the basic file architecture + to start the development of a new black box, that will be included in an already existing package. + \end{enumerate} % ========================================== @@ -395,7 +402,10 @@ Concretely, a \texttt{bbtk::WxBlackBox} is associated to a \texttt{wxWindow} and must be able to return a pointer to it. If your black box is not a widget black box (that is : doesn't returns a pointer to a \emph{Widget}), - it must inherit from \texttt{bbtk::AtomicBlackBox}. + it must inherit from \texttt{bbtk::AtomicBlackBox}.\\ + It returns a \texttt{wxWidget} which can be embedded into the \texttt{wxWindow}.\\ + In particular, modal dialogs which are created and destroyed at the end of the process method of the box + are NOT \texttt{WxBlackBoxes}/ \subsubsection{Inherit or encapsulate ?} @@ -483,10 +493,11 @@ Finally, to create a new black box, you will have to give : \item Its {\bf type}, either \begin{enumerate} - \item a standard one (\texttt{std-template}) - \item a VTK Polydata Algorithm based box (\texttt{VTK\_PolydataAlgorithm-template}), - \item a VTK Image Algorithm based box (\texttt{VTK\_ImageaAlgorithm-template}), - \item if it uses the wxWidget Library (\texttt{widget-template}) + \item AtomicBlackBox : a basic one, with no special I/O (\texttt{std-template}) + \item WxBackBox : ouputs a \texttt{wxWindow}, + \item a VTK Polydata Algorithm Box descendant, + \item a VTK Image Algorithm Box descendant + \end{enumerate} \item The output format of the file, either a C++ file or an XML file. @@ -655,42 +666,45 @@ you must modify the xml file generated in previous step : % ========================================== % ========================================== -\subsubsection{Specific \texttt{xml} tags for \texttt{vtkImageAlgorithm} classes bbfication} +\subsubsection{Specific \texttt{xml} tags for \texttt{vtkImageAlgorithm} classes bbfication by inheritance} % ========================================== \begin{verbatim} - + the vtk ImageAlgorithm class it inherits from - + \end{verbatim} % ========================================== -\subsubsection{Specific \texttt{xml} tags for \texttt{vtkPolyDataAlgorithm} classes bbfication} +\subsubsection{Specific \texttt{xml} tags for \texttt{vtkPolyDataAlgorithm} classes bbfication by inheritance} % ========================================== \begin{verbatim} - + the vtk Polydata class it inherits from - + \end{verbatim} + +\newpage + % ========================================== \subsubsection{\bbfy \texttt{xml} tags reference} % ========================================== - + See tables \ref{xml_tags}, \ref{xml_tags2} % ========================================== \begin{table}[!ht] \caption{\label{xml_tags} -\bbfy \texttt{xml} tags reference} +\bbfy \texttt{xml} tags reference (part 1)} \small \begin{tabular}{|lcllm{6cm}|} \hline @@ -728,22 +742,36 @@ Use \texttt{bbPACKAGE}, where \texttt{PACKAGE} is the name of the package\\\hlin & \texttt{special} & - & 0-1 & In: \{\texttt{``itk input'', ``vtk input'', ``itk parameter'', ``vtk parameter''}\} (see below).\\\hline & \texttt{generic\_type} & c) & 0-1 & The ``generic'' type of the input (see text). \\\hline -\texttt{} & \texttt{name} & - & 1 & The name of the output \\\hline + + + \end{tabular} + \end{table} +\begin{table}[!ht] +\caption{\label{xml_tags2} +\bbfy \texttt{xml} tags reference (part 2)} +\small +\begin{tabular}{|lcllm{6cm}|} +\hline +Tag & Attributes & Condition & Multiplicity & Description + \\ \hline + \texttt{} & \texttt{name} & - & 1 & The name of the output \\\hline & \texttt{type} & - & 1 & The type of the output \\\hline & \texttt{special} & - & 0-1 & In: \{\texttt{``itk output'', ``vtk output''}\} (see below).\\\hline & \texttt{generic\_type} & c) & 0-1 & The ``generic'' type of the output (see text).\\\hline & \texttt{nature} & c) & 0-1 & The ``nature'' of the output (used for automatic GUI generation).\\\hline - \texttt{} & - & - & 0-1 & The code of the processing method of the box. Must be put between clear tags : \texttt{
} \\\hline 
 \texttt{} & - & - & 0-1 & The code of the user Constructor of the box (may contains default initialisations). Must be put between clear tags : \texttt{
} \\\hline 
 \texttt{} & - & - & 0-1 & The code of the user Copy Constructor of the box . Must be put between clear tags : \texttt{
} \\\hline
 \texttt{} & - & - & 0-1 & The code of the user Destructor of the box. Must be put between clear tags : \texttt{
} \\\hline
  \end{tabular}
  \end{table}
+ 
+ \newpage
+ 
 % ==========================================
 \begin{table}[!ht]
-\caption{\label{xml_tags}
+\caption{\label{xml_tags-conditions}
 \bbfy \texttt{xml} tags conditions}
 \small
 \begin{tabular}{|ll|}
@@ -846,6 +874,16 @@ a \texttt{wxWindow} and is be able to return a pointer to it.... \\ \hline
 \end{tabular}
 \end{table}
 
+.\\
+.\\
+.\\
+.\\
+.\\
+
+
+\newpage 
+
+
 % ==========================================
 \subsection{\CPP description of a box}
 % ==========================================
-- 
2.50.0