The Edgebreaker software uses 4 file types. For debugging purposes and increased flexibility, the files CLERS, VERTICES, HANDLES can be used as BINARY or ASCII (see examples of files)
An OVTable stores connectivity and geometry of the triangular mesh. OVTable files are used as input to EBCompression and are produced by EBDecompression. All values are stored as ASCII floats or integers.
T |
# integer number of triangles. There are 3T lines, one per corner. Corners of the same triangle are consecutive. |
V1 O1 |
# two integers separated by a space or tab, the first one references a vertex, the second one the opposite corner. |
V2 O2 |
# same thing for the second corner of the same triangle |
V3 O3 |
# same thing for the third corner |
V4 O4 |
# same thing for the first corner of the second triangle … |
V |
# integer number of vertices. V is usually roughly twice smaller than T |
X1 Y1 Z1 |
# (x,y,z) coordinates of the first vertex represented as ASCII floats separated by a space or tab |
X2 Y2 Z2 |
# (x,y,z) coordinates of the second vertex |
X3 Y3 Z3 |
# (x,y,z) coordinates of the third vertex … |
Popular formats may be converted into the OV file format using
3D Object Converter.
A CLERS file stores an encoding of the CLERS string (a sequence of symbols in the set {C,L,E,R,S}) produced by Edgebreaker’s compression. In ASCII it contains these corresponding letters, which may be further compressed by external file compression or entropy techniques. In binary, it contains a simple encoding: C=0, L=110, R=101, S=100, E=111.
TYPE |
# mesh type (MANIFOLD, TPATCH, INTERIOR_TPATCH, or HOLES) stored as a string |
N |
# integer number of triangles incident upon the first vertex |
clers |
# string of ASCII characters in the set {C,L,E,R,S} ending with the first E that does not match a prior S |
TYPE |
# 2 bits specifying the mesh type (MANIFOLD - 00, TPATCH - 01, INTERIOR_TPATCH - 10, HOLES - 11) |
N |
# 32-bit integer number of incident triangles upon the first vertex |
clers |
# variable length encoding of the CLERS symbols: 0 is C , 110 is L, 111 is E, 101 is R, 100 is S |
A VERTICES file contains the compression’s encoding of the corrective vectors for the vertex coordinates. The file is a sequence of triplets stored as floats (ASCII) representing the x, y, and z coordinates of the corrective vectors.
Max (X,Y,Z) |
# Three 32 bit values spesifying maximum (x, y, z) coordinates used to quantize coordinates of the corrective vectors. |
Min (X,Y,Z) |
# Three 32 bit values spesifying minimum (x, y, z) coordinates used to quantize coordinates of the corrective vectors. |
BITS |
# Number of bits used to quantize coordinates of the corrective vectors. |
Corrective Vectors |
# Sequence of triplets stored as 32bit values representing the x, y, and z coordinates of the corrective vectors. |
A HANDLES file stores pairs of corner identifiers indicating pairs of bounding edges that decompression should glue to form handles. It is stored as a sequence of pairs of integers representing pairs of opposite corners in the mesh.