summaryrefslogtreecommitdiff
path: root/module/math/polyhedra.m
blob: 2b3e9ce6b75f6920243efc8449f81a7500c823c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Polyhedra: module
{
	PATH: con "/dis/math/polyhedra.dis";

	Vector: adt{
		x, y, z: real;
	};

	Polyhedron: adt{
		name, dname: string;
		indx, V, E, F, concave, anti, allf, adj: int;
		v, f: array of Vector;
		fv, vf: array of array of int;
		offset: big;
		prv, nxt: cyclic ref Polyhedron;
		inc: real;
	};

	# read in details of all polyhedra in the given file
	scanpolyhedra: fn(f: string): (int, ref Polyhedron, ref Bufio->Iobuf);
	# read in the coordinates of all polyhedra
	getpolyhedra: fn(p: ref Polyhedron, b: ref Bufio->Iobuf);
	# read in the coordinates of the given polyhedron
	getpolyhedron: fn(p: ref Polyhedron, b: ref Bufio->Iobuf);
};