SolidKit Library

From Solid Graphics Wiki

Revision as of 04:27, 6 October 2009 by Rgrof (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

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 3D geometry mathematics functions, Constructive solid geometry for triangle meshes (in the Pro package only). The C++ version of the library also 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.



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 corresponding classes in .NET, as this functionality is already provided by .NET's Framework Class Library.

Constructive solid geometry support (Pro version only)

Constructive Solid Geometry for triangle meshes (triangulated polyhedra) is included in the SolidKit Pro package (see the SolidKit Library packages and pricing section below). 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 the .NET's Framework Class Library already provides the same of better features.

Download SolidKit Library Demo

If you want to try out the SolidKit Library features you can download a demo for C++ here or demo for .NET here. The demo provides time-restricted version of the library. It includes sample projects source code - so you can modify the library sample projects or create your own. Sample projects binary (exe) files are also included - so you can test the library features without need to compile & link the sample source code.

SolidKit Library packages and pricing

see SolidKit Library packages and pricing main article ...

The SolidKit Library is available in several packages ranging from package with full set of features to student-version package. Purpose for offering multiple packages is to make the library more affordable for those who don't need full set of features or for non-professionals.

SolidKit Library - Student Package     $35

includes all features except Constructive solid geometry classes and more advanced functions. Library source code is not included. Included license prohibits commercial and non-commercial distribution of software linked with the library .

SolidKit Library - Standard Package without source code     $195

includes all features except Constructive solid geometry classes and more advanced functions. Library source code is not included.

SolidKit Library - Standard Package with source code     $295

includes all features except Constructive solid geometry classes and more advanced functions. Source code is included for all packaged features.

SolidKit Library - Pro Package     $485

includes all available SolidKit Library features. Library source code is included except for source code for Constructive solid geometry classes and more advanced functions.

All packages include both C++ and .NET versions of the SolidKit Library.


see SolidKit Library Documentation for C++
see SolidKit Library Documentation for .NET

See Also

Personal tools