]> Creatis software - creaBruker.git/commitdiff
Ugrade frp creaNewProject, to allow doc generation
authorjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Wed, 3 Mar 2010 11:07:56 +0000 (11:07 +0000)
committerjean-pierre roux <jean-pierre.roux@creatis.insa-lyon.fr>
Wed, 3 Mar 2010 11:07:56 +0000 (11:07 +0000)
33 files changed:
CMakeLists.txt
appli/CMakeLists.txt
appli/testBruker2Dicom/testBruker2Dicom.cxx
cmake/UserBuildAllOption.cmake [new file with mode: 0644]
cmake/UserBuildDoxygenDoc.cmake [new file with mode: 0644]
cmake/UserBuildHtmlDocFromLatex.cmake [new file with mode: 0644]
cmake/UserBuildLatexDoc.cmake [new file with mode: 0644]
cmake/UserConfig.cmake [new file with mode: 0644]
cmake/UserDefineOptions.cmake [new file with mode: 0644]
cmake/UserMacros.cmake [new file with mode: 0644]
cmake/UserRootCMakeLists.cmake [new file with mode: 0644]
cmake/UserSetDeducedPaths.cmake [new file with mode: 0644]
doc/CMakeLists.txt [new file with mode: 0644]
doc/README.txt [new file with mode: 0644]
doc/README_HowToUpload.txt [new file with mode: 0644]
doc/UserDocumentation/CMakeLists.txt [new file with mode: 0644]
doc/UserDocumentation/UserDocumentation.tex [new file with mode: 0644]
doc/UserDoxygen/CMakeLists.txt [new file with mode: 0644]
doc/UserDoxygen/CodingStyle.html [new file with mode: 0644]
doc/UserDoxygen/DoxyMainPage.txt.in [new file with mode: 0644]
doc/UserDoxygen/Doxyfile.txt.in [new file with mode: 0644]
doc/config.tex [new file with mode: 0644]
doc/help_contents.html.in [new file with mode: 0644]
doc/index-no-frame.html.in [new file with mode: 0644]
doc/index.html.in [new file with mode: 0644]
doc/template_WebSite/CMakeLists.txt [new file with mode: 0644]
doc/template_WebSite/README.txt [new file with mode: 0644]
doc/template_WebSite/home.html [new file with mode: 0644]
doc/template_WebSite/install.html [new file with mode: 0644]
doc/template_WebSite/menu.html [new file with mode: 0644]
install/CMakeLists.txt
lib/src1/bruker2dicom.cxx
lib/template_lib/CMakeLists.txt

index 39523182c4dee748d155bc0d6ce40849e958de8a..89954c7e842c9acc8e357e815e9c58deeeca2594 100644 (file)
@@ -1,3 +1,12 @@
+# ---------------------------------
+#
+# Unless you are an experimented cmake user,
+# have a look at :
+# http://www.creatis.insa-lyon.fr/creatools/GettingStarted_creaTools
+# before starting.
+#
+# ---------------------------------
+
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
 ###################################
@@ -9,10 +18,16 @@ PROJECT(creaBruker)
 SET(PROJECT_MAJOR_VERSION 1)
 SET(PROJECT_MINOR_VERSION 0)
 SET(PROJECT_BUILD_VERSION 0)
+
+SET(PROJECT_VERSION "${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_BUILD_VERSION}")
+
+#ADD_DEFINITIONS( -DPROJECT_VERSION=${PROJECT_VERSION} )
+#ADD_DEFINITIONS( -DPROJECT_VERSION_DATE=${PROJECT_VERSION_DATE} )
+
 #==================================
 
 #==================================
-# Find crea (mandatory to use macros)
+# Find crea (mandatory, to use macros)
 SET(CREA_VERBOSE_CMAKE TRUE)
 FIND_PACKAGE(crea REQUIRED)
 IF (crea_FOUND)
@@ -27,6 +42,7 @@ CREA_PREVENT_IN_SOURCE_BUILD()
 
 #==================================
 # Libraries/tools used
+
 # Note : Set USE_CREA to ON
 #  if you need to LINK against crea
 #  (and not only use its macros)
@@ -39,7 +55,15 @@ SET(USE_KWWIDGETS OFF)
 SET(USE_VTK       OFF)
 SET(USE_ITK       OFF)
 SET(USE_BOOST     ON)
+
+# Note : Set USE_DOXYGEN to ON
+#  if you think you will ask, some day,
+#  for Doxygen generation
 SET(USE_DOXYGEN   ON)
+
+# Note : Set USE_LATEX to ON, USE_TTH to ON
+#  if you think you will ask, some day,
+#  for doc generation using your own latex documents
 SET(USE_LATEX     OFF)
 SET(USE_TTH       OFF)
 
@@ -55,17 +79,38 @@ MARK_AS_ADVANCED(
   EXECUTABLE_OUTPUT_PATH
   LIBRARY_OUTPUT_PATH
   )
+
 #==================================
 
   SET(LIBNAME $(PROJECT_NAME))
   INCLUDE_DIRECTORIES(
     ${PROJECT_BINARY_DIR}
+
+ # // if the previous one is not enough :  (JPRx)
+ #   Add here the directories holding the .h you need
+
+ #   ${PROJECT_SOURCE_DIR}/lib/_YOUR_OWN_LIBRARY_SOURCE_DIRECTORY_
     ${PROJECT_SOURCE_DIR}/lib/src1
     )
 #==================================
+
+
+#----------------------------------------------------------------------------
+INCLUDE(${PROJECT_SOURCE_DIR}/cmake/UserRootCMakeLists.cmake)
+
+#==================================
+# Where to generate documentation
+# (desperate try; JPR)
+
+SET(BBTK_DOC_BUILD_PATH 
+     ${PROJECT_BINARY_DIR}/doc
+   )
+#==================================
+
 # Subdirs
 SUBDIRS(lib)
 SUBDIRS(appli)
+SUBDIRS(doc)
 SUBDIRS(install)
 
 #==================================
