             Clumsy C++ Graphics Libraries for Windows(TM)


The Clumsy C++ Graphics Libraries provide an object-oriented approach to 
performing graphics in MS Windows 3.1(TM).  The classes support all 
Windows graphics capabilities with much improvement.  All graphic 
objects (lines, rectangles, ellipses, etc.) have been encapsulated in 
classes and manipulation methods (transformation, scaling, rotation, 
shading, etc.) added to them.  Objects to be displayed in a window are 
added to a coordinate system, and the window is assigned that coordinate 
system.  The window is the view of the given space.  The viewpoint, 
angle of view, and scaling of the view can be changed.  Multiple views 
can be created for a given space, each with its different viewpoint, 
view angle, and scaling.  Thus, the same space can be viewed from 
different positions, different angles, and with different scaling simply 
by creating a new window for that space with different parameters.

Not only do the classes provide a wide range of functions, but they also 
shield the programmer from the complexities of the Windows API.  The 
programmer no longer has to worry about creating window classes, 
registering them, handling the different event messages for the windows, 
creating pens and brushes for drawing, setting view coordinates, etc.  
All these are handled automatically by the different objects.  To draw a 
rectangle on the screen, the programmer simply has to type 2 lines: the 
declaration of the rectangle object, and adding the rectangle to the 
required space.  The rectangle will be drawn automatically.  The pen and 
brush and other settings will be done implicitly by the rectangle object 
whenever its Draw method is created.  The programmer does not have to 
worry about redrawing the rectangle whenever the window is moved or 
resized.  The rectangle will be redrawn automatically when the window is 
repainted, or, in case buffering is enabled, the window will be painted 
with a buffered bitmap that contains the image that is supposed to be on 
the screen; this feature is important when drawing complex 3D objects 
since redrawing them will take considerable time.

All graphic objects are derived from class VisualObject which contains 
virtual functions for manipulating individual graphic objects 
(transformation, scaling, rotation, shading, hidden-surface removal, 
etc.).  Each object is independent of others and of Windows.  The only 
instance when an object interacts with Windows is in its Draw method 
which is supplied with the Windows device context on which the object 
should be drawn.  All classes are reusable and new classes can be 
derived from them easily.  ComplexGraphic is derived from VisualObject 
and contains a list of other VisualObject objects.  This allows dealing 
with a bunch of graphic objects as a single object.

All libraries come with standard classes for encapsulating basic and 
essential Windows functionality such as event handling and window 
management.


The following is a general description of the available libraries:


2D Graphics Library
-------------------
C++ classes for defining, displaying, and manipulating graphics in a 
two-dimensional coordinate system.  Graphic objects include all the 
graphics available in Windows (lines, rectangles, ellipses, pies, arcs, 
etc.), text, bitmaps, and others.  All objects can be transformed, 
scaled, or rotated.  Complex objects consisting of one or more graphic 
objects can be defined and treated as a single graphic object.  Multiple 
views in separate windows can be defined on the same space of graphic 
objects with different view points, view angles, or scaling parameters.

2D Graphics Kit
---------------
Graphics editor that allows the user to interactively create graphic 
objects supported in the 2D Graphic Library and either save them as a 
data file that can be loaded by a C++ program or generate the complete 
C++ code that would display the created objects.  Requires the 2D 
Graphics Library.

3D Graphics Library
-------------------
C++ classes for defining, displaying, and manipulating graphics in a 
three-dimensional coordinate system.  Includes all the capabilities of 
the 2D Graphics Library applied to 3D graphic objects with several other 
capabilities that apply only to 3D objects such as hidden surface 
removal, shading, and ray tracing.

3D Graphics Kit
---------------
Graphics editor that allows the user to interactively create graphic 
objects supported in the 3D Graphic Library and either save them as a 
data file that can be loaded by a C++ program or generate the complete 
C++ code that would display the created objects.  Requires the 3D 
Graphics Library.

Animation Library
-----------------
C++ classes that define multiple-image sprites and motion to graphic 
objects.

Animation Kit
-------------
Graphics editor that allows the user to interactively create sprites and 
either save them as a data file that can be loaded by a C++ program or 
generate the complete C++ code that would display the created objects.  
Requires the Animation Library.

Windows Library
---------------
C++ classes that encapsulate a large subset of the Windows API.  
Although most C++ compilers include their own libraries, this library 
uses the same classes as the ones used in the previous libraries, and, 
thus, provides a consistent programming environment.


Windows is a trademark of Microsoft Corporation.




Ordering Information:
--------------------

The libraries are available for the Borland C++ compiler.  The cost of
each library is as follows:

Library	                .LIB     .EXE     Source Code
-----------------------------------------------------
2D Graphics Library     $30               $75
2D Graphics Kit	        $40      $20      $100
3D Graphics Library     $50               $250
3D Graphics Kit         $50      $20      $150
Animation Library       $40               $150
Animation Kit           $50      $20      $150
Windows Library         $100              $150



To order, send request with certified check or money order for the 
correct amount to:

         Clumsy Computing
         P.O.Box 5181
         Station B
         Montreal, Quebec
         CANADA  H3B 4B5
