Edgebreaker: 3D
Compression
Software
In response to requests from the Industry and Academia for
the
source code for the
Edgebreaker
3D
Compression and Decompression software for triangle meshes, we have
decided
to make a sample implementation publicly available on the web for
general
use.
This implementation was developped by
Alla Safonova
under the
National Science Foundation
grant
9721358
in the
College of Computing at
the
Georgia Institute of Technology.
It is provided as an illustration of the simplicity of the Edgebreaker
approach
and has not been optimized. The authors, the Georgia Institute of
Technology,
and the National Science Foundation decline all responsibility
regarding
the correctness, reliability, and support of this software.
The implementation of the compression and decompression
provided
here is based on the Corner Table data structure, and has been
extended
to support meshes with an arbitrary number of handles and with zero or
one
bounding loop (or hole).
The detailed pseudo-code for Edgebreaker's compression and
decompression
take one page each. The pseudo-code for a context-based parallelogram
prediction
takes half a page. All three are provided here (
PDF).
We also include the
figures
and explanations for the various contexts of the geometric prediction.
Triangle
meshes
with several holes should be preprocessed, so that all holes except the
largest
are plugged with triangle fans. Transmitting the IDs of the dummy
central
vertices of these fans allows the client to identify all the incident
triangles
and delete them to restore the holes.
To produce your own version of Edgebreaker:
Download and
compile these source files to create an
executable version
of Edgebreaker
Check the
specifications
and examples for our input and output file
format