com.sun.electric.database
Class ImmutableArcInst

java.lang.Object
  extended by com.sun.electric.database.ImmutableElectricObject
      extended by com.sun.electric.database.ImmutableArcInst

public class ImmutableArcInst
extends ImmutableElectricObject

Immutable class ImmutableArcInst represents an arc instance.


Nested Class Summary
static class ImmutableArcInst.Flag
          Class to access a flag in user bits of ImmutableNodeInst.
 
Field Summary
static Variable.Key ARC_RADIUS
          Key of Varible holding arc curvature.
 int arcId
          id of this ArcInst in parent.
static Name BASENAME
          prefix for autonaming.
static ImmutableArcInst.Flag BODY_ARROWED
          Flag to set an ImmutableArcInst to be directional, with an arrow line drawn down the center.
static int DEFAULT_FLAGS
          initial bits
static ImmutableArrayList<ImmutableArcInst> EMPTY_LIST
           
static int FACTORY_DEFAULT_FLAGS
          initial factory bits: FIXED_ANGLE=SLIDABLE=TAIL_EXTENDED=HEAD_EXTENDED=true, others false
static ImmutableArcInst.Flag FIXED_ANGLE
          Flag to set an ImmutableArcInst to be fixed-angle.
static ImmutableArcInst.Flag HARD_SELECT
          Flag to set an ImmutableArcInst to be hard-to-select.
static ImmutableArcInst.Flag HEAD_ARROWED
          Flag to set an ImmutableArcInst to be directional, with an arrow on the head.
static ImmutableArcInst.Flag HEAD_EXTENDED
          Flag to set the head of an ImmutableArcInst to be extended.
static ImmutableArcInst.Flag HEAD_NEGATED
          Flag to set the head of an ImmutableArcInst to be negated.
static int HEADEND
          The index of the head of this ArcInst.
 EPoint headLocation
          Location of head end of this ImmutableArcInst.
 int headNodeId
          NodeId on head end of this ImmutableArcInst.
 PortProtoId headPortId
          PortProtoId on head end of this ImmutableArcInst.
 Name name
          name of this ImmutableArcInst.
 TextDescriptor nameDescriptor
          The text descriptor of name of ImmutableArcInst.
static ImmutableArcInst[] NULL_ARRAY
           
 ArcProtoId protoId
          Arc prototype.
static ImmutableArcInst.Flag RIGID
          Flag to set an ImmutableArcInst to be rigid.
static ImmutableArcInst.Flag SLIDABLE
          Flag to set an ImmutableArcInst to be slidable.
static ImmutableArcInst.Flag TAIL_ARROWED
          Flag to set an ImmutableArcInst to be directional, with an arrow on the tail.
static ImmutableArcInst.Flag TAIL_EXTENDED
          Flag to set the tail of an ImmutableArcInst to be is extended.
static ImmutableArcInst.Flag TAIL_NEGATED
          Flag to set the tail of an ImmutableArcInst to be negated.
static int TAILEND
          The index of the tail of this ArcInst.
 EPoint tailLocation
          Location of tail end of this ImmutableArcInst.
 int tailNodeId
          NodeId on tail end of this ImmutableArcInst.
 PortProtoId tailPortId
          PortProtoId on tail end of this ImmutableArcInst.
 
Fields inherited from class com.sun.electric.database.ImmutableElectricObject
flags
 
Method Summary
static int angleFromElib(int elibBits)
          Get angle from ELIB user bits.
 void check()
          Checks invariant of this ImmutableArcInst.
 boolean check(TechPool techPool)
           
 boolean equalsExceptVariables(ImmutableElectricObject o)
          Indicates whether fields of other ImmutableElectricObject are equal to fileds of this object.
