SolidKit Library

From Solid Graphics Wiki

(Difference between revisions)
Jump to: navigation, search
m (Protected "SolidKit Library" [edit=sysop:move=sysop])
Current revision (04:27, 6 October 2009) (edit) (undo)
 
(4 intermediate revisions not shown.)
Line 1: Line 1:
-
The '''SolidKit Library''' is a programming library for 3D/2D graphics applications development in [http://en.wikipedia.org/wiki/C%2B%2B C++] for [http://en.wikipedia.org/wiki/Microsoft_Windows Microsoft Windows] family of operating systems using [http://en.wikipedia.org/wiki/OpenGL OpenGL] and [http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library 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, [http://en.wikipedia.org/wiki/Constructive_solid_geometry 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.
+
The '''SolidKit Library''' is a programming library for 3D/2D graphics applications development for [http://en.wikipedia.org/wiki/Microsoft_Windows Microsoft Windows] family of operating systems in [http://en.wikipedia.org/wiki/C%2B%2B C++] and [http://en.wikipedia.org/wiki/.NET_Framework .NET] using [http://en.wikipedia.org/wiki/OpenGL 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, [http://en.wikipedia.org/wiki/Constructive_solid_geometry 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.
-
''SolidKit Library'' is developed by [[Solid Graphics]] and it is continuation of development of the [[ClassGL Library]] under new name.
+
The C++ version of the library uses [http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library MFC] (although it's use is optional), the .NET version uses [http://en.wikipedia.org/wiki/Windows_Forms Windows Forms].
 +
''SolidKit Library'' is developed by [[Solid Graphics]] and it is continuation of development of the [[ClassGL Library]] under new name.
 +
== Features ==
== Features ==
Line 32: Line 34:
=== Raster image formats support ===
=== 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 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 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!) ===
+
The library does not provide corresponding classes in .NET, as this functionality is already provided by .NET's [http://en.wikipedia.org/wiki/Framework_Class_Library Framework Class Library].
-
''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.
+
=== 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 ===
=== 3D types for use in your applications ===
Line 47: Line 51:
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 [http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library MFC] or [http://en.wikipedia.org/wiki/Active_Template_Library ATL]. For such purpose the ''SolidKit Library'' provides classes/functions for reading/writing registry values, reading writing to/from files, compressing/decompressing data (using [http://en.wikipedia.org/wiki/Active_Template_Library ZLIB] functions), parsing XML files, time measurements, string manipulations, list and dictionary templates.
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 [http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library MFC] or [http://en.wikipedia.org/wiki/Active_Template_Library ATL]. For such purpose the ''SolidKit Library'' provides classes/functions for reading/writing registry values, reading writing to/from files, compressing/decompressing data (using [http://en.wikipedia.org/wiki/Active_Template_Library 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 [http://en.wikipedia.org/wiki/Framework_Class_Library Framework Class Library] already provides the same of better features.
== Download SolidKit Library Demo ==
== Download SolidKit Library Demo ==
-
If you want to try out the ''SolidKit Library'' features you can [http://www.solidgraphics.com/SolidKit/SolidKitLibraryDemo.zip download a demo here]. '''[[SolidKit Library Demo|The demo]]''' provides [[SolidKit Library Demo#Restrictions|time-restricted version]] of the library. It includes [[SolidKit Library sample projects|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.
+
If you want to try out the ''SolidKit Library'' features you can [http://www.solidgraphics.com/SolidKit/SolidKitLibraryDemo.zip download a demo for C++ here] or [http://www.solidgraphics.com/SolidKit/SolidKitLibraryForDotNetDemo.zip demo for .NET here]. '''[[SolidKit Library Demo|The demo]]''' provides [[SolidKit Library Demo#Restrictions|time-restricted version]] of the library. It includes [[SolidKit Library sample projects|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 ==
== SolidKit Library packages and pricing ==
Line 65: Line 71:
'''SolidKit Library - Pro Package'''     {{SolidKit Pro Price}}
'''SolidKit Library - Pro Package'''     {{SolidKit Pro Price}}
:includes all available SolidKit Library features. Library <u>source code is included except for source code for [[Constructive solid geometry]] classes and [[more advanced functions]]</u>.
:includes all available SolidKit Library features. Library <u>source code is included except for source code for [[Constructive solid geometry]] classes and [[more advanced functions]]</u>.
 +
 +
All packages include both C++ and .NET versions of the ''SolidKit Library''.
== Documentation ==
== Documentation ==
-
:''see [[SolidKit Library Documentation]]''
+
:''see [[SolidKit Library Documentation for C++]]''
 +
:''see [[SolidKit Library Documentation for .NET]]''
== See Also ==
== See Also ==
*[[SolidKit Library Version History]]
*[[SolidKit Library Version History]]
 +
*[[SolidKit Library sample projects]]
*[[SolidKit Library screenshots]]
*[[SolidKit Library screenshots]]
 +
*[[SolidKit Library System Requirements]]
 +
 +
 +
*'''[http://www.solidgraphics.com/SolidKit/SKL-PricesAndOrderInfo.htm SolidKit Library ordering information]'''

Current revision

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.

Contents

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

Documentation

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

See Also


Personal tools