com.sun.electric.database.geometry
Class PolySweepMerge

java.lang.Object
  extended by com.sun.electric.database.geometry.GeometryHandler
      extended by com.sun.electric.database.geometry.PolySweepMerge

public class PolySweepMerge
extends GeometryHandler

Class to implement geometric sweep algorithm in 2D for areas.


Nested Class Summary
 
Nested classes/interfaces inherited from class com.sun.electric.database.geometry.GeometryHandler
GeometryHandler.GHMode
 
Field Summary
 
Fields inherited from class com.sun.electric.database.geometry.GeometryHandler
areaSort, shapeSort
 
Constructor Summary
PolySweepMerge()
          Method to create a new "merge" object.
PolySweepMerge(int initialSize)
          Method to create a new "merge" object.
 
Method Summary
 void add(Layer key, java.lang.Object element)
           
 void addAll(GeometryHandler subMerge, java.awt.geom.AffineTransform tTrans)
           
 java.util.List<java.awt.geom.Area> getAreas(Layer layer)
           
 java.util.Collection<PolyBase> getObjects(java.lang.Object layer, boolean modified, boolean simple)
          To retrieve leave elements from internal structure
 java.util.Collection<PolyBase.PolyBaseTree> getTreeObjects(java.lang.Object layer)
          To retrieve the roots containing all loops from the internal structure.
 void postProcess(boolean merge)
          Method to perform operations after no more elemenets will be added.
 void setMode(int mode)
          Method to switch between a sweep algorithm with one or two frontiers
 void subtract(java.lang.Object key, java.lang.Object element)
          Method to subtract a geometrical object from the merged collection.
 void subtractAll(java.util.HashMap<Layer,java.util.List<PolyBase>> map)
          Method to subtract all geometries stored in hash map from corresponding layers
 
Methods inherited from class com.sun.electric.database.geometry.GeometryHandler
createGeometryHandler, getKeySet
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PolySweepMerge

public PolySweepMerge()
Method to create a new "merge" object.


PolySweepMerge

public PolySweepMerge(int initialSize)
Method to create a new "merge" object.

Method Detail

setMode

public void setMode(int mode)
Method to switch between a sweep algorithm with one or two frontiers

Parameters:
mode -

add

public void add(Layer key,
                java.lang.Object element)
Overrides:
add in class GeometryHandler

subtract

public void subtract(java.lang.Object key,
                     java.lang.Object element)
Method to subtract a geometrical object from the merged collection.

Overrides:
subtract in class GeometryHandler
Parameters:
key - the key that this Object sits on.
element - the Object to merge.

subtractAll

public void subtractAll(java.util.HashMap<Layer,java.util.List<PolyBase>> map)
Method to subtract all geometries stored in hash map from corresponding layers

Overrides:
subtractAll in class GeometryHandler
Parameters:
map -

addAll

public void addAll(GeometryHandler subMerge,
                   java.awt.geom.AffineTransform tTrans)
Overrides:
addAll in class GeometryHandler

postProcess

public void postProcess(boolean merge)
Description copied from class: GeometryHandler
Method to perform operations after no more elemenets will be added. Valid for PolySweepMerge

Overrides:
postProcess in class GeometryHandler
Parameters:
merge - true if polygons must be merged otherwise non-overlapping polygons will be generated.

getObjects

public java.util.Collection<PolyBase> getObjects(java.lang.Object layer,
                                                 boolean modified,
                                                 boolean simple)
To retrieve leave elements from internal structure

Overrides:
getObjects in class GeometryHandler
Parameters:
layer - current layer under analysis
modified - to avoid retrieving original polygons
simple - to obtain simple polygons

getAreas

public java.util.List<java.awt.geom.Area> getAreas(Layer layer)

getTreeObjects

public java.util.Collection<PolyBase.PolyBaseTree> getTreeObjects(java.lang.Object layer)
To retrieve the roots containing all loops from the internal structure.

Overrides:
getTreeObjects in class GeometryHandler
Parameters:
layer - current layer under analysis
Returns:
list of trees with loop hierarchy