Commit e8bde132 authored by Genial-O's avatar Genial-O
Browse files

misc: merge release 20.2.0

parents 8080b661 44d341b6
Pipeline #146269 passed with stages
in 1 minute and 13 seconds
......@@ -28,14 +28,14 @@ rst-lint:
stage: lint
script:
- pip install doc8 Pygments
- doc8 --max-line-length 120
- doc8 --max-line-length 160
markdown-lint:
image: node:alpine
stage: lint
script:
- npm install -g markdownlint-cli
- echo {\"MD013\":{\"line_length\":120}} > .markdownlint.json
- echo {\"MD013\":{\"line_length\":150}} > .markdownlint.json
- markdownlint --config .markdownlint.json .
build-doc:
......
......@@ -13,16 +13,7 @@
* Compiler: (gcc/clang/... & version)
* Build type: (debug/release)
* Commit: (current commit or tag)
* (Any related repository commit/tag e.g conan, sight, sight-doc ...)
### What is the current *bug* behavior?
(What actually happens)
### What is the expected *correct* behavior?
(What you should see instead)
* (Any related repository commit/tag e.g ...)
### Relevant logs and/or screenshots
......
### Description
(Include problem, use cases, benefits, and/or goals)
### Proposal
(How you will do it)
### Outcomes
(What could be the benefits (readability, performance, ...)
### Links / references
(Any references)
/label ~"Type:enhancement"
......@@ -4,8 +4,12 @@
### Proposal
(How you will do it)
### Links / references
(Any references)
### Documentation blurb
(Write the start of the documentation of this feature here, include:
......
## Description
(Briefly describe what this MR is about)
(Briefly describe what this merge request is about)
Closes #number
......@@ -10,15 +10,15 @@ Closes #number
## Data
(link to the needed data)
(Links to the needed data)
## Some results
(Some interesting results, screenshot, perfs, ...)
(Some interesting results, screenshots, perfs, ...)
## Additional tests to run
## Additional tests/tasks to run
(If you need some specific test e.g Windows compilation...)
(If you need some specific tests/tasks...)
- [ ] Build on Windows
- [ ] Additional test 1
- [ ] ...
......@@ -70,7 +70,7 @@ It parses the profile and configuration xml file to build it.
How can I debug my program ?
=============================
First, you can watch the log of the application. Under Windows platform,
First, you can watch the log of the application. On the Windows platform,
log messages are saved on filesystem in **SLM.log** file, in the working directory.
On other systems, they are displayed in the terminal.
......@@ -132,7 +132,7 @@ What is a camp path ?
======================
A **camp path** (also called sesh@ path) is a path used to browse an object (and sub-object)
using the introspection (see fwDataCamp and :ref:`Serialization`).
using the introspection (see fwDataCamp and :ref:`SADSerialization`).
The path begins with a '@' or a '!'.
- ``@`` : the returned string is the fwID of the sub-object defined by the path.
......
......@@ -5,4 +5,4 @@ Frequently Asked Questions (FAQ)
.. toctree::
:maxdepth: 2
FAQ-Sight.rst
Sight.rst
.. _xmlApplication:
****************************************
How to create a XML based application ?
****************************************
......@@ -22,10 +20,10 @@ The second difference is the line:
moduleParam(appXml PARAM_LIST config PARAM_VALUES tutoDataServiceBasicConfig)
It defines the main configuration to be launched by the application (see :ref:`Properties.cmake`).
It defines the main configuration to be launched by the application (see :ref:`HowTosCMakeProperties.cmake`).
The main configuration should be written in the ``plugin.xml`` file
in a ``<extension implements="::fwServices::registry::AppConfig">`` tag (see :ref:`tuto01`).
in a ``<extension implements="::fwServices::registry::AppConfig">`` tag (see :ref:`TutorialsTuto01Basic`).
.. _profile.xml:
......@@ -44,20 +42,19 @@ but hopefully you do **not** have to write it yourself.
The Properties.cmake of an application generates automatically a ``profile.xml``.
Here is for example the ``profile.xml`` generated for :ref:`tuto01`.
Here is for example the ``profile.xml`` generated for :ref:`TutorialsTuto01Basic`.
.. code-block:: xml
<!-- WARNING, this file is GENERATED by Sight CMake-based build system from CMake/build/profile.xml.in -->
<!-- DO NOT EDIT MANUALLY !!! -->
<profile name="Tuto01Basic" version="0.1" check-single-instance="false">
<profile name="Tuto01Basic" version="0.2" check-single-instance="false">
<activate id="Tuto01Basic" version="0.1" />
<activate id="Tuto01Basic" version="0.2" />
<activate id="appXml" version="0.2" >
<param id="config" value="tutoBasicConfig" />
<param id="config" value="Tuto01Basic_AppCfg" />
</activate>
<activate id="dataReg" version="0.1" />
<activate id="gui" version="0.1" />
<activate id="guiQt" version="0.1" />
<activate id="servicesReg" version="0.1" />
......
.. _HowCMake:
.. _HowTosCMake:
How to use CMake with sight ?
===============================
......@@ -15,8 +15,6 @@ Each project (apps, modules, libs) has two "CMake" files:
- CMakeLists.txt_
- Properties.cmake_
.. _CMakeLists.txt:
CMakeLists.txt
---------------
......@@ -67,7 +65,7 @@ and ``target_link_libraries`` CMake commands but with ``PUBLIC`` set instead of
Eventually, you can also add custom properties to your target with ``set_target_properties``.
.. _Properties.cmake:
.. _HowTosCMakeProperties.cmake:
Properties.cmake
-----------------
......
.. _HowTosModuleCreation:
*******************************************************************
How to create a module, a lib, an executable or an application ?
*******************************************************************
......@@ -5,13 +7,11 @@ How to create a module, a lib, an executable or an application ?
In sight, the modules, libraries, applications and executables are folders containing:
- [required] two files to generate the *CMake* target: ``CMakeLists.txt``
and ``Properties.cmake`` (see :ref:`HowCMake`).
and ``Properties.cmake`` (see :ref:`HowTosCMake`).
- [optional] *include* and *src* folder to contain the header and source files.
- [optional] *rc* folder to contain resources and XML configuration files
- [optional] *test* folder to contain the unit tests
.. _moduleCreation:
How to create a module ?
==========================
......@@ -23,8 +23,6 @@ In sight, you will encounter two types of modules:
It is possible to contain at the same time configurations and services (or C++ code), but for the sake of clarity and
reusability we recommend to separate the two.
.. _configModule:
XML configurations modules
--------------------------
......@@ -66,7 +64,7 @@ A module could contain several configurations, they are in the ``plugin.xml`` fi
<plugin id="dataManagerConfig" version="@PROJECT_VERSION@" >
<requirement id="dataReg" />
<requirement id="preferences" />
<requirement id="servicesReg" />
<!-- ... extensions ... -->
......@@ -79,7 +77,7 @@ The ``<requirement>`` tags contain the modules that must be started before to st
Then the extensions are defined. There are different types of extensions, the most common are:
- ``::fwServices::registry::AppConfig`` to define configurations for applications (see :ref:`tuto01`)
- ``::fwServices::registry::AppConfig`` to define configurations for applications (see :ref:`TutorialsTuto01Basic`)
- ``::fwActivities::registry::Activities`` to define activities
- ``:fwServices::registry::ServiceConfig`` to define configurations of services (mostly used to configure readers/writers)
- ``::fwServices::registry::ServiceFactory`` to define services
......@@ -90,8 +88,6 @@ Then the extensions are defined. There are different types of extensions, the mo
To separate the configuration in several files, you can use ``<xi:include href="..." />``
.. _serviceModule:
Service modules
----------------
......@@ -99,7 +95,7 @@ You don't need to create the ``plugin.xml`` file for the module that contains on
it will be automatically generated.
A ``CMake`` script parses the services macro and doxygen
to generate the ``::fwServices::registry::ServiceFactory`` extension
(see :ref:`serviceCreation` and :ref:`serviceNotFound`)
(see :ref:`HowTosServiceCreation` and :ref:`HowTosTroubleshootingServiceNotFound`)
The module contains the service header files in the `include` folder and the `source` files in the `src` folder.
It must also contain a ``Plugin`` class used to register the module.
......
.. _HowTosQtCreatorSetup:
***************************************
How to configure QtCreator on Windows ?
***************************************
......
.. _serviceCreation:
.. _HowTosServiceCreation:
*************************
How to create a service ?
......@@ -261,4 +261,4 @@ In C++ you must register the image with a third parameter as "true":
.. tip::
If you have some problem to use your service in your application, see :ref:`serviceNotFound`.
If you have some problem to use your service in your application, see :ref:`HowTosTroubleshootingServiceNotFound`.
......@@ -2,15 +2,11 @@
How to fix my bug?
*************************
.. _dataNotFound:
My data is not found
-----------------------
#. Is the data properly written in your XML configuration? Don't forget the ``::``.
#. Is the xxDataReg module in your application/activity requirement?
Where xxDataReg is the module that register the library containing your data (dataReg, arDataReg, ...).
.. _serviceNotFound:
.. _HowTosTroubleshootingServiceNotFound:
My service is not found
-------------------------
......@@ -18,7 +14,7 @@ My service is not found
#. Did you call ``cmake`` after adding the new files?
You need to call ``cmake .`` in your build repository to ensure that the files are built.
#. Is the module of your service added in your application/activity Properties.cmake?
#. Is the module properly registered? See :ref:`moduleCreation`
#. Is the module properly registered? See :ref:`HowTosModuleCreation`
#. Is the plugin.xml properly generated?
For example with a module named ``myModule`` with version ``0.2`` containing the service ``SMyService``:
......@@ -31,7 +27,6 @@ It must be written in ``<build_dir>/share/myModule_0.2/plugin.xml``
<plugin id="myModule" class="::myModule::Plugin" version="0.2" >
<library name="myModule" />
<requirement id="dataReg"/>
<requirement id="servicesReg"/>
<extension implements="::fwServices::registry::ServiceFactory">
......@@ -75,9 +70,7 @@ All the services of the module and their objects should be present in this file.
.. note::
To generate the ``plugin.xml`` and the ``registerServices.cpp`` a ``CMake`` script will parse the services macro and doxygen.
Make sure that they are properly written (see :ref:`serviceCreation`).
.. _activityNotFound:
Make sure that they are properly written (see :ref:`HowTosServiceCreation`).
My activity is not found
-------------------------
......
......@@ -5,10 +5,10 @@ How-Tos
.. toctree::
:maxdepth: 2
HowTo-CMake.rst
HowTo-ServiceCreation.rst
HowTo-ModuleCreation.rst
HowTo-ApplicationCreation.rst
HowTo-DepsCreation.rst
HowTo-troubleshooting.rst
HowTo-QtCreatorSetup.rst
CMake.rst
ServiceCreation.rst
ModuleCreation.rst
ApplicationCreation.rst
DepsCreation.rst
Troubleshooting.rst
QtCreatorSetup.rst
.. _Installation:
Installation
============
......@@ -283,13 +285,12 @@ The following programs may be helpful for your developments:
* `QT Creator <https://download.qt.io/official_releases/qtcreator/>`_:
QT Creator is a multi-OS Integrated Development Environment (IDE) for computer programming.
You can find a setup tutorial here :ref:`qtcreatorsetup`.
.. group-tab:: Windows
* `QT Creator <https://download.qt.io/official_releases/qtcreator/>`_:
QT Creator is a multi-OS Integrated Development Environment (IDE) for computer programming.
You can find a setup tutorial here :ref:`qtcreatorsetup`.
You can find a setup tutorial here :ref:`HowTosQtCreatorSetup`.
* `Notepad++ <http://notepad-plus-plus.org/>`_:
Notepad++ is a free source code editor, which is designed with syntax highlighting functionality.
* `ConsoleZ <https://github.com/cbucher/console/wiki/Downloads>`_:
......
......@@ -5,7 +5,7 @@ Introduction
.. toctree::
:maxdepth: 2
src/sight-applications.rst
src/sight-features.rst
src/sight-samples.rst
src/applications.rst
src/features.rst
src/samples.rst
******************
Sight applications
******************
************
Applications
************
---------
--------
VRRender
---------
--------
**VRRender** is a medical image and segmentation viewer, containing all the previous features.
......
**************
Sight features
**************
********
Features
********
-------------
Main features
......
*******
Samples
*******
=========
Tutorials
=========
This is where you should start learning sight. These tutorials assume you have no previous experience except knowledge
of c++ and how to set up a sight project.
---
XML
---
These tutorials explain how to create basic applications and generic scenes in XML.
====================================================================== ===============================================
Name Concept
====================================================================== ===============================================
:ref:`Tuto01Basic<TutorialsTuto01Basic>` Basic application
:ref:`Tuto02DataServiceBasic<TutorialsTuto02DataServiceBasic>` Simple image reading and rendering
:ref:`Tuto03DataService<TutorialsTuto03DataService>` Image reading and rendering with signal communication
:ref:`Tuto04SignalSlot<TutorialsTuto04SignalSlot>` Scenes with 3 point of view synchronized with signal communication
:ref:`Tuto05Mesher<TutorialsTuto05Mesher>` Simple mesher from a 3D image
:ref:`Tuto06Filter<TutorialsTuto06Filter>` Simple image filter
:ref:`Tuto07GenericScene<TutorialsTuto07GenericScene>` Scene with multi-object rendering
Tuto08MesherWithGenericScene Scene with multi-object rendering and simple mesher
:ref:`Tuto09MatrixTransformInGS<TutorialsTuto09MatrixTransformInGS>` Scene with matrix transformation
Tuto10LaunchBasicConfig Simple image rendering and a configuration with a scene and the same image
Tuto11Picker Scene with an image picker
Tuto12Scene2D Scene with a 2D reandering.
Tuto13Multithread Multi-threading using sight worker
Tuto14Gui Application containing gui feature (toolbar, menu, action)
Tuto15Matrix Simple matrix transformation applies on a mesh
Tuto16SceneQt3D Basic Qt 3D scene displaying a mesh
:ref:`Tuto17SimpleAR<TutorialsTuto17SimpleAR>` Aplication showing a basic sample of augmented reality
====================================================================== ===============================================
---
C++
---
These tutorials explain how to create basic applications and generic scenes in C++.
====================================== ================================================================
Name Concept
====================================== ================================================================
Tuto01DataServiceBasicCpp Simple image reading and rendering
Tuto02GenericSceneCpp Scene with multi-object rendering
Tuto03MesherWithGenericSceneCpp Scene with multi-object rendering and simple mesher
Tuto04MeshGeneratorCpp Scene allowing meshes deformation
Tuto05MultithreadConsoleCpp Multi-threading using sight worker without XML configuration
Tuto06SceneQt3DCpp Basic Qt 3D scene displaying a mesh
====================================== ================================================================
---
QML
---
These tutorials explain how to create basic applications and generic scenes in QML.
====================================== ================================================================
Name Concept
====================================== ================================================================
Tuto01BasicQml Basic application
Tuto02DialogQml Application showing all dialogs types
Tuto03GenericSceneQml Scene with multi-object rendering
Tuto04MesherWithGenericSceneQml Scene with multi-object rendering and simple mesher
Tuto05EditorQml Simple editor
Tuto06GuiQml Application containing gui feature (toolbar, menu, action)
Tuto07SceneQt3DQml Basic Qt 3D scene displaying a mesh
====================================== ================================================================
========
Examples
========
This is where you can find more advanced applications.
---
AR
---
====================================== ================================================================
Name Concept
====================================== ================================================================
ExDetectCamMotion Detect a camera motion
ExFrameByFrame Play a video frame by frame
ExHybridMarkerTracker
ExIgtl Some of the *openIGTLink* features
ExOgreRGBDStream Play a RGBD stream (from a RGBD camera or recorded images)
ExOpenvslam Slam using OpenVSLAM
ExRealSense
ExRGBDImageMasking
ExRGBDManualAR
ExSolvePnP Register a mesh on a video using SolvePnp (with user interaction)
ExStereoARCV
ExVideoFiltering Video filtering
ExVideoRecorder Record a video
ExVideoTracking Basic marker tracking on a video
====================================== ================================================================
----
Core
----
====================================== ================================================================
Name Concept
====================================== ================================================================
ExActivities Basic activities
ExActivitiesQml Basic activities using QML
ExDump Memory management
ExTimeline Basic producer-consumer pattern sample with timeLine data
====================================== ================================================================
----------------
Image processing
----------------
====================================== ================================================================
Name Concept
====================================== ================================================================
ExDicomSegmentation
ExImageMix
ExImageSubstraction
ExRegistration
====================================== ================================================================
---
UI
---
====================================== ================================================================
Name Concept
====================================== ================================================================
ExNotifications UI notifications
ExSParameters Showing how to play with multiple UI parameters
====================================== ================================================================
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment