DSX Software Development Kit: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 59: | Line 59: | ||
:The names of the header and source files (except CMGlobalTime.cpp) can be changed in Visual Studio. New files (with new C++ classes) can be added as well. | :The names of the header and source files (except CMGlobalTime.cpp) can be changed in Visual Studio. New files (with new C++ classes) can be added as well. | ||
:The LCSExampleModule.h (or MyDllModule.h) file defines a macro that defines | ==Export directive== | ||
:The LCSExampleModule.h (or MyDllModule.h) file defines a macro that defines the export directive. When the name of the macro is changed, the LCSExampleTransform.h (or MyTransform.h) and LCSExampleFactory.cpp (or MyFactory.cpp) files need to be edited accordingly as well. Make sure the LCSEXAMPLE_EXPORT<b>S</b> entry matches the preprocessor definition in the properties of the project for both Debug and Release mode. | |||
==Algorithm class== | |||
:To implement a new LCS algorithm, one would create a C++ class like the LCSExampleTransform class; the new class would inherit from CMLCSTransformBase, and its constructor and internalUpdate() would be overloaded. The <i>m_Description</i> variable is the identifier that is displayed in the O3D gui. The <i>m_Side</i> is not yet implemented. The <i>m_Landmarks</i> variable stores the required and optional landmarks used by the algorithm. The implementation of the algorithm goes into the internalUpdate() function. | :To implement a new LCS algorithm, one would create a C++ class like the LCSExampleTransform class; the new class would inherit from CMLCSTransformBase, and its constructor and internalUpdate() would be overloaded. The <i>m_Description</i> variable is the identifier that is displayed in the O3D gui. The <i>m_Side</i> is not yet implemented. The <i>m_Landmarks</i> variable stores the required and optional landmarks used by the algorithm. The implementation of the algorithm goes into the internalUpdate() function. | ||
==Factory== | |||
:Additionally a factory class like the LCSExampleFactory is needed. The class is derived from cmFactoryBase and is used in the DSX applications to create the correct instantiation of a LCS algorithm class object from the description string that is chosen in the application. Unless the name of the factory class is changed, the header file does not need to be edited. The extern functions in the MyFactory.cpp are used by the DSX applications for some checks and the creation of the factory object during runtime. Make sure the correct class object gets created in the cmLoadFactory() function: | :Additionally a factory class like the LCSExampleFactory is needed. The class is derived from cmFactoryBase and is used in the DSX applications to create the correct instantiation of a LCS algorithm class object from the description string that is chosen in the application. Unless the name of the factory class is changed, the header file does not need to be edited. The extern functions in the MyFactory.cpp are used by the DSX applications for some checks and the creation of the factory object during runtime. Make sure the correct class object gets created in the cmLoadFactory() function: | ||
<code> | <code> |
Revision as of 13:32, 7 April 2020
Language: | English • français • italiano • português • español |
---|
To enable users of the DSX Suite to expand the suite with their own code, a DSX Software Development Kit (DSX SDK) is released with the suite. The DSX SDK comes in its own installer file and needs to be installed separately from the DSX Suite.
In order to add their own algorithms to DSX, the user would use the SDK to compile and build additional dynamic library files (dll) that most DSX applications will load during start-up.
Currently the SDK enables our DSX users to develop their own LCS algorithms that can be applied in Orient3D. We plan the expand the SDK in the future.
DSX SDK Software Requirements |
---|
|
Downloading the DSX SDK |
---|
|
Installing the DSX SDK |
---|
|
Use of the DSX SDK |
---|
Export directive
Algorithm class
Factory
|