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/meshanimation/shakerextension/ShakerExtension.h- return "An example of mesh animation. The shaker animation motors. It shakes your mesh in all directions!";
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/sleepingwhileworking/SleepingWhileWorkingExtension.h- return "This extension shows how to directly manipulate the viewers (and pretend you are busily doing it yourself!)";
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- return "A small extension that can be used for testing how CamiTK handle AbortException in component constructor.";
components/pickme/PickMeComponent.h- return "This tutorial show how to the pointPicked(..) and cellPicked(..) method to interact directly with your component";
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)