SolidKit Library

From Solid Graphics Wiki

Revision as of 04:40, 15 May 2008 by Rgrof (Talk | contribs)
Jump to: navigation, search

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

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 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.

Constructive solid geometry support (Pro package only!)

Constructive Solid Geometry for triangle meshes 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.

Download SolidKit Library Demo

If you want to try out the SolidKit Library features you can download a demo here. The demo provides time-restricted version of the library. It includes sample C++ 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.


see SolidKit Library Documentation

See Also

Personal tools