|
The Space3d Graphics Library is an application development library, built as a set
of COM components. It provides a layer of abstraction between a client and a particular
graphics platform, on which the library is implemented. This particular implementation
is built on top of the OpenGL™ library. The intended clients are technical and
engineering graphics applications that require three-dimensional visualization tool
(the OpenGL™ is less optimized for rendering bitmaps and textures, heavily used by the
game applications).
The core component, StdArray.dll, is dedicated solving the containment tasks.
It provides containers for the built-in types, interfaces, and binary data.
The next component, Graphics.dll, interfaces with the OpenGL™.
The component draws a scene on separate (working) thread, with initial value of
25 frames per second (FPS), thus providing a smooth rendering of the scene.
A client may change the FPS value, as well as the drawing thread priority
(which is defaulted to normal). The decision to have the drawing thread eliminates
a need to invalidate (redraw) the scene after the vantage point or visual elements
change. Also, a lengthy operation or calculation performed on the main (or any other)
thread won’t directly affect the drawing procedure.
The top component, Space3d.dll, models three-dimensional space and three-dimensional
objects that exist in the space. The hierarchy by containment, built into the component,
plays a dual role in modeling three-dimensional space: first, it provides a control over a
lifetime of the object cluster; second, it mirrors a subordination of the object
coordinate systems.
The Space3d Graphics Library is built with both threading model, as in-proc server. The library interfaces
don’t support the IDispath interface – however, the built-in argument types are limited
to those that are supported by the automation. The library is made safe for the
multithread access. It runs on the Windows™ OS (95/98/NT/2000/XP).
|