oaShape Class Reference

Inheritance diagram for oaShape:

oaPinFig oaConnFig oaFig oaBlockObject oaDesignObject oaObject oaArc oaDonut oaDot oaEllipse oaLine oaPath oaPathSeg oaPolygon oaRect oaText oaTextDisplay


Public Methods

oaLPPHeadergetHeader () const
oaLayerNum getLayerNum () const
oaPurposeNum getPurposeNum () const
oaRouteStatus getRouteStatus () const
oaBitNetgetShieldedNet1 () const
oaBitNetgetShieldedNet2 () const
oaBoolean isUnShielded () const
void setLPP (oaLayerNum layerNum, oaPurposeNum purposeNum)
void setLayerNum (oaLayerNum layerNum)
void setPurposeNum (oaPurposeNum purposeNum)
void setRouteStatus (const oaRouteStatus &routeStatus)
void setShieldedNet1 (oaBitNet *net)
void setShieldedNet2 (oaBitNet *net)
void setUnShielded (oaBoolean unShielded)
void transform (oaDouble scale, oaDouble angle)
oaCollection< oaRoute, oaShape > getConnRoutes () const

Public Types

enum  { dtIndex = oacShapeDataType }

Detailed Description

The oaShape class is an abstract base for classes that define specific geometry at specific locations in a design. Together with routes, shapes specify all the manufacturable geometry in a chip layout. Shapes can also be used for more abstract purposes. The Text shape classes provide viewable labels on design objects.

All shapes are placed on an oaLayer and an oaPurpose. The design API identifies these by the layer and purpose numbers. The corresponding names are found in the technology database.

Optionally, shapes can also belong to either an oaNet or an oaPin to provide part of the physical implementation of that object.

The oaShape class can be observed by deriving from oaObserver<oaShape>.


Member Function Documentation

oaCollection oaShape::getConnRoutes   const
 

This function returns a collection of routes that are connected to this shape. Each route in the collection has this shape as either its startConn, endConn, or both.

oaLPPHeader * oaShape::getHeader   const
 

This function returns the layer/purpose pair header associated with this shape.

Exceptions:
oacInvalidShape 

oaLayerNum oaShape::getLayerNum   const
 

This function returns the layer number associated with this shape.

Exceptions:
oacInvalidShape 

oaPurposeNum oaShape::getPurposeNum   const
 

This function returns the purpose number associated with this shape.

Exceptions:
oacInvalidShape 

oaRouteStatus oaShape::getRouteStatus   const
 

This function returns the route status of this shape.

Exceptions:
oacInvalidShape 

oaBitNet * oaShape::getShieldedNet1   const
 

This function returns the first net that this shape is shielding. A shape may shield up to two nets.

oaBitNet * oaShape::getShieldedNet2   const
 

This function returns the second net that this shape is shielding. A shape may shield up to two nets.

oaBoolean oaShape::isUnShielded   const
 

This function returns true if this shape is not shielded.

void oaShape::setLayerNum oaLayerNum    layerNum
 

This function moves this shape to the specified layer number. The new layer/purpose pair is created if it does not exist. The old layer/purpose pair is deleted if it becomes empty.

Exceptions:
oacInvalidShape 

void oaShape::setLPP oaLayerNum    layerNum,
oaPurposeNum    purposeNum
 

This function moves this shape to the specified layer/purpose pair. The new layer/purpose pair is created if it does not exist. The old layer/purpose pair is deleted if it becomes empty.

Parameters:
layerNum The layer number of the specified layer-purpose pair
purposeNum The purpose number of the specified layer-purpose pair. Note that oavPurposeNumberNo and oavPurposeNumberAny are only to be used in constraints and are not valid arguments here.
Exceptions:
oacInvalidShape 

void oaShape::setPurposeNum oaPurposeNum    purposeNum
 

This function moves this shape to the specified purpose number. The new layer/purpose pair is created if it does not exist. The old layer/purpose pair is deleted if it becomes empty.

Parameters:
purposeNum The purpose number. Note that oavPurposeNumberNo and oavPurposeNumberAny are only to be used in constraints and are not valid arguments here.
Exceptions:
oacInvalidShape 

void oaShape::setRouteStatus const oaRouteStatus &    routeStatus
 

This function sets the route status attribute of this shape to the specified oaRouteStatus value.

Exceptions:
oacInvalidShape 

void oaShape::setShieldedNet1 oaBitNet *    net
 

This function sets the first shielded net for this shape to the specified bit net. A shape may shield up to two nets. A NULL pointer resets the attribute. Exceptions are thrown if the net is not in the same database as this shape.

Parameters:
net Bit net that is shielded by this shape
Exceptions:
oacNetFigNotInSameBlock 
oacObjectAlreadyShieldsNet 

void oaShape::setShieldedNet2 oaBitNet *    net
 

This function sets the second shielded net for this shape to the specified bit net. A shape may shield up to two nets. A NULL pointer resets the attribute. Exceptions are thrown if the net is not in the same database as this shape.

Parameters:
net Bit net that is shielded by this shape
Exceptions:
oacNetFigNotInSameBlock 
oacObjectAlreadyShieldsNet 

void oaShape::setUnShielded oaBoolean    unShielded
 

This function sets the unShielded attribute of this shape to the specified value.

Parameters:
unShielded value

void oaShape::transform oaDouble    scale,
oaDouble    angle
 

This function transforms this shape by the specified scale factor and rotation angle. The rotation angle is specified in radians. When the angle is not a multiple of Pi/2, rectangles are converted to polygons. PathSegs have a more specilized nature and can only be rotated by angles that are a multiple of Pi/2 to ensure that the orthogonal/diagonal nature of the pathSeg is preserved.

For ellipses and arcs, the transform is applied to their control points, and for both, their control points are based upon the bounding box. When a non-90-degree transform is applied to a box, it is applied to each corner of the box. The bounding box from the resulting points is then applied to the ellipse or the arc.

It is the caller's responsibility to scale and rotate instances.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
dtIndex 


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

Return to top of page