static int flagsFromElib(int elibBits)
          Method to convert ELIB userbits to database flags.
 int getAngle()
          Method to return the rotation angle of this ImmutableArcInst.
 int getElibBits()
          Method to compute the "userbits" to use for a given ArcInst.
 long getGridExtendOverMin()
          Returns extend of this ImmutableArcInst over minimal-width arc of this type in grid units.
 double getGridLength()
          Returns length of this ImmutableArcInst in grid units.
 double getLambdaExtendOverMin()
          Returns extend of this ImmutableArcInst over minimal-width arc of this type in lambda units.
 double getLambdaLength()
          Returns length of this ImmutableArcInst in lambda units.
 int getOppositeAngle()
          Method to return the opposite rotation angle of this ImmutableArcInst.
 java.lang.Double getRadius()
          Method to get the curvature radius on this ImmutableArcInst.
 int hashCodeExceptVariables()
          Return a hash code value for fields of this object.
 boolean is(ImmutableArcInst.Flag flag)
          Tests specific flag is set on this ImmutableArcInst.
 boolean isArrowed(int connIndex)
          Method to determine whether this ImmutableArcInst is directional, with an arrow on one end.
 boolean isBodyArrowed()
          Method to determine whether this ArcInst is directional, with an arrow line drawn down the center.
 boolean isExtended(int connIndex)
          Method to tell whether an end of ImmutableArcInst has its ends extended.
 boolean isFixedAngle()
          Method to tell whether this ImmutableArcInst is fixed-angle.
 boolean isHardSelect()
          Method to tell whether this ArcInst is hard-to-select.
 boolean isHeadArrowed()
          Method to determine whether this ImmutableArcInst is directional, with an arrow on the head.
 boolean isHeadExtended()
          Method to tell whether the head of this arc is extended.
 boolean isHeadNegated()
          Method to tell whether the head of this arc is negated.
 boolean isManhattan()
          Returns true if this ImmutableArcInst is either horizontal or vertical.
 boolean isNegated(int connIndex)
          Method to tell whether an end of this arc is negated.
 boolean isRigid()
          Method to tell whether this ImmutableArcInst is rigid.
 boolean isSlidable()
          Method to tell whether this ImmutableArcInst is slidable.
 boolean isTailArrowed()
          Method to determine whether this ImmutableArcInst is directional, with an arrow on the tail.
 boolean isTailExtended()
          Method to tell whether the tail of this arc is extended.
 boolean isTailNegated()
          Method to tell whether the tail of this arc is negated.
 boolean isUsernamed()
          Retruns true if this ImmutableArcInst was named by user.
 boolean isZeroLength()
          Returns true if length of this ImmutableArcInst is zero.
 void makeGridBoxInt(int[] intCoords, boolean tailExtended, boolean headExtended, int gridExtend)
          Method to fill in an AbstractShapeBuilder a polygon that describes this ImmutableArcInst in grid units.
static ImmutableArcInst newInstance(int arcId, ArcProtoId protoId, Name name, TextDescriptor nameDescriptor, int tailNodeId, PortProtoId tailPortId, EPoint tailLocation, int headNodeId, PortProtoId headPortId, EPoint headLocation, long gridExtendOverMin, int angle, int flags)
          Returns new ImmutableArcInst object.
 ImmutableArcInst withAngle(int angle)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by angke.
 ImmutableArcInst withFlag(ImmutableArcInst.Flag flag, boolean value)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by flag bit.
 ImmutableArcInst withFlags(int flags)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by user bits.
 ImmutableArcInst withGridExtendOverMin(long gridExtendOverMin)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by width.
 ImmutableArcInst withLocations(EPoint tailLocation, EPoint headLocation)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by tailLocation and headLocation.
 ImmutableArcInst withName(Name name)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by name.
 ImmutableArcInst withNameDescriptor(TextDescriptor nameDescriptor)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by name descriptor.
 ImmutableArcInst withoutVariable(Variable.Key key)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by removing Variable with the specified key.
 ImmutableArcInst withVariable(Variable var)
          Returns ImmutableArcInst which differs from this ImmutableArcInst by additional Variable.
 
Methods inherited from class com.sun.electric.database.ImmutableElectricObject
getNumVariables, getVar, getVar, getVariables, getVarValue, searchVar, toVariableArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TAILEND

public static final int TAILEND
The index of the tail of this ArcInst.

See Also:
Constant Field Values

HEADEND

public static final int HEADEND
The index of the head of this ArcInst.

See Also:
Constant Field Values

ARC_RADIUS

public static final Variable.Key ARC_RADIUS
Key of Varible holding arc curvature.


RIGID

public static final ImmutableArcInst.Flag RIGID
Flag to set an ImmutableArcInst to be rigid. Rigid arcs cannot change length or the angle of their connection to a NodeInst.


FIXED_ANGLE

public static final ImmutableArcInst.Flag FIXED_ANGLE
Flag to set an ImmutableArcInst to be fixed-angle. Fixed-angle arcs cannot change their angle, so if one end moves, the other may also adjust to keep the arc angle constant.


