Difference between revisions of "Slicer3:Loadable Modules:HOWTO"
Line 2: | Line 2: | ||
== vtkModuleNameGUI == | == vtkModuleNameGUI == | ||
+ | |||
+ | === Required === | ||
For your vtkSlicerModuleGUI-derived class, declare and implement: | For your vtkSlicerModuleGUI-derived class, declare and implement: | ||
Line 8: | Line 10: | ||
This is necessary so that the Loadable module code does not need to cast the Logic pointer returned from the defined entry point. | This is necessary so that the Loadable module code does not need to cast the Logic pointer returned from the defined entry point. | ||
+ | |||
+ | === Optional === | ||
To add module-specific MRML events to observe, declare and implement: | To add module-specific MRML events to observe, declare and implement: |
Revision as of 20:30, 23 June 2008
Home < Slicer3:Loadable Modules:HOWTOIn order to allow a module to be detected and loaded at runtime (without explicitly being called from the main() routine in Applications/GUI/Slicer3.cxx), do the following:
Contents
vtkModuleNameGUI
Required
For your vtkSlicerModuleGUI-derived class, declare and implement:
virtual void SetModuleLogic(vtkSlicerLogic*)
This is necessary so that the Loadable module code does not need to cast the Logic pointer returned from the defined entry point.
Optional
To add module-specific MRML events to observe, declare and implement:
virtual vtkIntArray* NewObservableEvents();
To add module-specific initialization code, declare and implement:
virtual void Init();
This is useful to have your module register callbacks for Picking (See QdecModule).
vtkModuleNameLogic
To add module-specific MRML events to observe, declare and implement:
virtual vtkIntArray* NewObservableEvents();
ModuleName.txt
Create ModuleName.txt in the module's directory. ModuleName should follow the naming convention for the *GUI and *Logic classes.
For these two clases:
vtkOpenIGTLinkLogic vtkOpenIGTLinkGUI
Create:
OpenIGTLink.txt
This file contains naming directives, as well as lists dependencies. At a minimum, the module name must be specified:
Name: Open IGT Link
Additionally:
GUIName: OpenIGT Dependency: Module One Dependency: Module Two
CMakeLists.txt
Now, edit the module's CMakeLists.txt file to call the Loadable Module Generator. NOTE: The macro should be placed after TCL wrapping is done, as it adds to the source variable. For more details, check the GAD module CMakeLists.txt file, as it provides a good starting point.
For example:
generatelm(OpenIGTLink_SRCS OpenIGTLink.txt)