diff --git a/Documentation/CMakeLists.txt b/Documentation/CMakeLists.txt
index 499a1b24f7..53acc94f47 100644
--- a/Documentation/CMakeLists.txt
+++ b/Documentation/CMakeLists.txt
@@ -1,227 +1,225 @@
#
# Variables:
# MITK_DOXYGEN_OUTPUT_DIR: doxygen output directory (optional)
# Compile source code snippets
#add_subdirectory(Snippets)
find_package(Doxygen)
if(DOXYGEN_FOUND)
# Different doxygen versions produce significantly different behaviour in the MITK documentation
# especially in regards to the MITK Qt assistant help files and markdown files.
# The HTML documentation is supposed to be build with Doxygen 1.8.7 or newer, the
# Qt assistant QCH files are supposed to be generated with Doxygen 1.8.7 or newer.
# So we check for 1.8.7 here and QCH generation support is checked in
# BlueBerry/CMakeLists.txt
set(supported_doxygen_version "1.8.7")
if(DOXYGEN_VERSION VERSION_LESS ${supported_doxygen_version})
MESSAGE(WARNING "Unsupported doxygen version ${DOXYGEN_VERSION}. The MITK HTML documentation has been tested to work with doxygen ${supported_doxygen_version} or newer.")
endif()
option(USE_DOT "Use dot program for generating graphical class diagrams with doxygen, if available" ON)
option(MITK_DOXYGEN_BUILD_ALWAYS "Always build the MITK documentation when building the default target" OFF)
option(MITK_DOXYGEN_GENERATE_QCH_FILES "Use doxygen to generate Qt compressed help files for MITK docs" OFF)
mark_as_advanced(USE_DOT MITK_DOXYGEN_BUILD_ALWAYS MITK_DOXYGEN_GENERATE_QCH_FILES)
if (MITK_DOXYGEN_GENERATE_QCH_FILES AND DOXYGEN_VERSION VERSION_LESS "1.8.7")
message(WARNING "> Forcing MITK_DOXYGEN_GENERATE_QCH_FILES to OFF because Doxygen version 1.8.7 or newer not found.")
set(MITK_DOXYGEN_GENERATE_QCH_FILES OFF CACHE BOOL "Use doxygen to generate Qt compressed help files for MITK docs" FORCE)
endif()
set(HAVE_DOT "NO")
if(DOXYGEN_DOT_EXECUTABLE AND USE_DOT)
set(HAVE_DOT "YES")
endif()
set(MITK_DOXYGEN_TAGFILE_NAME ${MITK_DOXYGEN_OUTPUT_DIR}/MITK.tag CACHE INTERNAL "MITK Doxygen tag file")
# This is relative to the working directory of the doxygen command
set(MITK_DOXYGEN_STYLESHEET mitk_doxygen_extra.css)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${MITK_DOXYGEN_STYLESHEET}
${CMAKE_CURRENT_BINARY_DIR}/${MITK_DOXYGEN_STYLESHEET} @COPYONLY)
# Create QCH files for MITK and external projects
set(MITK_DOXYGEN_GENERATE_QHP "NO")
if(MITK_DOXYGEN_GENERATE_QCH_FILES)
find_program(QT_HELPGENERATOR_EXECUTABLE
NAMES qhelpgenerator qhelpgenerator-qt4 qhelpgenerator4
PATHS ${QT_BINARY_DIR}
DOC "The location of the the Qt help generator executable"
NO_DEFAULT_PATH
)
mark_as_advanced(QT_HELPGENERATOR_EXECUTABLE)
if(NOT QT_HELPGENERATOR_EXECUTABLE)
message(SEND_ERROR "The Qt help generator could not be found. Disabling qch generation")
else()
set(MITK_DOXYGEN_GENERATE_QHP "YES")
endif()
# The name of the generated MITK qch file, relative to the
# Doxygen HTML output folder
set(MITK_DOXYGEN_QCH_FILE "${MITK_BINARY_DIR}/MITK-${MITK_REVISION_ID}.qch")
# Generating ITK and VTK docs it not done yet
#option(MITK_DOXYGEN_GENERATE_VTK_QCH_FILE "Use doxygen to generate a Qt compressed help file for VTK docs" OFF)
#option(MITK_DOXYGEN_GENERATE_ITK_QCH_FILE "Use doxygen to generate a Qt compressed help file for ITK docs" OFF)
#mark_as_advanced(MITK_DOXYGEN_GENERATE_VTK_QCH_FILE MITK_DOXYGEN_GENERATE_ITK_QCH_FILE)
endif()
if(MITK_USE_BLUEBERRY)
file(RELATIVE_PATH _blueberry_doxygen_path ${MITK_DOXYGEN_OUTPUT_DIR}/html ${BLUEBERRY_DOXYGEN_OUTPUT_DIR}/html)
set(BLUEBERRY_DOXYGEN_TAGFILE "${BLUEBERRY_DOXYGEN_TAGFILE_NAME}=${_blueberry_doxygen_path}")
set(BLUEBERRY_DOXYGEN_LINK "BlueBerry Documentation")
set(MITK_XP_LINK "\\ref mitkExtPointsIndex")
configure_file(schema.css ${MITK_DOXYGEN_OUTPUT_DIR}/html/schema.css)
set(MITK_DOXYGEN_ENABLED_SECTIONS "${MITK_DOXYGEN_ENABLED_SECTIONS} BLUEBERRY")
endif(MITK_USE_BLUEBERRY)
# Compile a doxygen input filter for processing CMake scripts
include(mitkFunctionCMakeDoxygenFilterCompile)
mitkFunctionCMakeDoxygenFilterCompile(NAMESPACE "CMake")
# Configure some doxygen options
if(NOT MITK_DOXYGEN_INTERNAL_DOCS)
set(MITK_DOXYGEN_INTERNAL_DOCS "NO")
set(MITK_DOXYGEN_HIDE_FRIEND_COMPOUNDS "YES")
set(MITK_DOXYGEN_EXCLUDE_PATTERNS "*_p.* *Private.h */internal/*")
else()
set(MITK_DOXYGEN_HIDE_FRIEND_COMPOUNDS "NO")
set(MITK_DOXYGEN_EXCLUDE_PATTERNS "")
endif()
if(NOT MITK_DOXYGEN_GENERATE_TODOLIST)
set(MITK_DOXYGEN_GENERATE_TODOLIST "NO")
endif()
if(NOT MITK_DOXYGEN_GENERATE_BUGLIST)
set(MITK_DOXYGEN_GENERATE_BUGLIST "NO")
endif()
if(NOT MITK_DOXYGEN_HTML_DYNAMIC_SECTIONS)
set(MITK_DOXYGEN_HTML_DYNAMIC_SECTIONS "NO")
endif()
if(NOT MITK_DOXYGEN_UML_LOOK)
set(MITK_DOXYGEN_UML_LOOK "NO")
endif()
if(NOT MITK_DOXYGEN_GENERATE_DEPRECATEDLIST)
set(MITK_DOXYGEN_GENERATE_DEPRECATEDLIST "YES")
endif()
if(NOT DEFINED MITK_DOXYGEN_DOT_NUM_THREADS)
set(MITK_DOXYGEN_DOT_NUM_THREADS 0)
endif()
# parse which plug-in documentation to activate
set(USERS_GUIDE_INPUT "${MITK_SOURCE_DIR}/Documentation/Doxygen/UserManual/")
if(MITK_USE_BLUEBERRY)
if(MITK_BUILD_ALL_PLUGINS)
set(USERS_GUIDE_INPUT "${USERS_GUIDE_INPUT} \\
${MITK_SOURCE_DIR}/Plugins/")
else()
foreach(mitk_plugin ${${CMAKE_PROJECT_NAME}_PLUGIN_LIBRARIES})
# we want each line to end in " \" and each directory be on a separate line
set(USERS_GUIDE_INPUT "${USERS_GUIDE_INPUT} \\
${${mitk_plugin}_SOURCE_DIR}/")
endforeach()
endif()
if(MITK_BUILD_EXAMPLES)
set(USERS_GUIDE_INPUT "${USERS_GUIDE_INPUT} \\
${MITK_SOURCE_DIR}/Examples/Plugins/")
endif()
endif()
# create output directories for the guides
file(MAKE_DIRECTORY ${MITK_DOXYGEN_OUTPUT_DIR}/Guides/Users_Guide/)
file(MAKE_DIRECTORY ${MITK_DOXYGEN_OUTPUT_DIR}/Guides/Developers_Guide/)
-configure_file(Doxygen/MainPage.dox.in
- ${CMAKE_CURRENT_BINARY_DIR}/Doxygen/MainPage.dox)
configure_file(doxygen.conf.in
${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf)
configure_file(doxygen_users_guide.conf.in
${CMAKE_CURRENT_BINARY_DIR}/doxygen_users_guide.conf)
configure_file(doxygen_developers_guide.conf.in
${CMAKE_CURRENT_BINARY_DIR}/doxygen_developers_guide.conf)
if(MITK_DOXYGEN_BUILD_ALWAYS)
set(_doc_in_all "ALL")
else()
set(_doc_in_all "")
endif()
add_custom_target(doc ${_doc_in_all}
${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.conf
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(doc_usersguide
${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/doxygen_users_guide.conf
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(doc_developersguide
${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/doxygen_developers_guide.conf
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
if(MITK_USE_BLUEBERRY)
# convert the extension points schema files into html
find_package(Ant)
if(ANT_FOUND AND BLUEBERRY_DOC_TOOLS_DIR)
list(APPEND MITK_XP_GLOB_EXPRESSIONS
${MITK_SOURCE_DIR}/Plugins/plugin.xml)
file(GLOB_RECURSE _plugin_xmls ${MITK_XP_GLOB_EXPRESSIONS})
MACRO_CONVERT_SCHEMA(INPUT ${_plugin_xmls}
OUTPUT_DIR "${MITK_DOXYGEN_OUTPUT_DIR}/html/extension-points/html"
TARGET_NAME mitkXPDoc
)
add_dependencies(doc mitkXPDoc BlueBerryXPDoc)
#if(${PROJECT_NAME} STREQUAL "MITK")
# add_dependencies(doc BlueBerryDoc)
#endif()
endif(ANT_FOUND AND BLUEBERRY_DOC_TOOLS_DIR)
endif(MITK_USE_BLUEBERRY)
#if(MITK_DOXYGEN_GENERATE_ITK_QCH_FILE)
# # add the command to generate the ITK documantation
# add_custom_target(doc-itk
# COMMAND ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.itk.conf)
# add_dependencies(doc doc-itk)
#endif()
#if(MITK_DOXYGEN_GENERATE_VTK_QCH_FILE)
# # add the command to generate the VTK documantation
# add_custom_target(doc-vtk
# COMMAND ${DOXYGEN} ${CMAKE_CURRENT_BINARY_DIR}/doxygen.vtk.conf)
# add_dependencies(doc doc-vtk)
#endif()
else(DOXYGEN_FOUND)
# copy blank documentation page to prevent QtHelp from being shown
# copy the .qhc and .qch files to $MITK_BIN/mitk/bin/ExtBundles/resources/
configure_file(pregenerated/MITKBlankPage.qch
${MITK_BINARY_DIR}/bin/ExtBundles/org.mitk.gui.qt.extapplication/resources/MITKBlankPage.qch
COPYONLY)
configure_file(pregenerated/MitkExtQtHelpCollection.qhc
${MITK_BINARY_DIR}/bin/ExtBundles/org.mitk.gui.qt.extapplication/resources/MitkExtQtHelpCollection.qhc
COPYONLY)
endif(DOXYGEN_FOUND)
diff --git a/Documentation/Doxygen/Overview/Overview.dox b/Documentation/Doxygen/1-Overview/Overview.dox
similarity index 98%
rename from Documentation/Doxygen/Overview/Overview.dox
rename to Documentation/Doxygen/1-Overview/Overview.dox
index ec52fcf2ea..dffa52def6 100644
--- a/Documentation/Doxygen/Overview/Overview.dox
+++ b/Documentation/Doxygen/1-Overview/Overview.dox
@@ -1,31 +1,32 @@
/**
\page Overview An Overview
+\ingroup index
The Medical Imaging Interaction Toolkit (MITK) is a powerful application and can also be used as either a framework or a toolkiit for Software development. The following options are the most common usage scenarios.
I want to use MITK as an application
You will use the MITK Workbench as an end user and will find user manuals in \ref UserManualPortal and \ref PluginListPage.
I want to develop my own software framework, and use some of MITK's data structures and algorithms
You will use MITK as a toolkit and probably benefit most from the \ref BuildInstructionsPage and MITK API Documentation.
I want to use the MITK and BlueBerry software framework to develop my own software
Here you have again two options.
I want use the MITK Workbench and extend its capabilities
You are using MITK as software framework and writing your own modules and plugins for MITK. You want to read the \ref BuildInstructionsPage and further on \ref Development. Also you might want to take a look at our \ref CMAKE_FAQ.
I want to create my own application based on MITK
This is probably the most common way to use MITK. You are using MITK as software framework and building your own project and application using MITK. You want to read \ref HowToNewProject and the general information in \ref Development. Also you might want to take a look at our \ref CMAKE_FAQ.
*/
diff --git a/Documentation/Doxygen/UserManual/Applications.dox b/Documentation/Doxygen/2-UserManual/Applications.dox
similarity index 99%
rename from Documentation/Doxygen/UserManual/Applications.dox
rename to Documentation/Doxygen/2-UserManual/Applications.dox
index cba372ea38..6ffd3c0af2 100644
--- a/Documentation/Doxygen/UserManual/Applications.dox
+++ b/Documentation/Doxygen/2-UserManual/Applications.dox
@@ -1,33 +1,33 @@
/**
\page ApplicationsPage Using MITK and Applications
\tableofcontents
\section ApplicationsPageApplications What are Applications?
Applications are special versions of MITK which contain functionality aimed at solving a special task.
Usually they are aimed at a selective audience or solving a particular problem.
As such they focus on certain capabilities of MITK, while ignoring others.
The main reason for this is to supply the users of the application with the power of MITK for solving their tasks, without daunting them with an overwhelming number of menus and options.
At the same time, this allows the creation of an elegant and easily comprehensible workflow for your task.
The Diffusion Imaging Application for example contains all the functionality necessary for the field of neuro-imaging, but does not contain support for ultrasound imaging.
A typical example of this would be an application which contains only views related to the analysis of the human brain (particular question) or one which contains only what is necessary for displaying medical data in the classroom (specific audience).
\section ApplicationsPageWhatAmIUsing Which Application am I using?
If you are unsure which application you are currently using, start the application and have a look in the Title Bar.
You should see it's name there.
-
+
\imageMacro{ApplicationTitle.jpg,"The application name is displayed in the title bar",16}
-
+
\section ApplicationsPageApplicationsList List of Applications
If you are interested in using a specific application, currently developed by the MITK team you might want to take a look first at the \ref MITKUserManualPage . Further information on any application can be found here:
- \subpage org_mitkworkbench
- \subpage org_dti_atlas_application
- \subpage org_mitk_gui_qt_diffusionimagingapp
*/
\ No newline at end of file
diff --git a/Documentation/Doxygen/UserManual/MITKPerspectiveManualsList.dox b/Documentation/Doxygen/2-UserManual/MITKPerspectiveManualsList.dox
similarity index 92%
rename from Documentation/Doxygen/UserManual/MITKPerspectiveManualsList.dox
rename to Documentation/Doxygen/2-UserManual/MITKPerspectiveManualsList.dox
index 66aea15350..c4750e9113 100644
--- a/Documentation/Doxygen/UserManual/MITKPerspectiveManualsList.dox
+++ b/Documentation/Doxygen/2-UserManual/MITKPerspectiveManualsList.dox
@@ -1,12 +1,12 @@
/**
\page PerspectiveListPage MITK Perspective Manuals
\section PerspectiveListPageOverview Overview
-Perspectives provide a selection of plugins and settings which synergize well in order to solve certain problems. This can include placement of views as well in order to create an environment suited to solve the problem at hand.
+Perspectives provide a selection of plugins and settings which synergize well in order to solve certain problems. This can include placement of views as well in order to create an environment suited to solve the problem at hand.
\section PerspectiveListPagePerspectiveList List of Perspectives
\li \subpage org_mitk_gui_qt_extapplication_perspectives_visualizations
*/
diff --git a/Documentation/Doxygen/UserManual/MITKPluginManualsList.dox b/Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox
similarity index 100%
rename from Documentation/Doxygen/UserManual/MITKPluginManualsList.dox
rename to Documentation/Doxygen/2-UserManual/MITKPluginManualsList.dox
diff --git a/Documentation/Doxygen/UserManual/MiniApps.dox b/Documentation/Doxygen/2-UserManual/MiniApps.dox
similarity index 100%
rename from Documentation/Doxygen/UserManual/MiniApps.dox
rename to Documentation/Doxygen/2-UserManual/MiniApps.dox
diff --git a/Documentation/Doxygen/UserManual/UserManualPortal.dox b/Documentation/Doxygen/2-UserManual/UserManualPortal.dox
similarity index 100%
rename from Documentation/Doxygen/UserManual/UserManualPortal.dox
rename to Documentation/Doxygen/2-UserManual/UserManualPortal.dox
diff --git a/Documentation/Doxygen/UserManual/images/ApplicationTitle.jpg b/Documentation/Doxygen/2-UserManual/images/ApplicationTitle.jpg
similarity index 100%
rename from Documentation/Doxygen/UserManual/images/ApplicationTitle.jpg
rename to Documentation/Doxygen/2-UserManual/images/ApplicationTitle.jpg
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryExampleLauncherDialog.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryExampleLauncherDialog.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryExampleLauncherDialog.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryExampleLauncherDialog.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryExamples.dox b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryExamples.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryExamples.dox
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryExamples.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryExtensionPointsIntro.dox b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryExtensionPointsIntro.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryExtensionPointsIntro.dox
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryExtensionPointsIntro.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryIntro.dox b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryIntro.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerryIntro.dox
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerryIntro.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerrySelectionServiceIntro.dox b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerrySelectionServiceIntro.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/BlueBerrySelectionServiceIntro.dox
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/BlueBerrySelectionServiceIntro.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/ExtensionPointEx.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/ExtensionPointEx.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/ExtensionPointEx.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/ExtensionPointEx.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/ExtensionPoints.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/ExtensionPoints.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/ExtensionPoints.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/ExtensionPoints.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/MitkSelectionService.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/MitkSelectionService.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/MitkSelectionService.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/MitkSelectionService.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.xcf b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.xcf
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.xcf
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/SelectionServiceDiagram.xcf
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/application-window.jpg b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/application-window.jpg
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/application-window.jpg
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/application-window.jpg
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-class-diagram.jpg b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-class-diagram.jpg
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-class-diagram.jpg
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-class-diagram.jpg
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-page.jpg b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-page.jpg
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-page.jpg
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-page.jpg
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-editor-area.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-editor-area.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-editor-area.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-editor-area.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-editor-area.xcf b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-editor-area.xcf
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-editor-area.xcf
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-editor-area.xcf
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-perspective.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-perspective.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-perspective.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-perspective.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-perspective.xcf b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-perspective.xcf
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-perspective.xcf
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-perspective.xcf
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-views.png b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-views.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-views.png
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-views.png
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-views.xcf b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-views.xcf
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window-views.xcf
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window-views.xcf
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window.jpg b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window.jpg
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench-window.jpg
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench-window.jpg
diff --git a/Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench.jpg b/Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench.jpg
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/BlueBerry/workbench.jpg
rename to Documentation/Doxygen/3-DeveloperManual/Application/BlueBerry/workbench.jpg
diff --git a/Documentation/Doxygen/DeveloperManual/Application/Deployment.dox b/Documentation/Doxygen/3-DeveloperManual/Application/Deployment.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/Deployment.dox
rename to Documentation/Doxygen/3-DeveloperManual/Application/Deployment.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Application/DevelopmentApplication.dox b/Documentation/Doxygen/3-DeveloperManual/Application/DevelopmentApplication.dox
similarity index 97%
rename from Documentation/Doxygen/DeveloperManual/Application/DevelopmentApplication.dox
rename to Documentation/Doxygen/3-DeveloperManual/Application/DevelopmentApplication.dox
index 4e00e090fc..5cb70cc845 100644
--- a/Documentation/Doxygen/DeveloperManual/Application/DevelopmentApplication.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Application/DevelopmentApplication.dox
@@ -1,17 +1,17 @@
/**
\page DevelopmentApplication Developing with the MITK Application Framework
-MITK offers a powerful application featuring a plugin system and many predefined plugins. You can configure this application to offer a set of functionality to the user and easily create an installer.
+MITK offers a powerful application featuring a plugin system and many predefined plugins. You can configure this application to offer a set of functionality to the user and easily create an installer.
Working with the application, you will have to learn about extension points and the Blueberry framework itself. If you are new to the matter, please also consult \ref Architecture and \ref FirstSteps.
-
+
- \subpage BlueBerryIntro
- \subpage BlueBerryExamples
The MITK application extension-point reference is available here:
- \subpage mitkExtPointsIndex
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Application/ExtensionPointReference.dox b/Documentation/Doxygen/3-DeveloperManual/Application/ExtensionPointReference.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Application/ExtensionPointReference.dox
rename to Documentation/Doxygen/3-DeveloperManual/Application/ExtensionPointReference.dox
diff --git a/Documentation/Doxygen/DeveloperManual/DeveloperManualPortal.dox b/Documentation/Doxygen/3-DeveloperManual/DeveloperManualPortal.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/DeveloperManualPortal.dox
rename to Documentation/Doxygen/3-DeveloperManual/DeveloperManualPortal.dox
diff --git a/Documentation/Doxygen/DeveloperManual/HowTos/InteractionTestingHowTo.dox b/Documentation/Doxygen/3-DeveloperManual/HowTos/InteractionTestingHowTo.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/HowTos/InteractionTestingHowTo.dox
rename to Documentation/Doxygen/3-DeveloperManual/HowTos/InteractionTestingHowTo.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/AboutTesting/AboutTestingPage.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/AboutTesting/AboutTestingPage.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/AboutTesting/AboutTestingPage.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/AboutTesting/AboutTestingPage.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/Architecture.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/Architecture.dox
similarity index 95%
rename from Documentation/Doxygen/DeveloperManual/Starting/Architecture.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/Architecture.dox
index 46a2a38934..d499f3a0dc 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/Architecture.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/Architecture.dox
@@ -1,47 +1,47 @@
/**
\page Architecture The Architecture of MITK
-
-MITK is an open source software toolkit for medical image processing, subsequent data analysis and integration of medical hardware.
-It is designed with the aim of providing a modular and heavily reusable code base to enable rapid development of new features. Following
+
+MITK is an open source software toolkit for medical image processing, subsequent data analysis and integration of medical hardware.
+It is designed with the aim of providing a modular and heavily reusable code base to enable rapid development of new features. Following
this design philosophy MITK includes many different specialized modules e.g. the Segmentation Module.
-This document is aimed at giving an overview of the general structure of MITK. Furthermore it will give an introduction into the coding
+This document is aimed at giving an overview of the general structure of MITK. Furthermore it will give an introduction into the coding
and design concepts behind this toolkit.
\section OverviewPage_DesignOverview Design Overview
MITK is designed to be used as a pure software library or as a complete application framework. Thus, a user
-of MITK can decide if he simply wants to add a new plug-in to the existing application framework or if he needs to implement his
+of MITK can decide if he simply wants to add a new plug-in to the existing application framework or if he needs to implement his
own application and wants to use MITK as a software library. Depending on the type of use MITK uses different software libraries, which is
shown in the next figure for overview.
\imageMacro{MitkOverview.png,"Overview of MITK",16}
Like shown above, MITK uses the following libraries.
These are the main libraries MITK is based on. For further functionality you can optionally include others, a list can be found \ref thirdpartylibs "here" .
Based on these libraries, MITK includes the following features:
- High level interactions with data.
- Specialized medical imaging algorithms (e.g. segmentation)
- Support of 3D + t data.
- Complete application framework, expandable by plug-ins
- Standard tools for medical imaging as default plug-ins (e.g. measurement, segmentation)
- Many specialized module for different topics on medical imaging (e.g. diffusion imaging, image guided therapy, live image/ultrasound data processing)
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/FirstSteps.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/FirstSteps.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/FirstSteps.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/FirstSteps.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/MiniAppCommandLineToolHowTo.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/MiniAppCommandLineToolHowTo.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/MiniAppCommandLineToolHowTo.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/MiniAppCommandLineToolHowTo.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/images/generated_ui_tensor_reconstruction.png b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/images/generated_ui_tensor_reconstruction.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/images/generated_ui_tensor_reconstruction.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/MiniAppCommandLineTool/images/generated_ui_tensor_reconstruction.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewModule.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewModule.dox
similarity index 98%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewModule.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewModule.dox
index 6bc1ce3025..20c324fd0a 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewModule.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewModule.dox
@@ -1,82 +1,82 @@
/**
\page NewModulePage How to create a new MITK Module
\section NewModulePageCreateFolder 1) Create a Folder for your Module
-First, create a folder for your module within /Modules e.g. 'NewModule'.
+First, create a folder for your module within /Modules e.g. 'NewModule'.
You need to add the new Folder to the CMakeLists.txt in the Module directory as well as well.
-Open /Modules/CMakeLists.txt, it should be pretty clear how to add the Module, just insert it into the set(module_dirs) section.
+Open /Modules/CMakeLists.txt, it should be pretty clear how to add the Module, just insert it into the set(module_dirs) section.
\code
set(module_dirs
...
NewModule
)
\endcode
Inside the folder create a new folder called "Testing", which will later contain the module tests.
Also create subfolders for you sourceFiles, for example "NewModuleFilters" and "NewModuleSourceFiles".
\section NewModulePageCreateCMakeLists 2) Create CMakeLists.txt
Within your module create the following file named CMakeLists.txt with the following content:
\code
MITK_CREATE_MODULE(NewModule #<-- module name
SUBPROJECTS
INCLUDE_DIRS NewModuleFilters NewModuleServices #<-- sub-folders of module
INTERNAL_INCLUDE_DIRS ${INCLUDE_DIRS_INTERNAL}
DEPENDS Mitk #<-- modules on which your module depends on
)
ADD_SUBDIRECTORY(Testing) #<-- Directory for tests
\endcode
Choose a fitting module name. This name should only contain Letters (both upper- and lowercase), no numbers, no underscores etc.
This name will be used to qualify your Module within the MITK Framework, so make sure it is unique.
Typically, the name will be the same as name of the Folder the Module resides in.
It is good practice to create subfolders in your module to structure your classes.
Make sure to include these folders in the List of subfolders, or CMake will not find the internal Files.
In the DEPENDS section, you can enter the modules that your module requires to function.
You will not be able to use classes from modules that are not listed here.
\section NewModulePageCreatefilesdotcmake 3) Create files.cmake
Next, create a new file and name it files.cmake, containing the following:
\code
SET(CPP_FILES
NewModuleFilters/File1.cpp
NewModuleFilters/File2.cpp
NewModuleServices/Filter1.cpp
)
\endcode
Add each .cpp file you create to this file.
Also, only add you .cpp files here, not the header files!
-\section NewModulePageCreateTEstingEnvironment 4) Set up the Test environment
+\section NewModulePageCreateTEstingEnvironment 4) Set up the Test environment
We also need to set up a testing environment where you can add your tests.
Inside your "Testing" Folder, create a new files.cmake containing the following:
\code
SET(MODULE_TESTS
mitkNewModuleTest.cpp
)
\endcode
Also, create a new CMakeLists.text:
\code
MITK_CREATE_MODULE_TESTS()
\endcode
That's it! Enjoy your new module! After following these steps, it should look something like this:
\imageMacro{NewModule.png,"Your shiny new module!",6}
*/
\ No newline at end of file
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewPlugin.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewPlugin.dox
similarity index 97%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewPlugin.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewPlugin.dox
index b5c08bcd82..2e12785039 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewPlugin.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewPlugin.dox
@@ -1,97 +1,97 @@
/**
\page NewPluginPage How to create a new MITK Plugin
The MITK Plugin Generator is a command line tool to simplify the process of creating your own MITK project
(optional) and plugins. It can either be downloaded here
or used from an existing MITK build.
The Plugin Generator takes the following command line arguments:
\verbatim
./MitkPluginGenerator -h
A CTK plugin generator for MITK (version 1.2.0)
-h, --help Show this help text
-o, --out-dir Output directory (default: /tmp)
-l, --license Path to a file containing license information (default: :/MITKLicense.txt)
-v, --vendor The vendor of the generated code (default: DKFZ, Medical and Biological Informatics)
-q, --quiet Do not print additional information
-y, --confirm-all Answer all questions with 'yes'
-u, --check-update Check for updates and exit
-n, --no-networking Disable all network requests
Plugin View options
-vc, --view-class The View's' class name
-vn, --view-name * The View's human readable name
Plugin options
-ps, --plugin-symbolic-name * The plugin's symbolic name
-pn, --plugin-name The plugin's human readable name
Project options
--project-copyright Path to a file containing copyright information (default: :/LICENSE.txt)
--project-name The project name
--project-app-name The application name
[* - options are required]
\endverbatim
If a project name is provided via the --project-name argument, the new plugin will be generated
as part of a new project.
\section NewPluginOnly Creating a new MITK plugin
Here is an example call to the Plugin Generator, creating one plugin with the symbolic name
com.mycompany.myplugin and a View named My View:
\verbatim
./MitkPluginGenerator --plugin-symbolic-name org.mycompany.myplugin --view-name "My View"
\endverbatim
If you did not already specify the final location of the plugin via the --out-dir argument, move the
directory (in our example /tmp/org.mycompany.myplugin) to your existing project. Do not forget to add the
plugin in your project's build system (usually in the file <your-project>/Plugins/Plugins.cmake).
-\section NewPluginWithProject Creating a new MITK project
+\section NewPluginWithProject Creating a new MITK project
\subsection NewPluginProjectPrerequisites Prerequisites
MITK-based projects created with the Plugin Generator need the same prerequisites as MITK itself. See the
\ref BuildInstructionsPage for MITK for details.
Here is an example call to the Plugin Generator, creating the same plugin as above but integrated in a new project:
\verbatim
./MitkPluginGenerator --plugin-symbolic-name org.mycompany.myplugin --view-name "My View" --project-name "MyProject" --project-app-name "MyApp"
\endverbatim
The generated project is completely self-contained and can be configured via CMake immediately. When building the
generated project, it will first download all required dependencies (like MITK itself). For an explanation of the
project's build directory layout and how to configure MITK from your project's superbuild CMake configuration,
see \ref HowToNewProject.
\subsection NewPluginLimitations Limitations
The Plugin Generator supports only a very limited set of possible configuration options. For more customizations of your
project or plugin, you must familiarize yourself with CMake and the generated build system.
Further, the generator is not able to modify existing projects, it can only create new ones.
\section NewPluginBuildSystem Build system for plugins
Just put new files in your plugin's \c src or \c src/internal directory and edit the \c files.cmake file there.
If you have any fancy stuff like external libraries and include directories you should have a look at the CMake manual and general MITK build system documentation.
\section NewPluginTroubleshooting Troubleshooting
\par I get "Could not find library" messages and similar stuff when I try to start my project's executable.
This is mostly due to wrong environment settings. On Windows, make sure that you use the supplied batch files to start
Visual Studio or your project's executable. If you still get errors, double check the value of the PATH variable in
your batch files (it must contain MITK's binary directory and paths to the ITK, VTK and Qt libraries.
\par
-On Linux, set your LD_LIBRARY_PATH variable accordingly.
+On Linux, set your LD_LIBRARY_PATH variable accordingly.
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewView.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewView.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/NewView.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/NewView.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/StatemachineEditor.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/StatemachineEditor.dox
similarity index 99%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/StatemachineEditor.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/StatemachineEditor.dox
index 80940d4cd0..b84534a71f 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/StatemachineEditor.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/StatemachineEditor.dox
@@ -1,152 +1,152 @@
/**
\page StatemachineEditor How to install and use the Statemachine-Editor
\tableofcontents
\section StatemachineEditorOverview Overview
This plug-in for Eclipse allows you to create new statemachines and change existing statemachines in an graphical editor. You can open existing
statemachines from a xml file or create a new statemachine in a new xml file.
This document will tell you how to install the plug-in for eclipse and how to use it.
\section StatemachineEditorInstallation How to Install the Statemachine-Editor
First of all you have to install Eclipse (Eclipse Classic) and the plug-in Graphical Editing Framework (GEF). Furthermore we need the packages JDOM
(jdom.jar) and Java3D (vecmath.jar).
-Caution: There have been problems reported with GEF runtime versions > 3.3.2.
+Caution: There have been problems reported with GEF runtime versions > 3.3.2.
A known working configuration is:
Eclipse SDK: 3.3.1
J3D: 1.5.1
Jdom: 1.0
-GEF runtime: 3.3.2
+GEF runtime: 3.3.2
Java Runtime Environment: jre6
Now you have to unzip the file StateMachines.zip into your eclipse folder. The file is located in your SVN checkout mitk/Modules/MitkExt/Interactions.
Start Eclipse and select "File" -> "Import...".
\imageMacro{Import.PNG,"\b Fig.1: Import",16}
In the popup window (Fig.1: Import) select the folder "Plug-in Development" and "Plug-ins and Fragments". Click "Next >".
\imageMacro{Import2.PNG,"\b Fig.2: Import Plug-ins and Fragments",16}
On the page "Import Plug-ins and Fragments" ( Fig.2: Import Plug-ins and Fragments) just click "Next >".
\imageMacro{Import3.PNG,"\b Fig.3: Selection",16}
On the page "Selection" ( Fig.3: Selection) select the "StateMachines (1.0.0)" Plug-in and click the "Add ->" button.
\imageMacro{Import4.PNG,"\b Fig.4: Selection 2",16}
Click "Finish" ( Fig.4: Selection 2).
Now you have to make sure that the path to vecmath.jar and jdom.jar is set correctly.
\imageMacro{BuildPath.PNG,"\b Fig.5: Set build path",16}
You can find the build path by selecting the project in the "Package Explorer" view. Then go to "Project" -> "Properties" -> "Java Build Path" in the tab
"Libraries" (as you can see in Fig.5: Set build path).
Now you should be able to start a Run-time Workbench.
\imageMacro{Runas.png,"\b Fig.6: Start Run-time Workbench",9}
Therefore you have to press the "Run" button and select "Eclipse Application". Click "OK" (Fig.6: Start Run-time Workbench).
A new Eclipse workbench opens where we can use the Statemachine-Editor.
\section StatemachineEditorManual How to use the Statemachine-Editor
In the Eclipse Run-time Workbench we have to create a new Java project first (Fig.7: Create a new Java project).
\imageMacro{CreateJavaProject.PNG,"\b Fig.7: Create a new Java project",16}
Then you can select one of the two buttons:
\li \ref StatemachineEditorManual1
\li \ref StatemachineEditorManual2
\subsection StatemachineEditorManual1 New Statemachines
When you press the button "New Statemachine" the following window will pop up:
\imageMacro{NewStatemachine.PNG,"\b Fig.8: New Statemachine",16}
Here, you have to "Browse..." for your Java-Project as your file container (Fig.8: New Statemachine).
\imageMacro{NewStatemachine1.PNG,"\b Fig.9: New Statemachine 1",16}
Select your Project and click "OK" (Fig.9: New Statemachine 1).
\imageMacro{NewStatemachine2.PNG,"\b Fig.10: New Statemachine 2",16}
As soon as you have selected a container and a File name, the "Finish" button will become enabled (Fig.10: New Statemachine 2).
Attention: If the filename has already been used, you have to set another filename to enable the "Finish" button.
\imageMacro{NewStatemachine3.PNG,"\b Fig.11: New Statemachine 3",16}
As a last step you have to enter the location and name for the xml file to be generated (Fig.11: New Statemachine 3). If you want to have predefined
events and actions, make sure the "mitkEventAndActionConstants.xml" file is in the same folder.
Read on in Section \ref StatemachineEditorManual3.
\subsection StatemachineEditorManual2 Statemachines from *.xml
When you press the button "Statemachines from *.xml" the following window will pop up:
\imageMacro{openstatemachinexml.png,"\b Fig.12: Open Statemachine from *.xml",16}
Here you have to select the xml file, which contains the statemachines (Fig.12: Open Statemachine from *.xml). If you want to have predefined events
and actions, make sure the "mitkEventAndActionConstants.xml" file is in the same folder.
\imageMacro{specifycontainer.png,"\b Fig.13: Select container",16}
Here, you have to "Browse..." for your Java-Project as your file container (Fig.13: Select container).
\imageMacro{specifycontainer2.png,"\b Fig.14: Select container 1",16}
Select your Project and click "OK" (Fig.14: Select container 1).
\imageMacro{specifycontainer3.png,"\b Fig.15: Select container 2",16}
As soon as you have selected a container, the "Finish" button will become enabled (Fig.15: Select container 2).
Read on in Section \ref StatemachineEditorManual3.
\subsection StatemachineEditorManual3 Work with the Editor
Now your workspace looks something like this:
\imageMacro{application.PNG,"\b Fig.16: Workspace",16}
You can open a statemachine from the "Statemachines List" view (Fig.16: Workspace) by performing a double click on the statemachine.
An editor opens and on its palette you can find different tools, such as create state or create transition.
\imageMacro{openPropertiesView.PNG,"\b Fig.17: Open the properties view",16}
\imageMacro{application1.PNG,"\b Fig.18: Change statename in the properties view",16}
To edit the statename or state ID you have to open the "Properties" view (Fig.18: Change statename in the properties view). You will get it by
"Window"->"Show View" -> "Other..." -> "General" -> "Properties" (Fig.17: Open the properties view).
\imageMacro{changeEvent.PNG,"\b Fig.19: Change Event",16}
\imageMacro{addAction.PNG,"\b Fig.20: Add Action",16}
To change a transitions event or action you have to select the transition and open its context menu (Fig.19: Change Event, Fig.20: Add Action).
-You can connect a transition to another state by drag one end of it and drop it to another state. All these changes are connected with an undo/redo
+You can connect a transition to another state by drag one end of it and drop it to another state. All these changes are connected with an undo/redo
controller.
When you save your statemachine it will be saved as an xml file which you either have created with your new statemachine or have opened before.
*/
\ No newline at end of file
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/BuildPath.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/BuildPath.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/BuildPath.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/BuildPath.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/CreateJavaProject.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/CreateJavaProject.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/CreateJavaProject.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/CreateJavaProject.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import2.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import2.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import2.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import2.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import3.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import3.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import3.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import3.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import4.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import4.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import4.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Import4.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine1.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine1.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine1.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine1.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine2.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine2.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine2.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine2.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine3.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine3.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine3.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/NewStatemachine3.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Runas.png b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Runas.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Runas.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/Runas.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/addAction.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/addAction.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/addAction.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/addAction.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application1.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application1.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application1.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/application1.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/changeEvent.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/changeEvent.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/changeEvent.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/changeEvent.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openPropertiesView.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openPropertiesView.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openPropertiesView.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openPropertiesView.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openstatemachinexml.png b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openstatemachinexml.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openstatemachinexml.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/openstatemachinexml.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer.png b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer2.png b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer2.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer2.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer2.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer3.png b/Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer3.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer3.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/FirstSteps/StatemachineEditor/images/specifycontainer3.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/CMakeFAQ.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/CMakeFAQ.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/CMakeFAQ.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/CMakeFAQ.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Coding.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Coding.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Coding.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Coding.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/DirectoryStructure.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/DirectoryStructure.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/DirectoryStructure.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/DirectoryStructure.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/DocumentationExample.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/DocumentationExample.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/DocumentationExample.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/DocumentationExample.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/DocumentationGuide.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/DocumentationGuide.dox
similarity index 99%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/DocumentationGuide.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/DocumentationGuide.dox
index 4dc7f853c2..6ab7e3e9a8 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/DocumentationGuide.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/DocumentationGuide.dox
@@ -1,85 +1,84 @@
/**
\page DocumentationGuide Writing Documentation
\section DocumentationGuideCodeGeneral General remarks
MITK uses Doxygen for the generation of our user manual pages as well as for the generation of the on- and offline reference manuals. So on the technical side many questions can be answered by the doxygen documentation, such as the list of commands or a few basic doxygen tutorials.
Therefore this document is not primarily intended as a guide to using doxygen, the doxygen manual does a much better job of that, but as a guide to use doxygen in MITK and a collection of helpful hints and advise about pittfalls.
Also, of course you need to have doxygen installed to generate documentation.
\section DocumentationGuideCode Documenting the source code
MITK is a substantial project and encompasses many different source files by many different developers over quite a considerable timeframe. Many of them have written excellent code which can do a lot of things and is very helpful to people who might apply it in wholly unlooked for ways to completely different problems. To facilitate this sharing and reusing of ressources one first and foremost has to know what kind of ressources are already available.
Few people write code in the intention for it to be difficult to be used by others, but unfortunately what might seem a very efficient and easily understandable piece of code to the author might be nigh unreadable for someone else. Very often it does not in fact matter whether the code itself is understandable, as long as it one can get the information what a function is supposed to do. While comments in the source file help a lot to gain this knowledge in can get quite tedious go through every file looking for the right tool.
This is where using doxygen pays off by giving a short comment in the header file a reference manual is automatically generated.
While doxygen support several different manners of documentation, the MITK documentation should keep a uniform documentation style:
\warning{
Use only the \verbatim /** ... */ \endverbatim style for documentation.
}
In dire emergencies you may consider commenting via the /// style, others must never be used.
An example:
\verbatim
/** \brief Brief description what the commented part does.
*
* More detailed description. This can be as long as you like,
* whereas the brief description should never be more than one sentence.
*/
\endverbatim
See \subpage DocumentationExample for an exemplary documentation of a class.
\subsection DocumentationGuideCodeHints Helpful hints:
- Always put comments intended for doxygen in the header files.
\section DocumentationGuideManual Writing user manuals
While the usage of your view/perspective/application might seem obvious and accessible to you, to most people it is not. Writing a good manual is key for this. It is very difficult to write a manual which is too comprehensive, most often if something can be done in a wrong way, somebody will see this as the only one.
For MITK purposes you should put your documentation in BUNDLEPATH/documentation/UserManual/QmitkMyViewName.dox .
Give them a unique name and remember to only use alphanumeric characters and underscores. Identifiers like "org.placeA.x" and "org.placeB.y" look identical to doxygen because it only parses the "org". Use "org_placeA_x" instead.
Regarding images: Doxygen looks for images globally. To avoid confusion, include the plugin name into the image. E.g. "Checkboxes.png" is a bad name while "QmitkIGTTracking_Checkboxes.png" is a good name.
Include images only via the image Macro! This way it is automatically included in the pdf export of the documentation.
\verbatim
// The Macro hast he following form (note the braces!):
\imageMacro{imagePath, "Image Description", Image size in cm}
// e.g.:
\imageMacro{QmitkIGTTracking_Checkboxes.png, "Some beautiful Checkboxes!", 5}
// If you must use commas in the description, escape them!
\imageMacro{QmitkIGTTracking_Checkboxes.png, "Some beautiful Checkboxes\, you have never seen better ones! ", 5}
\endverbatim
Image size is only used for the pdf export, but images won't be displayed at all if it is missing. Maximum is 16.
The nightly generated HTML documentation and the Qt Help System documentation can contain different content using the isHTML command.
\subsection DocumentationGuideManualHints Helpful hints:
- Do not use fullstops (".") in identifiers, it throws doxygen off
- Think were your page should go in the MITK help page structure and declare it as a subpage accordingly
- Use the imageMacro instead of the image command
- Use structuring elements, such as sections and subsections
- Use references to allow for fast navigation
- Images, pictures and sketches are great, use them
- Use visual help like remark, paragraph and warning
- BLUEBERRY_USE_QT_HELP should be set to ON
- The plug-in org.blueberry.ui.qt.help should be set to ON
*/
-
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/GettingToKnowMITK.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/GettingToKnowMITK.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/GettingToKnowMITK.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/GettingToKnowMITK.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/KnownProblems.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/KnownProblems.dox
similarity index 87%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/KnownProblems.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/KnownProblems.dox
index 52da8eddd8..34ad345fad 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/KnownProblems.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/KnownProblems.dox
@@ -1,14 +1,14 @@
/**
\page KnownProblemsPage Known Problems
\li "Installing" MITK via cmake (or using "make install") is not yet supported.
-\li Sometimes remote X sessions will display black rendering windows. It is not
+\li Sometimes remote X sessions will display black rendering windows. It is not
known whether this is a problem within MITK or within the X implementation.
\li MITK CHILI plugin has limitations when working with DICOMDIR data sources (bug #1756)
\section KnownProblemsPage_Deployment Deployment
-\li CMAKE_BUILD_TYPE has to be set to Debug or Release:
-For Makefile-based installers (make on Mac and Linux, nmake on Windows ) the CMAKE_BUILD_TYPE variable has to be set to Debug or Release. Otherwise the packages generated by CPack will be incomplete.
+\li CMAKE_BUILD_TYPE has to be set to Debug or Release:
+For Makefile-based installers (make on Mac and Linux, nmake on Windows ) the CMAKE_BUILD_TYPE variable has to be set to Debug or Release. Otherwise the packages generated by CPack will be incomplete.
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/StyleGuideAndNotes.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/StyleGuideAndNotes.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/StyleGuideAndNotes.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/StyleGuideAndNotes.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/CMakeLists.txt b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/CMakeLists.txt
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/CMakeLists.txt
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/CMakeLists.txt
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step00.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step00.dox
similarity index 90%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step00.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step00.dox
index 75f4cd5400..b7094eefb1 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step00.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step00.dox
@@ -1,15 +1,15 @@
/**
\page Step00Page MITK Tutorial - Step 0: Getting started
-To build the tutorials follow the \ref BuildInstructionsPage and make sure that MITK_BUILD_EXAMPLES is checked/set to ON.
+To build the tutorials follow the \ref BuildInstructionsPage and make sure that MITK_BUILD_EXAMPLES is checked/set to ON.
\imageMacro{configureCMake.PNG,"",16.00}
The tutorial source files can be found in the Examples\\Tutorial\\ subdirectory of the source tree. The tutorial executables are in the bin\\Release\\ or bin\\Debug\\ subdirectory (Windows) respectively the bin\\ subdirectory (Linux/Mac) of the binary tree after compilation (called MitkStepX, corresponding to the tutorial step).
\ref Step01Page "[Next step]" \ref TutorialPage "[Main tutorial page]"
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step01.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step01.dox
similarity index 92%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step01.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step01.dox
index b7a04677ab..3d9fb0d9f7 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step01.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step01.dox
@@ -1,27 +1,27 @@
/**
\page Step01Page MITK Tutorial - Step 1: Displaying an image
\li Path to files used in this step: \n
http://mitk.org/download/tutorial-data/Pic3D.nrrd
\imageMacro{step1_result.png,"",6.22}
Open your IDE. All steps can be found among the listed projects.
The first program shows how to display an image in a 2D view. The picture above is a screenshot of the program.
The program has to be executed using the image file Pic3D.nrrd.
-If you are using Visual Studio use the StartVS_release.bat in your bin\\ subdirectory to start it with all required paths set.
-To set the image file path in Visual Studio, right click on "MitkStep1"-project and go to 'Properties -> Configuration Properties -> Debugging'.
-Now insert the image file path to Pic3D.nrrd in the "Command Arguments" text field.
+If you are using Visual Studio use the StartVS_release.bat in your bin\\ subdirectory to start it with all required paths set.
+To set the image file path in Visual Studio, right click on "MitkStep1"-project and go to 'Properties -> Configuration Properties -> Debugging'.
+Now insert the image file path to Pic3D.nrrd in the "Command Arguments" text field.
Then right click on the "MitkStep1"-project again and select "Set as StartUp Project". Start to run the code. Use this also in the following steps.
\imageMacro{configureVisualStudioProperties.png,"",11.85}
The code is divided into parts I through V. First of all a DataTree has to be created. Then data has to be read from a file which afterwards has to be put into the tree. Part IV creates a window and passes the tree to it. The last part deals with some Qt-specific initialization.
\include Step1.cpp
\ref Step00Page "[Previous step]" \ref Step02Page "[Next step]" \ref TutorialPage "[Main tutorial page]"
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step02.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step02.dox
similarity index 95%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step02.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step02.dox
index f74f894583..49ee79f367 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step02.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step02.dox
@@ -1,34 +1,34 @@
/**
\page Step02Page MITK Tutorial - Step 2: Load one or more data sets
-
-
+
+
\li \ref Step2.cpp "Step2.cpp" \n
Contains the code for this example.
\li Path to files used in this step: \n
http://mitk.org/download/tutorial-data/Pic3D.nrrd (image) \n
http://mitk.org/download/tutorial-data/lungs.vtk (surface)
- \image html step2_result.png
-
+ \image html step2_result.png
+
\dontinclude Step2.cpp
-
+
This program shows how to load multiple data sets.
-
+
A DataNodeFactory is used to produce nodes containing the data.
The picture above shows the result of the program when reading both the image file and the surface file.
In order to obtain the result the program has to be executed using the image file Pic3D.nrrd and the surface file lungs.vtk.
The code for this example equals the code of Step 1 except for part II and part III which are changed as follows:
\skipline Part II
\until exit(2)
\line }
\line }
-
-
-
+
+
+
\ref Step01Page "[Previous step]" \ref Step03Page "[Next step]" \ref TutorialPage "[Main tutorial page]"
-
+
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step03.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step03.dox
similarity index 94%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step03.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step03.dox
index fa6556de5e..44aedf9d86 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step03.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step03.dox
@@ -1,51 +1,51 @@
/**
-
+
\page Step03Page MITK Tutorial - Step 3: Create 3D view
-
+
\li \ref Step3.cpp "Step3.cpp" \n
Contains the code that both creates a 3D view and turns volume rendering on.
\li Path to files used in this step: \n
http://mitk.org/download/tutorial-data/Pic3D.nrrd (image) \n
http://mitk.org/download/tutorial-data/lungs.vtk (surface)
As in the previous step, one or more data sets (many images, surface and other formats) may be loaded. The difference is that they are displayed in a 3D view.
-The QmitkRenderWindow is now used for displaying a 3D view, by setting the used mapper-slot to Standard3D.
+The QmitkRenderWindow is now used for displaying a 3D view, by setting the used mapper-slot to Standard3D.
Since volume-rendering is a (rather) slow procedure, the default is that images are not displayed in the 3D view.
In Step 3a the default is kept whereas in Step 3b volume rendering is turned on.
As in the previous step, to obtain the result the program has to be executed using the image file Pic3D.nrrd and the surface file lungs.vtk.
\section Step3aSection Step 3a - Volume rendering turned off
-
+
\imageMacro{step3a_result.png,"",6.22}
-
+
\dontinclude Step3.cpp
Tell the renderer to create a 3D view:
-
+
\skipline // Use it as a 3D view!
\skipline renderWindow.GetRenderer()->SetMapperID
The rest of the code remains unchanged.
The picture above shows the result of the program when reading both the image and the surface file.
As volume rendering is off the image is not visible.
-
+
\section Step3bSection Step 3b - Volume rendering turned on
-
+
\imageMacro{step3b_result.png,"",6.22}
-
+
Volume Rendering is now turned on as shown in the picture above.
-\dontinclude Step3.cpp
+\dontinclude Step3.cpp
The property "volumerendering" has to be enabled on the node containing the image.
-
+
\skipline Check
\until node->SetProperty
-
+
\ref Step02Page "[Previous step]" \ref Step04Page "[Next step]" \ref TutorialPage "[Main tutorial page]"
-
+
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step04.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step04.dox
similarity index 95%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step04.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step04.dox
index e90951aa98..32ec61e7c2 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step04.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step04.dox
@@ -1,69 +1,69 @@
/**
-
+
\page Step04Page MITK Tutorial - Step 4: Use several views to explore data
-
-\li \ref Step4.cpp "Step4.cpp"\n
+
+\li \ref Step4.cpp "Step4.cpp"\n
Contains the code of step 4a + b.
\li Path to files used in this step: \n
http://mitk.org/download/tutorial-data/Pic3D.nrrd (image) \n
http://mitk.org/download/tutorial-data/lungs.vtk (surface)
As in Step 2 and Step 3 one or more data sets may be loaded.
This now creates three views on the data.
The QmitkRenderWindow is used for displaying a 3D view as in Step 3, but without volume-rendering.
-Furthermore two 2D views for slicing through the data are created.
+Furthermore two 2D views for slicing through the data are created.
The class QmitkSliceWidget is used, which is based on the class QmitkRenderWindow, but additionally provides sliders to slice through the data. We create two instances of
-QmitkSliceWidget, one for axial and one for sagittal slicing.
+QmitkSliceWidget, one for axial and one for sagittal slicing.
Step 4b enhances the program in that the two slices are also shown at their correct position in 3D as well as intersection-line, each in the other 2D view.
As in the previous steps, to obtain the result the program has to be executed using the image file Pic3D.nrrd and the surface file lungs.vtk.
\section Step4aSection Step 4a - Create axial and sagittal view
\imageMacro{step4a_result.png,"",11.01}
\dontinclude Step4.cpp
Create a Qt horizontal box for the layout:
\skipline QHBox
Then create a renderwindow:
\skipline QmitkRenderWindow
\until SetMapperID
Create a 2D view for slicing axially:
\skipline view2
\until view2.SetData
Then create a 2D view for slicing sagitally.
\skipline view3
\until view3.SetData
The toplevelWidget is now the new main widget:
\skipline qtapplication
\skipline toplevelWidget.show
\section Step4bSection Step 4b - Display slice positions
\imageMacro{step4b_result.png,"",11.01}
We now want to see the position of the slice in 2D and the slice itself in 3D.
Therefore it has to be added to the tree:
\dontinclude Step4.cpp
\skipline ds->Add(view2.GetRenderer()
\skipline ds->Add(view3.GetRenderer()
Slice positions are now displayed as shown in the picture.
\dontinclude Step4.cpp
\ref Step03Page "[Previous step]" \ref Step05Page "[Next step]" \ref TutorialPage "[Main tutorial page]"
-
+
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step05.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step05.dox
similarity index 99%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step05.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step05.dox
index 7e7a42d57a..88b5e6dfad 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step05.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step05.dox
@@ -1,41 +1,40 @@
/**
\page Step05Page MITK Tutorial - Step 5: Interactively add points
\li \ref Step5.cpp "Step5.cpp"\n
Contains the code for this step.
\li Path to files used in this step: \n
http://mitk.org/download/tutorial-data/Pic3D.nrrd (image) \n
http://mitk.org/download/tutorial-data/lungs.vtk (surface)
In addition to Step 4 where 3 views were created on the data, we now want to interactively add points.
A node containing a PointSet as data is added to the data tree and a PointSetDataInteractor is associated with the node, which handles the interaction.
The @em interaction @em pattern is defined in a state-machine, stored in an external XML file. Thus, we need to load a state-machine.
A state machine describes interaction pattern with different states (states beeing something like "a point is selected") and transitions to these states (e.g. "select a point").
These transitions are associated with actions. In this way it is possible to model complex interaction schemes.
By what these transitions and actions are triggered is described in a configuration file. It maps user events to identifiers that are used in the state machine patterns.
In this way the user interaction can be changed by simply loading a different configuration file for a state machine, and the user may add points now with a right click instead of
left click + SHIFT, as in our case.
Therefore after loading the state machine pattern the PointSetDataInteractor is also given a event configuration file.
More information about interaction in MITK can be found \ref InteractionPage "here".
In order to add a point the shift key has to be pressed while left clicking in a render window.
You can also move points or remove them (left click while pressing ALT).
\image html step5_result.png
\dontinclude Step5.cpp
A PointSet and a node for it have to be created to be able to interactively adding points:
\skipline mitk::PointSet
\until interactor->SetDataNode(pointSetNode)
\ref Step04Page "[Previous step]" \ref Step06Page "[Next step]" \ref TutorialPage "[Main tutorial page]"
*/
-
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step06.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step06.dox
similarity index 98%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step06.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step06.dox
index e7709887ea..3a2726f266 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step06.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step06.dox
@@ -1,118 +1,118 @@
/**
\page Step06Page MITK Tutorial - Step 6: Use an interactive region-grower
The source is now split among several files:
\li \ref Step6.cpp "Step6.cpp"
\li \ref Step6.h "Step6.h"
\li \ref Step6RegionGrowing.txx "Step6RegionGrowing.txx"
\li \ref Step6RegionGrowing1.cpp "Step6RegionGrowing1.cpp"
\li \ref Step6RegionGrowing2.cpp "Step6RegionGrowing2.cpp"
\li \ref Step6main.cpp "Step6main.cpp"
\li Path to files used in this step: \n
http://mitk.org/download/tutorial-data/Pic3D.nrrd (image)
In this step the program is enhanced by the possibility to start a region-grower at interactively added points.
We will see how MITK images can be accessed as ITK images.
We now load the image file Pic3D.nrrd only since the surface will be the result of the region-growing.
Add points in the image by pressing SHIFT+left mouse key, then adjust the thresholds and press 'Start region growing'.
\imageMacro{step6_result.png,"",13.55}
-The class Step6 inherits from QWidget and provides methods for setting up the widgets.
+The class Step6 inherits from QWidget and provides methods for setting up the widgets.
Step6RegionGrowing.cpp contains a method for performing the region-growing. Step6main.cpp contains main.
Like in ITK and VTK class member names start with m_ followed by the proper member name starting with a capital letter (e.g. m_Tree).
Function names start with capital letters. To learn more about style conventions in MITK read \ref StyleGuideAndNotesPage "The MITK Style Guide".
\dontinclude Step6.cpp
The widgets are initialized as in the previous steps but with an additional QVBox for a button to start the segmentation:
\skipline Create controlsParent
\until hlayout->addWidget(m_LineEditThresholdMax)
This creates a button to start the segmentation and its clicked() signal is connected to the method StartRegionGrowing():
\dontinclude Step6.cpp
\skipline QPushButton* startButton
\skipline connect(startButton
\section AccessMTIKImagesAsITKImagesSection Access MITK images as ITK images
ITK images are templated whereas mitk::Images are not. To use ITK filters with MITK images, we have to convert from MITK to ITK. To do so, first
define an access method, which is templated as an ITK image is:
\code
template
MyAccessMethod(itk::Image* itkImage)
{
...
}
\endcode
If you don't understand this template syntax, you should read any C++ text book. Understanding template syntax is crucial to successfully using ITK.
To call this templated method with an (untemplated) mitk::Image, you can use the AccessByItk macro from mitkImageAccessByItk.h. This macro checks for
the actual image type of the mitk::Image and does any neccessary conversions. Look into "Modules / Adaptor classes" for more information.
\code
AccessByItk(mitkImage, MyAccessMethod)
\endcode
\dontinclude Step6RegionGrowing.txx
In this step our access method is called RegionGrowing() (defined in \ref Step6RegionGrowing.txx "Step6RegionGrowing.txx"):
\skipline template
\until }
\until }
Additionally the access function has to be instantiated for all datatypes and two/three dimensions as some compilers have memory problems without this explicit instantiation, some even need instantiations in separate files for 2D/3D: \n
For 2D in \ref Step6RegionGrowing1.cpp "Step6RegionGrowing1.cpp" :
\dontinclude Step6RegionGrowing1.cpp
\skipline InstantiateAccessFunctionForFixedDimension_1
... and for 3D in \ref Step6RegionGrowing2.cpp "Step6RegionGrowing2.cpp":
\dontinclude Step6RegionGrowing2.cpp
\skipline InstantiateAccessFunctionForFixedDimension_1
\dontinclude Step6.cpp
The method StartRegionGrowing() finally calls our access method RegionGrowing():
\skipline Step6::StartRegionGrowing
\until }
\section ConvertingITKMITKSection Converting ITK images to MITK images and vice versa
-In some cases it is useful to simply convert between ITK and MITK images. The direction ITK to MITK is easy, since mitk::Image can handle most data types. The direction MITK to ITK is more critical, since ITK images have to be instantiated with a fixed pixel type and fixed dimension at compile time.
+In some cases it is useful to simply convert between ITK and MITK images. The direction ITK to MITK is easy, since mitk::Image can handle most data types. The direction MITK to ITK is more critical, since ITK images have to be instantiated with a fixed pixel type and fixed dimension at compile time.
\li \code mitk::Image mitk::ImportItkImage(itk::Image<...>) \endcode
\li \code mitk::CastToItkImage(mitkImage, itk::Image<...>) \endcode
\section ConnectingMITKToVTKSection Connecting MITK images to VTK
Images are not converted or copied: The data array is just accessed via an encapsulating VTK object.
\li \code vtkImageData* mitk::Image::GetVtkImageData(int time = 0) \endcode
\section SurfacesMITKToVTKSection MITK Surfaces to VTK and vice versa
Again: not a conversion, just accessing.
\li \code vtkPolyData* mitk::Surface::GetVtkPolyData(int time = 0) \endcode
\li \code mitk::Surface::SetVtkPolyData(vtkPolyData*, int time = 0) \endcode
\ref Step05Page "[Previous step]" \ref Step07Page "[Next step]" \ref TutorialPage "[Main tutorial page]"
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step07.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step07.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step07.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step07.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step08.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step08.dox
similarity index 93%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step08.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step08.dox
index 2e3562b004..8d55a176e5 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step08.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step08.dox
@@ -1,25 +1,25 @@
/**
\page Step08Page MITK Tutorial - Step 8: Use QmitkStdMultiWidget as widget
\li \ref Step8.cpp "Step8.cpp"\n
\li \ref Step8.h "Step8.h"\n
\li \ref Step8main.cpp "Step8main.cpp"\n
\li Path to files used in this step: \n
http://mitk.org/download/tutorial-data/Pic3D.nrrd (image)
In this step a QmitkStdMultiWidget is used. It offers four views of the data.
From top left to bottom left the views are initialized as axial, sagittal and coronar. The bottom right view is initialized as 3D view.
- \image html step8_result.png
+ \image html step8_result.png
Step8 inherits from Step6. The method SetupWidgets() is changed: A QmitkStdMultiWidget is used instead of one QmitkRenderWindow and two instances of QmitkSliceWidget.
- \dontinclude Step8.cpp
+ \dontinclude Step8.cpp
\skipline Part Ia
\until EnableNavigationControllerEventListening
\ref Step07Page "[Previous step]" \ref Step09Page "[Next step]"
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step09.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step09.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step09.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step09.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step10.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step10.dox
similarity index 99%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step10.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step10.dox
index 9e1cdb4399..e863011a4d 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Step10.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Step10.dox
@@ -1,499 +1,499 @@
/**
\page Step10Page MITK Tutorial - Step 10: Adding new Interaction
\tableofcontents
\section HowToUseDataInteractor Step 01 - How to use an existing DataInteractor in your Module/Plugin/...
MITK provides finished DataInteractors for a variety of tasks, they can be found in Core/Code/Interactions. They can be used with
state machine patterns and config files located under Core/Code/Resources/Interactions.
A mitk::DataInteractor consists of four parts. The class describing the functionality and two XML files; one describes the state machine pattern, that is the workflow of an interaction and
the second describes the user events which trigger an action. Lastly every mitk::DataInteractor works on a mitk::DataNode in which it stores and manipulates data.
To use a mitk::DataInteractor these parts have to be brought together.
** TODO add code of mitk::PointSetDataInteractor Plugin ..
This code demonstrates the use of an existing mitk::DataInteractor exemplary for the mitk::PointSetDataInteractor:
First we need a mitk::DataNode in which the PointSets is stored. It has to be added to the mitk::DataStorage.
\code
mitk::DataNode::Pointer dataNode = mitk::DataNode::New();
GetDataStorage()->Add(dataNode.GetPointer());
\endcode
Then we create an instance of a mitk::PointSetDataInteractor and load a predefined statemachine pattern as well as a configuration
for it:
\code
m_CurrentInteractor = mitk::PointSetDataInteractor::New();
m_CurrentInteractor->LoadStateMachine("PointSet.xml");
m_CurrentInteractor->SetEventConfig("PointSetConfig.xml");
\endcode
Lastly the mitk::DataNode is added to the mitk::DataInteractor
\code
m_CurrentInteractor->SetDataNode(dataNode);
\endcode
now the mitk::DataInteractor is ready for usage.
\section HowToModifyInteraction Step 02 - How to modify the behaviour of a DataInteractor
The behavior of a mitk::DataInteractor is determined by two aspects. One, the state machine pattern which describes the flow/order of actions
that are performed. Secondly the configuration which determines which user interaction triggers the actions.
\subsection ModifyDisplayInteractorBehavior How to modify the display interactor behavior
Sometimes it may be desirable to change the behaviour of the mitk::DisplayInteractor which controls zooming, panning and scrolling, e.g. when a
Tool is activated that reacts to the same events. Changing the behavior of the DisplayInteractor (or possibly any other EventHandler) can be achieved from anywhere
in the code by requesting the InteractionEventObserver and assigning an alternative configuration to it, as demonstrated in this example:
\code
std::ifstream* configStream = new std::ifstream( #path to alternative configuration file# );
mitk::EventConfig newConfig(configStream);
// Requesting all registered EventObservers
std::list listEventObserver = GetModuleContext()->GetServiceReferences();
for (std::list::iterator it = listEventObserver.begin(); it != listEventObserver.end(); ++it)
{
DisplayInteractor* displayInteractor = dynamic_cast(GetModuleContext()->GetService(*it));
// filtering: only adjust the DisplayInteractor
if (displayInteractor != NULL)
{
displayInteractor->SetEventConfig(newConfig);
}
}
\endcode
\section SectionImplementationDataInteractor How to implement a new DataInteractor
This second part of the tutorial step goes beyond the activation of an interactor, that modifies data by user interaction) as shown above. It shows what needs to be implemented to add a new way of interaction within your MITK application.
Please see \ref DataInteractionPage as an introduction to the MITK interaction mechanism, you may also want to read \ref DataInteractionTechnicalPage.
This tutorial is structured as follows: The first section deals with config files, describing all the parameters of events and how to use them
in a configuration file. In the second section the basics are described that are needed to write a state machine pattern. The last section
deals with brining configuration, state machine pattern and code together and gives an exemplary implementation of a mitk::DataInteractor.
\section ConfigFileDescriptionSection How to create a Config-File
\subsection EventDescriptionSection Event Description
Events are described by their parameters. Each event type has its own set of parameters that can be set in the configuration file.
If a parameter is omitted it is set to its default value. All possible parameters are listed and described below. Event parameters
are also described in the documentation of the event class itself.
Mandatory for each event description is the event class and the event variant. The parameters of an event are set by attribute tags.
\note Refer to \ref EventClassSection for the meaning of event class.
\b Mouse \b Buttons \n
mitk::InteractionEvent::MouseButtons represent the buttons. They can be used for two attributes. First the EventButton attribute which describes
the button that triggered the event,
this always is a single button. Secondly the ButtonState attribute that describes which buttons were pressed at the moment the event has been generated.
For example assume the right mouse button and the middle mouse button are already pressed, now the left mouse button is pressed too and generates a second event,
this would be described as follows:
\code
\endcode
Note: Technically the LeftMouseButton is also pressed and should be listed in the ButtonState, but this is taken care of by the mitk::EventFactory .
Key Events \n
mitk::InteractionKeyEvent represents a pressed key, which key is pressed is provided with the Key attribute like this
\code
\endcode
or
\code
\endcode
\note Key Events do not require an explicit configuration, for all key events there exists
a predefined event variant with the name 'Std' + value, that is key a is named 'StdA'.
The names for special keys are listed here:
\dontinclude mitkInteractionEvent.h
\skipline // Special Keys
\until // End special keys
Modifier Keys \n
mitk::InteractionEvent::ModifierKeys represent the combination of pressed modifier keys, several modifier keys pressed at the same time
are denoted by listing them all separated by commas.
\code
\endcode
\b ScrollDirection \n
This attribute is unique to the mitk::MouseWheelEvent and describes the direction in which the mouse wheel is rotated. In the event description actual only the direction is provided,
but the event is generated with the actual value, and this value can be retrieved from the object.
\code
\endcode
\subsection ExamplesSection Examples
Examples for key events:
\code
\endcode
Examples for MousePress events:
\code
\endcode
There exists a standard configuration file for the most common events called GlobalConfig.xml that can be used to as a default and can be extended
by a specific definition.
\subsection ParameterDescriptionSection Parameter Description
It is also possible to store parameters in the config file. Those are stored using the param-tag, like this:
\code
\endcode
Within the application these properties can then be access via a mitk::PropertyList like this:
\code
// sm - state machine loaded with config file example2
mitk::PropertyList::Pointer properties = GetAttributes();
std::string prop1;
properties->GetStringProperty("property1",prop1);
\endcode
\section HowToStateMachine HowTo Write a State Machine
A state machine pattern is described in a XML file.
\subsection StateSection States
States are described using the state-tag. Each state has to have a name. Exactly one state has to be a start state in
each state machine to indicate the state in which the state machine is set when it is constructed.
So a valid, but rather useless state machine would like like this:
\code
\endcode
Optionally a state can be assigned a special mode that influences the event distribution.
These modes are GRAB_INPUT , PREFER_INPUT and REGULAR (where REGULAR is default and does not need to be indicated).
See \ref DataInteractionTechnicalPage_DispatcherEventDistSection for a description of these modes. Use the special modes only when necessary as they prevent other DataInteractors to
receive events.
\code
\endcode
\subsection TransitionSection Transitions
Transitions are part of a state and describe all possible state switches, and are therefore important for modeling an interaction scheme.
Transitions consist a part that describes the event which triggers the transition (event class and event variant) and a target which is state
to which the state machine switches after executing a transition.
An event class describes the event type (see mitk::InteractionEvent for the different classes) and the event variant is a specification thereof
and the exact description is taken from a config file. Together they determine which event can trigger this transition.
For example this state machine will switch from state A to state B when the StdMousePressPrimaryButton event (left mouse button is pressed) occurs.
\subsubsection EventClassSection Event Class
The event class description supports the polymorphism of the event classes. Therefore state machine patters should be written in the most
general ways possible.
So for a given class hierarchy like this:
\dot
digraph {
node [shape=record, fontname=Helvetica, fontsize=10];
a [ label="{InteractionPositionEvent}"];
b [ label="{MousePressEvent}" ];
c [ label="MouseReleaseEvent" ];
d [ label="TouchEvent", style=dotted ];
a -> b;
a -> c;
a -> d;
}
\enddot
in the state machine pattern the mitk::InteractionPositionEvent can be declared as event class to restrict to the events which hold a position information.
The actual implementation is then given in the configuration file. In this case it allows to define events of the classes mitk::InteractionPositionEvent
itself, or mitk::MousePressEvent, mitk::MouseReleaseEvent, mitk::TouchEvent.
This has the advantage that the patterns remain the same no matter what input devices are used, and the state machine patterns can be configured
for newly added event classes as long as they match the class hierarchy (this ensures they hold the necessary properties).
\code
\endcode
\subsection ActionSection Actions
Actions can be added to transitions and represent functions in the mitk::DataInteractor that are executed on taking a transition.
The following simple state machine will listen for left mouse clicks and execute two actions (and actually never stop).
\code
\endcode
In order to tell the mitk::DataInteractor which function to execute these actions are made known to the mitk::DataInteractor using
the CONNECT_FUNCTION macro. This example assumes that there exists an ExampleInteractor which inherits from mitkDataInteractor.
This class implements the functions AddPoint and CountClicks. The actions are introduced by implementing the virtual method
ConnectActionsAndFunctions():
\code
void mitk::ExampleInteractor::ConnectActionsAndFunctions()
{
CONNECT_FUNCTION("addPoint", AddPoint);
CONNECT_FUNCTION("countClicks", CountClicks);
}
\endcode
\subsection ConditionSection Conditions
Conditions can be added to transitions and represent functions in the mitk::DataInteractor that are executed on taking a transition.
A condition is used to determine if a following action should be executed or not.
\code
\endcode
In order to tell the mitk::DataInteractor which function to execute these conditions are made known to the mitk::DataInteractor using
the CONNECT_CONDITION macro. The ConnectActionsAndFunctions() method has to be augmented accordingly:
\code
void mitk::ExampleInteractor::ConnectActionsAndFunctions()
{
CONNECT_CONDITION("checkPoint", CheckPoint);
CONNECT_FUNCTION("addPoint", AddPoint);
CONNECT_FUNCTION("countClicks", CountClicks);
}
\endcode
\section ReferenceToIncludeFiles Integration of the pattern and configuration files
The usage of custom files slightly differs from the existing ones.
-Custom pattern and config files have to be stored in the /Resources/Interactions directory of the Module that they were designed for.
+Custom pattern and config files have to be stored in the /Resources/Interactions directory of the Module that they were designed for.
When loading files from a module location into an interactor, the module has to be supplied as a parameter:
-
+
\code
m_CurrentInteractor = mitk::CustomDataInteractor::New();
m_CurrentInteractor->LoadStateMachine("CustomStateMachinePattern.xml", us::GetModuleContext()->GetModule());
m_CurrentInteractor->SetEventConfig("CustomConfig.xml", us::GetModuleContext()->GetModule());
\endcode
See \ref IncludeFiles for a description.
\section HowToDataInteractor Implementation of a new mitk::DataInteractor
DataInteractors are to inherit from mitk::DataInteractor. Their functionality is implemented in functions that follow this interface:
For Actions:
\code
bool SomeFunctionality(StateMachineAction* , InteractionEvent*);
\endcode
For Conditions:
\code
bool SomeFunctionality(const InteractionEvent*);
\endcode
Your functions are connected with actions and conditions by implementing the function ConnectActionsAndFunctions(), e.g.
\code
void mitk::ExampleInteractor::ConnectActionsAndFunctions()
{
CONNECT_CONDITION("checkPoint", CheckPoint);
CONNECT_FUNCTION("addPoint", AddPoint);
CONNECT_FUNCTION("enoughPoints", EnoughPoints);
}
\endcode
Now all that is left is to write a state machine pattern and a config file as is described in the tutorials.
To provide a useful example the mitk::PointSetDataInteractor is annotated with comments that describe the important parts for an implementation
of a mitk::DataInteractor.
This step assumes knowledge of the Interaction concept described in \ref DataInteractionPage and some background of the implementation which is described in
\ref DataInteractionPageTechnical. Please refer to these pages before proceeding.
Now all that is left it to write a state machine pattern and a config file as is described in the tutorials.
\subsection ExampleInternalEvent Example Interactor using InternalEvent
A useful tool in creating DataInteractors is mitk::InternalEvent which allows the mitk::DataInteractor to send signals on its own.
The following will describe how to build a mitk::DataInteractor that allows to add points until a certain number of points is reached.
The number of accepted points is provided in the config file as a parameter.
So we start by writing a state machine pattern that add points until it receives an mitk::InternalEvent telling it, that enough points
have been added.
\code
<--! dead state, nothing happens any more, once we reached this -->
\endcode
In our config file we set the number of maximal points to 10, and define AddPointClick as a right mouse click with the
ctrl button pressed.
\code
\endcode
The implementation is described in the following. \see Step10.h \see Step10.cpp
\dontinclude Step10.h
Implementation of protected functions:
\skipline protected:
\until virtual void ConfigurationChanged();
ConnectActionsAndFunctions - Is inherited from mitk::InteractionStateMachine, here action strings from the xml are connected with
functions in the mitk::DataInteractor (as seen above). In our example this looks like this:
\dontinclude Step10.cpp
\skipline void mitk::ExampleInteractor::ConnectActionsAndFunctions()
\until }
ConfigurationChanged - Is called whenever a new configuration file is loaded (by the mitk::InteractionEventHandler super class),
this function allows to implement initialization code that depends on configuration values. In our example we want to set the limit of
allowed points:
\dontinclude Step10.cpp
\skipline void mitk::ExampleInteractor::ConfigurationChang
\until }
Next the actual functionality of the DataInteractor is implemented, by providing one function per action, following this prototype described before.
\dontinclude Step10.h
\skipline private:
\until bool CheckPoint(cons
\dontinclude Step10.cpp
\skipline bool mitk::ExampleInteractor::AddPoint(StateM
\until //-
If the conditions returns false the calling transition and the included actions will not be executed.
If a condition fails the event is considered as untreated, and will be offered to other Interactors.
\dontinclude Step10.cpp
\skipline bool mitk::ExampleInteractor::CheckPoint(
\until //end
Here we see an internal event used to signal that the point set reached the maximal number of allowed points.
The event is created and added to the Dispatchers event queue.
\dontinclude Step10.cpp
\skipline // create internal
\until positionEvent->GetSender(
\note Internal events do not need any mapping to event variants. Their signal name is equivalent with the event variant.
There are also two documented classes implementing a mitk::DataInteractor and a mitk::InteractionEventObserver which can be looked at for further
understanding:
\see mitk::PointSetDataInteractor
\see mitk::DisplayInteractor
Have fun with creating your own interaction and please think about contributing it to MITK!
If you meet any difficulties during this step, don't hesitate to ask on the MITK mailing list mitk-users@lists.sourceforge.net!
People there are kind and will try to help you.
\ref Step09Page "[Previous step]" \ref TutorialPage "[Main tutorial page]"
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Tutorial.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Tutorial.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/Tutorial.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/Tutorial.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/configureCMake.PNG b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/configureCMake.PNG
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/configureCMake.PNG
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/configureCMake.PNG
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/configureVisualStudioProperties.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/configureVisualStudioProperties.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/configureVisualStudioProperties.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/configureVisualStudioProperties.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step10_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step10_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step10_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step10_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step1_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step1_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step1_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step1_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step2_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step2_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step2_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step2_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step3a_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step3a_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step3a_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step3a_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step3b_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step3b_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step3b_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step3b_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step4a_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step4a_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step4a_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step4a_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step4b_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step4b_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step4b_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step4b_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step5_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step5_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step5_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step5_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step6_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step6_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step6_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step6_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step8_result.png b/Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step8_result.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/GettingToKnow/Tutorial/step8_result.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/GettingToKnow/Tutorial/step8_result.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/BuildInstructions.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/BuildInstructions.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/BuildInstructions.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/BuildInstructions.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/BuildToolkits.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/BuildToolkits.dox
similarity index 83%
rename from Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/BuildToolkits.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/BuildToolkits.dox
index aaa15df22a..4a3d172013 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/BuildToolkits.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/BuildToolkits.dox
@@ -1,31 +1,31 @@
/**
\page BuildToolkits Build Toolkits
If you are using the superbuild ITK and VTK will be downloaded and build during the processm by default. Only Qt will have to be build beforehand. You can of course use your own versions of ITK and VTK during the superbuild as described in BuildInstructions_Advanced_Customization .
\section BuildToolkits_ITK ITK
-For building ITK please refer to the ITK documentation
+For building ITK please refer to the ITK documentation
http://www.itk.org/Wiki/ITK_Getting_Started
\section BuildToolkits_QT QT
For detailed build instructions please refer to
http://doc.trolltech.com/4.5/installation.html
(If you are using a version other than QT 4.5 please change the link accordingly.)
\section BuildToolkits_VTK VTK
-For building VTK please refer to the VTK documentation
+For building VTK please refer to the VTK documentation
http://www.vtk.org/Wiki/VTK_Building_VTK
Please note, that you have to link VTK against your QT by checking:
- - \b VTK_USE_GUISUPPORT
- - \b VTK_USE_QVTK
+ - \b VTK_USE_GUISUPPORT
+ - \b VTK_USE_QVTK
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/HowToNewProject-MyProjectLayout.png b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/HowToNewProject-MyProjectLayout.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/HowToNewProject-MyProjectLayout.png
rename to Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/HowToNewProject-MyProjectLayout.png
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/HowToNewProject.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/HowToNewProject.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/HowToNewProject.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/HowToNewProject.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/SettingUpMITK.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/SettingUpMITK.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/SettingUpMITK.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/SettingUpMITK.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/SupportedPlatforms.md b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/SupportedPlatforms.md
similarity index 99%
rename from Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/SupportedPlatforms.md
rename to Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/SupportedPlatforms.md
index 6b3da15e32..a8459c1fc6 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/SupportedPlatforms.md
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/SupportedPlatforms.md
@@ -1,53 +1,52 @@
Supported Platforms {#SupportedPlatformsPage}
===================
MITK is a cross-platform framework and is available for the following platforms:
- Windows
- Linux/X11
- Mac OS X
Supported Platforms Details
---------------------------
The MITK team provides support for the most frequently used platforms and continuously runs testing procedures
to ensure compatibility. Due to the large amount of possible combinations of operating systems and compiler versions,
we divide platform support into two test categories (Tier 1 and Tier 2).
Although MITK may be built on a range of platform-compiler combinations, only a subset of these are actively
support by the MITK development team.
Tier 1 Platforms
----------------
All Tier 1 platforms are continuously tested by our unit test suite and other internal testing procedures.
Errors or bugs discovered in these platforms are prioritized and corrected as soon as possible.
| Platform | Compilers
| ----------------------------------- | -----------------------------
| Ubuntu Linux 12.04 (64-bit) | gcc as provided by Ubuntu
| Microsoft Windows 7 (64-bit) | MSVC 2010 Professional SP1 (x64)
| Apple Mac OS X 10.7 "Lion" | LLVM-GCC as provided by Apple
| Apple OS X 10.8 "Mountain Lion" | LLVM-GCC as provided by Apple
Tier 2 Platforms
----------------
Tier 2 platforms may or may not be tested on a regular basis. Some Tier 2 platforms are used by individual
members of the MITK development team on a daily basis and some only receive occasional testing. While we
strive to support these platforms, MITK users should note that errors may be present in released versions
as well as in the current master branch.
| Platform | Compilers
| ---------------------------------- | -----------------------------
| Fedora 20 (64-bit) | gcc as provided by Fedora
| Fedora 20 (64-bit) | Clang as provided by Fedora
| Microsoft Windows 7 (32-bit) | MSVC 2012 Express (x64)
| Apple OS X 10.9 "Mavericks" | Clang as provided by Apple (XCode)
All platforms not listed above are not officially supported by the MITK team. However, we will happily accept
contributions to improve support for other platforms.
-
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/ThirdPartyLibs.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/ThirdPartyLibs.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Starting/SettingUpMITK/ThirdPartyLibs.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/SettingUpMITK/ThirdPartyLibs.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Starting/Starting.dox b/Documentation/Doxygen/3-DeveloperManual/Starting/Starting.dox
similarity index 97%
rename from Documentation/Doxygen/DeveloperManual/Starting/Starting.dox
rename to Documentation/Doxygen/3-DeveloperManual/Starting/Starting.dox
index da29a9d229..8832e14bdd 100644
--- a/Documentation/Doxygen/DeveloperManual/Starting/Starting.dox
+++ b/Documentation/Doxygen/3-DeveloperManual/Starting/Starting.dox
@@ -1,45 +1,45 @@
/**
\page StartingDevelopment Starting your MITK Development
This Introduction will acquaint you with the most important work flows to get you started with your MITK Development.
-First, \ref Architecture will explain the difference between the application and the toolkit.
+First, \ref Architecture will explain the difference between the application and the toolkit.
\ref SettingUpMITK will get you started with a working MITK Development environment. \ref GettingToKnowMITK will walk you trough the folder structure and the module and plugin system. This chapter also contains an extensive tutorial on how to work with MITK.
The \ref FirstSteps section will then show you how to extend MITK for your own project.
- \subpage Architecture
- \subpage SettingUpMITK
- \ref SupportedPlatformsPage
- \ref BuildInstructionsPage
- \ref thirdpartylibs
- \ref HowToNewProject
- \subpage GettingToKnowMITK
- \ref DirectoryStructurePage
- \ref TutorialPage
- \ref CMAKE_FAQ
- \ref StyleGuideAndNotesPage
- \ref DocumentationGuide
- \ref CodingPage
- \ref KnownProblemsPage
- \subpage FirstSteps
- \ref NewPluginPage
- \ref NewViewPage
- \ref NewModulePage
- \ref CMAKE_FAQ
- \ref StatemachineEditor
- \subpage AboutTestingPage
*/
diff --git a/Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/GeometryMigration.dox b/Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/GeometryMigration.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/GeometryMigration.dox
rename to Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/GeometryMigration.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/InteractionMigration.dox b/Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/InteractionMigration.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/InteractionMigration.dox
rename to Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/InteractionMigration.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/MITKModuleManualsList.dox b/Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/MITKModuleManualsList.dox
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/MITKModuleManualsList.dox
rename to Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/MITKModuleManualsList.dox
diff --git a/Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/currentClasses.png b/Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/currentClasses.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/currentClasses.png
rename to Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/currentClasses.png
diff --git a/Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/oldClasses.png b/Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/oldClasses.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/Toolkit/ModuleManuals/oldClasses.png
rename to Documentation/Doxygen/3-DeveloperManual/Toolkit/ModuleManuals/oldClasses.png
diff --git a/Documentation/Doxygen/DeveloperManual/images/MitkOverview.png b/Documentation/Doxygen/3-DeveloperManual/images/MitkOverview.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/images/MitkOverview.png
rename to Documentation/Doxygen/3-DeveloperManual/images/MitkOverview.png
diff --git a/Documentation/Doxygen/DeveloperManual/images/NewModule.png b/Documentation/Doxygen/3-DeveloperManual/images/NewModule.png
similarity index 100%
rename from Documentation/Doxygen/DeveloperManual/images/NewModule.png
rename to Documentation/Doxygen/3-DeveloperManual/images/NewModule.png
diff --git a/Documentation/Doxygen/API/Groups/Modules.dox b/Documentation/Doxygen/4-API/Groups.dox
similarity index 100%
rename from Documentation/Doxygen/API/Groups/Modules.dox
rename to Documentation/Doxygen/4-API/Groups.dox
diff --git a/Documentation/Doxygen/MainPage.dox.in b/Documentation/Doxygen/MainPage.dox.in
deleted file mode 100644
index ada39d084b..0000000000
--- a/Documentation/Doxygen/MainPage.dox.in
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
-
-\mainpage Documentation
-
-\image html mitkLogo.jpg
-
-This page acts as a portal to the three different parts of the MITK-Documentation.
-
-If this is your first time around here and you are interested in learning more about MITK, please read \subpage Overview
-
-If you are a MITK end-user, please refer to the \subpage UserManualPortal
-
-If you are a developer looking for a developer's guide, please see \subpage DeveloperManualPortal
-
-*/
-
-