An easy way to use the ML is just to link the C-API (Section 6.3, “mlAPI.h”) of the ML. Functions are available to create and delete modules, to set and get their parameters (fields), to connect them and to request images from their outputs.
Example:
Requesting image data from a module causes the following (as shown in Fig. 2.4):
The Host
starts to determine the
image areas needed by Viewer
and breaks the
area down into pages.
For each page, the Host
determines
the input data the Filter
needs for output
calculation.
The Loader
requests the data (as a
set of pages) and composes the correct input data for the
Filter
.
The Filter
is called to calculate the
output page.
When Filter
has calculated the
correct output pages, they are composed to the correct image data
to be used by the Viewer
.
All pages of all modules are stored in the cache of the
MLMemoryManager
if there is enough
space.
The C-API (C-Application Programming Interface) is an interface to most C++ functionality of the ML which can be linked in standard C mode. Thus programs and applications not written in C or C++ can link and use the ML if they support standard C linkage. Also, the C-API is more stable, because it is less frequently modified than the C++ interface.
The ML supports a set of standard data types for image voxels (8,16,32,64 bit integer types and float, double) (see Section 6.5, “mlTypeDefs.h”) as well as so-called extended data types (see Chapter 7, Registered Voxel Data Types and Section 7.5.5, “Implementing a New Voxel Data Type by Deriving from MLTypeInfos”) which permit the usage of self-defined or augmented data types. It is not necessary to recompile the ML for these data types, but modules might need to be adapted depending on how they were written. A structure describing the data type, its properties, and operations can be registered in the ML to activate a new type.
© 2024 MeVis Medical Solutions AG