public class Artwork extends Technology
Technology.ArcLayer, Technology.CarbonNanotube, Technology.MultiCutData, Technology.NodeLayer, Technology.SizeCorrector, Technology.State, Technology.TechPoint
Modifier and Type | Field and Description |
---|---|
PrimitiveNode |
arrowNode
Defines a Arrow node.
|
static Variable.Key |
ART_COLOR
key of Variable holding color information
|
static Variable.Key |
ART_DEGREES
Key of Variable holding starting and ending angles.
|
static Variable.Key |
ART_MESSAGE
key of Variable holding message text.
|
static Variable.Key |
ART_PATTERN
key of Variable holding color information
|
PrimitiveNode |
boxNode
Defines a Box node.
|
PrimitiveNode |
circleNode
Defines a Circle node.
|
PrimitiveNode |
closedPolygonNode
Defines a Closed-Polygon node.
|
PrimitiveNode |
crossedBoxNode
Defines a Crossed-Box node.
|
ArcProto |
dashedArc
Defines a Dashed arc.
|
Layer |
defaultLayer
the layer
|
ArcProto |
dottedArc
Defines a Dotted arc.
|
PrimitiveNode |
filledBoxNode
Defines a Filled-Box node.
|
PrimitiveNode |
filledCircleNode
Defines a Filled-Circle node.
|
PrimitiveNode |
filledPolygonNode
Defines a Filled-Polygon node.
|
PrimitiveNode |
filledTriangleNode
Defines a Filled-Triangle node.
|
PrimitiveNode |
openedDashedPolygonNode
Defines a Opened-Dashed-Polygon node.
|
PrimitiveNode |
openedDottedPolygonNode
Defines a Opened-Dotted-Polygon node.
|
PrimitiveNode |
openedPolygonNode
Defines a Opened-Polygon node.
|
PrimitiveNode |
openedThickerPolygonNode
Defines a Opened-Thicker-Polygon node.
|
PrimitiveNode |
pinNode
Defines a Pin node.
|
ArcProto |
solidArc
Defines a Solid arc.
|
PrimitiveNode |
splineNode
Defines a Spline node.
|
PrimitiveNode |
thickCircleNode
Defines a Thick-Circle node.
|
ArcProto |
thickerArc
Defines a Thick arc.
|
PrimitiveNode |
triangleNode
Defines a Triangle node.
|
ALWAYS_SKIP_WIPED_PINS, cachedRules, DISK_VERSION_1, DISK_VERSION_2, EMPTY_LIST, factoryMenuPalette, factoryRules, foundries, IMMUTABLE_TECHS, LAYERS_BY_HEIGHT, LAYERS_BY_HEIGHT_LIFT_CONTACTS, N_TYPE, NULL_ARRAY, oldArcNames, oldNodeNames, P_TYPE, paramFoundry, paramNumMetalLayers, SPECIALMENUCELL, SPECIALMENUEXPORT, SPECIALMENUHIGH, SPECIALMENUMISC, SPECIALMENUPORT, SPECIALMENUPURE, SPECIALMENUSEPARATOR, SPECIALMENUSPICE, SPECIALMENUTEXT, TECH_NODE, techFactory, TRANS_CONTACT, xmlTech
Constructor and Description |
---|
Artwork(Generic generic,
TechFactory techFactory) |
Modifier and Type | Method and Description |
---|---|
static java.awt.geom.Point2D[] |
fillEllipse(java.awt.geom.Point2D center,
double sX,
double sY,
double startoffset,
double endangle)
Method to return an array of Point2D that describe an ellipse.
|
java.awt.geom.Point2D[] |
fillSpline(double cX,
double cY,
java.awt.geom.Point2D[] tracePoints)
Method to convert the given spline control points into a spline curve.
|
protected void |
genShapeOfNode(AbstractShapeBuilder b,
ImmutableNodeInst n,
PrimitiveNode pn,
Technology.NodeLayer[] primLayers)
Puts into shape builder s the polygons that describe node "n", given a set of
NodeLayer objects to use.
|
protected void |
getShapeOfArc(AbstractShapeBuilder b,
ImmutableArcInst a)
Fill the polygons that describe arc "a".
|
protected Poly[] |
getShapeOfNode(CellBackup.Memoization m,
ImmutableNodeInst n,
boolean electrical,
boolean reasonable,
Technology.NodeLayer[] primLayers)
Method to return a list of Polys that describe a given NodeInst.
|
Poly |
getShapeOfPort(NodeInst ni,
PrimitivePort pp,
java.awt.geom.Point2D selectPt)
Returns a polygon that describes a particular port on a NodeInst.
|
static boolean |
isArtworkArc(ArcProto p)
Method to determ if ArcProto is an Artwork primitive arc
|
boolean |
isEasyShape(ImmutableArcInst a,
boolean explain)
Tells if arc can be drawn by simplified algorithm
Arcs with user-specified color or pattern are not easy
|
EGraphics |
makeGraphics(ElectricObject eObj)
Method to create an EGraphics for an ElectricObject with color and pattern Variables.
|
void |
setDefaultOutline(NodeInst ni)
Method to set default outline information on a NodeInst.
|
static Artwork |
tech()
the Artwork Technology object.
|
addArcProto, addLayer, addNodeProto, cleanUnusedNodesInLibrary, compareTo, computeShapeOfNode, convertOldArcName, convertOldNodeName, convertOldPortName, convertOldVariable, copyState, dump, dumpExtraProjectSettings, findArcProto, findFoundry, findLayer, findLayerFromFunction, findNodeProto, findTechnology, findTechnology, getArcProto, getArcs, getArcsCollection, getCachedRules, getCMOS90Technology, getColorMap, getCurrent, getCurrentState, getDiffAlpha, getDiffAlphaSetting, getFactoryDesignRules, getFactoryMenuPalette, getFactoryResolution, getFactoryTransparentLayerColors, getFoundries, getGateCapacitance, getGateCapacitanceSetting, getGateIncludedSetting, getGateLengthSubtraction, getGateLengthSubtractionSetting, getGDSLayers, getGroundNetIncludedSetting, getId, getLayer, getLayer, getLayerFromOverride, getLayers, getLayersSortedByHeight, getLayersSortedByName, getMaxSeriesResistance, getMaxSeriesResistanceSetting, getMetalContactCluster, getMinCapacitance, getMinCapacitanceSetting, getMinResistance, getMinResistanceSetting, getMocmosTechnology, getMultiCutData, getNodeInstBaseRectangle, getNodes, getNodesCollection, getNodesSortedByName, getNumArcs, getNumLayers, getNumMetals, getNumMetalsSetting, getNumNodes, getNumTransparentLayers, getOldArcNames, getOldNodeNames, getParamValuesByXmlPath, getPrefFoundry, getPrefFoundrySetting, getPrimitiveFunction, getPrimitiveNode, getProjectSettings, getProjectSettingsRoot, getResistorSize, getRuleDifferences, getRuleNodeIndex, getScale, getScaleSetting, getScaleVariableName, getSelectedFoundry, getSetting, getSetting, getShapeOfArc, getShapeOfArc, getShapeOfArc, getShapeOfNode, getShapeOfNode, getShapeOfPort, getSizeCorrector, getSpacingDistances, getSpiceHeaderLevel1, getSpiceHeaderLevel2, getSpiceHeaderLevel3, getTechDesc, getTechName, getTechnologies, getTechShortName, getTransistorActiveLength, getTransistorAltGatePort, getTransistorBasePort, getTransistorBiasPort, getTransistorCollectorPort, getTransistorDrainPort, getTransistorEmitterPort, getTransistorGatePort, getTransistorSize, getTransistorSourcePort, getTransparentLayerColors, getTSMC180Technology, getWireRatio, getWireRatioSetting, getXmlTech, initAllTechnologies, isEasyShape, isGateIncluded, isGroundNetIncluded, isLayout, isMultiCutCase, isMultiCutInTechnology, isNoDirectionalArcs, isNoNegatedArcs, isNonElectrical, isNonStandard, isNoPrimitiveNodes, isScaleRelevant, isSchematics, isStaticTechnology, isUniversalConnectivityPort, isValidVTPolyRule, isXmlTechAvailable, loadFactoryMenuPalette, makeBooleanSetting, makeDoubleSetting, makeFactoryDesignRules, makeInitialEnvironment, makeIntSetting, makeStringSetting, makeXml, newArcProto, newFoundry, parseComponentMenuXML, printlnBits, printlnSetting, sameLayer, setArcCorrection, setCachedRules, setColorMapFromLayers, setFactoryLESettings, setFactoryParasitics, setFactoryResolution, setFactoryScale, setFactoryTransparentLayers, setNoDirectionalArcs, setNoNegatedArcs, setNonElectrical, setNonStandard, setNoPrimitiveNodes, setNotUsed, setPrimitiveFunction, setPrimitiveNodeSize, setRuleVariables, setSpiceHeaderLevel1, setSpiceHeaderLevel2, setSpiceHeaderLevel3, setStaticTechnology, setTechDesc, setTechName, setTechShortName, setup, toString, whatTechnology, whatTechnology, withState, writeReplace
public static final Variable.Key ART_DEGREES
public static final Variable.Key ART_MESSAGE
public static final Variable.Key ART_COLOR
public static final Variable.Key ART_PATTERN
public final PrimitiveNode pinNode
public final PrimitiveNode boxNode
public final PrimitiveNode crossedBoxNode
public final PrimitiveNode filledBoxNode
public final PrimitiveNode circleNode
public final PrimitiveNode filledCircleNode
public final PrimitiveNode splineNode
public final PrimitiveNode triangleNode
public final PrimitiveNode filledTriangleNode
public final PrimitiveNode arrowNode
public final PrimitiveNode openedPolygonNode
public final PrimitiveNode openedDottedPolygonNode
public final PrimitiveNode openedDashedPolygonNode
public final PrimitiveNode openedThickerPolygonNode
public final PrimitiveNode closedPolygonNode
public final PrimitiveNode filledPolygonNode
public final PrimitiveNode thickCircleNode
public final ArcProto solidArc
public final ArcProto dottedArc
public final ArcProto dashedArc
public final ArcProto thickerArc
public final Layer defaultLayer
public Artwork(Generic generic, TechFactory techFactory)
public static Artwork tech()
protected Poly[] getShapeOfNode(CellBackup.Memoization m, ImmutableNodeInst n, boolean electrical, boolean reasonable, Technology.NodeLayer[] primLayers)
getShapeOfNode
in class Technology
m
- information about including cell which is necessary for computingn
- the ImmutableNodeInst that is being described.electrical
- true to get the "electrical" layers.
This makes no sense for Artwork primitives.reasonable
- true to get only a minimal set of contact cuts in large contacts.
This makes no sense for Artwork primitives.primLayers
- an array of NodeLayer objects to convert to Poly objects.protected void genShapeOfNode(AbstractShapeBuilder b, ImmutableNodeInst n, PrimitiveNode pn, Technology.NodeLayer[] primLayers)
genShapeOfNode
in class Technology
b
- shape builder where to put polygonsn
- the ImmutableNodeInst that is being described.pn
- proto of the ImmutableNodeInst in this TechnologyprimLayers
- an array of NodeLayer objects to convert to Poly objects.
The prototype of this NodeInst must be a PrimitiveNode and not a Cell.public Poly getShapeOfPort(NodeInst ni, PrimitivePort pp, java.awt.geom.Point2D selectPt)
getShapeOfPort
in class Technology
ni
- the NodeInst that has the port of interest.
The prototype of this NodeInst must be a PrimitiveNode and not a Cell.pp
- the PrimitivePort on that NodeInst that is being described.selectPt
- if not null, it requests a new location on the port,
away from existing arcs, and close to this point.
This is useful for "area" ports such as the left side of AND and OR gates.protected void getShapeOfArc(AbstractShapeBuilder b, ImmutableArcInst a)
getShapeOfArc
in class Technology
b
- AbstractShapeBuilder to fill polygons.a
- the ImmutableArcInst that is being described.public boolean isEasyShape(ImmutableArcInst a, boolean explain)
isEasyShape
in class Technology
a
- arc to testexplain
- if true then print explanation why arc is not easypublic static java.awt.geom.Point2D[] fillEllipse(java.awt.geom.Point2D center, double sX, double sY, double startoffset, double endangle)
center
- the center coordinate of the ellipse.sX
- the X size of the ellipse.sY
- the Y size of the ellipse.startoffset
- the starting angle of the ellipse, in radians.endangle
- the ending angle of the ellipse, in radians.
If both startoffset and endangle are zero, draw the full ellipse.public void setDefaultOutline(NodeInst ni)
setDefaultOutline
in class Technology
ni
- the NodeInst to load with default outline information.public java.awt.geom.Point2D[] fillSpline(double cX, double cY, java.awt.geom.Point2D[] tracePoints)
cX
- the center X coordinate of the spline.cY
- the center Y coordinate of the spline.tracePoints
- the array of control point values, alternating X/Y/X/Y.public EGraphics makeGraphics(ElectricObject eObj)
eObj
- the ElectricObject with graphics specifications.public static boolean isArtworkArc(ArcProto p)
p
- ArcProto reference