<> <> <> <> SV3d: DEFINITIONS = BEGIN Point3d: TYPE = ARRAY [1..3] OF REAL; Vector3d: TYPE = ARRAY [1..3] OF REAL; Matrix4by4: TYPE = ARRAY [1..3] OF ARRAY [1..4] OF REAL; Line3d: TYPE = REF Line3dObj; Line3dObj: TYPE = RECORD [ <> base: Point3d, direction: Vector3d, mat: Matrix4by4 -- the z axis of this mat is on line, the origin is base. mat is orthonormal. ]; Edge3d: TYPE = REF Edge3dObj; Edge3dObj: TYPE = RECORD [ line: Line3d, start, end: Point3d ]; Poly3d: TYPE = REF Poly3dObj; Poly3dObj: TYPE = RECORD [ len: NAT, seq: SEQUENCE maxVerts: NAT OF Point3d]; PolyDatabase: TYPE = LIST OF Poly3d; Plane: TYPE = REF PlaneObj; PlaneObj: TYPE = RECORD [ A, B, C, D: REAL]; <> <> <> <> <> END.