This binary file format encodes the edgebreaker's output
of CLERS labels in a packed unsigned byte stream. In addition
to CLERS stream it has data encoding the vertex coordinates,
handles and dummy vertices.
A detailed description of the components of the compressed reprentation
can be obtained on edgebreaker home page.
This format has the following components organized as a sequence of chunks:
Chunk
Description
TYPE
one unsigned char
0: MANIFOLD, 1: TPATCH, 2: INTERIOR_TPATCH, 3: HOLES
CLERS
one integer: specifying number of CLERS labels in the chunk.
one integer: specifying number of unsigned bytes k to follow.
k unsigned bytes: consisting of a packed bit pattern encoding
the CLERS labels as: C=0, L=110, R=101, S=100, E=111.
HANDLES
one integer: specifying the number of pairs of integers h to capture handles in the model
2*h integers: a pairs of identifiers for identifying corners.
COORD
one integer: specifying the number of vertices v in the model.
3*v floats: x, y and z coordinates of vertices.
DUMMY
one integer: specifying the number of dummy vertices d
insrted in the model to make it a
MANIFOLD model by constructing triangle fans to plug the holes.
d integers: indices to vertes coordinates in the COORD chunk.
These vertices and the triangles incident on them must be removed while
decompressing the model.
In subsequent releases of this edgebreaker library this format may change a bit. As of now, I do not know if I'll support this format in future.