public abstract class AbstractShapeBuilder
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
AbstractShapeBuilder.Shrinkage |
Modifier and Type | Field and Description |
---|---|
protected double[] |
doubleCoords |
protected int[] |
intCoords |
protected int |
pointCount |
Constructor and Description |
---|
AbstractShapeBuilder()
Creates a new instance of AbstractShapeBuilder
|
AbstractShapeBuilder(boolean rotateNodes) |
Modifier and Type | Method and Description |
---|---|
abstract void |
addDoublePoly(int numPoints,
Poly.Type style,
Layer layer,
EGraphics graphicsOverride,
PrimitivePort pp) |
void |
addDoubleTextPoly(int numPoints,
Poly.Type style,
Layer layer,
PrimitivePort pp,
java.lang.String message,
TextDescriptor descriptor) |
abstract void |
addIntBox(int[] coords,
Layer layer) |
abstract void |
addIntPoly(int numPoints,
Poly.Type style,
Layer layer,
EGraphics graphicsOverride,
PrimitivePort pp) |
static java.awt.geom.Point2D |
computeExtension(int w2,
double ix1,
double iy1,
int angle,
short shrink)
Computes extension vector of wire,
|
boolean |
curvedArcGridOutline(ImmutableArcInst a,
long gridWidth,
long gridRadius)
Method to fill polygon "poly" with the outline in grid units of the curved arc in
this ImmutableArcInst whose width in grid units is "gridWidth".
|
boolean |
genShapeEasy(ImmutableArcInst a)
Generate shape of this ImmutableArcInst in easy case.
|
void |
genShapeOfArc(ImmutableArcInst a) |
void |
genShapeOfNode(ImmutableNodeInst n) |
void |
genShapeOfNode(ImmutableNodeInst n,
PrimitiveNode np,
Technology.NodeLayer[] primLayers,
EGraphics graphicsOverride)
Returns the polygons that describe node "ni", given a set of
NodeLayer objects to use.
|
CellBackup |
getCellBackup() |
CellBackup.Memoization |
getMemoization() |
AbstractShapeBuilder.Shrinkage |
getShrinkage() |
TechPool |
getTechPool() |
boolean |
isElectrical() |
boolean |
isReasonable() |
void |
makeGridPoly(ImmutableArcInst a,
long gridWidth,
Poly.Type style,
Layer layer,
EGraphics graphicsOverride)
Method to fill in an AbstractShapeBuilder a polygon that describes this ImmutableArcInst in grid units.
|
void |
pushIntBox(Layer layer) |
void |
pushIntLine(Poly.Type style,
Layer layer) |
void |
pushPoint(double gridX,
double gridY) |
void |
pushPoint(EPoint p) |
void |
pushPoint(EPoint p,
double gridX,
double gridY) |
void |
pushPoly(Poly.Type style,
Layer layer,
EGraphics graphicsOverride,
PrimitivePort pp) |
void |
pushTextPoly(Poly.Type style,
Layer layer,
PrimitivePort pp,
java.lang.String message,
TextDescriptor descriptor) |
void |
setup(Cell cell) |
void |
setup(CellBackup cellBackup,
Orientation orient,
boolean electrical,
boolean wipePins,
boolean reasonable,
Layer.Function.Set onlyTheseLayers) |
boolean |
skipLayer(Layer layer) |
protected double[] doubleCoords
protected int pointCount
protected int[] intCoords
public AbstractShapeBuilder()
public AbstractShapeBuilder(boolean rotateNodes)
public void setup(Cell cell)
public void setup(CellBackup cellBackup, Orientation orient, boolean electrical, boolean wipePins, boolean reasonable, Layer.Function.Set onlyTheseLayers)
public boolean isElectrical()
public boolean isReasonable()
public boolean skipLayer(Layer layer)
public CellBackup.Memoization getMemoization()
public CellBackup getCellBackup()
public AbstractShapeBuilder.Shrinkage getShrinkage()
public TechPool getTechPool()
public void genShapeOfArc(ImmutableArcInst a)
public void genShapeOfNode(ImmutableNodeInst n)
public void genShapeOfNode(ImmutableNodeInst n, PrimitiveNode np, Technology.NodeLayer[] primLayers, EGraphics graphicsOverride)
n
- the ImmutableNodeInst that is being described.np
- PrimitiveNode proto of give ImmutableNodeInst in TechPool of MemoizationprimLayers
- an array of NodeLayer objects to convert to Poly objects.graphicsOverride
- the graphics override to use for all generated polygons (if not null).
The prototype of this NodeInst must be a PrimitiveNode and not a Cell.public void makeGridPoly(ImmutableArcInst a, long gridWidth, Poly.Type style, Layer layer, EGraphics graphicsOverride)
a
- the arc information.gridWidth
- the gridWidth of the Poly.style
- the style of the Poly.layer
- layer of the PolygraphicsOverride
- graphics override of the Polypublic static java.awt.geom.Point2D computeExtension(int w2, double ix1, double iy1, int angle, short shrink)
public boolean curvedArcGridOutline(ImmutableArcInst a, long gridWidth, long gridRadius)
a
- the arc information.gridWidth
- width in grid units.gridRadius
- radius in grid units.public boolean genShapeEasy(ImmutableArcInst a)
a
- the arc information.public void pushPoint(EPoint p, double gridX, double gridY)
public void pushPoint(double gridX, double gridY)
public void pushPoint(EPoint p)
public void pushPoly(Poly.Type style, Layer layer, EGraphics graphicsOverride, PrimitivePort pp)
public void pushTextPoly(Poly.Type style, Layer layer, PrimitivePort pp, java.lang.String message, TextDescriptor descriptor)
public void pushIntBox(Layer layer)
public abstract void addDoublePoly(int numPoints, Poly.Type style, Layer layer, EGraphics graphicsOverride, PrimitivePort pp)
public void addDoubleTextPoly(int numPoints, Poly.Type style, Layer layer, PrimitivePort pp, java.lang.String message, TextDescriptor descriptor)
public abstract void addIntPoly(int numPoints, Poly.Type style, Layer layer, EGraphics graphicsOverride, PrimitivePort pp)
public abstract void addIntBox(int[] coords, Layer layer)