GUL - Geometry Utility Library

GUL is a library of C++ functions. It mainly contains basic functions for tesselating and manipulating NURBS curves and surfaces, as well as functions for interpolating and approximating data points with NURBS curves and surfaces.

It also contains some functions related to Computational Geometry, like triangulating general polygons, intersection of 2D polygons, kd-tree, exact arithmetic and other useful stuff.

There are also some general data types, like a smart pointer class with reference count semantics, and a fast pool allocator, which make programming quite convenient.

I must admit that GUL has almost no documentation (except the automatically created, via Doxygen), and the user interface isn't nice. So in the current state, it probably may only be useful for hardcore C++ freaks, which are also familiar with the algorithms I used.

I also wrote a viewer with which its possible to test some of the features of the library. The viewer uses some sort of scene graph as its data basis, in which even numbers are separate nodes, to achieve a maximum degree of flexibility. I am currently working on a python interface for the viewer, which allows to manipulate the scene graph dynamically at run time, and do some things interactively, like defining 3D points.

Some documentation (not up-to-date) about the viewer with many screenshots can be found here: ViewDog Manual

I am currently using VisualC++ 7.0 ( and Windows 2000 as development environment, but it shouldn't be too difficult to get the library and the viewer running under a unix system (solaris,linux,freebsd,etc.) There are even some old Makefiles for these platforms in CVS, but i currently don't have the time to update and test them.

For compiling the viewer, Qt-2.3.0-non-commercial, Python-2.0, Bison and Flex are required, the library GUL needs nothing special.

The following files can be downloaded. The MSI files require the Windows Install Engine 1.5, which is part of Windows 2000, or can be downloaded from Microsoft for older Windows versions.

There is also a complete snapshot of the CVS archive available

Mailing List, CVS, Bug Tracker, etc, are accessible via the SourceForge project page:

The author can be reached by using one of the following addresses:

I am searching a job

I need a job, to finance my study of computer science in Hamburg. I probably will have the Bacchelor at end of march(2005), so i don't have to last much longer, but, be it as it be, the next months seem to become very difficult.

So i would be glad for any part-time job offers, preferably something which can be done over the internet, or somewhere near Hamburg.

I am quite an experienced C++ programmer (this project is already some years old, i have greatly improved (as the compilers):), am familiar with OpenGL, Linux,Windows,MS VisualC++/71,C#,.NET,COM,NURBS,and much more.

Administrator 2004-10-11