DIRECTORY CD, Core, CoreGeometry, Rope, Sinix, ViewerClasses; ExtractOps: CEDAR DEFINITIONS = BEGIN HighlightInstance: PROC [instance: CoreGeometry.Instance] RETURNS [hinstance: CD.Instance]; HighlightInstanceList: PROC [instances: CoreGeometry.Instances] RETURNS [hinstances: CD.InstanceList]; HighlightDesign: PROC [design: CD.Design, highlight: CD.Instance _ NIL, viewer: ViewerClasses.Viewer _ NIL, label: Rope.ROPE _ NIL]; HighlightDesignList: PROC [design: CD.Design, highlight: CD.InstanceList _ NIL, viewer: ViewerClasses.Viewer _ NIL, label: Rope.ROPE _ NIL]; FindViewer: PROC [design: CD.Design, label: Rope.ROPE _ NIL] RETURNS [viewer: ViewerClasses.Viewer]; ExtractCDInstance: PROC [instance: CD.Instance, design: CD.Design, mode: Sinix.Mode] RETURNS [result: REF, props: Core.Properties]; ExtractCDInstanceAndReport: PROC [instance: CD.Instance, design: CD.Design, mode: Sinix.Mode] RETURNS [result: REF _ NIL, props: Core.Properties _ NIL]; ExtractCDInstanceCellTypeAndReport: PROC [instance: CD.Instance, design: CD.Design, mode: Sinix.Mode] RETURNS [root: Core.CellType _ NIL]; EachSelectedInstanceProc: TYPE = PROC [selectedInstance: CoreGeometry.Instance] RETURNS [quit: BOOL _ FALSE]; EnumerateSelectedInstances: PROC [design: CD.Design, eachInstance: EachSelectedInstanceProc] RETURNS [quit: BOOL _ FALSE]; SameCDInstance: PROC [cdInstance: CD.Instance, cdInstanceTrans: CD.Transformation, coreInstance: CoreGeometry.Instance] RETURNS [BOOL]; SameCDObject: PROC [cdObject, coreObject: CD.Object] RETURNS [BOOL]; IsSchematic: PROC [design: CD.Design, object: CD.Object] RETURNS [BOOL]; GetExtractMode: PROC [design: CD.Design, object: CD.Object] RETURNS [mode: Sinix.Mode]; PopTop: PROC [design: CD.Design]; TopInstanceLists: TYPE = LIST OF RECORD [ design: CD.Design _ NIL, instances: CD.InstanceList _ NIL]; GetTopInstances: PROC [design: CD.Design] RETURNS [topInstances: TopInstanceLists _ NIL]; FindSameInstance: PROC [design: CD.Design, cellInstance: CD.Instance, cellTransform: CD.Transformation] RETURNS [worldInstance: CD.Instance]; END. ExtractOps.mesa Copyright Σ 1987 by Xerox Corporation. All rights reserved. Barth, October 14, 1987 3:21:10 pm PDT Jean-Marc Frailong December 6, 1987 3:18:30 pm PST Converts instance to highlighted instance. Converts instance list to highlighted instance list. If viewer is NIL then applies to all viewers of design. NIL removes all previous highlight. Viewers scale to the best zoom on the highlighted area. If viewer is NIL then applies to all viewers of design. NIL removes all previous highlight. Viewers scale to the best zoom on the highlighted area. Finds a single viewer for the design. Picks the last viewer if it belongs to the design, otherwise picks a random viewer belonging to the design if any exist, otherwise creates a viewer for the design. If a viewer is created and the label is not NIL then ViewerOps.SetViewer[viewer: viewer, data: label, op: $Label]. This version of Sinix.Extract starts from a top-level CD Instance and computes the context if necessary (currently because of satellites). Returned arguments have same meaning as in Sinix.Extract. Same as ExtractCDInstance but prints errors on terminal. Same as ExtractCDInstanceAndReport but also checks that the result is a cell type. Enumerate selected instances in the coordinate system of the containing cell. Given a cd instance in world coordinates and the transformation to cell coordiantes decide if it is the same as the given core instance. Expands the cdObject until it is ref equal to the coreObject or it cannot be expanded any further. Uses a heuristic to decide if this object is a schematic. This is obviously a crock but better than requiring the user to specify the mode in each command. Uses IsSchematic to choose between Sisyph.mode and SinixCMosB.mode. Pop design to top level. ΚT˜– "Cedar" stylešœ™Icode– "Cedar" style™