oaShapeQuery Class Reference

Inheritance diagram for oaShapeQuery:

oaRegionQuery


Public Methods

 oaShapeQuery ()
oaLayerNum getLayerNum () const
oaPurposeNum getPurposeNum () const
void query (oaDesign *topDesign, oaLayerNum layerNum, oaPurposeNum purposeNum, const oaBox &region, oaDist filterSize=0, oaUInt4 startLevel=0, oaUInt4 stopLevel=100)
void query (oaDesign *topDesign, oaLayerNum layerNum, oaPurposeNum purposeNum, const oaBox &region, const oaTransform &xform, oaDist filterSize=0, oaUInt4 startLevel=0, oaUInt4 stopLevel=100)
oaOccShapegetOccShape (oaShape *shape) const
virtual void queryShape (oaShape *shape)=0

Detailed Description

The oaShapeQuery is used to examine and return shapes in oaVias and oaDesigns. Note that stepping into a Via counts as a level of hierarchy. Hence to use oaShapeQuery to find the pin shapes in the master for an instTerm, the query should descend two levels: the first level descends to the master, and the second level will be traversed if the pin contains an oaVia.

The sequence of virtual functions that get called during the query is as follows.

The query descends the hierachy of an oaRef, if the maximum dimension of the ref's master is The query descends the hierarchy of an oaRef, if the maximum dimension of the ref's master is The query descends the hierarchy of an oaRef if the maximum dimension of the ref's master is larger than the filter size of the query and if the startRef function call returns true for that ref. If then produces shapes recursively in its hierarchy. endRef function for an oaRef gets called if the query descends into its hierarchy. See documentation on startRef and endRef for additional information.


Constructor & Destructor Documentation

oaShapeQuery::oaShapeQuery  
 

This is the constructor for the oaShapeQuery class.


Member Function Documentation

oaLayerNum oaShapeQuery::getLayerNum   const
 

This function returns the layer number associated with this shape query.

oaOccShape * oaShapeQuery::getOccShape oaShape *    shape const
 

This function returns the occShape associated with the specified shape in a design hierarchy. If the occShape does not exist, one will be generated and returned.

Parameters:
shape The shape from which the occShape will be generated.

oaPurposeNum oaShapeQuery::getPurposeNum   const
 

This function returns the purpose number associated with this shape query.

void oaShapeQuery::query oaDesign *    topDesign,
oaLayerNum    layerNum,
oaPurposeNum    purposeNum,
const oaBox &    region,
const oaTransform &    xform,
oaDist    filterSize = 0,
oaUInt4    startLevel = 0,
oaUInt4    stopLevel = 100
 

This function begins the query process to start generating shapes on the specified layer/purpose in the specified region of the specified design hierarchy.

A valid layer number and purpose number must be provided to the shape query, and the query produces all shapes in the design hierarchy on that layer and purpose. If there isn't an oaLPPHeader corresponding to the specified layer and purpose numbers, the query does not produces any shapes.

The top block of any given design will have an LPPHeader for every LPPHeader that exists in the block of every bound, instantiated design in its hierarchy. In order to produce all layer/purpose shapes of interest in a design, the application can get a collection of oaLPPHeaders in the top block, then for each LPPHeader in the collection the application can use the oaShapeQuery class to query the shapes for the layerNum and purposeNum from that LPPHeader.

Parameters:
topDesign Pointer to the top design in which to perform the query.
layerNum Only query objects with this layer number.
purposeNum Only query objects with this purpose number. Note that oavPurposeNumberNo and oavPurposeNumberAny are only to be used in constraints and are not valid arguments here.
region The region of interest.
xform The current transform that is applied to the design.
filterSize Only query objects whose size is equal to or larger than filterSize.
startLevel The level of block hierarchy to start the querying.
stopLevel The level of block hierarchy to stop the querying.

void oaShapeQuery::query oaDesign *    topDesign,
oaLayerNum    layerNum,
oaPurposeNum    purposeNum,
const oaBox &    region,
oaDist    filterSize = 0,
oaUInt4    startLevel = 0,
oaUInt4    stopLevel = 100
 

This function begins the query process to start generating shapes on the specified layer/purpose in the specified region of the specified design hierarchy.

A valid layer number and purpose number must be provided to the shape query, and the query produces all shapes in the design hierarchy on that layer and purpose. If there isn't an oaLPPHeader corresponding to the specified layer and purpose numbers, the query does not produces any shapes.

The top block of any given design will have an LPPHeader for every LPPHeader that exists in the block of every bound, instantiated design in its hierarchy. In order to produce all layer/purpose shapes of interest in a design, the application can get a collection of oaLPPHeaders in the top block, then for each LPPHeader in the collection the application can use the oaShapeQuery class to query the shapes for the layerNum and purposeNum from that LPPHeader.

Parameters:
topDesign Pointer to the top design in which to perform the query.
layerNum Only query objects with this layer number.
purposeNum Only query objects with this purpose number. Note that oavPurposeNumberNo and oavPurposeNumberAny are only to be used in constraints and are not valid arguments here.
region The region of interest.
filterSize Only query objects whose size is equal to or larger than filterSize.
startLevel The level of block hierarchy to start the querying.
stopLevel The level of block hierarchy to stop the querying.

void oaShapeQuery::queryShape oaShape *    shape [pure virtual]
 

This function processes each result of the shape query.

Parameters:
shape Pointer to a shape found during querying.


The documentation for this class was generated from the following files:

Return to top of page