index f7deab7c21fbc6e04ecc4a38e8c07e0bbe198f02..6d4daf32176727065fd99463738f4b9c98c4763a 100644 (file)
@@ -1,4 +1,6 @@
-
+# Add a SUBDIRS command for each of your applications
+# SUBDIRS(MyApp1)
+# SUBDIRS(MyApp2)
 SUBDIRS(
 # ==> mettez ici la liste des directories qui contiennent 
 # ==> les fichiers sources de chacune de vos applications
index 98b35528ed050107323cb587ff4fe1b1d376844c..c8b055258c8d83428eae07eb17ea54ea9ae05a45 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: testBruker2Dicom.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/01/26 21:44:27 $
-  Version:   $Revision: 1.8 $
+  Date:      $Date: 2010/03/03 11:07:58 $
+  Version:   $Revision: 1.9 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -94,7 +94,7 @@ int main(int argc, char *argv[])
    "                         --dirout=outputDirectoryName                       ",
    "                   [-D] [-M]                                                ",
    "                   [{-b|-l}] b:BigEndian,l:LittleEndian default : l         ",
-   "                   [--debug] [--verbose] [--listonly] [--usage]                          ",
+   "                   [--debug] [--verbose] [--listonly] [--usage]           ",
    "                                                                          ",
    "   D         : user wants to export as DICOM                              ",
    "   M         : user wants to export as MHD                                ",   
diff --git a/cmake/UserBuildAllOption.cmake b/cmake/UserBuildAllOption.cmake
new file mode 100644 (file)
index 0000000..5df73d1
--- /dev/null
@@ -0,0 +1,30 @@
+#-----------------------------------------------------------------------------
+# If --BUILD_ALL is set to ON then all options 
+# for which the macro SWITCH_ON_IF_BUILD_ALL have been used are set to ON
+# The -- prepended to the options ensure that it will appear as the 
+# first option when running ccmake/CMakeSetup
+#IF (BBTK_CORE_PACKAGE)
+  OPTION(--BUILD_ALL "Build all ?" OFF)
+  #OPTION(--SET_BUILD_ALL_OFF "Build all ?" OFF)
+  #MARK_AS_ADVANCED(--SET_BUILD_ALL_OFF)
+
+  MACRO(SWITCH_ON_IF_BUILD_ALL VAR)
+    #OPTION(--${VAR}_SET_BUILD_ALL_OFF "Build all ?" OFF)
+    #MARK_AS_ADVANCED(--${VAR}_SET_BUILD_ALL_OFF)
+    IF (--BUILD_ALL)
+      #  IF (--${VAR}_SET_BUILD_ALL_OFF)
+      #    MESSAGE(ERROR "${VAR} -> Build All OFF")
+      #    SET(--BUILD_ALL OFF CACHE BOOL "Build all ?" FORCE)  
+      #    SET(--${VAR}_SET_BUILD_ALL_OFF OFF CACHE BOOL "" FORCE)  
+      #  ELSE (--${VAR}_SET_BUILD_ALL_OFF)
+      SET(${VAR} ON CACHE BOOL "Forced to ON by --BUILD_ALL" FORCE)
+      #    SET(--${VAR}_SET_BUILD_ALL_OFF ON CACHE BOOL "" FORCE)  
+      #    MESSAGE(ERROR "Build All -> ${VAR}")
+      #  ENDIF (--${VAR}_SET_BUILD_ALL_OFF)
+    ENDIF(--BUILD_ALL)
+  ENDMACRO(SWITCH_ON_IF_BUILD_ALL)
+#ELSE (BBTK_CORE_PACKAGE)
+ # MACRO(SWITCH_ON_IF_BUILD_ALL VAR)
+ # ENDMACRO(SWITCH_ON_IF_BUILD_ALL)
+#ENDIF (BBTK_CORE_PACKAGE)
+#-----------------------------------------------------------------------------
diff --git a/cmake/UserBuildDoxygenDoc.cmake b/cmake/UserBuildDoxygenDoc.cmake
new file mode 100644 (file)
index 0000000..2446671
--- /dev/null
@@ -0,0 +1,74 @@
+
+
+MACRO(USER_BUILD_DOXYGEN_DOC NAME INPUT DOC_RELATIVE_INSTALL_PATH PREDEFINED)
+
+  #--------------------------------------------------------------------------
+  SET(USE_DOXYGEN ON CACHE BOOL "" FORCE)
+  
+  # Name
+  SET(DOXYGEN_PROJECT_NAME "${NAME}")
+
+  # Inputs
+  #STRING(REGEX REPLACE ";" " " DOXYGEN_INPUT "${INPUT}")
+
+  # Output dirs
+  SET(DOXYGEN_HTML_OUTPUT ".")
+  SET(DOXYGEN_OUTPUT "${${PROJECT_NAME}_DOXYGEN_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}") 
+  STRING(REGEX REPLACE " " "~" DOXYGEN_OUTPUT "${DOXYGEN_OUTPUT}")
+  
+  IF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+    FILE(MAKE_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+  ENDIF(NOT IS_DIRECTORY ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT})
+
+  # Doc exclude
+  SET(DOXYGEN_EXCLUDE "")
+  STRING(REGEX REPLACE ";" " " DOXYGEN_EXCLUDE "${DOXYGEN_EXCLUDE}")
+
+  # Log file name 
+  SET(DOXYGEN_LOGFILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen.log")
+
+  # Predefined symbols
+  STRING(REGEX REPLACE ";" " " DOXYGEN_DOC_PREDEFINED "${PREDEFINED}")
+  
+  #---------------------------------------------------------------------------
+  # DOT verification
+  IF(DOT)
+    GET_FILENAME_COMPONENT(DOXYGEN_DOT_PATH ${DOT} PATH)
+    SET(DOXYGEN_HAVE_DOT "YES")
+  ELSE(DOT)
+    SET(DOXYGEN_DOT_PATH "")
+    SET(DOXYGEN_HAVE_DOT "NO")
+  ENDIF(DOT)
+  
+  #---------------------------------------------------------------------------
+  # Create file and project
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.txt.in
+    ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+    @ONLY IMMEDIATE
+    )
+  
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
+    COMMAND 
+    ${DOXYGEN}
+    ARGS
+    ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile.txt
+    #  DEPENDS bbtk bbi 
+    )
+  
+  ADD_CUSTOM_TARGET(doxygen_${NAME} ALL
+    DEPENDS  ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}/index.html
+    )
+  
+  INSTALL(
+    DIRECTORY
+    ${DOXYGEN_OUTPUT}/${DOXYGEN_HTML_OUTPUT}
+    DESTINATION
+    ${${PROJECT_NAME}_DOXYGEN_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}
+    )
+  #--------------------------------------------------------------------------
+#message("user build doxygen , doxygen output = ${DOXYGEN_OUTPUT}")
+ENDMACRO(USER_BUILD_DOXYGEN_DOC)
diff --git a/cmake/UserBuildHtmlDocFromLatex.cmake b/cmake/UserBuildHtmlDocFromLatex.cmake
new file mode 100644 (file)
index 0000000..1cba436
--- /dev/null
@@ -0,0 +1,33 @@
+
+
+MACRO(USER_BUILD_HTML_DOC_FROM_LATEX TEX_FILE OUTPUT_REL_PATH)
+  # Need tth
+  SET(USE_TTH ON CACHE BOOL "" FORCE)
+  # Construct absolute build path
+  SET(BUILD_PATH ${${PROJECT_NAME}_DOC_BUILD_PATH}/${OUTPUT_REL_PATH})
+  #------------------------------------------------------------------------- 
+  IF(WIN32)
+               SET(TTH_EXECUTABLE "${TTH_EXECUTABLE}/tth.exe")
+       ENDIF(WIN32)
+       
+       #message("MACRO(USER_BUILD_HTML_DOC_FROM_LATEX TEX_FILE OUTPUT_REL_PATH) TTH_EXECUTABLE ${TTH_EXECUTABLE}")
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${BUILD_PATH}/${TEX_FILE}.html
+    COMMAND 
+    #    tth 
+    ${TTH_EXECUTABLE}
+    ARGS
+    -e2 ${BUILD_PATH}/${TEX_FILE}.tex 2>tth.log
+ #   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${TEX_FILE}.pdf
+    )
+  ADD_CUSTOM_TARGET(${TEX_FILE}.html ALL
+    DEPENDS ${BUILD_PATH}/${TEX_FILE}.html
+    )
+  # Install
+  INSTALL( 
+    FILES ${BUILD_PATH}/${TEX_FILE}.html
+    DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${OUTPUT_REL_PATH}
+    )   
+  #-------------------------------------------------------------------------
+  
+ENDMACRO(USER_BUILD_HTML_DOC_FROM_LATEX)
diff --git a/cmake/UserBuildLatexDoc.cmake b/cmake/UserBuildLatexDoc.cmake
new file mode 100644 (file)
index 0000000..1f5ad69
--- /dev/null
@@ -0,0 +1,66 @@
+
+
+MACRO(USER_BUILD_LATEX_DOC TEX_FILE OUTPUT_REL_PATH)
+  # Need LaTeX
+  SET(USE_LATEX ON CACHE BOOL "" FORCE)
+  # Construct absolute build path
+  SET(BUILD_PATH ${${PROJECT_NAME}_DOC_BUILD_PATH}/${OUTPUT_REL_PATH})
+  #MESSAGE(STATUS "Tex file : ${TEX_FILE}")
+  #---------------------------------------------------------------------------
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/${TEX_FILE}.tex
+    ${BUILD_PATH}/${TEX_FILE}.tex
+    COPYONLY
+    )
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex
+    ${BUILD_PATH}/config.tex
+    @ONLY
+    )
+  CONFIGURE_FILE(
+    ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex
+    ${CMAKE_CURRENT_BINARY_DIR}/config.tex
+    @ONLY
+    )
+  #---------------------------------------------------------------------------
+ FILE(TO_NATIVE_PATH ${BUILD_PATH} THE_BUILD_PATH)
+
+  # Have to run latex twice to get references, toc, etc.
+ #message("ADD_CUSTOM_COMMAND(OUTPUT ${BUILD_PATH}/${TEX_FILE}.aux   MACRO(USER_BUILD_LATEX_DOC")
+      
+ADD_CUSTOM_COMMAND(
+    OUTPUT ${BUILD_PATH}/${TEX_FILE}.aux 
+    COMMAND 
+    # latex
+    cd ${THE_BUILD_PATH} && ${LATEX_COMPILER}
+    ARGS
+    -interaction=batchmode ${BUILD_PATH}/${TEX_FILE} -output-directory=${BUILD_PATH}/
+    
+    DEPENDS 
+    ${CMAKE_CURRENT_SOURCE_DIR}/${TEX_FILE}.tex
+    ${CMAKE_CURRENT_SOURCE_DIR}/../config.tex
+    )
+
+#message("LATEX_COMPILER = ${LATEX_COMPILER}")
+ADD_CUSTOM_COMMAND(
+    OUTPUT ${BUILD_PATH}/${TEX_FILE}.pdf
+    COMMAND 
+    # latex
+    cd ${THE_BUILD_PATH} && ${LATEX_COMPILER}
+    ARGS
+    -interaction=batchmode ${BUILD_PATH}/${TEX_FILE} -output-directory=${BUILD_PATH}/
+  
+    DEPENDS ${BUILD_PATH}/${TEX_FILE}.aux 
+    )
+  
+  # pdf target
+  ADD_CUSTOM_TARGET(${TEX_FILE}.pdf ALL
+    DEPENDS ${BUILD_PATH}/${TEX_FILE}.pdf)
+
+  # Install
+  INSTALL( 
+    FILES ${BUILD_PATH}/${TEX_FILE}.pdf
+    DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${OUTPUT_REL_PATH}
+    )
+
+ENDMACRO(USER_BUILD_LATEX_DOC)
diff --git a/cmake/UserConfig.cmake b/cmake/UserConfig.cmake
new file mode 100644 (file)
index 0000000..58dfc68
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+#-----------------------------------------------------------------------------
+# store documentation and scripts **RELATIVE** paths  
+# from build tree root or install tree root
+# (different on win/lin)
+IF(WIN32)
+  # A trick to install in root install dir (problem when empty path given)
+  SET(${PROJECT_NAME}_SHARE_REL_PATH "bin/..")
+  SET(${PROJECT_NAME}_DOC_REL_PATH doc) 
+ELSE(WIN32)
+  SET(${PROJECT_NAME}_SHARE_REL_PATH share/${PROJECT_NAME})
+  SET(${PROJECT_NAME}_DOC_REL_PATH share/${PROJECT_NAME}/doc)  
+ENDIF(WIN32)   
+
+MESSAGE(STATUS "* SHARE_REL_PATH   =${${PROJECT_NAME}_SHARE_REL_PATH}")
+MESSAGE(STATUS "* DOC_REL_PATH     =${${PROJECT_NAME}_DOC_REL_PATH}")
+MESSAGE(STATUS "* BBS_REL_PATH     =${${PROJECT_NAME}_BBS_REL_PATH}")
+MESSAGE(STATUS "* DATA_REL_PATH    =${${PROJECT_NAME}_DATA_REL_PATH}")
+MESSAGE(STATUS "===============================================")
+
+#-----------------------------------------------------------------------------
diff --git a/cmake/UserDefineOptions.cmake b/cmake/UserDefineOptions.cmake
new file mode 100644 (file)
index 0000000..65a1446
--- /dev/null
@@ -0,0 +1,39 @@
+#-----------------------------------------------------------------------------
+# messages compilation options 
+OPTION ( BUILD_${PROJECT_NAME}_DOC "Build documentation for ${PROJECT_NAME}." OFF)
+SWITCH_ON_IF_BUILD_ALL(BUILD_${PROJECT_NAME}_DOC)
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC)
+
+  OPTION(BUILD_${PROJECT_NAME}_DOC_PACKAGE 
+    "Build ${PROJECT_NAME} packages documentation (bbi+dot)."       ON)
+  OPTION(BUILD_${PROJECT_NAME}_DOC_DOXYGEN 
+    "Build doxygen documentation (doxygen)."             ON)
+  OPTION(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF 
+    "Build ${PROJECT_NAME} Guides', PDF format (latex)."            ON)
+  OPTION(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML 
+    "Build ${PROJECT_NAME} Guides', HTML format (latex+tth)."       ON)
+
+ELSE(BUILD_${PROJECT_NAME}_DOC)
+  
+  IF(BUILD_${PROJECT_NAME}_DOC_PACKAGE)
+    SET(BUILD_${PROJECT_NAME}_DOC_PACKAGE OFF CACHE BOOL 
+      "Build ${PROJECT_NAME} packages documentation (bbdoc+dot)."      FORCE)
+  ENDIF(BUILD_${PROJECT_NAME}_DOC_PACKAGE)
+  IF(BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+    SET(BUILD_${PROJECT_NAME}_DOC_DOXYGEN OFF CACHE BOOL 
+      "Build doxygen documentation. (doxygen)"         FORCE)
+  ENDIF(BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+  
+  IF(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+    SET(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OFF CACHE BOOL 
+      "Build ${PROJECT_NAME} Guides', PDF format (latex)."     FORCE)
+  ENDIF(BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+  
+  IF(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+    SET(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML OFF CACHE BOOL 
+      "Build ${PROJECT_NAME} Guides', HTML format (latex tth)."                FORCE)
+  ENDIF(BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+  
+ENDIF(BUILD_${PROJECT_NAME}_DOC)
+#-----------------------------------------------------------------------------
diff --git a/cmake/UserMacros.cmake b/cmake/UserMacros.cmake
new file mode 100644 (file)
index 0000000..0f33860
--- /dev/null
@@ -0,0 +1,37 @@
+#========================================================================
+# MACRO WHICH COPIES ALL IMAGES (png, jpg, gif) 
+# FROM SOURCE TREE TO DOC BUILD TREE
+# AND INSTALL THEM IN BBTK DOC TREE
+MACRO(USER_DOC_INSTALL_IMAGES DOC_RELATIVE_INSTALL_PATH)
+  MESSAGE(STATUS "* Copying png,jpg,tif images in ${BBTK_DOC_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}")
+  FILE(GLOB PNG_IMAGES "*.png")
+  FILE(GLOB JPG_IMAGES "*.jpg")
+  FILE(GLOB TIF_IMAGES "*.tif")
+  SET(IMAGES
+    ${PNG_IMAGES}
+    ${JPG_IMAGES}
+    ${TIF_IMAGES}
+    )
+#    MESSAGE(ERROR ${IMAGES} )
+  FOREACH(image ${IMAGES})  
+    GET_FILENAME_COMPONENT(filename "${image}" NAME)
+    CONFIGURE_FILE(
+      ${image}
+       ${${PROJECT_NAME}_DOC_BUILD_PATH}/${DOC_RELATIVE_INSTALL_PATH}/${filename}
+      COPYONLY
+      ) 
+      
+    #  IF (WIN32)
+#      CONFIGURE_FILE(
+#          ${image}
+#          ${CMAKE_CURRENT_BINARY_DIR}/${filename}
+#          COPYONLY
+#        )
+#      ENDIF(WIN32)
+    # MESSAGE(ERROR "${image} (${filename}) in :  ${PROJECT_BINARY_DIR}/${BBTK_DOC_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}/${filename}")
+  ENDFOREACH(image)
+  INSTALL( 
+      FILES ${IMAGES} 
+      DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/${DOC_RELATIVE_INSTALL_PATH}
+    )  
+ENDMACRO(USER_DOC_INSTALL_IMAGES)
\ No newline at end of file
diff --git a/cmake/UserRootCMakeLists.cmake b/cmake/UserRootCMakeLists.cmake
new file mode 100644 (file)
index 0000000..d4ee59b
--- /dev/null
@@ -0,0 +1,6 @@
+
+INCLUDE(cmake/UserMacros.cmake)
+INCLUDE(cmake/UserConfig.cmake)
+INCLUDE(cmake/UserSetDeducedPaths.cmake)
+INCLUDE(cmake/UserBuildAllOption.cmake)
+INCLUDE(cmake/UserDefineOptions.cmake)
\ No newline at end of file
diff --git a/cmake/UserSetDeducedPaths.cmake b/cmake/UserSetDeducedPaths.cmake
new file mode 100644 (file)
index 0000000..cf993cb
--- /dev/null
@@ -0,0 +1,62 @@
+MESSAGE(STATUS "===============================================")
+MESSAGE(STATUS "Setting up deduced pathes:")
+# Black box docs relative path
+SET(${PROJECT_NAME}_BBDOC_REL_PATH ${${PROJECT_NAME}_DOC_REL_PATH}/bbdoc)
+# Doxygen docs relative path
+SET(${PROJECT_NAME}_DOXYGEN_REL_PATH ${${PROJECT_NAME}_DOC_REL_PATH}/doxygen)
+
+MESSAGE(STATUS "* BBTK_BBDOC_REL_PATH   =${BBTK_BBDOC_REL_PATH}")
+MESSAGE(STATUS "* BBTK_DOXYGEN_REL_PATH =${BBTK_DOXYGEN_REL_PATH}")
+
+# Now compute BUILD TREE **ABSOLUTE PATHS**
+SET(${PROJECT_NAME}_DOC_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DOC_REL_PATH})
+SET(${PROJECT_NAME}_BBDOC_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_BBDOC_REL_PATH})
+SET(${PROJECT_NAME}_DOXYGEN_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DOXYGEN_REL_PATH})
+SET(${PROJECT_NAME}_BBS_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_BBS_REL_PATH})
+SET(${PROJECT_NAME}_DATA_BUILD_PATH ${PROJECT_BINARY_DIR}/${${PROJECT_NAME}_DATA_REL_PATH})
+
+#SET(BBTK_DOC_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DOC_REL_PATH})
+#SET(BBTK_BBDOC_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_BBDOC_REL_PATH})
+#SET(BBTK_DOXYGEN_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DOXYGEN_REL_PATH})
+#SET(BBTK_BBS_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_BBS_REL_PATH})
+#SET(BBTK_DATA_INSTALL_PATH ${BBTK_INSTALL_PREFIX}/${BBTK_DATA_REL_PATH})
+
+# LG 22/10/08 : REMOVED THE **ABSOLUTE INSTALL PATH**
+# was buggy when packaging
+# consequences : 
+#  1) generated packages are NOT relocatables 
+#  2) they must be installed at the same prefix than bbtk
+SET(${PROJECT_NAME}_DOC_INSTALL_PATH     ${${PROJECT_NAME}_DOC_REL_PATH})
+SET(${PROJECT_NAME}_BBDOC_INSTALL_PATH   ${${PROJECT_NAME}_BBDOC_REL_PATH})
+SET(${PROJECT_NAME}_DOXYGEN_INSTALL_PATH ${${PROJECT_NAME}_DOXYGEN_REL_PATH})
+SET(${PROJECT_NAME}_BBS_INSTALL_PATH     ${${PROJECT_NAME}_BBS_REL_PATH})
+SET(${PROJECT_NAME}_DATA_INSTALL_PATH    ${${PROJECT_NAME}_DATA_REL_PATH})
+
+
+
+
+# Create build directories if necessary
+CREA_MKDIR(${${PROJECT_NAME}_DOC_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_BBDOC_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_DOXYGEN_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_BBS_BUILD_PATH})
+CREA_MKDIR(${${PROJECT_NAME}_DATA_BUILD_PATH})
+
+#-----------------------------------------------------------------------------
+SET (EXECUTABLE_OUTPUT_PATH 
+  ${PROJECT_BINARY_DIR}/${EXECUTABLE_OUTPUT_REL_PATH})
+SET (LIBRARY_OUTPUT_PATH    
+  ${PROJECT_BINARY_DIR}/${LIBRARY_OUTPUT_REL_PATH})
+#-----------------------------------------------------------------------------
+MESSAGE(STATUS "* EXECUTABLE_OUTPUT_PATH=${EXECUTABLE_OUTPUT_PATH}")
+MESSAGE(STATUS "* LIBRARY_OUTPUT_PATH   =${LIBRARY_OUTPUT_PATH}")
+
+#-----------------------------------------------------------------------------
+# Today CMakeCreateFindPackage is copied in BBTK_CMAKE_DIR
+# When installed as a separate project will have to find it with FIND_PACKAGE
+SET(CMakeCreateFindPackage_DIR ${${PROJECT_NAME}_CMAKE_DIR})
+#-----------------------------------------------------------------------------
+
+
+MESSAGE(STATUS "===============================================")
+
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100644 (file)
index 0000000..2f9447e
--- /dev/null
@@ -0,0 +1,78 @@
+
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+  INCLUDE(../cmake/UserBuildDoxygenDoc.cmake)
+  SUBDIRS(UserDoxygen)
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_DOXYGEN)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+  INCLUDE(../cmake/UserBuildLatexDoc.cmake)
+ELSE(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+  MACRO(USER_BUILD_LATEX_DOC TEX_FILE)
+  ENDMACRO(USER_BUILD_LATEX_DOC)
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF)
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+  INCLUDE(../cmake/UserBuildHtmlDocFromLatex.cmake)
+ELSE(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+  MACRO(USER_BUILD_HTML_DOC_FROM_LATEX SOURCE)
+  ENDMACRO(USER_BUILD_HTML_DOC_FROM_LATEX)
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+IF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OR BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)  
+  SUBDIRS(UserDocumentation)  
+ENDIF(BUILD_${PROJECT_NAME}_DOC AND BUILD_${PROJECT_NAME}_DOC_GUIDES_PDF OR BUILD_${PROJECT_NAME}_DOC_GUIDES_HTML)
+#-----------------------------------------------------------------------------
+# Web site 
+IF(BUILD_${PROJECT_NAME}_DOC)
+  # Configure main page index.html for build tree
+  CONFIGURE_FILE(
+    index.html.in
+    ${${PROJECT_NAME}_DOC_BUILD_PATH}/index.html
+    @ONLY
+    )
+  # Install it 
+  INSTALL( 
+    FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/index.html 
+    DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}
+    ) 
+  # Configure main page index-no-frame.html for build tree
+   CONFIGURE_FILE(
+    index-no-frame.html.in
+    ${${PROJECT_NAME}_DOC_BUILD_PATH}/index-no-frame.html
+    @ONLY
+    )
+  # Install it 
+  INSTALL( 
+    FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/index-no-frame.html 
+    DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}
+    ) 
+  # Configure help_contents.html for build tree
+   CONFIGURE_FILE(
+    help_contents.html.in
+    ${${PROJECT_NAME}_DOC_BUILD_PATH}/help_contents.html
+    @ONLY
+    )
+  # Install it 
+  INSTALL( 
+    FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/help_contents.html
+    DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}
+    ) 
+
+  # Recurse it bbtkWebSite dir
+  SUBDIRS(template_WebSite)
+
+
+
+ENDIF(BUILD_${PROJECT_NAME}_DOC)
+#-----------------------------------------------------------------------------
+
diff --git a/doc/README.txt b/doc/README.txt
new file mode 100644 (file)
index 0000000..011ac7b
--- /dev/null
@@ -0,0 +1,5 @@
+* config.tex : input file for all latex guides (user's, package dev's ...)
+* help_contents.html.in : home page of bbStudio help
+* index.html.in : home page of online doc (frame)
+* index-no-frame.html.in : home page of online doc (without frame)
+
diff --git a/doc/README_HowToUpload.txt b/doc/README_HowToUpload.txt
new file mode 100644 (file)
index 0000000..a6bf91c
--- /dev/null
@@ -0,0 +1,5 @@
+After builing ALL :
+
+cd in the build tree
+cd share/doc
+rsync -rtvO  . tux:/var/www/html/software/creatools/bbtk/v0_9_0/ --perms --chmod=Dg+s,ug+w
diff --git a/doc/UserDocumentation/CMakeLists.txt b/doc/UserDocumentation/CMakeLists.txt
new file mode 100644 (file)
index 0000000..f12e4d1
--- /dev/null
@@ -0,0 +1,7 @@
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "Configuring bbtk Package Developers' Guide build ")
+USER_DOC_INSTALL_IMAGES(UserDocumentation)
+USER_BUILD_LATEX_DOC(UserDocumentation UserDocumentation)
+USER_BUILD_HTML_DOC_FROM_LATEX(UserDocumentation UserDocumentation)
+MESSAGE(STATUS "=======================================")
diff --git a/doc/UserDocumentation/UserDocumentation.tex b/doc/UserDocumentation/UserDocumentation.tex
new file mode 100644 (file)
index 0000000..f49e631
--- /dev/null
@@ -0,0 +1,70 @@
+
+% ==========================================
+\documentclass[11pt,final,a4paper]{article}
+\input{config.tex}
+\begin{document}
+\UserDocumentGuide[User Documentation Guide]
+\newpage
+% ==========================================
+
+% ==========================================
+\section{Introduction}
+% ==========================================
+Introductory paragraph to the content of the document 
+% ==========================================
+% ==========================================
+\section{Objectives}
+% ==========================================
+\subsection{General Objective}
+% ==========================================
+\begin{itemize}
+\item{\bf Objective 1} General description of the 
+objectives 
+\end{itemize}
+% ==========================================
+% ==========================================
+\subsection{Specific Objectives}
+% ==========================================
+\begin{itemize}
+\item{\bf Objective 1} Detail description of the 
+objective 
+\item{\bf Objective n} Detail description of the 
+objective
+\end{itemize}
+% ==========================================
+\section{Scope and Vision}
+% ==========================================
+Scope and vision of the system to analyze
+What is the reaching point of the system?
+% ==========================================
+\section{General Description}
+% ==========================================
+General description of the whole module
+% ==========================================
+\section{Requirements List}
+% ==========================================
+\begin{itemize}
+\item{\bf Req1} Description of the 
+requirement
+\item{\bf Reqn} Description of the 
+requirement
+\end{itemize}
+% ==========================================
+\section{Analysis and design of the requirements}
+% ==========================================
+% ==========================================
+\subsection{Req1}
+% ==========================================
+Detailed description of each req
+% ==========================================
+\subsection{Reqn}
+% ==========================================
+% ==========================================
+\section{Glosary}
+% ==========================================
+% ==========================================
+\section{Anexes}
+% ==========================================
+
+\end{document}
+
diff --git a/doc/UserDoxygen/CMakeLists.txt b/doc/UserDoxygen/CMakeLists.txt
new file mode 100644 (file)
index 0000000..9fab474
--- /dev/null
@@ -0,0 +1,30 @@
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "Configuring user doxygen doc")
+
+CONFIGURE_FILE(
+  ${CMAKE_CURRENT_SOURCE_DIR}/CodingStyle.html
+  ${CMAKE_CURRENT_BINARY_DIR}/CodingStyle.html
+  IMMEDIATE
+  )
+CONFIGURE_FILE(
+  ${CMAKE_CURRENT_SOURCE_DIR}/DoxyMainPage.txt.in
+  ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
+  @ONLY IMMEDIATE
+  )
+
+SET(INPUT 
+  ${CMAKE_CURRENT_BINARY_DIR}/DoxyMainPage.txt
+  ${PROJECT_SOURCE_DIR}/lib
+  ${PROJECT_SOURCE_DIR}/appli
+  )
+
+INCLUDE(../../cmake/UserBuildDoxygenDoc.cmake)
+USER_BUILD_DOXYGEN_DOC(
+  "${PROJECT_NAME}" 
+  "${INPUT}" 
+  "${PROJECT_NAME}" 
+  "${DOXYGEN_DOC_PREDEFINED}"
+  )
+
+MESSAGE(STATUS "=======================================")
diff --git a/doc/UserDoxygen/CodingStyle.html b/doc/UserDoxygen/CodingStyle.html
new file mode 100644 (file)
index 0000000..57758d7
--- /dev/null
@@ -0,0 +1,360 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+   <meta http-equiv="Content-Type"
+   content="text/html;charset=iso-8859-1"><title>bbtk Developpers</title></head>
+
+<body>
+
+<!--#######################################################################-->
+<h1>bbtk coding style (and other religious/agnostic beliefs)</h1>
+<hr size="1"><address style=""></address>
+
+<pre>* Introduction:
+   The following coding style intends to ease the work of developpers
+   themselves but also of users who will study, maintain, fix, and extend
+   the code. Any bread crumbs that you can drop in the way of explanatory
+   names and comments will go a long way towards helping other readers and
+   developers.
+   Keep in mind that to a large extent the structure of code directly
+   expresses its implementation.
+                                                                                
+* Language:
+ - C++ (for the kernel) and Python (for the wrappers).
+ - all the names (variables, members, methods, functions) and comments
+   should be based on English. Documentation, guides, web site and other
+   informations should be in English.
+   Make sure you use correct (basic) English and complete, grammatically
+   correct sentences for comments and documentation.
+                                                                                
+* General layout:
+ - Each line of code should take no more than 79 characters. Break the code
+   across multiple lines as necessary.
+ - Methods and functions should keep a reasonable number of lines when
+   possible (a typical editor displays 50 lines). Avoid code duplication.
+   Always prefer creating a new method or function to duplication.
+   A high indentation level generally suggests the need for a new
+   method or function.
+ - All the code should be properly indented. The appropriate indentation
+   level is TWO spaces for each level of indentation. DO NOT USE TABS.
+   Set up your editor to insert spaces. Using tabs may look good in your
+   editor but will wreak havoc in others, or in external tools (e.g. side
+   by side diffs).
+ - The declaration of variables within classes, methods, and functions
+   should be one declaration per line. Provide them with default values
+   and don't rely on compilers for default initialization.
+                                                                                
+* Naming conventions:
+ - Generalities:
+   In general, names are constructed by using case change to indicate
+   separate words, as in ImageDataSize (standing for "image data size").
+   Underscores are not used. Variable names are choosen carefully with the
+   intention to convey the meaning behind the code. Names are generally
+   spelled out; use of abbreviations is discouraged.
+   [Note: abbreviation are allowable when in common use, and should be in
+    uppercase as in LUT or RGBA.]
+   While this does result in long names, it self-documents the code.
+ - Naming Files:
+   Files should have the same name as the class, with a "bbtk" prepended.
+   Header files are named .h, while implementation files are named either
+   .cxx or .txx, depending on whether they are implementations of templated
+   classes. For example, the class bbtk::BlackBox is declared and defined
+   in the files bbtkBlackBox.h and bbtkBlackBox.cxx.
+ - Naming Class Data Members, Methods, and Functions:
+   Class data members (aka Attributes) are named beginning with a lower case 'm'
+   (m as 'member'!) followed by capital letter as in mGroupPixel, in order not
+   be confused with methods names.
+   Global functions and class methods, either static or class members, are
+   named beginning with a capital letter, as in GetImageDataSize().
+ - Naming Local Variables:
+   Local variables begin in lowercase. There is more flexibility in the
+   naming of local variables although they still should convey some
+   semantics.
+ - Naming function parameters:
+   Function parameters begin in lowercase. There is more flexibility in the
+   naming of function parameters although they still should convey some
+   semantics.
+                                                                                 
+* Classes:
+ - Don't use the inline keyword when defining an inline function
+   within a class definition.
+   (Any method defined within a .h file is ipso facto considered as 'inline'.
+   Dont write useless stuff!)
+ - As stated in the "Naming conventions" section, class data members
+   named beginning with a lower case 'm' followed by capital letter 
+   as in mGroupPixel.
+   But the parameter names of method should be named with a lowercase
+   letter (in order to distinguish at a glance data members, from parameters
+   and also to avoid potential collisions with data members):
+      void A::SetGroupPixel( int groupPixel )
+      {
+         mGroupPixel = groupPixel;
+      }
+ - Don't use trailing ';' in inline function definition.
+   use :
+   void A::SetGroupPixel( int groupPixel ){mGroupPixel = groupPixel;}
+     NOT
+   void A::SetGroupPixel( int groupPixel ){mGroupPixel = groupPixel;};
+ - Do not repeat the 'virtual' keyword when overriding virtual base methods
+   in declaration of subclasses:
+     class A
+     {
+        virtual void foo(...);
+     };
+     class B : public bbtk::A
+     {
+        void foo(...);          // and NOT: virtual void foo(...);
+     };
+     
+    (when the keyword 'virtual' is used at the parent level, it's propagated 
+     for all the child classes)
+
+ - In declaration of subclasses, always preprend the class name with 'bbtk::'
+   in order not to confuse Umbrello ( OpenSource UML diagram generator)
+     class A
+     {
+        ...
+     };
+     class B : public bbtk::A // and NOT: class B: public A
+     {
+        ...   
+     };    
+ - The public, protected, private declarations should be at the
+   same indent level as the class. Use :
+     class A
+     {
+     public:
+        void bar(...);
+     protected:
+        void foo(...); 
+     private:
+        void pff(...);
+     };
+     
+ - The Data members should be declared at the end of the class declaration :
+     class A
+     {
+     public:
+        void bar(...);
+     protected:
+        void foo(...);
+     private:
+        void pff(...);
+
+     // --- Data members
+     
+     public:
+        int mPublicCounter;
+     protected:
+        int mProtectedCounter;
+     private:
+        int mPrivateCounter;     
+     }; 
+ - Method and functions devoided of arguments should not use the void
+   notation. Use :
+     SomeType Header::GetPixelData()
+   and not
+     SomeType Header::GetPixelData(void)
+                                                                                
+* Use of braces:
+ - Braces must be used to delimit the scope of an if, for, while, switch, or
+   other control structure. Braces are placed on a line by themselves, and
+   at the same indentation level as the control structure to which they
+   belong:
+      for (i=0; * i&lt;3; i++)
+      {
+         ...
+      }
+   and NOT :
+      for (i=0; * i&lt;3; i++) {
+         ...
+      }   
+   or when using an if:
+      if ( condition )
+      {
+         ...
+      }
+      else if ( other condition )
+      {
+         ...
+      }
+      else
+      {
+        ....
+      }
+    and NOT :
+      if ( condition ) {
+         ...
+      } else if ( other condition ) {
+         ...
+      } else {
+         ....
+      }    
+   You can choose to use braces on a line with a code block when
+   the block consists of a single line:
+      if ( condition ) { foo=1; }
+      else if ( condition2 ) { foo=3; }
+      else { return; }
+   or
+      for (i=0; i&lt;3; ++i) {x[i]=0.0;}
+   Methods and functions should follow the same usage of braces:
+      void File::ParsePixelData()
+      {
+         ...
+      }
+
+* Special layout:
+ - Avoid code mixed with comments on a single line. Instead, prepend the
+   logical blocks of code with the concerned comments.
+ - Use parentheses around conditions e.g. with an if statement:
+      if ( someLocalVariable == 2 ) { ... }
+ - Add spaces around parentheses, or braces. Use
+      if ( someLocalVariable == 2 ) { mClassMember += 1; }
+   and not
+      if (someLocalVariable == 2) {mClassMember += 1;}
+ - Add spaces around each side of the assignement operator, and
+   around binary operators used in boolean expression. Use
+      someLocalVariable = mClassMember * 2;
+      if ( someLocalVariable == 2 || mClassMember == 2 ) ...
+   and not
+      someLocalVariable=mClassMember*2;
+      if ( someLocalVariable==2||mClassMember==2 ) ...
+                                                                                
+* Miscelaneous:
+ - Don't use underscores. Don't use tabs. Don't use control characters
+   like ^M. Anyhow, cvs is configured to reject such commits.
+ - Comments should be in C++ style ("// ...", two slashes, per line). Don't
+   use C style comments ("/* ... */").
+ - The last line of a file should terminate with "\n".
+ - Returned arguments of methods and functions should not be wrapped with
+   parentheses. Use
+      return iter-&gt;second;
+   but do not use
+      return ( iter-&gt;second );
+                                                                                
+* Debugging and Verbose modes:
+   Never use std::cout. Instead use the bbtkMessage, bbtkDebugMessage, bbtkWarning or bbtkError macros and their variants. Example:
+      #include "bbtkMessageManager.h"
+      ...
+      {
+         bbtkDebugMessageInc("MyClass",9,"Local function name: entering.");
+         ...
+         bbtkDecTab("MyClass",9);
+      }
+    will send the message to std::cout when the Debug messages are compiled 
+    and the Message Level for the category of messages "MyClass" is greater than 9.
+                                                                                
+* Documentation:
+   The Doxygen open-source system is used to generate on-line documentation.
+   Doxygen requires the embedding of simple comments in the code which is in
+   turn extracted and formatted into documentation. See :
+      http://www.stack.nl/~dimitri/doxygen/
+   for more information about Doxygen.
+ - Documenting a class:
+   Classes should be documented using the class and brief doxygen commands,
+   followed by the detailed class description:
+      /**
+       * \class Header
+       * \brief Header acts as container of Dicom elements of an image.
+       *
+       * Detailed description of the class is provided here
+       * ...
+       */
+   The key here is that the comment starts with /**, each subsequent line has
+   an aligned *, and the comment block terminates with a */.
+ - Documenting class members and inline methods:
+   All the members and the inline methods should be documented within
+   the class declaration ( .h file) as shown in the following example:
+      class Header
+      {
+         /// True when parsing was successfull. False otherwise.
+         bool mReadable = false;
+                                                                                
+         /// \brief The number of lines of the image as interpreted from
+         ///        the various elements encountered at header parsing.
+         int mNumberOfLines = -1;
+                                                                                
+         /// Predicate implemented as accessor around \ref mReadable.
+         bool IsReadable() { return mReadable; }
+      };
+ - Documenting a Method:
+   Methods should be documented using the following comment block style
+   as shown in the following example:
+                                                                                
+      /**
+       * \brief  Within the Dicom Elements (parsed with the public and private
+       *         dictionaries), look for the element value representation of
+       *         a given tag.
+       * @param  group  Group number of the searched tag.
+       * @param  elem Element number of the searched tag.
+       * @return Corresponding element value representation when it exists,
+       *         and the string "bbtk::Unfound" otherwise.
+       */
+      std::string Document::GetEntryByNumber(guint16 group, guint16 elem)
+      {
+         ...
+      }
+                                                                                
+* External includes and C style:
+ - Only the C++ standard library and the STL includes should be used.
+   When including don't use the .h extension (use #include <iostream>
+   instead of #include <iostream.h>).
+   Note: include the stl header AFTER the bbtk ones (otherwise pragma
+         warnings won't work).
+ - Don't use the C standard library. Don't include stdio.h, ctype.h...
+   Don't use printf(), sprinf(), FILE*...
+ - Don't use the NULL notation (neither as macro, nor as const int NULL=0).
+   A pointer that doesn't refer to an object should simply be defined as
+      DataPointer *myDataPointer = 0;
+                                                                                
+* Basic types:
+ - Assume T is a given type. When declaring or defining with the
+   "pointer to T" notation, the * character must be adjacent to
+   the variable and not the type. That is use
+      T *foo = 0;
+   and not
+      T* foo = 0;
+   nor
+      T * foo = 0;
+ - Assume T is a given type. When declaring or defining with the
+   "reference to T" notation, the &amp; character must be adjacent to
+   the variable and not the type. That is use :
+      T &amp;foo = 0;
+   and not
+      T&amp; foo = 0;
+
+   (Doxygen will not have any longer to correct)
+
+ - Always define a typedef for a new type and be consistent in usage.
+   Use :
+      typedef Header *HeaderPointer;
+      HeaderPointer myHeaderPointer;
+      
+ - One notorious counter example for non using C style inclusion concerns
+   exact-width integers (since there seem to be no equivalent for C++).
+   When using exact-width integers use the typedef names defined by
+   the Basic ISO C99: 7.18 Integer types i.e.
+      int8_t     int16_t     int32_t     int64_t (signed integers)
+   and
+      uint8_t    uint16_t    uint32_t    uint64_t (unsigned integers).
+   Conversion table is then:
+    unsigned char       -&gt; uint8_t;
+    unsigned short      -&gt; uint16_t;
+    unsigned int        -&gt; uint32_t;
+    unsigned long       -&gt; uint32_t;
+    unsigned long long  -&gt; uint64_t;
+    (signed) char       -&gt; int8_t;
+    short               -&gt; int16_t;
+    int                 -&gt; int32_t;
+    long                -&gt; int32_t;
+    long long           -&gt; int64_t;
+   Hence do not use declarations like "unsigned int".
+   With g++, accessing those typedef is achieved by the following
+      #include &lt; stdint.h &gt;
+</iostream.h></iostream></pre>
+
+
+<!--#######################################################################-->
+<hr size="1"><address style=""></address>
+
+</body></html>
diff --git a/doc/UserDoxygen/DoxyMainPage.txt.in b/doc/UserDoxygen/DoxyMainPage.txt.in
new file mode 100644 (file)
index 0000000..94c4c71
--- /dev/null
@@ -0,0 +1,19 @@
+/**
+ * \mainpage bbtk documentation
+
+\htmlonly 
+
+"A black box is any system in which only the input and output characteristics are of interest - without regard to its internal mechanism or structure" (from <A href="http://en.wikipedia.org/wiki/Black_box_%28disambiguation%29" > wikipedia </A>)
+
+<li> 
+<A href="../CodingStyle.html"> Coding Style </A>
+</li>
+
+\endhtmlonly
+
+
+
+
+         
+ */
diff --git a/doc/UserDoxygen/Doxyfile.txt.in b/doc/UserDoxygen/Doxyfile.txt.in
new file mode 100644 (file)
index 0000000..44afa2a
--- /dev/null
@@ -0,0 +1,1358 @@
+# Doxyfile 1.5.5
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file 
+# that follow. The default is UTF-8 which is also the encoding used for all 
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the 
+# iconv built into libc) for the transcoding. See 
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = @DOXYGEN_PROJECT_NAME@
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = @PROJECT_VERSION@
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = @DOXYGEN_OUTPUT@
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 4096 sub-directories (in 2 levels) under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of 
+# source files, where putting all generated files in the same directory would 
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
+# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, 
+# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), 
+# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, 
+# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, 
+# and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is 
+# used as the annotated text. Otherwise, the brief description is used as-is. 
+# If left blank, the following values are used ("$name" is automatically 
+# replaced with the name of the entity): "The $name class" "The $name widget" 
+# "The $name file" "is" "provides" "specifies" "contains" 
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
+# inherited members of a class in the documentation of that class as if those 
+# members were ordinary class members. Constructors, destructors and assignment 
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like regular Qt-style comments 
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
+# interpret the first line (until the first dot) of a Qt-style 
+# comment as the brief description. If set to NO, the comments 
+# will behave just like regular Qt-style comments (thus requiring 
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member 
+# documentation.
+
+DETAILS_AT_TOP         = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
+# a new page for each member. If set to NO, the documentation of a member will 
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
+# sources only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
+# sources only. Doxygen will then generate output that is more tailored for 
+# Java. For instance, namespaces will be presented as packages, qualified 
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
+# sources only. Doxygen will then generate output that is more tailored for 
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
+# sources. Doxygen will then generate output that is tailored for 
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
+# to include (a tag file for) the STL sources as input, then you should 
+# set this tag to YES in order to let doxygen match functions declarations and 
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
+# func(std::string) {}). This also make the inheritance and collaboration 
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
+# Doxygen will parse them like normal C++ but will assume all classes use public 
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
+# is documented as struct, union, or enum with the name of the typedef. So 
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
+# with name TypeT. When disabled the typedef will appear as a member of a file, 
+# namespace, or class. And the struct will be named TypeS. This can typically 
+# be useful for C code in case the coding convention dictates that all compound 
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be 
+# extracted and appear in the documentation as a namespace called 
+# 'anonymous_namespace{file}', where file will be replaced with the base 
+# name of the file that contains the anonymous namespace. By default 
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
+# hierarchy of group names into alphabetical order. If set to NO (the default) 
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories 
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
+# doxygen should invoke to get the current version for each file (typically from 
+# the version control system). Doxygen will invoke the program by executing (via 
+# popen()) the command <command> <input-file>, where <command> is the value of 
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
+# provided by doxygen. Whatever the program writes to standard output 
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = YES
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for 
+# functions that are documented, but have no documentation for their parameters 
+# or return value. If set to NO (the default) doxygen will only warn about 
+# wrong or incomplete parameter documentation, but not about the absence of 
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text. Optionally the format may contain 
+# $version, which will be replaced by the version of the file (if it could 
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = @DOXYGEN_LOGFILE@
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT                  = @DOXYGEN_INPUT@
+
+# This tag can be used to specify the character encoding of the source files 
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
+# also the default input encoding. Doxygen uses libiconv (or the iconv built 
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          = *.h \
+                         *.cxx \
+                         *.txx
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = @DOXYGEN_EXCLUDE@
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
+# directories that are symbolic links (a Unix filesystem feature) are excluded 
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories. Note that the wildcards are matched 
+# against the file with absolute path, so to exclude all test directories 
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = 
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
+# (namespaces, classes, functions, etc.) that should be excluded from the 
+# output. The symbol name can be a fully qualified name, a word, or if the 
+# wildcard * is used, a substring. Examples: ANamespace, AClass, 
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = *.cxx
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# ignored.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
+# basis.  Doxygen will compare the file name with each pattern and apply the 
+# filter if there is a match.  The filters are a list of the form: 
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
+# is applied to all files.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = YES
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.  Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code 
+# will point to the HTML generated by the htags(1) tool instead of doxygen 
+# built-in source browser. The htags tool is part of GNU's global source 
+# tagging system (see http://www.gnu.org/software/global/global.html). You 
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 3
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = @DOXYGEN_HTML_OUTPUT@
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files 
+# will be generated that can be used as input for Apple's Xcode 3 
+# integrated development environment, introduced with OSX 10.5 (Leopard). 
+# To create a documentation set, doxygen will generate a Makefile in the 
+# HTML output directory. Running make will produce the docset in that 
+# directory and running "make install" will install the docset in 
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
+# it at startup.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
+# feed. A documentation feed provides an umbrella under which multiple 
+# documentation sets from a single provider (such as a company or product suite) 
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
+# should uniquely identify the documentation set bundle. This should be a 
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
+# documentation will contain sections that can be hidden and shown after the 
+# page has loaded. For this to work a browser that supports 
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed. To prevent a macro definition from being 
+# undefined via #undef or recursively expanded use the := operator 
+# instead of the = operator.
+
+PREDEFINED             = @DOXYGEN_DOC_PREDEFINED@
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse 
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
+# or super classes. Setting the tag to NO turns the diagrams off. Note that 
+# this option is superseded by the HAVE_DOT option below. This is only a 
+# fallback. It is recommended to install and use dot, since it yields more 
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc 
+# command. Doxygen will then run the mscgen tool (see 
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where 
+# the mscgen tool resides. If left empty the tool is assumed to be found in the 
+# default search path.
+
+MSCGEN_PATH            = 
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = @DOXYGEN_HAVE_DOT@
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then 
+# doxygen will generate a call dependency graph for every global function 
+# or class method. Note that enabling this option will significantly increase 
+# the time of a run. So in most cases it will be better to enable call graphs 
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = YES
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
+# doxygen will generate a caller dependency graph for every global function 
+# or class method. Note that enabling this option will significantly increase 
+# the time of a run. So in most cases it will be better to enable caller 
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
+# then doxygen will show the dependencies a directory has on other directories 
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               = "@DOXYGEN_DOT_PATH@"
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
+# nodes that will be shown in the graph. If the number of nodes in a graph 
+# becomes larger than this value, doxygen will truncate the graph, which is 
+# visualized by representing a node as a red box. Note that doxygen if the 
+# number of direct children of the root node in a graph is already larger than 
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes 
+# that lay further from the root node will be omitted. Note that setting this 
+# option to 1 or 2 may greatly reduce the computation time needed for large 
+# code bases. Also note that the size of a graph can be further restricted by 
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
+# background. This is enabled by default, which results in a transparent 
+# background. Warning: Depending on the platform used, enabling this option 
+# may lead to badly anti-aliased labels on the edges of a graph (i.e. they 
+# become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
+# files in one run (i.e. multiple -o and -T options on the command line). This 
+# makes dot run faster, but since only newer versions of dot (>1.8.10) 
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
diff --git a/doc/config.tex b/doc/config.tex
new file mode 100644 (file)
index 0000000..e94eb1f
--- /dev/null
@@ -0,0 +1,169 @@
+% ==========================================
+\newif\ifpdf 
+\ifx\pdfoutput\undefined \pdffalse % we are not running PDFLaTeX 
+\else 
+\pdfoutput=1 \pdftrue % we are running PDFLaTeX 
+\fi
+% ==========================================
+\usepackage[a4paper,textwidth=14cm]{geometry}
+\usepackage[latin1]{inputenc}
+\usepackage{varioref}
+\usepackage{url}
+\usepackage{multicol}
+\usepackage{colortbl}
+%\usepackage[active]{srcltx}
+\usepackage{color}
+\usepackage[english]{babel}
+%\usepackage{picins}
+%\usepackage{fancyhdr}
+%\usepackage{picins}
+\usepackage{xspace}
+% ==========================================
+%%% Math
+\usepackage{amsmath,amsfonts,amssymb}
+\usepackage{bm}
+\usepackage{theorem}
+\usepackage{stmaryrd}
+
+% ==========================================
+%%% Graphics
+\usepackage{graphics}
+\ifpdf
+\usepackage[pdftex]{graphicx} 
+\else
+\usepackage[ps2pdf]{graphicx} 
+\fi
+\graphicspath{{figs/}}
+
+% ==========================================
+% bib
+\usepackage{natbib}
+%\bibliographystyle{abbrvnat}
+\bibliographystyle{plainnat}
+
+%\bibliographystyle{plain}
+
+% http://merkel.zoneo.net/Latex/natbib.php?lang=fr
+
+% ==========================================
+%% PDF configuration 
+% http://www.p-joeckel.de/pdflatex/)
+% http://ringlord.com/publications/latex-pdf-howto/
+
+%%%% Options of pdflatex
+\ifpdf
+\DeclareGraphicsExtensions{.pdf,.jpg,.mps,.png,.eps}
+\usepackage[pdftex,                %
+    bookmarks         = true,%     % Signets
+    bookmarksnumbered = true,%     % Signets numérotés
+    pdfpagemode       = None,%     % Signets/vignettes fermé Ã  l'ouverture
+    pdfstartview      = FitH,%     % La page prend toute la largeur
+    pdfpagelayout     = SinglePage,% Vue par page
+    colorlinks        = true,%     % Liens en couleur
+    urlcolor          = magenta,%  % Couleur des liens externes
+    pdfborder         = {0 0 0}%   % Style de bordure : ici, pas de bordure
+    ]{hyperref}%                   % Utilisation de HyperTeX
+%\usepackage[pdftex,bookmarks,pagebackref]{hyperref}
+\pdfadjustspacing=1
+
+%%%% Options for latex + dvips -Ppdf + ps2pdf
+\else
+\DeclareGraphicsExtensions{.eps,.ps}
+\usepackage[ps2pdf,bookmarks,pagebackref]{hyperref}
+\fi
+
+%%%% Commun options
+\hypersetup{
+  linktocpage,%
+  %%------------- Color Links ------------------------------ 
+  colorlinks=true,% 
+  linkcolor=myred,%
+  citecolor=mydarkblue,% 
+  urlcolor=myblue,%
+  menucolor=red,%
+  %%------------- Doc Info --------------------------------- 
+  pdftitle={The Black Box Toolkit},%
+  pdfauthor={},%
+  %%------------ Doc View ----------------------------------}
+  pdfhighlight=/P,%
+  bookmarksopen=false,%
+  plainpages=false,
+  pdfpagemode=None}
+
+\hyperbaseurl{http://www.creatis.insa-lyon.fr/creatools/}
+
+\definecolor{myblue}{rgb}{0,0,0.7}
+\definecolor{myred}{rgb}{0.7,0,0}
+\definecolor{mygreen}{rgb}{0,0.7,0}
+\definecolor{mydarkblue}{rgb}{0,0,0.5} 
+
+% ==========================================
+\def\UserProyectVersion{@PROJECT_VERSION@}
+\def\UserProyectVersionDate{@PROJECT_VERSION_DATE@}
+\def\todo{\scriptsize\fbox{\bf TODO !!}\normalsize}
+\def\x{\bm{x}}
+\def\UserProyect{{\xspace}$\texttt{@PROYECT_NAME@}$ }
+
+\def\bb{{\xspace}$\texttt{bb}$ }
+%\def\bbp{{\xspace}$\texttt{bbp}$\xspace}
+
+\def\cmake{{\xspace}$\texttt{cmake}$ }
+
+\def\C{{\xspace}$\texttt{C}$ }
+\def\CPP{{\xspace}$\texttt{C++}$ }
+
+\def\xml{{\xspace}$\texttt{xml}$ }
+
+
+\def\lin{{\xspace}\textit{Linux} }
+\def\win{{\xspace}\textit{Windows} }
+
+
+\def\UserDocumentGuide [#1]{
+\begin{center}
+{\Large \UserProyect}
+\vspace{1cm}
+
+{\Huge #1}
+\vspace{1cm}
+
+\UserProyect version \UserProyectVersion \hspace{2mm}(\UserProyectVersionDate)
+\vspace{0.5cm}
+
+Generated on : \today 
+\vspace{0.5cm}
+
+Eduardo D\'avila, Jean-Pierre Roux, Juan Carlos Prieto
+\vspace{0.3cm}
+
+CREATIS-LRMN, Centre de Recherche en Imagerie M\'edicale \\ 
+CNRS UMR 5220, INSERM U620, INSA Lyon, Universit\'e Claude-Bernard Lyon 1
+
+\end{center}
+\tableofcontents
+\listoftables
+\listoffigures
+}
+
+% ==========================================
+%%% mode: latex
+%%% TeX-master: "UserProyectUsersGuide"
+%%% End: 
+
+\newcounter{Ctrfile}
+%% env
+\newenvironment{file}[1]
+{
+\bigskip\hrule\smallskip
+\stepcounter{Ctrfile}
+\textbf{File #1}
+%\hspace{0.2cm}\arabic{Ctrfile}\hfill \textbf{#1}
+\smallskip\hrule\medskip
+%\algocaption{#1}
+}
+{
+\hrule\smallskip
+\hfill\textbf{End of file}
+\smallskip\hrule
+\bigskip
+}
diff --git a/doc/help_contents.html.in b/doc/help_contents.html.in
new file mode 100644 (file)
index 0000000..54410f7
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <title>Help Contents - User Proyect @BBTK_VERSION@ </title>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<H1>Help Contents</H1>
+
+<a href="http://www.creatis.insa-lyon.fr/software/public/creatools/bbtk/v0_9_2/doc/" target="information">BBTK Doc</a><br>
+
+</body>
+</html> 
diff --git a/doc/index-no-frame.html.in b/doc/index-no-frame.html.in
new file mode 100644 (file)
index 0000000..d1c4acd
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<meta http-equiv="refresh" content="0; url=bbtkWebSite/menu.html" />
+<title>Redirection</title>
+<meta name="robots" content="noindex,follow" />
+</head>
+
+<body>
+<p><a href="template_WebSite/menu.html">Redirection</a></p>
+</body>
+</html>
diff --git a/doc/index.html.in b/doc/index.html.in
new file mode 100644 (file)
index 0000000..f6341df
--- /dev/null
@@ -0,0 +1,15 @@
+<html>
+<head>
+<title>User Project</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+<frameset cols="100,499" rows="*"> 
+  <frame src="template_WebSite/menu.html">
+  <frame name="information" src="template_WebSite/home.html">
+</frameset>
+<noframes>
+<body bgcolor="#FFFFFF" text="#000000">
+</body>
+</noframes> 
+</html>
diff --git a/doc/template_WebSite/CMakeLists.txt b/doc/template_WebSite/CMakeLists.txt
new file mode 100644 (file)
index 0000000..09ed25d
--- /dev/null
@@ -0,0 +1,25 @@
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "Configuring User html doc")
+
+# Configure & install images 
+USER_DOC_INSTALL_IMAGES(template_WebSite)
+
+# Configure html pages for build tree and install 
+FILE(GLOB HTML_PAGES "." "*.html")
+FOREACH(page ${HTML_PAGES})  
+  GET_FILENAME_COMPONENT(filename "${page}" NAME)
+  CONFIGURE_FILE(
+    ${page}
+    ${${PROJECT_NAME}_DOC_BUILD_PATH}/template_WebSite/${filename}
+    @ONLY
+    )
+  # Install
+  INSTALL(
+    FILES ${${PROJECT_NAME}_DOC_BUILD_PATH}/template_WebSite/${filename}
+    DESTINATION ${${PROJECT_NAME}_DOC_INSTALL_PATH}/template_WebSite
+    )
+ENDFOREACH(page)
+
+          
+MESSAGE(STATUS "=======================================")
diff --git a/doc/template_WebSite/README.txt b/doc/template_WebSite/README.txt
new file mode 100644 (file)
index 0000000..a947fbe
--- /dev/null
@@ -0,0 +1,4 @@
+* menu.html : the menu used by ../index.html.in and ../index-no-frame
+* home.html : the home page used by ../index.html.in and ../index-no-frame
+* install.html : install instructions
+* download.html : download instructions (obsolete)
diff --git a/doc/template_WebSite/home.html b/doc/template_WebSite/home.html
new file mode 100644 (file)
index 0000000..ba190b9
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+  <title>Home</title>
+</head>
+<body>
+<div style="text-align: center;">
+<big><span style="font-weight: bold;">
+User Project documentation<br>
+</big></span><br>
+
+<div style="text-align: left;">Follow <a
+ href="./install.html">this link</a> User Install Instructions<br>
+<br>
+Read the <a href="../bbtkUsersGuide/bbtkUsersGuide.html">users' guide</a> if you
+want to learn how to use bbtk development environnement (bbStudio) and
+how to write black box scripts.<br>
+<br>
+Read the <a
+ href="../bbtkPackageDevelopersGuide/bbtkPackageDevelopersGuide.html">package
+developers' guide</a> to learn how to create your own black boxes and
+packages.<br>
+<br>
+Developers might also be interested in <a
+ href="../doxygen/bbtk/main.html">doxygen documentation</a> of the
+source code of bbtk library.<br>
+<br>
+The boxes lists contain the boxes of bbtk <a
+ href="../bbdoc/index-package.html">core packages</a> (std,wx,vtk...)
+for current version.<br>
+<br>
+All this documentation is also available from bbStudio.<br>
+<br>
+<br>
+</div>
+</body>
+</html>
diff --git a/doc/template_WebSite/install.html b/doc/template_WebSite/install.html
new file mode 100644 (file)
index 0000000..483722c
--- /dev/null
@@ -0,0 +1,869 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+  <title>User Project Documentation</title>
+</head>
+<body>
+<div style="text-align: center;"><big> build instructions</big><br>
+<div style="text-align: left;">
+<ol id="mozToc">
+<!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6-->
+  <li><a href="#mozTocId820435">Linux</a>
+    <ol>
+      <li><a href="#mozTocId745245">Requirements</a></li>
+      <li><a href="#mozTocId775505">Known working configurations</a></li>
+      <li><a href="#mozTocId410988">Install from sources</a></li>
+    </ol>
+  </li>
+  <li><a href="#mozTocId777026">Windows </a>
+    <ol>
+      <li><a href="#mozTocId761363">Requirements</a></li>
+      <li><a href="#mozTocId681503">Known working configurations</a></li>
+      <li><a href="#mozTocId618885">Steps </a></li>
+    </ol>
+  </li>
+  <li><a href="#mozTocId915759">CMake build options</a></li>
+</ol>
+<hr style="width: 100%; height: 2px;"></div>
+</div>
+<h1><a class="mozTocH2" name="mozTocId820435"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Linux</span></small></small></big></big></big></h1>
+<h2><a class="mozTocH3" name="mozTocId745245"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Requirements</span></small></small></big></big></big></h2>
+<ul>
+  <li><span style="font-weight: normal;">cmake &gt;= 2.4.6</span></li>
+  <li>crea &gt;= 0.2.0<br>
+    <span style="font-weight: normal;"></span></li>
+  <li><span style="font-weight: normal;">wxWidgets&nbsp; &gt;= &nbsp;
+2.6.3</span><span style="font-weight: normal;">&nbsp;</span></li>
+  <li><span style="font-weight: normal;">optional : <br>
+    </span></li>
+  <ul>
+    <li><span style="font-weight: normal;">L<sub>a</sub>T<sub>e</sub>X
+to generate the pdf guides</span><br>
+      <span style="font-weight: normal;"></span></li>
+    <li><span style="font-weight: normal;">tth to generate the html
+guides<br>
+      </span></li>
+    <li><span style="font-weight: normal;">itk to compile packages itk,
+itkvtk</span></li>
+    <li><span style="font-weight: normal;">vtk to compile package vtk,
+wxvtk</span></li>
+    <li><span style="font-weight: normal;">doxygen to build the sources
+documentation</span></li>
+    <li><span style="font-weight: normal;">graphviz/dot to generate the
+packages doc with pipeline graphs<br>
+      </span></li>
+    <ul>
+    </ul>
+  </ul>
+</ul>
+<big><big><big><small><small></small></small></big></big></big>
+<h2><a class="mozTocH3" name="mozTocId775505"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Known working configurations</span></small></small></big></big></big></h2>
+<big><big><big><small><small><span style="font-weight: normal;">&nbsp;<small>
+- gcc: <br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.3.0 (Fedora Core 9)<br>
+</small></span></small></small></big></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
+4.2.0 (OpenSuse 10.3)<br style="font-weight: normal;">
+</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+4.1.2 20070925 (Red Hat 4.1.2-33)<br>
+</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.1.2
+20070626 (Red Hat 4.1.2-13)<br>
+</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.1.1 20070105 (Red Hat 4.1.1-51)</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; 4.0.2 20051125 (Red Hat 4.0.2-8)</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;
+- cmake: </span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; 2.4-patch 6</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">&nbsp;&nbsp;
+- wxGTK-devel: </span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">&nbsp;</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+2.8.6</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+2.6.3</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">&nbsp;</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;
+- InsightToolkit:</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; 3.4</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; 3.2</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; 2.8.1-5</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">&nbsp;&nbsp;
+- vtk:</span></small></small></big></big><small><br
+ style="font-weight: normal;">
+</small><big><big><small><small><span style="font-weight: normal;">&nbsp;&nbsp;&nbsp;
+&nbsp;&nbsp;&nbsp; 5.0.3-1</span></small></small></big></big><big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></big><br>
+<h2><a class="mozTocH3" name="mozTocId410988"></a><big><span
+ style="font-weight: normal;">Install from sources<span
+ style="font-weight: bold;"></span></span></big></h2>
+<span style="font-weight: normal;">&nbsp;&nbsp;&nbsp; Uncompress the
+archive or checkout the source from the cvs repository<br>
+&nbsp;&nbsp;&nbsp; In the parent folder of the bbtk sources type :<br>
+&nbsp;&nbsp;&nbsp; &gt; mkdir bbtkbin; cd bbtkbin<br>
+&nbsp;&nbsp;&nbsp; &gt; ccmake ../bbtk<br>
+&nbsp;&nbsp;&nbsp; <span style="font-style: italic;">Check the desired
+options. See </span><a style="font-style: italic;"
+ href="#mozTocId915759">CMake build options</a><span
+ style="font-style: italic;"> for a description. <br>
+<br>
+</span></span><span style="font-weight: normal;"><span
+ style="font-weight: bold;"><span style="color: rgb(204, 102, 0);">==&gt;
+IMPORTANT NOTE </span>:</span><br>
+<br>
+</span><span style="font-weight: normal;"><span
+ style="font-style: italic;"></span><span style="font-style: italic;">&nbsp;&nbsp;&nbsp;
+Type 'c' <span style="color: rgb(204, 102, 0);">many
+times</span> until no area is flagged with a '*' and three times more
+then type 'g', to generate.</span><br>
+&nbsp;&nbsp;&nbsp; &gt; make<br>
+&nbsp;&nbsp;&nbsp; &gt; sudo make install<br>
+&nbsp;&nbsp; Enjoy !<br>
+<br>
+</span>
+<h2><a class="mozTocH3" name="mozTocId410988"></a><big><span
+ style="font-weight: normal;">Uninstall<br>
+</span></big></h2>
+&nbsp;&nbsp;&nbsp; You can run <span style="font-style: italic;">bbtk-uninstall.sh</span>
+as root.<br>
+<span style="font-weight: bold;">&nbsp;&nbsp;&nbsp; WARNING : </span><br
+ style="font-weight: bold;">
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This is a brute force **UNSAFE**
+uninstaller which removes all files and folders starting with 'bb' in :<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; INSTALL-PREFIX/bin <br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; INSTALL-PREFIX/lib <br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; INSTALL-PREFIX/include<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; INSTALL-PREFIX/share/bbtk<br>
+&nbsp;&nbsp;&nbsp; However it lists the files found and prompts you
+before proceeding...<br>
+<br>
+<br>
+<hr style="width: 100%; height: 2px;">
+<h1><a class="mozTocH2" name="mozTocId777026"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Windows </span></small></small></big></big></big></h1>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<h2><a class="mozTocH3" name="mozTocId761363"></a><big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></big><big><big><big><small><small><span
+ style="font-weight: normal;">Requirements</span></small></small></big></big></big></h2>
+<h3>Mandatory</h3>
+<ul>
+  <li><big><span style="font-weight: normal;"><small>.net V7</small> <small>to
+compile the kernel and the packages</small></span></big><br>
+    <big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;">CMake
+2.4 patch 6</span></small></small></big></big><big
+ style="font-weight: normal;"><big><big><small><small><small> to
+generate the project file for .net</small></small></small></big></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;">wxWidgets-2.8.5&nbsp;
+to
+build graphical interface boxes</span></small></small></big></big></li>
+</ul>
+<h3><big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>Optional</h3>
+<ul>
+  <li><big><big><small><small><span style="font-weight: normal;">VTK
+5.0.3 source&nbsp; to build vtk boxes&nbsp;</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;">InsightToolkit-3.4.0
+to build itk boxes</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;">Miktex
+(TeX compiler
+and TeX-Pdf
+translation tool) to build documentations</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;">TTH&nbsp;(TeX
+to HTML translation
+tool) to build html documentations</span></small></small></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;">Doxygen
+to build the
+code documentations</span></small></small></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;">Graphviz
+to generate the
+graphs in doxygen doc and black box pipelines graphs</span></small></small></big></big>&nbsp;
+    <br>
+  </li>
+</ul>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<h2><a class="mozTocH2" name="mozTocId681503"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Known working configurations</span></small></small></big></big></big></h2>
+<ul style="font-weight: bold;">
+  <li><big><big><small><small><span style="font-weight: normal;">.net V7<br>
+    </span></small></small></big></big></li>
+  <li><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">cmake</span></small></small></big></big></li>
+  <ul>
+    <li><big><big><small><small><span style="font-weight: normal;">2.4
+patch 6</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+  </ul>
+  <li><big><big><small><small><span style="font-weight: normal;">wxWidgets</span></small></small></big></big></li>
+  <ul>
+    <li><big><big><small><small><span style="font-weight: normal;">2.8.5</span></small></small></big></big></li>
+  </ul>
+  <li><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">InsightToolkit</span></small></small></big></big></li>
+  <ul>
+    <li><big style="font-weight: normal;"><big><small><small><span
+ style="font-weight: normal;">3.4.0</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+  </ul>
+  <li><big><big><small><small><span style="font-weight: normal;">vtk</span></small></small></big></big></li>
+  <ul>
+    <li><big><big><small><small><span style="font-weight: normal;">5.0.3</span></small></small></big></big><small><span
+ style="font-weight: bold;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+      </span></small><br>
+    </li>
+  </ul>
+</ul>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<h2><a class="mozTocH2" name="mozTocId618885"></a><big><big><big><small><small><span
+ style="font-weight: normal;">Steps<br>
+</span></small></small></big></big></big></h2>
+<big><big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big></big>
+<big><big><small><small><span style="font-weight: normal;"></span></small></small></big></big>
+<ul>
+  <ul>
+    <li><big><big><small><small><span style="font-weight: normal;">Uncompress
+the sources in <span style="font-style: italic;">yourSourceDirectory</span>
+or checkout the source from the cvs&nbsp;</span></small></small></big></big><span
+ style="font-weight: normal;"></span></li>
+    <li><big><big><small><small><span style="font-weight: normal;">Create
+the build folder </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"><span style="font-style: italic;">yourSourceDirectory</span>\bin</span></small></small></big></big><span
+ style="font-weight: normal;"></span></li>
+    <li><span style="font-weight: normal;">Drag and drop the file </span><big><big><small><small><span
+ style="font-weight: normal;"><span style="font-style: italic;">yourSourceDirectory</span></span></small></small></big></big><span
+ style="font-weight: normal;">\CMakeLists.txt on the CMakeSetup icon</span><big
+ style="font-weight: bold;"><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+    <ul>
+      <li><big style="font-weight: bold;"><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><span
+ style="font-weight: normal;">Check the desired
+options for the build. See </span><a style="font-weight: normal;"
+ href="install.html#mozTocId915759">CMake build options</a><span
+ style="font-weight: normal;"> for a description</span></li>
+      <li><span style="font-weight: normal;"><br>
+        </span></li>
+    </ul>
+    <li><big><big><small><small><span style="font-weight: normal;"><span
+ style="font-weight: bold;">To build with WxWidgets</span> : the .ddl
+must be accessible; either their names are in system PATH variable,
+either copy
+them in the current bin directory (bin/Debug or bin/Release, depending
+whether you compiled in Debug or Release mode) </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+    <li><big><big><small><small><span style="font-weight: normal;"><span
+ style="font-weight: bold;">To build with VTK</span> : </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">the .ddl must be accessible; either their
+names are in system PATH variable, either copy
+them in the current bin directory (bin/Debug or bin/Release, depending
+whether you compiled in Debug or Release mode)</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+    <li><big><big><small><small><span style="font-weight: normal;"><span
+ style="font-weight: bold;">To
+build with ITK</span> :&nbsp; </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">the .ddl must be accessible; either their
+names are in system PATH variable, either copy
+them in the current bin directory (bin/Debug or bin/Release, depending
+whether you compiled in Debug or Release mode)</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+    <li><big><big><small><small><span style="font-weight: normal;">Open
+the solution created by cmake : </span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"><span style="font-style: italic;">ourSourceDirectory</span>\bin</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;">\BBTK.sln and build
+the entire solution.</span></small></small></big></big></li>
+    <ul>
+      <li><big><big><small><small><span style="font-weight: normal;">If
+you get dll error messages close the message(s) and after it's
+done, rebuild the complete solution.</span></small></small></big></big><big><big><small><small><span
+ style="font-weight: normal;"></span></small></small></big></big></li>
+      <li><big><big><small><small><span style="font-weight: normal;">If
+you get package intallation messages for missing and required
+files like <span style="font-style: italic;">fileName.sty</span>,
+install them all.</span></small></small></big></big></li>
+      <li style="font-weight: normal;">The packages correspond to
+on-line complements that the MikTex program
+needs to build the BBTK documentation.</li>
+    </ul>
+  </ul>
+</ul>
+Enjoy !<br>
+<div style="text-align: left;">
+<hr style="width: 100%; height: 2px;"></div>
+<div style="text-align: left;">
+<h1><a class="mozTocH1" name="mozTocId915759"></a>CMake build options</h1>
+<span style="font-weight: normal;">The options in grey only appear if
+the last non grey option is set to
+ON (e.g. itk_IMAGE_DIM_2 and the following ones in grey only appear if
+BUILD_BBTK_PACKAGE_itk is ON).<br>
+The variables in dark grey and italics are NOT options but are
+automatically set by cmake according to the options selected. In
+particular the variables 'USE_<span style="font-style: italic;">something</span>'
+indicate the dependencies on external libraries or utilities.<br
+ style="font-weight: normal;">
+</span><span style="font-weight: normal;">Advanced options are not
+shown
+here... </span><br>
+<br>
+<table style="width: 1274px; height: 1762px;" border="1" cellpadding="2"
+ cellspacing="2">
+  <tbody>
+    <tr>
+      <td style="vertical-align: top;"><span style="font-weight: bold;">Option</span><br>
+      </td>
+      <td style="vertical-align: top;"><span style="font-weight: bold;">Explaination</span><br>
+      </td>
+      <td style="vertical-align: top;"><span style="font-weight: bold;">Default</span></td>
+    </tr>
+    <tr>
+      <td>--BUILD_ALL<br>
+      </td>
+      <td>Set to ON to build all the components of the toolkit<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BBTK_COMPILE_DEBUG_MESSAGES</td>
+      <td style="vertical-align: top;">Compile debug messages in bbtk ?<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BBTK_COMPILE_ERROR_MESSAGES</td>
+      <td style="vertical-align: top;">Compile error messages in bbtk ?<br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BBTK_COMPILE_MESSAGES</td>
+      <td style="vertical-align: top;">Compile normal messages in bbtk ?<br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BBTK_COMPILE_WARNING_MESSAGES</td>
+      <td style="vertical-align: top;">Compile warning messages in bbtk
+?<br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BBTK_USE_SHIPPED_BOOST<br>
+      </td>
+      <td style="vertical-align: top;">Use the boost C++ library
+provided with bbtk ?<br>
+If not set you need to have boost installed <br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BBTK_USE_WXWIDGETS<br>
+      </td>
+      <td style="vertical-align: top;">Build with the wxWidgets library
+? <br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_APPLICATIONS<br>
+      </td>
+      <td> Build bbtk applications : development studio (bbStudio),
+interpreter
+(bbi), xml to C++ code (bbfy), etc. ?<br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_BBS_APPLI_BINARIES<br>
+      </td>
+      <td>Build executables for all bbs applications of all packages ?<br>
+If set will compile all bbs of folder appli of all packages, using bbc<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_DOC<br>
+      </td>
+      <td style="vertical-align: top;">Build bbtk documentations ?<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_DOXYGEN<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+doxygen documentation for bbtk kernel?<br>
+Requires doxygen<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_GUIDES_HTML<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+html versions of the guides ?<br>
+Requires latex, pdftex, tth<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_GUIDES_PDF<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+pdf versions of the guides ?<br>
+Requires latex, pdftex<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">BUILD_BBTK_DOC_PACKAGE<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">Build
+packages html documentations ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(192, 192, 192);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_demo<br>
+      </td>
+      <td style="vertical-align: top;">Build the package 'demo' ?<br>
+Requires : itk, vtk<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_BBTK_PACKAGE_itk<br>
+      </td>
+      <td>Build the package 'itk' ?<br>
+Requires : itk<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">&nbsp;BUILD_BBTK_PACKAGE_itkvtk<br>
+      </td>
+      <td style="vertical-align: top;">Build the package 'itkvtk ?<br>
+Requires : itk, vtk<br>
+      </td>
+      <td style="vertical-align: top;">OFF</td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_std<br>
+      </td>
+      <td style="vertical-align: top;">Build the package 'std' ?</td>
+      <td style="vertical-align: top;">ON</td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_toolsbbtk<br>
+      </td>
+      <td style="vertical-align: top;">Build the package 'toolsbbtk' ?</td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_vtk <br>
+      </td>
+      <td style="vertical-align: top;">Build the package 'vtk' ?<br>
+Requires : vtk<br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_wx<br>
+      </td>
+      <td style="vertical-align: top;">Build the package 'wx' ?<br>
+Requires : wxWidgets<br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_wxvtk<br>
+      </td>
+      <td style="vertical-align: top;">Build the package 'wxvtk' ?<br>
+Requires : wxWidgets, vtk<br>
+      </td>
+      <td style="vertical-align: top;">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_DIM_2<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of dimension 2 ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_DIM_3</td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of dimension 3 ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_DIM_4 </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of dimension 4 ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_CHAR<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type char ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_DOUBLE</td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type double ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_FLOAT<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type float ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_INT<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type int ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_SHORT<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type short ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_UCHAR<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type unsigned char ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_UINT<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type unsigned int ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">&nbsp;&nbsp;
+itk_IMAGE_TYPE_USHORT<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">Compile
+itk images of type unsigned&nbsp; short ?<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(204, 204, 204);">ON<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_demo</td>
+      <td style="vertical-align: top;">Build the package 'demo' ?<br>
+Requires : <span style="font-weight: bold;">ALL</span> the other
+packages<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_BBTK_PACKAGE_itkvtk<br>
+      </td>
+      <td>Build the package 'itkvtk' ?<br>
+Requires : itk, vtk<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_BBTK_PACKAGE_std<br>
+      </td>
+      <td>Build the package 'std ? </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">BUILD_BBTK_PACKAGE_toolsbbtk</td>
+      <td style="vertical-align: top;">Build the package 'toolsbbtk' ?</td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_BBTK_PACKAGE_vtk<br>
+      </td>
+      <td>Build the package 'vtk' ?<br>
+Requires : vtk<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_BBTK_PACKAGE_wx<br>
+      </td>
+      <td>Build the package 'wx' ?<br>
+Requires : wxWidgets<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td>BUILD_BBTK_PACKAGE_wxvtk<br>
+      </td>
+      <td>Build the package 'wxvtk' ?<br>
+Requires : wxWidgets, vtk<br>
+      </td>
+      <td style="vertical-align: top;">OFF<br>
+      </td>
+    </tr>
+    <tr>
+      <td>CMAKE_BUILD_TYPE<br>
+      </td>
+      <td>Set to "Debug" or "Release" <br>
+      </td>
+      <td style="vertical-align: top;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td>CMAKE_INSTALL_PREFIX<br>
+      </td>
+      <td> Set the install folder<br>
+      </td>
+      <td style="vertical-align: top;">/usr/local<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">EXECUTABLE_OUTPUT_PATH<br>
+      </td>
+      <td style="vertical-align: top;">Single output directory for
+building all the executables<br>
+      </td>
+      <td style="vertical-align: top;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td style="vertical-align: top;">LIBRARY_OUTPUT_PATH</td>
+      <td style="vertical-align: top;">Single output directory for
+building all the libraries</td>
+      <td style="vertical-align: top;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_BOOST<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when boost C++ library is needed with the choices made<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_DOXYGEN<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when doxygen is needed with the choices made</td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_ITK<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when ITK library is needed with the choices made</td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_LATEX<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when LaTeX is needed with the choices made</td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_TTH<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when tth is needed with the choices made</td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_VTK<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when VTK library is needed with the choices made</td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+      </td>
+    </tr>
+    <tr>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">USE_WXWIDGETS<br>
+      </td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">Automatically
+set to ON when wxWidgets library is needed with the choices made</td>
+      <td
+ style="vertical-align: top; background-color: rgb(102, 102, 102); font-style: italic;">-<br>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</div>
+</body>
+</html>
diff --git a/doc/template_WebSite/menu.html b/doc/template_WebSite/menu.html
new file mode 100644 (file)
index 0000000..2d6181e
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+  <title>Home</title>
+</head>
+<body>
+<div style="text-align: center;">
+<big><span style="font-weight: bold;">
+User Project documentation<br>
+</big></span><br>
+
+<div style="text-align: left;">Follow <a
+ href="./install.html" target="information">this link</a> User Install Instructions<br>
+<br>
+Read the <a href="../UserDocumentation/UserDocumentation.html" target="information">users' guide</a> To find out more about this application.<br>
+<br>
+Or read read the pdf file with the documentation <a
+ href="../UserDocumentation/UserDocumentation.pdf" target="information"> (pdf) </a> <br>
+<br>
+The futures developers in this project might be also interested in the <a
+ href="../doxygen/index.html" target="information">doxygen documentation</a> of the
+source code of bbtk library.<br>
+
+<br>
+<br>
+</div>
+</body>
+</html>
index d5c9e3eda5d7da74c00144592541759ddb19742f..5f300f357111a57916965addafce71e7626890a4 100644 (file)
@@ -37,8 +37,8 @@ IF(WIN32 AND NOT UNIX)
 #EED  SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/kernel/install/gnome/bbi-icon2.bmp")
 #  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/BBI_EXE.exe")
   SET(CPACK_NSIS_DISPLAY_NAME ${PROJECT_NAME})
-  SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
-  SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
+  SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/site/creatools/${PROJECT_NAME}")
+  SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/site/creatools/${PROJECT_NAME}")
   SET(CPACK_NSIS_CONTACT "info-dev@creatis.insa-lyon.fr")
   SET(CPACK_NSIS_MODIFY_PATH ON)
   
index 5c128578204ba3e1593da1d7e1ff9f8a5be9f995..9cc2301872833ef373a9da3bbff32c25e1550a51 100644 (file)
@@ -685,7 +685,7 @@ void Bruker2Dicom::DealWithNiveau3(std::string level3Directory, std::string curr
    int k;
    int nbInstants = nbFrames/nbSlices;
    if (verbose)
-         std::cout << "nbInstants (deduced )" << nbInstants << std::endl;    
+         std::cout << "nbInstants (deduced)" << nbInstants << std::endl;    
    int instantNb;
    int sliceNb; 
    FILE *fp;  // for MHD files
index ce03df331fb1b097b0a69a0a7755fdf2f5498814..4bbc4552f172b91c70b8c63590d93315385bfa42 100644 (file)
@@ -18,26 +18,33 @@ IF ( BUILD_${LIBRARY_NAME} )
 
   #----------------------------------------------------------------------------
   # LIBRARY HEADERS (TO BE INSTALLED)
-  # EITHER LIST ALL .h IN CURRENT DIR USING NEXT LINE:
-  FILE(GLOB ${LIBRARY_NAME}_HEADERS "*.h")
+  # EITHER LIST ALL .h, *.txx IN CURRENT DIR USING NEXT LINE:
+
+  FILE(GLOB ${LIBRARY_NAME}_HEADERS "*.h" "*.txx")
+
   # OR MANUALLY LIST YOUR HEADERS WITH NEXT COMMAND
   #  SET ( ${LIBRARY_NAME}_HEADERS
   #
-  #    )
+  #      )
   #----------------------------------------------------------------------------
 
   #----------------------------------------------------------------------------
   # LIBRARY SOURCES (TO BE COMPILED)
   # EITHER LIST ALL .cxx, *.cpp, *.cc IN CURRENT DIR USING NEXT LINE:
+  
   FILE(GLOB ${LIBRARY_NAME}_SOURCES *.cxx *.cpp *.cc)
+  
   # OR MANUALLY LIST YOUR FILES WITH NEXT COMMAND (WITHOUT EXTENSION)
   #  SET ( ${LIBRARY_NAME}_SOURCES 
   #
-  #    )
+  #      )
   #----------------------------------------------------------------------------
 
   #----------------------------------------------------------------------------
   # LIBRARY DEPENDENCIES (LIBRARIES TO LINK WITH)
+  #
+  # Uncomment the Libraries you need
+  #
   SET ( ${LIBRARY_NAME}_LINK_LIBRARIES
     ${crea_LIBRARIES}
     #    ${WXWIDGETS_LIBRARIES}