oaLayerBlockage Class Reference

Inheritance diagram for oaLayerBlockage:

oaBlockage oaFig oaBlockObject oaDesignObject oaObject


Public Methods

oaLayerNum getLayerNum () const
oaLayerHeadergetLayerHeader () const
oaDist getEffectiveWidth () const
oaBoolean hasEffectiveWidth () const
oaDist getSpacing () const
oaBoolean hasSpacing () const
oaBoolean allowPGNet () const
void setLayerNum (oaLayerNum layerNum)
void setPoints (const oaPointArray &points)
void setEffectiveWidth (oaDist width)
void unsetEffectiveWidth ()
void setSpacing (oaDist spacing)
void unsetSpacing ()
void setAllowPGNet (oaBoolean allowPGNet)
void transform (oaDouble scale, oaDouble angle)

Static Public Methods

oaLayerBlockage * create (oaBlock *block, oaBlockageType type, oaLayerNum layer, const oaPointArray &points, oaBlockObject *owner=NULL)

Detailed Description

A layer blockage is a type of blockage representing an area on a given layer. The shape of a blockage is described using an oaPointArray. Coincident and collinear points are illegal in the point array for a layer blockage. For more information on coincident and collinear points, see oaPointArray::compress()

oaLayerBlockages may have an effective width. This is the value that is used by routing tools to determine the minimum spacing constraint for other geometry placed near the blockage. Typically, if a blockage has no effective width (hasEffectiveWidth() is false), the blockage should be treated as "real geometry" by tools, and its width is the width of the blockage plus any other adjacent geometry.


Member Function Documentation

oaBoolean oaLayerBlockage::allowPGNet   const
 

This function returns a boolean indicating whether shapes for power and ground nets are allowed within this blockage area.

static oaLayerBlockage * oaLayerBlockage::create oaBlock *    block,
oaBlockageType    type,
oaLayerNum    layer,
const oaPointArray &    points,
oaBlockObject *    owner = NULL
[static]
 

This is the constructor for a layer blockage.

Parameters:
block The block in which to create the area blockage
type The type of blockage to create. Note: an oaLayerBlockage should not have a blockageType of oacPlacementBlockageType.
layer The layer on which to create the blockage
points The pointArray describing the shape of the blockage
owner The optional cluster or boundary owner of the blockage
Exceptions:
oacInvalidLayerForLayerBlockage 
oacInvalidTypeForLayerBlockage 
oacBlockageHasExtraPoints 
oacBlockageTooFewPoints 
oacInvalidBlockageOwner 

oaUInt4 oaLayerBlockage::getEffectiveWidth   const
 

This function returns the effective width of with this blockage.

oaLayerHeader * oaLayerBlockage::getLayerHeader   const
 

This function returns the layerHeader for the layer of this blockage.

oaLayerNum oaLayerBlockage::getLayerNum   const
 

This function returns the layer number associated with this blockage.

oaDist oaLayerBlockage::getSpacing   const
 

This function returns the spacing attribute on this blockage.

oaBoolean oaLayerBlockage::hasEffectiveWidth   const
 

This function returns a boolean indicating whether or not an effective width has been set for this blockage.

oaBoolean oaLayerBlockage::hasSpacing   const
 

This function returns a boolean indicating whether or not the effective spacing attribute is set for this blockage.

void oaLayerBlockage::setAllowPGNet oaBoolean    allowPGNet
 

This function sets the allowPGNet attribute for this blockage. When set, shapes for the signal types oacPowerSigType and oacGroundSigType are allowed within the blockage area.

Parameters:
allowPGNet 

void oaLayerBlockage::setEffectiveWidth oaDist    width
 

This function sets the effective width of this blockage. The effective width value allows you to specify what width should be used when looking up the minimum spacing value in the technology database.

Usage is as follows:

  • no Width: Use the actual blockage size to look up min spacing.
  • Width > 0: Use the given width to look up minimum spacing.
  • Width = 0: No spacing required.

By default, blockage effective width is used to set spacing. oaLayerBlockage::setSpacing also can be used to set spacing. Note, however, that the spacing and effective width attributes are mutually exclusive. An attempt to set the effective width attribute on a blockage without first unsetting an existing spacing attribute throws an oacBlockageSpacingWidthExclusive exception.

Parameters:
width effective width value
Exceptions:
oacBlockageSpacingWidthExclusive 

void oaLayerBlockage::setLayerNum oaLayerNum    layerNum
 

This function moves this blockage to the specified layer. The new layer is created if it does not exist. The old layer is deleted if it becomes empty. A layer may not be set on placement blockages.

Parameters:
layerNum The layer number
Exceptions:
oacInvalidLayerForLayerBlockage 

void oaLayerBlockage::setPoints const oaPointArray &    points
 

This function updates the shape of the blockages to the shape specified by the pointArray

Parameters:
points The pointArray describing the new shape of the blockage
Exceptions:
oacBlockageHasExtraPoints 
oacBlockageTooFewPoints 

void oaLayerBlockage::setSpacing oaDist    spacing
 

This function sets the spacing attribute for this blockage. The spacing and effective width attributes are mutually exclusive. By default, the spacing attribute is unset, which means the blockage effective width is used to set spacing. An attempt to set the spacing attribute on a blockage, without first unsetting an existing effective width attribute, throws an oacBlockageSpacingWidthExclusive exception.

Parameters:
spacing The spacing value for this blockage
Exceptions:
oacBlockageSpacingWidthExclusive 

void oaLayerBlockage::transform oaDouble    scale,
oaDouble    angle
 

This function transforms this blockage by the specified scale factor and rotation angle. If this blockage is a leader in a group, every object in the group is moved with the specified transform.

Parameters:
scale The scale for the transformation.
angle The angle of the transformation.

void oaLayerBlockage::unsetEffectiveWidth  
 

This function removes the effective width value for this blockage.

void oaLayerBlockage::unsetSpacing  
 

This function unsets the spacing attribute for this blockage.


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

Return to top of page