SLIDABLE

public static final ImmutableArcInst.Flag SLIDABLE
Flag to set an ImmutableArcInst to be slidable. Arcs that slide will not move their connected NodeInsts if the arc's end is still within the port area. Arcs that cannot slide will force their NodeInsts to move by the same amount as the arc. Rigid arcs cannot slide but nonrigid arcs use this state to make a decision.


TAIL_ARROWED

public static final ImmutableArcInst.Flag TAIL_ARROWED
Flag to set an ImmutableArcInst to be directional, with an arrow on the tail. Directional arcs have an arrow drawn on them to indicate flow. It is only for documentation purposes and does not affect the circuit.


HEAD_ARROWED

public static final ImmutableArcInst.Flag HEAD_ARROWED
Flag to set an ImmutableArcInst to be directional, with an arrow on the head. Directional arcs have an arrow drawn on them to indicate flow. It is only for documentation purposes and does not affect the circuit.


BODY_ARROWED

public static final ImmutableArcInst.Flag BODY_ARROWED
Flag to set an ImmutableArcInst to be directional, with an arrow line drawn down the center. Directional arcs have an arrow drawn on them to indicate flow. It is only for documentation purposes and does not affect the circuit. The body is typically drawn when one of the ends has an arrow on it, but it may be drawin without an arrow head in order to continue an attached arc that has an arrow.


TAIL_EXTENDED

public static final ImmutableArcInst.Flag TAIL_EXTENDED
Flag to set the tail of an ImmutableArcInst to be is extended. Extended arcs continue past their endpoint by half of their width. Most layout arcs want this so that they make clean connections to orthogonal arcs.


HEAD_EXTENDED

public static final ImmutableArcInst.Flag HEAD_EXTENDED
Flag to set the head of an ImmutableArcInst to be extended. Extended arcs continue past their endpoint by half of their width. Most layout arcs want this so that they make clean connections to orthogonal arcs.


TAIL_NEGATED

public static final ImmutableArcInst.Flag TAIL_NEGATED
Flag to set the tail of an ImmutableArcInst to be negated. Negated arc have a negating bubble on them to indicate negation. This is only valid in schematics technologies.


HEAD_NEGATED

public static final ImmutableArcInst.Flag HEAD_NEGATED
Flag to set the head of an ImmutableArcInst to be negated. Negated arc have a negating bubble on them to indicate negation. This is only valid in schematics technologies.


HARD_SELECT

public static final ImmutableArcInst.Flag HARD_SELECT
Flag to set an ImmutableArcInst to be hard-to-select. Hard-to-select ArcInsts cannot be selected by clicking on them. Instead, the "special select" command must be given.


DEFAULT_FLAGS

public static final int DEFAULT_FLAGS
initial bits


FACTORY_DEFAULT_FLAGS

public static final int FACTORY_DEFAULT_FLAGS
initial factory bits: FIXED_ANGLE=SLIDABLE=TAIL_EXTENDED=HEAD_EXTENDED=true, others false


BASENAME

public static final Name BASENAME
prefix for autonaming.


NULL_ARRAY

public static final ImmutableArcInst[] NULL_ARRAY

EMPTY_LIST

public static final ImmutableArrayList<ImmutableArcInst> EMPTY_LIST

arcId

public final int arcId
id of this ArcInst in parent.


protoId

public final ArcProtoId protoId
Arc prototype.


name

public final Name name
name of this ImmutableArcInst.


nameDescriptor

public final TextDescriptor nameDescriptor
The text descriptor of name of ImmutableArcInst.


tailNodeId

public final int tailNodeId
NodeId on tail end of this ImmutableArcInst.


tailPortId

public final PortProtoId tailPortId
PortProtoId on tail end of this ImmutableArcInst.


tailLocation

public final EPoint tailLocation
Location of tail end of this ImmutableArcInst.


headNodeId

public final int headNodeId
NodeId on head end of this ImmutableArcInst.


headPortId

public final PortProtoId headPortId
PortProtoId on head end of this ImmutableArcInst.


headLocation

public final EPoint headLocation
Location of head end of this ImmutableArcInst.

Method Detail

isUsernamed

public boolean isUsernamed()
Retruns true if this ImmutableArcInst was named by user.

Returns:
true if this ImmutableArcInst was named by user.

getLambdaExtendOverMin

