DIRECTORY Imager; GGBasicTypes: CEDAR DEFINITIONS = BEGIN Angle: TYPE = REAL; Point: TYPE = Imager.VEC; Matrix3by3: TYPE = ARRAY [1..3] OF ARRAY [1..3] OF REAL; Vector: TYPE = Imager.VEC; Edge: TYPE = REF EdgeObj; EdgeObj: TYPE = RECORD [ line: Line, -- the line which passes through the endpoints of this edge startIsFirst: BOOL, start, end: Point]; Line: TYPE = REF LineObj; LineObj: TYPE = RECORD [ theta: REAL, -- angle in (-pi..pi] d: REAL, -- distance from line to origin c: REAL, -- cos(theta). Cached for convenience. s: REAL, -- sin(theta). Cached for convenience. slope: REAL, yInt: REAL -- for historical (Solidviews) reasons ]; Circle: TYPE = REF CircleObj; CircleObj: TYPE = RECORD [ origin: Point, radius: REAL ]; Arc: TYPE = REF ArcObj; ArcObj: TYPE = RECORD [ circle: Circle, ccw: BOOL, p0, p2: Point, -- the arc is swept out by going counter-clockwise from p0 to p2 theta0, deltaTheta: REAL, -- theta0 is the angle at p0. theta0 + deltaTheta is the angle at p2. edge: Edge -- if the arc is straight ]; Ray: TYPE = REF RayObj; RayObj: TYPE = RECORD [ p: Point, d: Vector]; BitVector: TYPE = REF BitVectorObj; BitVectorObj: TYPE = RECORD [ bits: PACKED SEQUENCE len: NAT OF BOOL]; -- added PACKED. KAP February 28, 1986 BitMatrix: TYPE = REF BitMatrixObj; -- for SequenceObj. KAP April 4, 1986 BitMatrixObj: TYPE = RECORD [ vectors: SEQUENCE len: NAT OF BitVector]; SequenceOfReal: TYPE = REF SequenceOfRealObj; SequenceOfRealObj: TYPE = RECORD [ reals: SEQUENCE len: NAT OF REAL]; BoundBox: TYPE = REF BoundBoxObj; BoundBoxObj: TYPE = RECORD [loX, loY, hiX, hiY: REAL, null, infinite: BOOL]; END. ΦGGBasicTypes.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Last edited by Bier on January 6, 1986 10:08:29 pm PST Contents: Types which have long been stable and which everything relies on. Bier separated these from GGModelTypes to reduce compilation dependencies. Line equation of the form: y*cos(theta) - x*sin(theta) -d = 0, where theta is the angle which the line makes with the x axis and d is the distance from the line to the origin. Κ˜J˜Icodešœ™Kšœ Οmœ1™™>Kšœp™pKšœžœŸ˜"KšœžœŸ˜(KšœžœŸ'˜0KšœžœŸ'˜0Kšœžœ˜ KšœžœŸ&˜1Kšœ˜—Kšœžœžœ ˜šœ žœžœ˜K˜Kšœž˜ K˜K˜—Kšœžœžœ˜šœžœžœ˜Kšœ˜Kšœžœ˜ KšœŸ@˜OKšœžœŸG˜aKšœ Ÿ˜$Kšœ˜K˜—Kšœžœžœ˜šœžœžœ˜K˜ K˜ —K˜Kšœ žœžœ˜#šœžœžœ˜Kš œžœžœžœžœžœŸ&˜O—Kšœ žœžœŸ%˜Išœžœžœ˜Kšœ žœžœžœ ˜)—K˜Kšœžœžœ˜-šœžœžœ˜"Kš œžœžœžœžœ˜"—K˜Kšœ žœžœ ˜!Kš œ žœžœžœžœ˜LK˜Kšžœ˜—…—^ E