Kernel SDK Developer's Guide > Getting Started Using Kernel SDK > Determining which Libraries to Use
Determining which Libraries to Use

Core Components

Kernel Platform comprises the following core components:

  • TD_Alloc — Memory allocation.
  • TD_Root — Core functionality.
  • TD_DbRoot — Common database functionality.
  • TD_Ge — Geometry classes (OdGe*).
  • TD_Gi — Entity vectorization classes (OdGi*).
  • TD_Gs — Graphical system classes (OdGs*).
  • TD_SpatialIndex — Spatial indexing support (OdSi*).

Client applications normally must link in each of these libraries when building all but the most trivial applications.

The following list details optional modules that should be used according to client application requirements.

Memory Allocation

The TD_Alloc module contains default implementations of the odrxAlloc, odrxRealloc, and odrxFree functions, as well as operator new and operator delete. Clients must either link in TD_Alloc, or provide their own implementation of these memory functions. See ExAlloc sample.

Rendering Support

You must link your rendering client applications with the following libraries, in addition to the core libraries at least one of:

  • WinBitmap — Bitmap rendering.
  • WinDirectX — DirectX rendering.
  • WinGDI — WinGDI rendering.
  • WinOpenGL — OpenGL rendering.
  • GLES2 — OpenGL ES 2.0 rendering.
  • WinComposite — This is a meta rendering device. It allows using different rendering devices in the same layout. For example WinGDI for 2-optimized view and WinDirectX or WinOpenGL for 3d views.

ACIS Vectorization and Conversion Support

If support for ACIS vectorization and conversion between various versions of ACIS data is required (for example, when saving a recent .dwg file to a DXF format file of version 2000, the SAB data from the .dwg file will need to be converted to a previous version of SAT), the following modules can be used:

  • TD_Br — B-Rep traversal support.
  • TD_AcisBuilder — Conversion of SAT/SAB data (SAT <-> SAB, version changes, etc.).
  • TD_BrepRenderer — Vectorization support for ACIS data.

ACIS support is a module, and can be enabled in static applications by linking in the the above libraries, and registering "ModelerGeometry" using the ODRX_DEFINE_STATIC_APPLICATION macro. For the DLL version of the Kernel, place the ModelerGeometry.tx module in the same directory as the Kernel DLLs (no explicit registration required).

Exports

Clients using export features must link in these libraries according to the desired file format:

  • TD_ColladaExport — Collada export module.
  • TD_Dwf7Export — DWF export module.
  • TD_HoopsExport — HOOPS export module.
  • TD_PdfExport and PdfToolkit — PDF export modules.
  • TD_RasterExport — Raster export module.
  • TD_STLExport — STL export module.
  • TD_SvgExport — SVG export module.

Raster File Support

To support raster files, include these modules:

  • RasterProcessor
  • RxRasterSerices

Support for the vectorization of raster images can be obtained by linking in the RxRasterServices module (for static applications), and registering "RxRasterServices" using the ODRX_DEFINE_STATIC_APPLICATION macro. For the DLL version of the Kernel, place the RxRasterServices.tx module in the same directory as the Kernel DLLs (no explicit registration required).

OLE Support

Vectorization support for OLE objects on Windows can be obtained by including this module:

  • OdOleItemHandler

Source for this module is located in Examples/win/OleItemHandler. OLE support can be enabled by linking in the OdOleItemHandler module and registering "OdOleItemHandler" using the ODRX_DEFINE_STATIC_APPLICATION macro. For the DLL version of the Kernel, place the OdOleItemHandler.tx module in the same directory as the Kernel DLLs (no explicit registration required).

Font Support

Platforms other than 32-bit or 64-bit Windows must use the Freetype TrueType font vectorization module:

  • TD_FtFontEngine

PointCloud Entities Support

To support point cloud entities, the following extension module must be included:

  • AcDbPointCloudObj

PlotSettings

To include support for plot settings, include this module:

  • PlotSettingsValidator

Plot Styles

To include support for plot styles, include this module:

  • PlotStyleServices

Multithreading support

The following extension module provides the thread pool implementation/.

  • ThreadPool

Third-Party Libraries

Library Description Version License
FreeImage Raster files reading/writing/conversion (Raster Services) 3.18.0 FreeImage Public License
FreeType TTF fonts support (non-Windows platforms) 2.10.0 BSD-style / GNU
DWFToolkit DWF files reading/writing (import, export, DwfDb) 7.7 Autodesk® license for DWF Toolkit
libXML Parsing XML data from .rcp (point cloud project) files (RcsFileServices) 2.9.7 MIT
Oless Access to Microsoft Compound file for Windows platforms (OleSsItemHandler) 3.12 MIT
OpenCollada Collada Toolkit (.dae import/export) 1.6.68 MIT
OpenSSL Cryptography functionality for non-Windows platforms (Activation procedure, .dwg passwords and signatures) 1.0.2r Apache License Version 1.0
PDFium PDF support functionality (converting to images, import, working with PDF underlays) version BSD-style
QPDF PDF export (linearized PDFs) 8.4.0 Version 2.0 of the Artistic License
TinyXML Parsing XML files 2.6.2 ZLib
UTF Conversions between UTF32, UTF16, UTF8 BSD-style
Wchar Unicode support for Android BSD-style
ZLib Compression / decompression 1.2.11 ZLib

See also

Downloading Kernel Libraries

Copyright © 2002 – 2020. Open Design Alliance. All rights reserved.