public double getLambdaExtendOverMin()
Returns extend of this ImmutableArcInst over minimal-width arc of this type in lambda units.

Returns:
extend of this ImmutableArcInst over minimal-width arc of this type in lambda units.

getGridExtendOverMin

public long getGridExtendOverMin()
Returns extend of this ImmutableArcInst over minimal-width arc of this type in grid units.

Returns:
extend of this ImmutableArcInst over minimal-width arc of this type in grid units.

getLambdaLength

public double getLambdaLength()
Returns length of this ImmutableArcInst in lambda units.

Returns:
length of this ImmutableArcInst in lambda units.

getGridLength

public double getGridLength()
Returns length of this ImmutableArcInst in grid units.

Returns:
length of this ImmutableArcInst in grid units.

isZeroLength

public boolean isZeroLength()
Returns true if length of this ImmutableArcInst is zero.

Returns:
true if length of this ImmutableArcInst is zero.

getAngle

public int getAngle()
Method to return the rotation angle of this ImmutableArcInst. This is an angle of direction from tailLocation to headLocation.

Returns:
the rotation angle of this ImmutableArcInst (in tenth-degrees).

getOppositeAngle

public int getOppositeAngle()
Method to return the opposite rotation angle of this ImmutableArcInst. This is an angle of direction from headLocation to tailLocation.

Returns:
the opposite rotation angle of this ImmutableArcInst (in tenth-degrees).

is

public boolean is(ImmutableArcInst.Flag flag)
Tests specific flag is set on this ImmutableArcInst.

Parameters:
flag - flag selector.
Returns:
true if specific flag is set,

isRigid

public boolean isRigid()
Method to tell whether this ImmutableArcInst is rigid. Rigid arcs cannot change length or the angle of their connection to a NodeInst.

Returns:
true if this ImmutableArcInst is rigid.

isFixedAngle

public boolean isFixedAngle()
Method to tell whether this ImmutableArcInst is fixed-angle. Fixed-angle arcs cannot change their angle, so if one end moves, the other may also adjust to keep the arc angle constant.

Returns:
true if this ImmutableArcInst is fixed-angle.

isSlidable

public boolean isSlidable()
Method to tell whether this ImmutableArcInst is slidable. Arcs that slide will not move their connected NodeInsts if the arc's end is still within the port area. Arcs that cannot slide will force their NodeInsts to move by the same amount as the arc. Rigid arcs cannot slide but nonrigid arcs use this state to make a decision.

Returns:
true if this ImmutableArcInst is slidable.

isHardSelect

public boolean isHardSelect()
Method to tell whether this ArcInst is hard-to-select. Hard-to-select ArcInsts cannot be selected by clicking on them. Instead, the "special select" command must be given.

Returns:
true if this ArcInst is hard-to-select.

isArrowed

public boolean isArrowed(int connIndex)
Method to determine whether this ImmutableArcInst is directional, with an arrow on one end. Directional arcs have an arrow drawn on them to indicate flow. It is only for documentation purposes and does not affect the circuit.

Parameters:
connIndex - TAILEND (0) for the tail of this ArcInst, HEADEND (1) for the head.
Returns:
true if that end has a directional arrow on it.

isTailArrowed

public boolean isTailArrowed()
Method to determine whether this ImmutableArcInst is directional, with an arrow on the tail. Directional arcs have an arrow drawn on them to indicate flow. It is only for documentation purposes and does not affect the circuit.

Returns:
true if the arc's tail has a directional arrow on it.

isHeadArrowed

public boolean isHeadArrowed()
Method to determine whether this ImmutableArcInst is directional, with an arrow on the head. Directional arcs have an arrow drawn on them to indicate flow. It is only for documentation purposes and does not affect the circuit.

Returns:
true if the arc's head has a directional arrow on it.

isBodyArrowed

public boolean isBodyArrowed()
Method to determine whether this ArcInst is directional, with an arrow line drawn down the center. Directional arcs have an arrow drawn on them to indicate flow. It is only for documentation purposes and does not affect the circuit. The body is typically drawn when one of the ends has an arrow on it, but it may be drawin without an arrow head in order to continue an attached arc that has an arrow.

Returns:
true if the arc's tail has an arrow line on it.

isExtended

public boolean isExtended(int connIndex)
Method to tell whether an end of ImmutableArcInst has its ends extended. Extended arcs continue past their endpoint by half of their width. Most layout arcs want this so that they make clean connections to orthogonal arcs.

