next up previous contents index
Next: Extraction Functions Up: Geometry Creation and Management Previous: Spatial Parameter Tables   Contents   Index

Polymorphic Flat Database

There functions are related to creating and using ``special'' databases. This is a new feature that is under construction. A special database is a spatially sorted container for objects or trapezoids (not cell instances or cells), with varying internal formats. The following new script functions expose this functionality.

(int) CxOpenOdb(cx_handle, scale, cellname, array, clip, dbname)
This function will create a ``special database'' of the objects read through the archive context handle. The coordinates will be scaled by scale as read. The cellname is the name of the top-level cell whose hierarchy is to be read from the context. If this argument is zero, the first top-level cell found in the corresponding archive file will be understood. The array, if not 0, is an array of four values or larger giving a rectangular area of cellname to read. The values are in microns, in order L,B,R,T. If zero, the entire cell bounding box is understood. If the boolean value clip is nonzero, objects will be clipped to the array, if given. The dbname is a string which names the database. This can be any short name string. The database can be retrieved or cleared using this name.

The return value is 1 on success, 0 otherwise.

(int) CxOpenZdb(cx_handle, scale, cellname, array, clip, dbname)
This function will create a ``special database'' of the trapezoid representations of objects read through the archive context handle. The coordinates will be scaled by scale as read. The cellname is the name of the top-level cell whose hierarchy is to be read from the context. If this argument is zero, the first top-level cell found in the corresponding archive file will be understood. The array, if not 0, is an array of four values or larger giving a rectangular area of cellname to read. The values are in microns, in order L,B,R,T. If zero, the entire cell bounding box is understood. If the boolean value clip is nonzero, trapezoids will be clipped to the array, if given. The dbname is a string which names the database. This can be any short name string. The database can be retrieved or cleared using this name.

The return value is 1 on success, 0 otherwise.

(int) CxOpenZbdb(cx_handle, scale, cellname, array, clip, dbname, dx, dy, bx, by)
This will open a database similar to CxOpenZdb, however the trapezoids will be saved in binned lists. Unlike CxOpenZdb, the array can not be passed 0, a rectangular region must be specified. The dx, dy are the grid spacing values for the bins, in microns. These values must be positive. The bx, by are overlap bloat values for the bins. The actual bins are bloated by these values in the x and y directions. The trapezoids will be clipped to the bins.

The return value is 1 on success, 0 otherwise.

(int) GetObjectsOdb(dbname, layer_list, array)
This returns a handle to a list of objects, extracted from a named database created with CxOpenOdb. The first argument is a database name string as given to CxOpenOdb (This function will not work with CxOpenZdb). The second argument is a string containing a space-separated list of layer names, or 0. Objects for each of the given layers will be obtained. Objects on the same layer will be grouped together, with groups ordered as in the layer_list. If this argument is 0, all layers will be used, ordered bottom-up as in the layer table. The third argument is an array, as passed to CxOpenOdb, or 0. If 0, all objects for the specified layers in the database will be retrieved. Otherwise, only those objects with bounding boxes that overlap the array rectangle with nonzero area will be retrieved. The objects retrieved are copies of the database objects, which are not affected.

(int) GetZlistDb(dbname, layer_list, zoidlist)
This returns a zoidlist associated with a layer, extracted from a named database created with CxOpenOdb, CxOpenZdb, or CxOpenZbdb. The first argument is a database name string as given to CxOpenOdb or equivalent. The second argument is the associated layer name. The third argument is the reference trapezoid list. If the database was opened with CxOpenOdb or CxOpenZdb, the returned zoidlist will be clipped to the reference list. If the database was opened with CxOpenZbdb, the trapezoids for the bin containg the center of the first trapezoid in the reference list will be returned. In all cases, the returned trapezoids are copies, the database is not affected.

(int) ShowDb(dbname, array)
This function will pop up a window displaying the area given in the array of the special database named in dbname. The array argument is in the same format as passed to CxOpenOdb or equivalent. If passed 0, the bounding box containing all objects in the database is understood. The return value is the window number of the new window (1-4) or -1 if an error occurred.

(int) DestroyDb(dbname)
This function will free and clear the special database named in the argument. This is the database name as given to CxOpenOdb or equivalent. If the argument is 0, then all special databases will be freed and cleared. This function always returns 1.


next up previous contents index
Next: Extraction Functions Up: Geometry Creation and Management Previous: Spatial Parameter Tables   Contents   Index
Stephen R. Whiteley 2006-10-23