Main Page | Modules | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

Graphics and Media Lab CSL Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
BBox2A template class for 2D boundary box
BBox3A template class for 2D boundary box
Browser3D navigation helper class
BSphere3Template class for 3D bounding sphere
CallbackBase class for callback with no arguments and no return value
CameraClass representing 3d virtual camera
CIniFileHandling of INI-files
DIntelImageIntel libraries IplImage wrap class
DrawSurfaceGeneric image class
FileA class for working with files (a wrapped to FILE *)
FileFinder
FilterGrayscaleCreates a grayscale version of a color bitmap
FilterLum2RGBCreates a Lum2RGB version of a color bitmap
FilterMedianBlurCreates a MedianBlur version of a color bitmap
FilterRepresTransferres between different representations
FilterResizeCreates a MedianBlur version of a color bitmap
FilterRGB2BGRCreates a Lum2RGB version of a color bitmap
FilterRGB2RGBACreates a grayscale version of a color bitmap
FrameCounterSimple frame rate (FPS) counter
FRImageLoaderImage loader based on FreeImage third-party library
GDIImageManipulates uncompressed device- and platform-independent bitmaps
GDISurfaceGeneric image class
GLRCOpenGL context handling
Attention:
Include windows.h before using this file! Usage:
  GLRC glrc;
  // inside window creation
  glrc.Create(wnd);
  // before rendering into window
  glrc.MakeCurrent();
  // ... 
  // display in the screen (in case of double buffering)
  glrc.SwapBuffers();
  // ..
  // delete gl context (may be avoided, because called in destructor anyway)
  glrc.Destroy();
ImageGeneric image class
ImageComposerProduce single image from several reference images
ImageDecomposerDecompose an image into several destination images
ImageFilterInterface for generic image modifier
ImageLoaderLoading and saving bitmaps to files (base class)
IntelImageManipulates uncompressed device- and platform-independent bitmaps
IntelSurfaceGeneric image class
MathA template class for precision related staff
Math2Comparison of 2D vectors with a tolerance
Math3Comparison of 2D vectors with a tolerance
Math4Comparison of 4D vectors with a tolerance
PathStringProcessing of the path to file
RefSmart pointer class Smart pointers provide automatic memory management, so that programmer never cares on freeing memory. Smart pointers mechanism frees an object when there are no any references to it. Smart pointers should be used instead of standard C pointers:
  Object* obj; // standard pointer, should be deleted after use
  gml::Ref<Object> obj; // smart pointer frees memory when necessary
Attention:
Smart pointers works only with objects that support AddRef() and Release() operations. It is assumed that object keeps a reference count (a number of smapt pointers pointing to it). This reference count is incremented in AddRef() command and decremented in Release(). Also Release() performs check whether reference count is 0 and calls 'delete this'. GML provides special base class for this: gml::SmartObject. If you want to use smart pointers either derive your object from this class or provide own implementation of AddRef() and Release() methods. 1) initialization Smart pointers are initiliazed just like the standard pointers:
  gml::Ref<Object> obj =  new Object(1,2,3);

Smart pointers must never be defined like this: gml::Rev<Object>* obj; !!! 2) use of smart pointers Smart pointers are dereferenced like normal pointers:

  gml::Ref<Object> obj =  new Object(1,2,3);
  obj->SomeMethod();
  (*obj).SomeMethod();
3) smart pointers as parameters Smart pointers are implicitly casted to normal pointers:
  gml::Ref<Object> obj =  new Object(1,2,3);
  Object* obj1 =  obj;
This operation is dangerous unless used properly. You should use it like follows. Smart pointers may be passed to functions and returned from functions like normal pointers.
  ...
  Object* SomeMethod(Object* obj);
  ...
  gml::Ref<Object> obj =  new Object(1,2,3);
  gml::Ref<Object> obj1 = SomeMethod(obj);
The general rule is this: Use ONLY smart pointers when storing objects. Use normals pointers when passing smart pointers as parameters or return values So the following is forbidden:
  class SomeClass
    {
    private:
      Object* obj;
    public:
      void CreateObject()
        {
        gml::Ref<Object> obj = new Object(1,2,3);
        m_obj = obj;
        } // at this point obj will be deleted, and m_obj will be undefined!!
    };
Correct use:
  class SomeClass
    {
    private:
      gml::Ref<Object> obj;
    public:
      void CreateObject()
        {
        gml::Ref<Object> obj = new Object(1,2,3);
        m_obj = obj;
        } 
    };
ReflectFilterCreates a grayscale version of a color bitmap
SetRectFilterCreates a grayscale version of a color bitmap
SimpleImageManipulates uncompressed device- and platform-independent bitmaps
SimpleImageLoaderImage loader based on FreeImage third-party library
SmartObjectBase class for objects with support for reference counting
SocketA wrapper for Win32 stream socket
StringStandard string with some extensions
TColor33 Color repsentation
TColor44 Color repsentation
TMatrix2x2Template class for 2x2 matrix
TMatrix3x3Template class for 3x3 matrix
TMatrix4x4Template class for 4x4 matrix
TQuaternionQuaternion template
TVector2Template class for 2D vectors
TVector3Template class for 3D geometric vectors
TVector4Template class for 4D geometric vectors
ViewportClass representing 3d viewport (a window with accociated camera)

Generated on Tue Jan 13 21:12:02 2004 for Graphics and Media Lab CSL by doxygen 1.3.4