com.sun.electric.tool.extract
Class LayerCoverageTool

java.lang.Object
  extended by com.sun.electric.tool.Tool
      extended by com.sun.electric.tool.extract.LayerCoverageTool
All Implemented Interfaces:
java.lang.Comparable

public class LayerCoverageTool
extends Tool

Class to describe coverage percentage for a layer.


Nested Class Summary
static class LayerCoverageTool.GeometryOnNetwork
          Class to represent all geometry on a network during layer coverage analysis.
static class LayerCoverageTool.LayerCoveragePreferences
          OPTIONS
static class LayerCoverageTool.LayerVisitor
          LayerVisitor Class
static class LayerCoverageTool.LCMode
           
static class LayerCoverageTool.TransistorInfo
           
 
Field Summary
protected static LayerCoverageTool tool
          the LayerCoverageTool tool.
 
Fields inherited from class com.sun.electric.tool.Tool
prefs
 
Method Summary
static java.awt.geom.Rectangle2D getGeometryOnNetwork(Cell exportCell, PortInst pi, Layer layer, LayerCoverageTool.LayerCoveragePreferences lcp)
          Method to extract bounding box for a particular Network/Layer
static LayerCoverageTool getLayerCoverageTool()
          Method to retrieve the singleton associated with the LayerCoverageTool tool.
static java.util.Map<Layer,java.lang.Double> layerCoverageCommand(Cell cell, GeometryHandler.GHMode mode, boolean startJob, LayerCoverageTool.LayerCoveragePreferences lcp)
          Method to kick area coverage per layer in a cell.
static java.util.List<java.lang.Object> layerCoverageCommand(LayerCoverageTool.LCMode func, GeometryHandler.GHMode mode, Cell curCell, boolean startJob, LayerCoverageTool.LayerCoveragePreferences lcp)
          Method to handle the "List Layer Coverage", "Coverage Implant Generator", polygons merge except "List Geometry on Network" commands.
static LayerCoverageTool.GeometryOnNetwork listGeometryOnNetworks(Cell cell, java.util.Set<Network> nets, boolean startJob, GeometryHandler.GHMode mode, LayerCoverageTool.LayerCoveragePreferences lcp)
          Method to calculate area, half-perimeter and ratio of each layer by merging geometries
static boolean testAll()
          JUnit interface
 
Methods inherited from class com.sun.electric.tool.Tool
clearAnalysis, clearBackground, clearFixErrors, clearIncremental, clearOn, clearSynthesis, compareTo, findTool, getIndex, getListeners, getName, getNumTools, getProjectSettings, getTools, init, initAllTools, isAnalysis, isBackground, isFixErrors, isIncremental, isOn, isSynthesis, setAnalysis, setBackground, setFixErrors, setIncremental, setOn, setSynthesis, setVarInJob, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tool

protected static LayerCoverageTool tool
the LayerCoverageTool tool.

Method Detail

getLayerCoverageTool

public static LayerCoverageTool getLayerCoverageTool()
Method to retrieve the singleton associated with the LayerCoverageTool tool.

Returns:
the LayerCoverageTool tool.

layerCoverageCommand

public static java.util.List<java.lang.Object> layerCoverageCommand(LayerCoverageTool.LCMode func,
                                                                    GeometryHandler.GHMode mode,
                                                                    Cell curCell,
                                                                    boolean startJob,
                                                                    LayerCoverageTool.LayerCoveragePreferences lcp)
Method to handle the "List Layer Coverage", "Coverage Implant Generator", polygons merge except "List Geometry on Network" commands.


layerCoverageCommand

public static java.util.Map<Layer,java.lang.Double> layerCoverageCommand(Cell cell,
                                                                         GeometryHandler.GHMode mode,
                                                                         boolean startJob,
                                                                         LayerCoverageTool.LayerCoveragePreferences lcp)
Method to kick area coverage per layer in a cell. It has to be public due to regressions.

Parameters:
cell -
mode -
startJob - to determine if job has to run in a separate thread
Returns:
true if job runs without errors. Only valid if startJob is false (regression purpose)

getGeometryOnNetwork

public static java.awt.geom.Rectangle2D getGeometryOnNetwork(Cell exportCell,
                                                             PortInst pi,
                                                             Layer layer,
                                                             LayerCoverageTool.LayerCoveragePreferences lcp)
Method to extract bounding box for a particular Network/Layer

Parameters:
exportCell -
Returns:
Rectangle2D containing the bounding box for a particular Network/Layer

listGeometryOnNetworks

public static LayerCoverageTool.GeometryOnNetwork listGeometryOnNetworks(Cell cell,
                                                                         java.util.Set<Network> nets,
                                                                         boolean startJob,
                                                                         GeometryHandler.GHMode mode,
                                                                         LayerCoverageTool.LayerCoveragePreferences lcp)
Method to calculate area, half-perimeter and ratio of each layer by merging geometries

Parameters:
cell - cell to analyze
nets - networks to analyze
startJob - if job has to run on thread
mode - geometric algorithm to use: GeometryHandler.ALGO_QTREE, GeometryHandler.SWEEP or GeometryHandler.ALGO_MERGE
lcp - LayerCoveragePreferences

testAll

public static boolean testAll()
JUnit interface