OFF format description
This text is based on the
OFF format description in the
Geomview Documentation and
has been edited to describe the features supported by the Antiprism programs.
See also -
Geomview OOGL Tutorial.
OFF Files in Antiprism
The conventional suffix for OFF files is '.off'.
OFF # Header keyword
NVertices NFaces NEdges # NEdges not used or checked
x y z # Vertices, any extra data is ignored
x[NVertices-1] y[NVertices-1] z[NVertices-1]
# Nv = # vertices on this face
# v ... v[Nv-1]: vertex indices
# in range 0..NVertices-1
Nv v v ... v[Nv-1] colorspec
# colorspec continues past v[Nv-1]
# to end-of-line; may be 0 to 4 numbers
# nothing: default
# integer: colormap index
# 3 or 4 integers: RGB[A] values 0..255
# 3 or 4 floats: RGB[A] values 0..1
OFF files (name for "object file format") represent collections of
planar polygons with possibly shared vertices, a convenient way to
describe polyhedra. The polygons may be concave but there's no
provision for polygons containing holes.
An OFF file must begin with a header line that includes the keyword
Three ASCII integers follow: NVertices, NFaces, and
NEdges. Thse are the number of vertices, faces, and edges,
respectively. Current software does not use nor check NEdges.
The vertex coordinates follow: 3 floating-point values. They are
implicitly numbered 0 through NVertices-1.
Following these are the face descriptions, typically written
with one line per face. Each has the form
N Vert1 Vert2 ... VertN [color]
Here N is the number of vertices on this face,
and Vert1 through VertN are indices into the list of
vertices (in the range 0..NVertices-1).
The optional color may take several forms. Line breaks are
significant here: the color description begins after VertN
and ends with the end of the line (or the next # comment). A
color may be:
For display purposes a two-vertex face may be used to hold
an edge color, and a one-vertex face may be used to hold a vertex
- the default color
- one integer
- index into a colormap, the index numbers can be converted to color
values using the off_color program.
- three or four integers
- RGB and possibly alpha values in the range 0..255
- three or four floating-point numbers
- RGB and possibly alpha values in the range 0..1
Antiprism treats the colour (0.0, 0.0, 0.0, 0.0), completely
transparent black, as a non-display color.
A value of '1' is valid in both the integer and floating point
ranges, which allows more than one interpretation of some colors.
The color '1 0 0' may be a near-black written for the integer range,
or red written for the floating point range.
When reading a file an integer interpretation is prefered over a
floating point interpretation. However, if all the integer color
values in the file are either 1 or 0 then they are all converted
to 0.0 and 1.0 in the floating point range.
To avoid ambiguities color values are written in the floating
point range and always with a decimal point.
Programs and Documentation