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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 z 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 Ah5!Hn 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.47.1