GeomView's .off Format
The .off file format was used by GeomView, the 3D viewer developed at the Geometry Center. Note, originally there was an .off file format developed at DEC which seems to be different. The following description is taken from the GeomView manual written by Mark Philips.
Syntax:
[ST][C][N][4][n]OFF # Header keyword [Ndim] # Space dimension of vertices, present only if nOFF NVertices NFaces NEdges # NEdges not used or checked x[0] y[0] z[0] # Vertices, possibly with normals, colors, and/or texture # coordinates, in that order, if the prefixesN
,C
,ST
are present. # If 4OFF, each vertex has 4 components, # including a final homogeneous component. # If nOFF, each vertex has Ndim components. # If 4nOFF, each vertex has Ndim+1 components. ... x[NVertices-1] y[NVertices-1] z[NVertices-1]
Nv v[0] v[1] ... v[Nv-1] colorspec ... # Faces, possibly with colors # Nv = # vertices on this face # v[0] ... v[Nv-1]: vertex indices # in range 0..NVertices-1 # 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
An OFF
file may begin with the keyword OFF
;
it's recommended but optional, as many existing files lack this keyword.
Three ASCII integers follow: NVertices, NFaces, and NEdges. These are the number of vertices, faces, and edges, respectively. The parameter NEdges needn't be correct but must be present.
The vertex coordinates follow: dimension * Nvertices
floating-point values. They're implicitly numbered 0 through NVertices-1.
dimension is either 3 (default) or 4 (specified by the key character 4
directly before OFF
in the keyword).
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:
- nothing
- the default color
- one integer
- index into "the" colormap; not supported by JavaView since it requires an additional color map.
- 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
For the one-integer case, the colormap is currently read from the file `cmap.fmap' in Geomview's `data' directory. Some better mechanism for supplying a colormap is likely someday.
The meaning of "default color" varies. If no face of the object has a color, all inherit the environment's default material color. If some but not all faces have colors, the default is gray (R,G,B,A=.666).
A [ST][C][N][n]OFF BINARY
format is accepted; See section
Binary
format. It resembles the ASCII format in almost the way you'd expect,
with 32-bit integers for all counters and vertex indices and 32-bit floats
for vertex positions (and texture coordinates or vertex colors or normals if
COFF
/NOFF
/CNOFF
/STCNOFF
/etc.
format).