SolidKit Library


 SolidKit Library
  System Requirements
  Download Free Demo
  Prices and Ordering
  Version History

  Online Documentation

  Wiki version of this page


SolidKit Library Overview

The SolidKit Library is a programming library for 3D/2D graphics applications development for Microsoft Windows family of operating systems in C++ and .NET using OpenGL. The library provides data-model-independent classes for easy navigation in 3D/2D space (for example it provides functions such as view pan, rotate, zoom), provides functions for objects manipulation and editing, supports printing of OpenGL renders, provides functions for 3D mathematics functions, Constructive solid geometry for triangle meshes (in the Pro package only). The C++ version of the library provides classes for reading/writing JPEG, GIF, BMP and PNG raster images files using memory formats directly usable by the OpenGL API functions.

The C++ version of the library uses MFC (although it's use is optional), the .NET version uses Windows Forms.

SolidKit Library is developed by Solid Graphics and it is continuation of development of the ClassGL Library under new name.

SolidKit Library Features

View navigation and 3D/2D objects manipulation

The library provides classes for creating 3D window views which provide these data-model-independent scene view navigation modes:

  • rotate - freely rotate around xyz axes, or around any specified vector (axis)
  • pan - freely move in xyz space, or in any specified plane
  • zoom - zoom in, out, to specified window rectangle, to whole scene, to selected object
  • fly view - change view direction using mouse or keyboard
  • free look view (this is the same mode as used in first person shooter games) - walk move with "keeping the head-up direction)
  • view angle control

The 3D window class also supports features, such as:

  • shortcut keys customization for view navigation
  • printing of the 3D renders
  • simple texture-based text printing
  • antialiasing (accumulation buffer based)
  • 3D objects selections and manipulation

The 3D window class allows this manipulations of selected 3D objects:

  • moving object freely in xyz space, or along a plane, or along specified vector. It is possible to set moving constraints, such as prohibiting to move an object beyond a specified limit. Moving objects in steps (snap to grid) is also supported.
  • rotate objects freely along xyz axis, or around any specified vector. It is possible to set ratation constraints such as to prohibit to rotate object more or less than certain angle. Rotating objects in discrete steps (for example in 5 degree steps) is also supported.
  • multiple objects can be selected, the moving or rotating is applied to all selected objects

Raster image formats support

The C++ version of the library provides classes for reading and writing raster images from and to JPEG, PNG, GIF and BMP files. These JPEG file pixel-formats are supported: 3-byte RGB , 4-byte CMYK, 1-byte Grayscale. For BMP files - only 24 bit uncompressed BMP format is supported. Animated GIF files are not supported.

The images can be also loaded from or saved to memory using JPEG, PNG, GIF or BMP binary formats - this is usefull when temporarily compressing image data into memory, or for example for loading images into memory from files attached to an application exe file as binary resource.

 The library does not provide coresponding classes in .NET, as this functionality is already provided by .NET Framework Class Library.

Constructive solid geometry support (in SolidKit Pro package only!)

Constructive Solid Geometry for triangle meshes is included in the SolidKit Pro package. For more information about the SolidKit's constructive solid geometry capabilities and limitations see the Support of Constructive Solid Geometry in the SolidKit Library article.

3D types for use in your applications

Although you can use your own or third party object models which represents your scene - the SolidKit Library also provides a few 3D data types which you can use for developing your new applications. These types vary from simple types like Point or more complex ones such as Shape. They are accompanied with set of supporting functions which you can use to for example find out whether a point lies inside a shape, or find a triangle area.

Supporting classes and functions

The SolidKit Library provides several common-use classes, functions and templates. These classes/functions can be used when for example your application does not use other higher-level library - such as MFC or ATL. For such purpose the SolidKit Library provides classes/functions for reading/writing registry values, reading writing to/from files, compressing/decompressing data (using ZLIB functions), parsing XML files, time measurements, string manipulations, list and dictionary templates.

The .NET version of the SolidKit library does not provide such classes because .NET Framework Class Library already provides the same or better features.