Up

OFF format description

This text has been copied from the OFF format description in the Geomview Documentation and has been edited to remove the features not supported by the Antiprism programs. See also - Geomview OOGL Tutorial.

OFF Files in Antiprism

The conventional suffix for OFF files is `.off'.

Syntax:

[C]OFF	# Header keyword
NVertices  NFaces  NEdges   # NEdges not used or checked

x[0]  y[0]  z[0]	# Vertices, possibly with normals,
			# colors if the prefix C is present.
...
x[NVertices-1]  y[NVertices-1]  z[NVertices-1]

    			# Faces
    			# Nv = # vertices on this face
    			# v[0] ... v[Nv-1]: vertex indices
    			#		in range 0..NVertices-1
Nv  v[0] v[1] ... 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 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. Thse are the number of vertices, faces, and edges, respectively. Current software does not use nor check NEdges; it 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 3 (default). or 4 (specified by.

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; see below
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 index numbers can be converted to color values using the off_color program.

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).

Exception: each face's vertex indices are followed by an integer indicating how many color components accompany it. Face color components must be floats, not integer values. Thus a colorless triangular face might be represented as

int int int int int
3   17   5   9   0

while the same face colored red might be

int int int int int float float float float
 3  17   5   9   4   1.0   0.0   0.0   1.0

Up: Programs and Documentation

Antiprism Documentation 9.9.2006 - http://www.antiprism.com/