com.sun.electric.database.geometry
Class GeometryHandler

java.lang.Object
  extended by com.sun.electric.database.geometry.GeometryHandler
Direct Known Subclasses:
PolyMerge, PolyQTree, PolySweepMerge

public abstract class GeometryHandler
extends java.lang.Object

To handle merge operation. Two different classes have been proposed and this interface would handle the implementation

Author:
Gilda Garreton

Nested Class Summary
static class GeometryHandler.GHMode
           
 
Field Summary
static com.sun.electric.database.geometry.GeometryHandler.AreaSort areaSort
           
static com.sun.electric.database.geometry.GeometryHandler.ShapeSort shapeSort
           
 
Constructor Summary
GeometryHandler()
           
GeometryHandler(int initialSize)
          Special constructor in case of using huge amount of memory.
 
Method Summary
 void add(Layer key, java.lang.Object value)
           
 void addAll(GeometryHandler subMerge, java.awt.geom.AffineTransform tTrans)
           
static GeometryHandler createGeometryHandler(GeometryHandler.GHMode mode, int initialSize)
          Method to create appropiate GeometryHandler depending on the mode.
 java.util.Set<Layer> getKeySet()
          Access to keySet to create a collection for example.
 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 subtract(java.lang.Object key, java.lang.Object element)
          Method to subtract a geometrical object from the merged collection.
 void subtractAll(java.util.TreeMap<Layer,java.util.List<PolyBase>> map)
          Method to subtract all geometries stored in hash map from corresponding layers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

shapeSort

public static final com.sun.electric.database.geometry.GeometryHandler.ShapeSort shapeSort

areaSort

public static final com.sun.electric.database.geometry.GeometryHandler.AreaSort areaSort
Constructor Detail

GeometryHandler

public GeometryHandler()

GeometryHandler

public GeometryHandler(int initialSize)
Special constructor in case of using huge amount of memory. E.g. ERC

Parameters:
initialSize -
Method Detail

createGeometryHandler

public static GeometryHandler createGeometryHandler(GeometryHandler.GHMode mode,
                                                    int initialSize)
Method to create appropiate GeometryHandler depending on the mode.


add

public void add(Layer key,
                java.lang.Object value)

addAll

public void addAll(GeometryHandler subMerge,
                   java.awt.geom.AffineTransform tTrans)

subtract

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

Parameters:
key - the key that this Object sits on.
element - the Object to merge.

subtractAll

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

Parameters:
map -

getKeySet

public java.util.Set<Layer> getKeySet()
Access to keySet to create a collection for example.


getObjects

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

Parameters:
layer - current layer under analysis
modified - to avoid retrieving original polygons
simple - to obtain simple polygons

getTreeObjects

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

Parameters:
layer - current layer under analysis
Returns:
list of trees with loop hierarchy

postProcess

public void postProcess(boolean merge)
Method to perform operations after no more elemenets will be added. Valid for PolySweepMerge

Parameters:
merge - true if polygons must be merged otherwise non-overlapping polygons will be generated.