A Distributed Environment for Geometric Object Manipulation and Monitoring System


Overview
GeoGDB
GeoSheet
GeoLIB
GeoDDE
GeoAnimator

D. T. Lee

GeoMAMOS, an abbreviation for GEometric Object MAnipulation/MOnitoring System, is an X-windows based integrated environment to support geometric programming. It currently runs under SunOS using C++ and will be expanded to include PC, and SGI environment in the future.

The system is designed for manipulation and monitoring of geometric objects based on prespecified instructions during or after the execution of geometric algorithms. It contains various components, some of which are still under development. See the following figure for an overall picture of the system. A brief description of each component follows.

GeoGDB

A graphical debugger built on top of the source code debugger `xxgdb'. The user specifies objects to be watched during debugging. When a user specified break point is encountered, a watch window associated with a watched object pops up and the current contents of the object are displayed in the window. This is similar to the print command of `gdb'. However, instead of printing numerical values, the geometric structures of objects are output to the display window. Watch windows can be turned on and off. Each time the program pauses at a break point, all active watch windows are updated.

_

GeoSheet

A distributed interactive graphical user interface for input and output, built on top of xfig. At the moment, only two-dimensional display is supported, but it is designed so that the output can be easily directed to different display devices, including 3-dimensional displays. It is currently implemented in C++. It has inherited classes of objects from LEDA and contains some other classes of objects locally developed at Northwestern University. The user can interactively draw on a GeoSheet as input to an algorithm before or during the execution of the algorithm, and the output can be directed to either the same GeoSheet or other GeoSheets on the machine at the local or remote site on the network. This is useful for testing and evaluation of various algorithms with visual aid, eliminating the need of text files as input and output.

GeoLIB A geometric graphic object library, including algorithms

It will be written in C++ and organized in a class hierarchy. For each object, the routines for visual display, and logical structure display parsing method of the data structure are provided. Like most of the geometric objects, the graph objects of GeoLIB are also maintained in a class hierarchy. A Librarian or Browser will be implemented to help the user quickly locate the objects he/she needs to use. The LEDA library is included and some of the LEDA objects have been enhanced to include display functions. Algorithms are also treated as objects in GeoLIB, and are organized with respect to their input object class and related routines.

GeoDDE Data Structure Diagram Editor

GeoDDE provides the user ease of building the data structure components of a graphic object. A Class Browser showing the built-in GeoLIB class hierarchy is provided with the system. To construct a data structure, one simply draws the structure diagram and specifies each component as either a sub-structure or an object inherited from the GeoLIB class hierarchy. Once the design is complete, a prototype based on the C language is generated. There's no need to implement separate display routines for the new data structure, since they can all be inherited from the built-in GeoLIB classes.

GeoAnimator Algorithm Animation Generator

Ultimately GeoMAMOS not only will allow the algorithm designer to test his/her ideas, using GeoSheet , thereby designing an algorithm, it will also allow the programmer to do debugging, using GeoGDB when implementing the algorithm. GeoLIB and GeoDDE will be supporting tools. In addition, with GeoAnimator it also allows the user to perceive and understand better the behavior of an algorithm by providing visually animated pictures reflecting algorithm states and different data objects.


GeoMAMOS Home Page
__
lhl (Last Updated: $Date: 17 October, 1995 19:55:24$)