Modularity

 

SliceOmatic is designed to be modular. Every class, tool, mode and most menus in the program is contained in an individual DLL file. Removing or adding DLL files in the sub-directories planned for this will remove or add the corresponding module from the program.

 

The DLLs

 

Depending on their function, the DLL libraries associated with the program will be stored in one of 12 folders:

 

The same folder as the executable

Here we will find libraries that are necessary to the program and all the other DLLs. 

These are: 

Lib_3D.dll. This library contains the functions to read/write and manipulate 3D geometries.

Lib_Convert.dll. This library contains all the format converters that enable TomoVision's product to understand the image formats from more than 40 different scanners.

Lib_DICOM.dll. This library contains all the DICOM manipulation functions.

Lib_Plot.dll. This library contains the functions to draw 2D plots.

Lib_Progress.dll. This library contains the functions that are used in the progress report windows and in the progress bar.

Lib_Tools.dll. This library contains the TomoVision's tools (buttons, sliders...)

Lib_Util.dll. This library contains the basic TomoVision functions such as string manipulation, memory allocation and error reporting functions.

Lib_VR_Measures.dll. This library contains the tools use to make measurements in VR.

Lib_VR_Tools.dll. This library contains the VR versions of the TomoVision's tools.

Module_Browser.dll. This library is used to create the DICOM, Medi and script browsers.

Module_Config.dll. This library is used to manipulate the configuration menu.

Module_Cuda.dll. This library is used to talk to your GPU (if it support Cuda).

Module_MarchingCube.dll.  This library is used to create 3D geometries from voxels.

Module_Protected_0.dll. This library is protected with the HASP key and will only work if you have a valid license. It contains the functions to save sliceOmatic's data.

Module_Protected_1.dll. This version of the protected library is used is your dongle support remote loggin.

Module_Structure.dll. This library contains all the functions that are used by the other DLLs of sliceOmatic.

Module_Tools.dll.  This is the library containing the more advanced tools used by sliceOmatic (brush selection, TAG selection...).

Module_Update.dll.  This library is used by the "Ultrasound" modes and a few other tools that use Cuda.

hasp_windows_x64_xxx.dll. This is a library provided by the HASP key manufacturer. SliceOmatic needs it to access the license key.

 

The SliceO_System folder

          Here we place all the "system" DLLs.  Those are DLLs that perform basic operations and that sliceOmatic could difficultly live without, such as reading files, the basic TAG operations...

The SliceO_Menu and SliceO_Additional_Menu folders

          Here we place all the DLLs that create the different "File" menu option.

The SliceO_Config and SliceO_Additional_Config folders

          Here we place all the DLLs that create the different options in the "File\Config" interface.

The SliceO_Class and SliceO_Additional_Class folders

In these folder we have one DLL for each class that can be used in the database tree (except, Root and Frame that are contained in sliceO_Structure.dll).

The SliceO_Tool and SliceO_Additional_Tool folder

In this folder we have one DLL per tool used in sliceOmatic.  Note that not all tools have a graphic interface, so there are more DLLs than what you see in the Tools menu.

The SliceO_Mode and SliceO_Additional_Mode folders

In these folder you have one DLL per Mode.

The SliceO_Interface folder

This folder contain the text for all the modules used in sliceOmatic.  The "Eng" sub directory contain the English version of the interface.

 

 

Additional Modules

 

It is very easy to add new modules to the program. Just create a DLL for it and place it in the appropriate sub-directory ("sliceO_Additional_...). The next time sliceOmatic is started, the new module will be available in the different menus.

 

License:

 

Additional modules will only be loaded in the program if the sliceOmatic Module license is present. In demo mode they will not be available.

 

Additional modules can be protected by sliceOmatic's license system if so desired. If a developer does not want his module to be freely available, he can ask TomoVision for a license code. He will be provided with a code specific to his module and a license generating program to create user licenses for his module. The generated user licenses can then be read by the TomoVision_License program and incorporated in the license dongle.