Parameters:
connIndex - TAILEND (0) for the tail of this ArcInst, HEADEND (1) for the head.
Returns:
true if that end of this ArcInst iss extended.

isTailExtended

public boolean isTailExtended()
Method to tell whether the tail of this arc is extended. Extended arcs continue past their endpoint by half of their width. Most layout arcs want this so that they make clean connections to orthogonal arcs.

Returns:
true if the tail of this arc is extended.

isHeadExtended

public boolean isHeadExtended()
Method to tell whether the head of this arc is extended. Extended arcs continue past their endpoint by half of their width. Most layout arcs want this so that they make clean connections to orthogonal arcs.

Returns:
true if the head of this arc is extended.

isNegated

public boolean isNegated(int connIndex)
Method to tell whether an end of this arc is negated. Negated arc have a negating bubble on them to indicate negation. This is only valid in schematics technologies.

Parameters:
connIndex - TAILEND (0) for the tail of this ArcInst, HEADEND (1) for the head.
Returns:
true if set that end of this arc is negated.

isTailNegated

public boolean isTailNegated()
Method to tell whether the tail of this arc is negated. Negated arc have a negating bubble on them to indicate negation. This is only valid in schematics technologies.

Returns:
true if set the tail of this arc is negated.

isHeadNegated

public boolean isHeadNegated()
Method to tell whether the head of this arc is negated. Negated arc have a negating bubble on them to indicate negation. This is only valid in schematics technologies.

Returns:
true if set the head of this arc is negated.

isManhattan

public boolean isManhattan()
Returns true if this ImmutableArcInst is either horizontal or vertical.

Returns:
true if this ImmutableArcInst is either horizontal or vertical.

newInstance

public static ImmutableArcInst newInstance(int arcId,
                                           ArcProtoId protoId,
                                           Name name,
                                           TextDescriptor nameDescriptor,
                                           int tailNodeId,
                                           PortProtoId tailPortId,
                                           EPoint tailLocation,
                                           int headNodeId,
                                           PortProtoId headPortId,
                                           EPoint headLocation,
                                           long gridExtendOverMin,
                                           int angle,
                                           int flags)
Returns new ImmutableArcInst object.

Parameters:
arcId - id of this ArcInst in parent.
protoId - Id of arc prototype.
name - name of this ImmutableArcInst.
nameDescriptor - TextDescriptor of name of this ImmutableArcInst.
tailNodeId - NodeId on tail end of this ImmutableArcInst.
tailPortId - PortProtoId on tail end of this ImmutableArcInst.
tailLocation - Location of tail end of this ImmutableArcInst.
headNodeId - NodeId on head end of this ImmutableArcInst.
headPortId - PortProtoId on head end of this ImmutableArcInst.
headLocation - Location of head end of this ImmutableArcInst.
gridExtendOverMin - the extend of this ImmutableArcInst over minimal-width arc of this type in grid units.
angle - the angle if this ImmutableArcInst (in tenth-degrees).
flags - flag bits of this ImmutableNodeInst.
Returns:
new ImmutableArcInst object.
Throws:
java.lang.NullPointerException - if protoType, name, tailPortId, headPortId, tailLocation, headLocation is null.
java.lang.IllegalArgumentException - if arcId, tailNodeId, headNodeId or name is not valid, or width is bad.

withName

public ImmutableArcInst withName(Name name)
Returns ImmutableArcInst which differs from this ImmutableArcInst by name.

Parameters:
name - node name key.
Returns:
ImmutableArcInst which differs from this ImmutableArcInst by name.
Throws:
java.lang.NullPointerException - if name is null
java.lang.IllegalArgumentException - if name is not valid.

withNameDescriptor

public ImmutableArcInst withNameDescriptor(TextDescriptor nameDescriptor)
Returns ImmutableArcInst which differs from this ImmutableArcInst by name descriptor.

Parameters:
nameDescriptor - TextDescriptor of name
Returns:
ImmutableArcInst which differs from this ImmutableArcInst by name descriptor.

withLocations

public ImmutableArcInst withLocations(EPoint tailLocation,
                                      EPoint headLocation)
Returns ImmutableArcInst which differs from this ImmutableArcInst by tailLocation and headLocation.

Parameters:
tailLocation - new tail location.
headLocation - new head location.
Returns:
ImmutableArcInst which differs from this ImmutableArcInst by tailLocation and headLocation.
Throws:
java.lang.NullPointerException - if tailLocation is null.

