CamiTK_development_tutorial.md 4.06 KB
Newer Older
1
2
3
4
#CamiTK Development Tutorial

The following set of tutorials will show you how you could use CamiTK for development.

5
If you have any problems/doubts/comments regarding the following tutorials, please do not hesitate to [ask for help](../../CamiTK%20Overviews/How_To_Ask_For_Help).
6

7
<!--
8
9
10
| 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> |
11
12
13
14
15
16
17
18
-->

## 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 |
| ---- | ---- | -------------------------- | ----------- |
19
20
| Action | averagevoxelvalues | (image) Compute the average voxels value in the neiborhoods of the currently selected voxel | `tutorials/actions/averagevoxelvalues` |
| Action | basicpicking | (image and mesh) A basic picking demo extension. It contains two actions demonstrating one way to get information on mesh or images using picking (i.e., clicking on the object in the 2D/3D interactive viewer) | `tutorials/actions/basicpicking` |
21
| Action | hardcodedpipeline | (misc) Demo how to apply/run two actions from another one using a hard-coded pipelines | `tutorials/actions/hardcodedpipeline` |
22
23
24
25
26
27
28
29
30
31
32
| Action | meshanimation | (mesh) Demo how to "animate" a mesh (i.e., dynamically apply displacements to a mesh). Shows three ways of doing this: basic animation, with a timer and using an external library (see the `shakerlib` library)  |  `tutorials/actions/meshanimation` |
| Action | meshpointdata | (mesh) Demo how to (programmatically) show/hide mesh point data using a color scale  |  `tutorials/actions/meshpointdata` |
| Action | properties | (misc) Demo how to create various type of action parameters and manipulates component dynamic properties (for instance add some dynamic properties in an action) |  `tutorials/actions/properties` |
| Action | selection | (mesh) Demo how to work with the mesh selection |  `tutorials/actions/selection` | 
| Action | sleepingwhileworking |(viewer and image) Demo how to directly manipulate the viewers to change the camera and selected slice in an 3D image (and pretend you are busily doing it yourself!) |  `tutorials/actions/` |
| Action | vtkwidget | Demo how to add a VTK 3D widget in a viewer (a VTK widget is a type of interactor directly available in a 3D VTK renderer window) |  `tutorials/actions/vtkwidget` |
<!-- | Action | pythonscripting | |  `tutorials/actions/pythonscripting` | -->
| Component | mixed | Demo how to integrate an image (`.mha`) and a mesh (`.vtk`) together in a same top-level component | `tutorials/components/mixed` |
| Component | pickme | (mesh) Demo how to use `pointPicked(..)` and `cellPicked(..)` methods to interact directly with a component | `tutorials/components/pickme` | 
| Component | abort | Demo how CamiTK handle `AbortException` in component constructor. | `tutorials/components/abort` | 
<!-- TODO : app, and viewer tutorials 
33

34

35

36
37
38
39
40
41
42
-->


## Other tutorials

This wiki contains additional how-tos:

43
- [how to add Qt Widgets as additional action parameters for actions created using the CamiTK wizard](../How_to_add_Qt_Widgets_as_additional_action_parameters_for_actions_created_using_the_CamiTK_wizard)
44
- [How to add your own Qt Widgets to your action](../How_to_add_your_own_Qt_Widgets_to_your_action)
45
- [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](../Create_a_manual_segmentation_tool)
46
47