CombinerDoc.tioga
Dennis Arnon, December 6, 1985 12:15:56 pm PST
Combiner
CEDAR 6.0 — FOR INTERNAL XEROX USE ONLY
Convexity-Based Combiner
Dennis Arnon
© Copyright 1985 Xerox Corporation. All rights reserved.
Abstract: The Combiner maintains a database of non-overlapping regions in the plane, with each of which some client-specified data is associated. The intended usage is to merge a succession of new convex polygons ("brushstrokes"), each with its own client data, into the database. Such merges involve two steps: first, the geometry of the new polygon is merged with that of the existing database (edge intersections are computed), resulting in a new database; second, the (previous) data of each polygon in the database that was "touched" by the input brush is combined with the brush's data, according to client-specified rules.
Keywords: computational geometry, convex decomposition, polygons
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

For Internal Xerox Use Only
1. The CombinePoly Interface.
is for clients. It is exported by BasicCombiner.BCD.
2. A Tool for exercising CombinePoly.
Run TestBasicCombiner.BCD to start it up. You should get a CombinerViewer on the color display.
The tool's point of view is that the current database lives on a "lower" sheet of paper, and the input polygon is drawn on a second "upper" sheet of paper, above and parallel to the lower sheet. The lower sheet is displayed in red, the upper in green. Initially both sheets are blank. To get started, click UppStart, leftclick in the vertices of a convex polygon in counterclockwise order, and click UppDone. To get this polygon into the database (i.e. move it from the upper to the lower sheet), click Combine To merge another polygon into the database, repeat the UppStart, leftclick in vertices, UppDone sequence, then click Combine. Colors can be selected and associated with polygons with the SetUppState button.
RandHull will give you a "random" convex polygon (the convex hull of ten random points) on the upper sheet. Clean will remove excess edges from the database on the lower sheet. GetLowRegions will extract the maximal red regions from the lower sheet.
DumpLower, LoadLower, DumpBoth, and LoadBoth write/read one or both sheets to/from files (typically "///LowerPlaneStructure" and "///UpperPlaneStructure"). Each call to Combine writes both sheets to files before executing, so you can back up by clicking Reset, then LoadBoth.
The buttons on the lowest line of the menu control display. The two modes are "fill" and "line-drawing" , selected by toggling FillNoFill In line-drawing mode, StateGeometry is a toggle that will show you either the complete geometry of the Combiner database (a planar graph), or only those edges which are on the boundary of regions of different state. Zoom, Horizontal, and Vertical alter your display window; each can be either left or right clicked.
See the maintainer for more information.