PolyHedral Database (PHD)
Designed at NetLib
The polyhedron's number is also the name of its
description file.
The description file consists of a number of fields.
A field header is a line with an initial ":",
the remainder of the line is the field name.
Fields start with a field header line and are terminated
by the next field header line or by end of file.
A polyhedron's description is terminated by the field "EOF".
The fields include, but are not limited to the
following:
- number
The polyhedron's number written and read with the
C language %d printf/scanf format.
- name
The polyhedron's name is less than 128 characters long
and is not capitalized.
- symbol
The eqn input for two symbols separated by a tab; the
Johnson symbol, and the Schla symbol.
- dual
The name of the dual polyhedron optionally followed
by a horizontal tab and the number of the dual.
- vertices
The first line contains the number of vertices.
The vertices are arranged one per line as an
(x,y,z) coordinate of white-space separated values.
The vertices are implicitly numbered starting at zero.
- net
The first line contains the number of faces and the
maximum number of vertices in a face. The remaining
lines are the faces in the planar net. Each face has a
vertex count followed by the vertex numbers. The vertices
are listed in counter-clockwise order as viewed from
outside the polyhedron.
- hinges
The first line contains the number of hinges in the
planar net. The remaining lines are hinge connections.
The format is
"face1 side1 face2 side2 value".
Sides are numbered from zero. Depending on the dihedral
value it may be a reflex or re-entrant hinge.
- solid
The first line contains the number of faces and the
maximum number of vertices in a face. The remaining
lines are the faces in the 3D polyhedron. Each face has
a vertex count followed by the vertex numbers. The
vertices are listed in counter-clockwise order as viewed
from outside the polyhedron.
- dihedral
The first line contains the number of distinct dihedrals.
Each dihedral starts on a new line and has a count and
a value.
If the count is non-zero, then that many
"face edge" pairs (one per line) follow the
dihedral value.
- EOF
The end of the polyhedron's description.
A value consists of a floating point number optionally
followed by a expression enclosed by square brackets "[]".
The expression is the exact value represented in code.
The code may include assignments but does not include white space.
Example - Cube
:name
cube
:number
1
:symbol
{4,3} @P sub 4 @
:dual
octahedron
:sfaces
6 6{4}
:svertices
8 8(@4 sup 3@)
:net
6 4
4 4 3 7 8
4 5 4 8 9
4 1 0 3 4
4 3 2 6 7
4 8 7 10 11
4 11 10 12 13
:solid
6 4
4 15 14 18 19
4 17 15 19 21
4 17 16 14 15
4 14 16 20 18
4 19 18 20 21
4 21 20 16 17
:hinges
5
0 0 2 2 1.5707963267948966
0 1 3 3 1.5707963267948966
0 2 4 0 1.5707963267948966
0 3 1 1 1.5707963267948966
5 0 4 2 1.5707963267948966
:dih
1
12 4 4 1.5707963267948966
:vertices
22 14
-1.5[-3/2] -.5[-1/2] 0[0]
-1.5[-3/2] .5[1/2] 0[0]
-.5[-1/2] -1.5[-3/2] 0[0]
-.5[-1/2] -.5[-1/2] 0[0]
-.5[-1/2] .5[1/2] 0[0]
-.5[-1/2] 1.5[3/2] 0[0]
.5[1/2] -1.5[-3/2] 0[0]
.5[1/2] -.5[-1/2] 0[0]
.5[1/2] .5[1/2] 0[0]
.5[1/2] 1.5[3/2] 0[0]
1.5[3/2] -.5[-1/2] 0[0]
1.5[3/2] .5[1/2] 0[0]
2.5[5/2] -.5[-1/2] 0[0]
2.5[5/2] .5[1/2] 0[0]
-3.5 -1.5 -2.0
-3.5 -1.5 -1.0
-3.5 -0.5 -2.0
-3.5 -0.5 -1.0
-2.5 -1.5 -2.0
-2.5 -1.5 -1.0
-2.5 -0.5 -2.0
-2.5 -0.5 -1.0
:EOF
|