Vous avez reçu un message "Your GitLab account has been locked ..." ? Pas d'inquiétude : lisez cet article https://docs.gricad-pages.univ-grenoble-alpes.fr/help/unlock/

Commit 080dd463 authored by Emmanuel Promayon's avatar Emmanuel Promayon
Browse files

Update docs/Getting Started/Examples and Tutorials/CamiTK_development_tutorial.md

parent cf2cfcde
Pipeline #27529 passed with stages
in 30 seconds
#CamiTK Development Tutorial
The following set of tutorials will show you how you could use CamiTK for development.
Remember the [[coding guidelines | coding guidelines]]
We hope that they will help you in your discovery of CamiTK and its numerous capabilities.
If you have any problems/doubts/comments regarding the following tutorials, please do not hesitate to [[ask for help | ask for help]].
If you have any problems/doubts/comments regarding the following tutorials, please do not hesitate to [ask for help](Getting%20Started/CamiTK%20Overviews/How_To_Ask_For_Help.md).
| Wizard | Developing | Testing |
| --- | ---------- | ------- |
| <ul><li>How to create a component</li><li>How to create an action</li><ul><li>How to add a VTK Widget to an action</li><li>How to add your own Qt Widgets to your action</li><li>How to display new object in a CamiTK action</li><li>How to add Qt Widgets as additional action parameters for actions</li><li>created using the CamiTK wizard</li></ul></ul> | <ul><li>CamiTK extensions code examples</li><li>How to export/import DLL into CamiTK</li><li>How to create an application</li><li>Check memory leaks</li><li>Step by step creation of a segmentation tool</li></ul> | <ul><li>Testing in CamiTK</li></ul> |
## Tutorial source
The tutorial CEP is provided with the CamiTK Community Edition. It contains some examples that could help you develop your own extension:
| Type | Name | What does it demonstrates? | Source Code |
| ---- | ---- | -------------------------- | ----------- |
| Action | averagevoxelvalues | (image) Compute the average voxels value in the neiborhoods of the currently selected voxel | `tutorial/actions/averagevoxelvalues` |
actions/averagevoxelvalues/AverageVoxelValuesExtension.h: virtual QString getDescription() {
actions/averagevoxelvalues/AverageVoxelValuesExtension.h- return "Extensions for Biopolis developers";
averagevoxelvalues meshanimation properties selection vtkwidget
basicpicking hardcodedpipeline meshpointdata pythonscripting sleepingwhileworking
actions/selection/MeshSelection.h: virtual QString getDescription() {
actions/selection/MeshSelection.h- return "This extension shows how to work with the mesh selection";
actions/meshanimation/shakerextension/ShakerExtension.h: virtual QString getDescription() {
actions/meshanimation/shakerextension/ShakerExtension.h- return "An example of mesh animation. The shaker animation motors. It shakes your mesh in all directions!";
actions/hardcodedpipeline/HardCodedPipelineExtension.h: virtual QString getDescription() {
actions/hardcodedpipeline/HardCodedPipelineExtension.h- return "Demo that apply two actions from another action";
actions/basicpicking/BasicPickingExtension.h: virtual QString getDescription() {
actions/basicpicking/BasicPickingExtension.h- return "This is a basic picking tutorial/demo extension.<br/>It contains two actions demonstrating one way to get information on mesh or images using picking (clicking on the object in the 2D/3D interactive viewers).";
actions/properties/PropAction.cpp: newProp = new Property(propName, propValue, actionParam->getDescription(), "");
actions/properties/PropAction.cpp- }
actions/properties/PropAction.cpp: newProp = new Property(propName, (Enumeration) propValue.toInt(), actionParam->getDescription(), "");
actions/properties/PropAction.cpp- }
actions/properties/PropertiesExtension.h: virtual QString getDescription() {
actions/properties/PropertiesExtension.h- return "Extensions that manipulates component dynamic properties";
actions/sleepingwhileworking/SleepingWhileWorkingExtension.h: virtual QString getDescription() {
actions/sleepingwhileworking/SleepingWhileWorkingExtension.h- return "This extension shows how to directly manipulate the viewers (and pretend you are busily doing it yourself!)";
actions/meshpointdata/MeshPointData.h: virtual QString getDescription() {
actions/meshpointdata/MeshPointData.h- return "This extension shows how to show/hide mesh point data using a color scale";
actions/vtkwidget/VtkWidgetExtension.h: virtual QString getDescription() {
actions/vtkwidget/VtkWidgetExtension.h- return "This is a a simple action extension containing one action to show how to add a vtk 3D widget in a viewer (a VTK Widget is an type of interaction directly available in a VTK renderer window).";
components/abort/AbortExtension.cpp:// --------------- getDescription -------------------
components/abort/AbortExtension.cpp:QString AbortExtension::getDescription() const {
components/abort/AbortExtension.cpp- return "A small extension that can be used for testing how CamiTK handle AbortException in component constructor.";
components/abort/AbortExtension.h: virtual QString getDescription() const;
components/pickme/PickMeComponent.h: virtual QString getDescription() const {
components/pickme/PickMeComponent.h- return "This tutorial show how to the pointPicked(..) and cellPicked(..) method to interact directly with your component";
components/mixed/MixedExtension.h: virtual QString getDescription() const;
components/mixed/MixedExtension.cpp:// --------------- getDescription -------------------
components/mixed/MixedExtension.cpp:QString MixedExtension::getDescription() const {
components/mixed/MixedExtension.cpp- return "A small extension that integrates mha and vtk together, i.e <em>.mixed</em> files in <b>CamiTK</b>.<br/>(very few support!)";
## Other tutorials
This wiki contains additional how-tos:
- [how to add Qt Widgets as additional action parameters for actions created using the CamiTK wizard](Getting Started/Examples and Tutorials/How_to_add_Qt_Widgets_as_additional_action_parameters_for_actions_created_using_the_CamiTK_wizard.md)
- [How to add your own Qt Widgets to your action](Getting Started/Examples and Tutorials/How_to_add_your_own_Qt_Widgets_to_your_action.md)
- [A step by step guid to create a segmentation tool that lets you manually segment an image by drawing along the contours of the objects of interest, similarly to ITK-SNAP](Getting%20Started/Examples%20and%20Tutorials/Create_a_manual_segmentation_tool.md)
Markdown is supported
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