GGCoreDoc.tioga
Bier, August 7, 1987 6:08:25 pm PDT
Gargoyle Core
CEDAR 7.0 — FOR INTERNAL XEROX USE ONLY
Gargoyle Core
Sharing Between 2D and 3D
Eric Bier
© Copyright 1987 Xerox Corporation. All rights reserved.
Abstract: GargoyleCore contains a set of routines that are used by both Gargoyle and Gargoyle3d but are probably not of interest outside of the Gargoyle project. Three packages are currently included: GGParseOut writes ASCII representations of Cedar and Imager objects. GGParseIn reads ASCII representations of Cedar and Imager objects and rebuilds the objects. GGBoundBox implements operations on a generalized two-dimensional box. The generalizations include that the box may be null or may be infinite.
Created by: Bier
Maintained by: <GargoyleImplementors^.pa>
Keywords: Gargoyle, Gargoyle3d, parsing, box
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. Parsing
GGParseOut writes textual descriptions of various Cedar and Imager objects. Here are some examples:
WriteStrokeEnd[f, round] => "round";
WritePoint[f, [3.2, 7.0]] => "[3.2,7.0]";
WriteBool[f, FALSE] => "F";
GGParseIn reads the textual descriptions of various Cedar and Imager objects made by GGParseOut. Since GGParseOut has changed over time, some GGParseIn routines take an extra argument, version which is a real number representing a date in the form "YYMM.DD".
GGParseIn is much larger than GGParseOut, because many output formatting routines are provided by the IO interface. GGParseIn is willing to read some of these representations in addition to the GGParseOut representations.
2. Bounding Boxes
Bounding boxes are used in both Gargoyle and Gargoyle3d to perform fast culling. GGBoundBox contains many routines for computing bounding boxes, for using them in intersection testing, and for using them as Imager clipping regions.
3. File Operations
GGFileOps implements a routine that computes a file name given a ROPE that the user has selected a current directory and a default extension. There are convenience routines for opening .gargoyle, .ip, and .script files.