withGridExtendOverMin

public ImmutableArcInst withGridExtendOverMin(long gridExtendOverMin)
Returns ImmutableArcInst which differs from this ImmutableArcInst by width.

Parameters:
gridExtendOverMin - extend of this arc over minimal arc of this type in grid units.
Returns:
ImmutableArcInst which differs from this ImmutableArcInst by width.
Throws:
java.lang.IllegalArgumentException - if gridExtendOverMin is negative.

withAngle

public ImmutableArcInst withAngle(int angle)
Returns ImmutableArcInst which differs from this ImmutableArcInst by angke. For arc with non-zero length returns ths ImmutableArcInst

Parameters:
angle - angle in tenth-degrees.
Returns:
ImmutableArcInst which differs from this ImmutableArcInst by user bits.

withFlags

public ImmutableArcInst withFlags(int flags)
Returns ImmutableArcInst which differs from this ImmutableArcInst by user bits.

Parameters:
flags - flag bits of this ImmutableArcInst.
Returns:
ImmutableArcInst which differs from this ImmutableArcInst by user bits.

withFlag

public ImmutableArcInst withFlag(ImmutableArcInst.Flag flag,
                                 boolean value)
Returns ImmutableArcInst which differs from this ImmutableArcInst by flag bit.

Parameters:
flag - Flag selector.
value - new value of flag.
Returns:
ImmutableArcInst which differs from this ImmutableArcInst by flag bit.

withVariable

public ImmutableArcInst withVariable(Variable var)
Returns ImmutableArcInst which differs from this ImmutableArcInst by additional Variable. If this ImmutableArcInst has Variable with the same key as new, the old variable will not be in new ImmutableArcInst.

Parameters:
var - additional Variable.
Returns:
ImmutableArcInst with additional Variable.
Throws:
java.lang.NullPointerException - if var is null

withoutVariable

public ImmutableArcInst withoutVariable(Variable.Key key)
Returns ImmutableArcInst which differs from this ImmutableArcInst by removing Variable with the specified key. Returns this ImmutableArcInst if it doesn't contain variable with the specified key.

Parameters:
key - Variable Key to remove.
Returns:
ImmutableArcInst without Variable with the specified key.
Throws:
java.lang.NullPointerException - if key is null

hashCodeExceptVariables

public int hashCodeExceptVariables()
Return a hash code value for fields of this object. Variables of objects are not compared

Specified by:
hashCodeExceptVariables in class ImmutableElectricObject

equalsExceptVariables

public boolean equalsExceptVariables(ImmutableElectricObject o)
Indicates whether fields of other ImmutableElectricObject are equal to fileds of this object. Variables of objects are not compared.

Specified by:
equalsExceptVariables in class ImmutableElectricObject
Parameters:
o - other ImmutableElectricObject.
Returns:
true if fields of objects are equal.

makeGridBoxInt

public void makeGridBoxInt(int[] intCoords,
                           boolean tailExtended,
                           boolean headExtended,
                           int gridExtend)
Method to fill in an AbstractShapeBuilder a polygon that describes this ImmutableArcInst in grid units. The polygon is described by its width, and style.


getRadius

public java.lang.Double getRadius()
Method to get the curvature radius on this ImmutableArcInst. The curvature (used in artwork and round-cmos technologies) lets an arc curve.

Returns:
the curvature radius on this ImmutableArcInst. Returns null if there is no curvature information.

check

public boolean check(TechPool techPool)

check

public void check()
Checks invariant of this ImmutableArcInst.

Throws:
java.lang.AssertionError - if invariant is broken.

getElibBits

public int getElibBits()
Method to compute the "userbits" to use for a given ArcInst. The "userbits" are a set of bits that describes constraints and other properties, and are stored in ELIB files. The negation, directionality, and end-extension must be converted.

Returns:
the "userbits" for that ArcInst.

flagsFromElib

public static int flagsFromElib(int elibBits)
Method to convert ELIB userbits to database flags. The flags are a set of bits that describes constraints and other properties. and are stored in ELIB files. The negation, directionality, and end-extension must be converted.

Parameters:
elibBits - the disk userbits.
Returns:
the database flags

angleFromElib

public static int angleFromElib(int elibBits)
Get angle from ELIB user bits.

Parameters:
elibBits - ELIB user bits.
Returns:
tech specific bits.