8.8.13.7.1. Algorithm Categories and Interfaces#
You can assign to every filter- or widget-method a certain category and/or algorithm interface, the method belongs or fits to. This is useful such that itom can …
categorize your filter or widget.
is able to integrate the filter in specific parts of the GUI, e.g. the file load or save process or dialog.
might use your filters in image processing chains.
…
8.8.13.7.1.1. Algorithm Categories#
8.8.13.7.1.2. Algorithm Interfaces#
A programmer who wants to implement a filter or widget-method that fits to a specific algorithm interface can be forced by the interface to consider a certain set of rules. These rules can be:
The first n mandatory parameters can be determined. For each of these parameters the type and optionally some constraints by adding a meta information instance to the parameter are given.
The first m output parameter can be determined. Type and meta information (optional) are given as well).
The maximum number of mandatory parameters is determined, but can also be set to infinity (INT_MAX).
The maximum number of optional parameters is determined, but can also be set to infinity (INT_MAX).
The maximum number of output parameters is determined, but can also be set to infinity (INT_MAX).
The syntax or general form of the meta information string, added to the classes FilterDef or AlgoWidgetDef can be given.
If a filter or widget-method pretends to implement a certain interface, itom checks at startup if the constraints are fulfilled are if this is not the case, the filter or widget-method is rejected and cannot be used within itom. The reason for the rejection can be seen by open the dialog loaded plugins… within the help-menu of itom.
The following interfaces are available (in the enumeration tAlgoInterface, member of class ito::AddInAlgo:
8.8.13.7.1.2.1. iNotSpecified#
This is the default implementation and indicates that your filter or widget-method does not fit to any interface.
8.8.13.7.1.2.2. iReadDataObject#
Filters fitting to this interface provide the functionality to read a certain file and load its content to an instance of dataObject.
Argument limitations
Parameter group |
Max. number of parameters |
---|---|
mandatory parameters |
infinity |
optional parameters |
infinity |
output parameters |
0 |
Mandatory parameters
Parameters |
Type |
Description |
Further limitations (meta information) |
---|---|---|---|
#1 dataObject |
DObjPtr, In, Out |
DataObject, where the file is loaded to |
None |
#2 filename |
String, In |
absolute filename of the file to load |
None |
Output parameters
No -
Meta information string
This string must contain the file-filters with file-endings that this filter is able to load. Different file filters are separated by a double-semicolon (;;). Each filter begins with its name (arbitrary string), followed by a space and a sequence of file-endings within a pair of brackets. Examples are:
Images (*.bmp *.png *.jpg *.pgm)
Bitmap (*.bmp);;JPEG (*.jpg)
Text-Files (*.txt)
8.8.13.7.1.2.3. iWriteDataObject#
Filters fitting to this interface provide the functionality to export a dataObject with a specific file format.
Argument limitations
Parameter group |
Max. number of parameters |
---|---|
mandatory parameters |
infinity |
optional parameters |
infinity |
output parameters |
0 |
Mandatory parameters
Parameters |
Type |
Description |
Further limitations (meta information) |
---|---|---|---|
#1 dataObject |
DObjPtr, In |
DataObject that should be exported |
None |
#2 filename |
String, In |
absolute filename of the file |
None |
Output parameters
No -
Meta information string
This string must contain the file-filters with file-endings that this filter is able to load. Different file filters are separated by a double-semicolon (;;). Each filter begins with its name (arbitrary string), followed by a space and a sequence of file-endings within a pair of brackets. Examples are:
Images (*.bmp *.png *.jpg *.pgm)
Bitmap (*.bmp);;JPEG (*.jpg)
Text-Files (*.txt)
8.8.13.7.1.2.4. iReadPointCloud#
Filters fitting to this interface provide the functionality to read a certain file and load its content to an instance of pointCloud.
Argument limitations
Parameter group |
Max. number of parameters |
---|---|
mandatory parameters |
infinity |
optional parameters |
infinity |
output parameters |
0 |
Mandatory parameters
Parameters |
Type |
Description |
Further limitations (meta information) |
---|---|---|---|
#1 pointCloud |
PointCloudPtr, In, Out |
PointCloud, where the file is loaded to |
None |
#2 filename |
String, In |
absolute filename of the file to load |
None |
Output parameters
No -
Meta information string
This string must contain the file-filters with file-endings that this filter is able to load. Different file filters are separated by a double-semicolon (;;). Each filter begins with its name (arbitrary string), followed by a space and a sequence of file-endings within a pair of brackets. Examples are:
Images (*.bmp *.png *.jpg *.pgm)
Bitmap (*.bmp);;JPEG (*.jpg)
Text-Files (*.txt)
8.8.13.7.1.2.5. iWritePointCloud#
Filters fitting to this interface provide the functionality to export a pointCloud with a specific file format.
Argument limitations
Parameter group |
Max. number of parameters |
---|---|
mandatory parameters |
infinity |
optional parameters |
infinity |
output parameters |
0 |
Mandatory parameters
Parameters |
Type |
Description |
Further limitations (meta information) |
---|---|---|---|
#1 pointCloud |
PointCloudPtr, In |
PointCloud that should be exported |
None |
#2 filename |
String, In |
absolute filename of the file |
None |
Output parameters
No -
Meta information string
This string must contain the file-filters with file-endings that this filter is able to load. Different file filters are separated by a double-semicolon (;;). Each filter begins with its name (arbitrary string), followed by a space and a sequence of file-endings within a pair of brackets. Examples are:
Images (*.bmp *.png *.jpg *.pgm)
Bitmap (*.bmp);;JPEG (*.jpg)
Text-Files (*.txt)
8.8.13.7.1.2.6. iReadPolygonMesh#
Filters fitting to this interface provide the functionality to read a certain file and load its content to an instance of polygonMesh.
Argument limitations
Parameter group |
Max. number of parameters |
---|---|
mandatory parameters |
infinity |
optional parameters |
infinity |
output parameters |
0 |
Mandatory parameters
Parameters |
Type |
Description |
Further limitations (meta information) |
---|---|---|---|
#1 polygonMesh |
PolygonMeshPtr, In, Out |
PolygonMesh, where the file is loaded to |
None |
#2 filename |
String, In |
absolute filename of the file to load |
None |
Output parameters
No -
Meta information string
This string must contain the file-filters with file-endings that this filter is able to load. Different file filters are separated by a double-semicolon (;;). Each filter begins with its name (arbitrary string), followed by a space and a sequence of file-endings within a pair of brackets. Examples are:
Images (*.bmp *.png *.jpg *.pgm)
Bitmap (*.bmp);;JPEG (*.jpg)
Text-Files (*.txt)
8.8.13.7.1.2.7. iWritePolygonMesh#
Filters fitting to this interface provide the functionality to export a polygonMesh with a specific file format.
Argument limitations
Parameter group |
Max. number of parameters |
---|---|
mandatory parameters |
infinity |
optional parameters |
infinity |
output parameters |
0 |
Mandatory parameters
Parameters |
Type |
Description |
Further limitations (meta information) |
---|---|---|---|
#1 polygonMesh |
PolygonMeshPtr, In |
PolygonMesh that should be exported |
None |
#2 filename |
String, In |
absolute filename of the file |
None |
Output parameters
No -
Meta information string
This string must contain the file-filters with file-endings that this filter is able to load. Different file filters are separated by a double-semicolon (;;). Each filter begins with its name (arbitrary string), followed by a space and a sequence of file-endings within a pair of brackets. Examples are:
Images (*.bmp *.png *.jpg *.pgm)
Bitmap (*.bmp);;JPEG (*.jpg)
Text-Files (*.txt)
8.8.13.7.1.3. Definition of new algorithm interfaces#
At first the categories and interfaces are determined as an enumeration value in the enumerations ito::AddInAlgo::tAlgoCategory and ito::AddInAlgo::tAlgoInterface (file addInInterface.h).
The constraints and rules for every interface are implemented in the methods init and getTags of class AlgoInterfaceValidator. Besides the syntax of the meta information string all necessary information is given in the method init.