packages icon
BREP and friends:

Implementation of a topological data structure similar to the WINGED EDGE data
structure, representing the boundary of a polyhedral solid. A core layer on
top of which e.g. CSG operations or 3D model topology fixers can be build.

This package contains:

- BREP: a Boundary Representation Library
	documentation in BREP/README and BREP/brep.h

- GDT: Generic Data Types Library - needed by BREP and CSG
	documentation: GDT/README

- POOLS: Memory Management on top of malloc/free
	documentation: POOLS/README

- MGF: Greg W. Larsons Material and Geometry Format library, adapted for
	this project

- CSG: sample application program using the BREP library - computes the
	CSG union/difference/intersection of two solid objects described in
	MGF files.


- Edit the Config file in this directory. It contains the compiler to use,
	compilation flags etc...
- type 'make depend' (optional)
- type 'make'

The libraries are compiled in their directories. In CSG, you end up with an
executable called 'csg'. 


Usage (csg -h):

Usage: csg [options] fileA.mgf fileB.mgf


        -q n: nr. quart circle divisions (n = positive integer, default = 5)
        -t x: vertex tolerance (x = positive real number, default = 1e-6)
        -p x: min. coplanarity factor (x = positive real number, default = 500)
        -v: verbose mode
        -d: compute CSG difference
        -u: compute CSG union
        -i: compute CSG intersection
        -I: ignore normals in input file
        -W: write faces without making separate faces for outer contours contained in holes
        -M: don't write materials
        -h: print usage

The Test/ directory contains an example. The files 'union.mgf', 'aminb.mgf',
'bmina.mgf' and 'isect.mgf' have been generating using

	csg -u Test/a.mgf Test/b.mgf > union.mgf
	csg -d Test/a.mgf Test/b.mgf > aminb.mgf
	csg -d Test/b.mgf Test/a.mgf > bmina.mgf
	csg -i Test/a.mgf Test/b.mgf > isect.mgf

The corresponding GIF files show how they look.


Initial version (build upon older material dating back to summer 1996) - April, 12 2000.


- Convert everything to nice C++
- CSG program does not yet properly handle coplanar faces.


Distributed under the terms of the GNU Library Public License.


Philippe Bekaert

Computer Graphics Research Group
Department of Computer Science - K.U.Leuven
Celestijnenlaan, 200A - B3001 Leuven (Heverlee) - Belgium
Tel: +32 16 32 76 67
Fax: +32 16 32 79 96