API reference - Class LayoutDiff

Notation used in Ruby API documentation

Module: db

Description: The layout compare tool

The layout compare tool is a facility to quickly compare layouts and derive events that give details about the differences. The events are basically emitted following a certain order:

To use the diff facility, create a LayoutDiff object and call the compare_layout or compare_cell method:

lya = ... # layout A
lyb = ... # layout B

diff = RBA::LayoutDiff::new
diff.on_polygon_in_a_only do |poly|
  puts "Polygon in A: #{diff.cell_a.name}@#{diff.layer_info_a.to_s}: #{poly.to_s}"
end
diff.on_polygon_in_b_only do |poly|
  puts "Polygon in A: #{diff.cell_b.name}@#{diff.layer_info_b.to_s}: #{poly.to_s}"
end
diff.compare(lya, lyb, RBA::LayoutDiff::Verbose + RBA::LayoutDiff::NoLayerNames)

Public constructors

new LayoutDiff ptrnewCreates a new object of this class

Public methods

void_createEnsures the C++ object is created
void_destroyExplicitly destroys the object
[const]bool_destroyed?Returns a value indicating whether the object was already destroyed
[const]bool_is_const_object?Returns a value indicating whether the reference is a const reference
void_manageMarks the object as managed by the script side.
void_unmanageMarks the object as no longer owned by the script side.
[const]const Cell ptrcell_aGets the current cell for the first layout
[const]const Cell ptrcell_bGets the current cell for the second layout
boolcompare(const Layout ptr a,
const Layout ptr b,
unsigned int flags = 0,
int tolerance = 0)
Compares two layouts
boolcompare(const Cell ptr a,
const Cell ptr b,
unsigned int flags = 0,
int tolerance = 0)
Compares two cells
[const]intlayer_index_aGets the current layer for the first layout
[const]intlayer_index_bGets the current layer for the second layout
[const]LayerInfolayer_info_aGets the current layer properties for the first layout
[const]LayerInfolayer_info_bGets the current layer properties for the second layout
[const]const Layout ptrlayout_aGets the first layout the difference detector runs on
[const]const Layout ptrlayout_bGets the second layout the difference detector runs on
[signal]voidon_bbox_differs(const Box ba,
const Box bb)
This signal indicates a difference in the bounding boxes of two cells
[signal]voidon_begin_box_differencesThis signal indicates differences in the boxes on the current layer
[signal]voidon_begin_cell(const Cell ptr ca,
const Cell ptr cb)
This signal initiates the sequence of events for a cell pair
[signal]voidon_begin_edge_differencesThis signal indicates differences in the edges on the current layer
[signal]voidon_begin_inst_differencesThis signal indicates differences in the cell instances
[signal]voidon_begin_layer(const LayerInfo layer,
int layer_index_a,
int layer_index_b)
This signal indicates differences on the given layer
[signal]voidon_begin_path_differencesThis signal indicates differences in the paths on the current layer
[signal]voidon_begin_polygon_differencesThis signal indicates differences in the polygons on the current layer
[signal]voidon_begin_text_differencesThis signal indicates differences in the texts on the current layer
[signal]voidon_box_in_a_only(const Box anotb,
unsigned long prop_id)
This signal indicates a box that is present in the first layout only
[signal]voidon_box_in_b_only(const Box bnota,
unsigned long prop_id)
This signal indicates a box that is present in the second layout only
[signal]voidon_cell_in_a_only(const Cell ptr c)This signal indicates that the given cell is only present in the first layout
[signal]voidon_cell_in_b_only(const Cell ptr c)This signal indicates that the given cell is only present in the second layout
[signal]voidon_cell_name_differs(const Cell ptr ca,
const Cell ptr cb)
This signal indicates a difference in the cell names
[signal]voidon_dbu_differs(double dbu_a,
double dbu_b)
This signal indicates a difference in the database units of the layouts
[signal]voidon_edge_in_a_only(const Edge anotb,
unsigned long prop_id)
This signal indicates an edge that is present in the first layout only
[signal]voidon_edge_in_b_only(const Edge bnota,
unsigned long prop_id)
This signal indicates an edge that is present in the second layout only
[signal]voidon_end_box_differencesThis signal indicates the end of sequence of box differences
[signal]voidon_end_cellThis signal indicates the end of a sequence of signals for a specific cell
[signal]voidon_end_edge_differencesThis signal indicates the end of sequence of edge differences
[signal]voidon_end_inst_differencesThis signal finishes a sequence of detailed instance difference events
[signal]voidon_end_layerThis signal indicates the end of a sequence of signals for a specific layer
[signal]voidon_end_path_differencesThis signal indicates the end of sequence of path differences
[signal]voidon_end_polygon_differencesThis signal indicates the end of sequence of polygon differences
[signal]voidon_end_text_differencesThis signal indicates the end of sequence of text differences
[signal]voidon_instance_in_a_only(const CellInstArray anotb,
unsigned long prop_id)
This signal indicates an instance that is present only in the first layout
[signal]voidon_instance_in_b_only(const CellInstArray bnota,
unsigned long prop_id)
This signal indicates an instance that is present only in the second layout
[signal]voidon_layer_in_a_only(const LayerInfo a)This signal indicates a layer that is present only in the first layout
[signal]voidon_layer_in_b_only(const LayerInfo b)This signal indicates a layer that is present only in the second layout
[signal]voidon_layer_name_differs(const LayerInfo a,
const LayerInfo b)
This signal indicates a difference in the layer names
[signal]voidon_path_in_a_only(const Path anotb,
unsigned long prop_id)
This signal indicates a path that is present in the first layout only
[signal]voidon_path_in_b_only(const Path bnota,
unsigned long prop_id)
This signal indicates a path that is present in the second layout only
[signal]voidon_per_layer_bbox_differs(const Box ba,
const Box bb)
This signal indicates differences in the per-layer bounding boxes of the current cell
[signal]voidon_polygon_in_a_only(const Polygon anotb,
unsigned long prop_id)
This signal indicates a polygon that is present in the first layout only
[signal]voidon_polygon_in_b_only(const Polygon bnota,
unsigned long prop_id)
This signal indicates a polygon that is present in the second layout only
[signal]voidon_text_in_a_only(const Text anotb,
unsigned long prop_id)
This signal indicates a text that is present in the first layout only
[signal]voidon_text_in_b_only(const Text bnota,
unsigned long prop_id)
This signal indicates a text that is present in the second layout only

Public static methods and constants

[static,const]unsigned intBoxesAsPolygonsCompare boxes to polygons
[static,const]unsigned intDontSummarizeMissingLayersDon't summarize missing layers
[static,const]unsigned intFlattenArrayInstsCompare array instances instance by instance
[static,const]unsigned intNoLayerNamesDo not compare layer names
[static,const]unsigned intNoPropertiesIgnore properties
[static,const]unsigned intNoTextDetailsIgnore text details (font, size, presentation)
[static,const]unsigned intNoTextOrientationIgnore text orientation
[static,const]unsigned intPathsAsPolygonsCompare paths to polygons
[static,const]unsigned intSilentSilent compare - just report whether the layouts are identical
[static,const]unsigned intSmartCellMappingDerive smart cell mapping instead of name mapping (available only if top cells are specified)
[static,const]unsigned intVerboseEnables verbose mode (gives details about the differences)

Deprecated methods (protected, public, static, non-static and constructors)

voidcreateUse of this method is deprecated. Use _create instead
voiddestroyUse of this method is deprecated. Use _destroy instead
[const]booldestroyed?Use of this method is deprecated. Use _destroyed? instead
[const]boolis_const_object?Use of this method is deprecated. Use _is_const_object? instead

Detailed description

BoxesAsPolygons

Signature: [static,const] unsigned int BoxesAsPolygons

Description: Compare boxes to polygons

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

DontSummarizeMissingLayers

Signature: [static,const] unsigned int DontSummarizeMissingLayers

Description: Don't summarize missing layers

If this mode is present, missing layers are treated as empty ones and every shape on the other layer will be reported as difference.

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

FlattenArrayInsts

Signature: [static,const] unsigned int FlattenArrayInsts

Description: Compare array instances instance by instance

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

NoLayerNames

Signature: [static,const] unsigned int NoLayerNames

Description: Do not compare layer names

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

NoProperties

Signature: [static,const] unsigned int NoProperties

Description: Ignore properties

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

NoTextDetails

Signature: [static,const] unsigned int NoTextDetails

Description: Ignore text details (font, size, presentation)

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

NoTextOrientation

Signature: [static,const] unsigned int NoTextOrientation

Description: Ignore text orientation

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

PathsAsPolygons

Signature: [static,const] unsigned int PathsAsPolygons

Description: Compare paths to polygons

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

Silent

Signature: [static,const] unsigned int Silent

Description: Silent compare - just report whether the layouts are identical

Silent mode will not issue any signals, but instead the return value of the LayoutDiff#compare method will indicate whether the layouts are identical. In silent mode, the compare method will return immediately once a difference has been encountered so that mode may be much faster than the full compare.

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

SmartCellMapping

Signature: [static,const] unsigned int SmartCellMapping

Description: Derive smart cell mapping instead of name mapping (available only if top cells are specified)

Smart cell mapping is only effective currently when cells are compared (with LayoutDiff#compare with cells instead of layout objects).

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

Verbose

Signature: [static,const] unsigned int Verbose

Description: Enables verbose mode (gives details about the differences)

See the event descriptions for details about the differences in verbose and non-verbose mode.

This constant can be used for the flags parameter of compare_layouts and compare_cells. It can be compared with other constants to form a flag set.

_create

Signature: void _create

Description: Ensures the C++ object is created

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

_destroy

Signature: void _destroy

Description: Explicitly destroys the object

Explicitly destroys the object on C++ side if it was owned by the script interpreter. Subsequent access to this object will throw an exception. If the object is not owned by the script, this method will do nothing.

_destroyed?

Signature: [const] bool _destroyed?

Description: Returns a value indicating whether the object was already destroyed

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

_is_const_object?

Signature: [const] bool _is_const_object?

Description: Returns a value indicating whether the reference is a const reference

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

_manage

Signature: void _manage

Description: Marks the object as managed by the script side.

After calling this method on an object, the script side will be responsible for the management of the object. This method may be called if an object is returned from a C++ function and the object is known not to be owned by any C++ instance. If necessary, the script side may delete the object if the script's reference is no longer required.

Usually it's not required to call this method. It has been introduced in version 0.24.

_unmanage

Signature: void _unmanage

Description: Marks the object as no longer owned by the script side.

Calling this method will make this object no longer owned by the script's memory management. Instead, the object must be managed in some other way. Usually this method may be called if it is known that some C++ object holds and manages this object. Technically speaking, this method will turn the script's reference into a weak reference. After the script engine decides to delete the reference, the object itself will still exist. If the object is not managed otherwise, memory leaks will occur.

Usually it's not required to call this method. It has been introduced in version 0.24.

cell_a

Signature: [const] const Cell ptr cell_a

Description: Gets the current cell for the first layout

This attribute is the current cell and is set after on_begin_cell and reset after on_end_cell.

cell_b

Signature: [const] const Cell ptr cell_b

Description: Gets the current cell for the second layout

This attribute is the current cell and is set after on_begin_cell and reset after on_end_cell.

compare

(1) Signature: bool compare (const Layout ptr a, const Layout ptr b, unsigned int flags = 0, int tolerance = 0)

Description: Compares two layouts

a:The first input layout
b:The second input layout
flags:Flags to use for the comparison
tolerance:A coordinate tolerance to apply (0: exact match, 1: one DBU tolerance is allowed ...)
Returns:True, if the layouts are identical

Compares layer definitions, cells, instances and shapes and properties. Cells are identified by name. Only layers with valid layer and datatype are compared. Several flags can be specified as a bitwise or combination of the constants.

(2) Signature: bool compare (const Cell ptr a, const Cell ptr b, unsigned int flags = 0, int tolerance = 0)

Description: Compares two cells

a:The first top cell
b:The second top cell
flags:Flags to use for the comparison
tolerance:A coordinate tolerance to apply (0: exact match, 1: one DBU tolerance is allowed ...)
Returns:True, if the cells are identical

Compares layer definitions, cells, instances and shapes and properties of two layout hierarchies starting from the given cells. Cells are identified by name. Only layers with valid layer and datatype are compared. Several flags can be specified as a bitwise or combination of the constants.

create

Signature: void create

Description: Ensures the C++ object is created

Use of this method is deprecated. Use _create instead

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

destroy

Signature: void destroy

Description: Explicitly destroys the object

Use of this method is deprecated. Use _destroy instead

Explicitly destroys the object on C++ side if it was owned by the script interpreter. Subsequent access to this object will throw an exception. If the object is not owned by the script, this method will do nothing.

destroyed?

Signature: [const] bool destroyed?

Description: Returns a value indicating whether the object was already destroyed

Use of this method is deprecated. Use _destroyed? instead

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

is_const_object?

Signature: [const] bool is_const_object?

Description: Returns a value indicating whether the reference is a const reference

Use of this method is deprecated. Use _is_const_object? instead

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

layer_index_a

Signature: [const] int layer_index_a

Description: Gets the current layer for the first layout

This attribute is the current cell and is set after on_begin_layer and reset after on_end_layer.

layer_index_b

Signature: [const] int layer_index_b

Description: Gets the current layer for the second layout

This attribute is the current cell and is set after on_begin_layer and reset after on_end_layer.

layer_info_a

Signature: [const] LayerInfo layer_info_a

Description: Gets the current layer properties for the first layout

This attribute is the current cell and is set after on_begin_layer and reset after on_end_layer.

layer_info_b

Signature: [const] LayerInfo layer_info_b

Description: Gets the current layer properties for the second layout

This attribute is the current cell and is set after on_begin_layer and reset after on_end_layer.

layout_a

Signature: [const] const Layout ptr layout_a

Description: Gets the first layout the difference detector runs on

layout_b

Signature: [const] const Layout ptr layout_b

Description: Gets the second layout the difference detector runs on

new

Signature: [static] new LayoutDiff ptr new

Description: Creates a new object of this class

Python specific notes:
This method is the default initializer of the object

on_bbox_differs

Signature: [signal] void on_bbox_differs (const Box ba, const Box bb)

Description: This signal indicates a difference in the bounding boxes of two cells

This signal is only emitted in non-verbose mode (without Verbose flag) as a summarizing cell property. In verbose mode detailed events will be issued indicating the differences.

Python specific notes:
The object exposes a readable attribute 'on_bbox_differs'. This is the getter. The object exposes a writable attribute 'on_bbox_differs'. This is the setter.

on_begin_box_differences

Signature: [signal] void on_begin_box_differences

Description: This signal indicates differences in the boxes on the current layer

The current layer is indicated by the begin_layer_event signal or can be obtained from the diff object through LayoutDiff#layer_info_a, LayoutDiff#layer_index_a, LayoutDiff#layer_info_b and LayoutDiff#layer_index_b. In verbose mode (see Verbose flag) more signals will be emitted for boxes that are different between the two layouts.

Python specific notes:
The object exposes a readable attribute 'on_begin_box_differences'. This is the getter. The object exposes a writable attribute 'on_begin_box_differences'. This is the setter.

on_begin_cell

Signature: [signal] void on_begin_cell (const Cell ptr ca, const Cell ptr cb)

Description: This signal initiates the sequence of events for a cell pair

All cell specific events happen between begin_cell_event and end_cell_event signals.

Python specific notes:
The object exposes a readable attribute 'on_begin_cell'. This is the getter. The object exposes a writable attribute 'on_begin_cell'. This is the setter.

on_begin_edge_differences

Signature: [signal] void on_begin_edge_differences

Description: This signal indicates differences in the edges on the current layer

The current layer is indicated by the begin_layer_event signal or can be obtained from the diff object through LayoutDiff#layer_info_a, LayoutDiff#layer_index_a, LayoutDiff#layer_info_b and LayoutDiff#layer_index_b. In verbose mode (see Verbose flag) more signals will be emitted for edges that are different between the two layouts.

Python specific notes:
The object exposes a readable attribute 'on_begin_edge_differences'. This is the getter. The object exposes a writable attribute 'on_begin_edge_differences'. This is the setter.

on_begin_inst_differences

Signature: [signal] void on_begin_inst_differences

Description: This signal indicates differences in the cell instances

In verbose mode (see Verbose) more events will follow that indicate the instances that are present only in the first and second layout (instance_in_a_only_event and instance_in_b_only_event).

Python specific notes:
The object exposes a readable attribute 'on_begin_inst_differences'. This is the getter. The object exposes a writable attribute 'on_begin_inst_differences'. This is the setter.

on_begin_layer

Signature: [signal] void on_begin_layer (const LayerInfo layer, int layer_index_a, int layer_index_b)

Description: This signal indicates differences on the given layer

In verbose mode (see Verbose) more events will follow that indicate the instances that are present only in the first and second layout (polygon_in_a_only_event, polygon_in_b_only_event and similar).

Python specific notes:
The object exposes a readable attribute 'on_begin_layer'. This is the getter. The object exposes a writable attribute 'on_begin_layer'. This is the setter.

on_begin_path_differences

Signature: [signal] void on_begin_path_differences

Description: This signal indicates differences in the paths on the current layer

The current layer is indicated by the begin_layer_event signal or can be obtained from the diff object through LayoutDiff#layer_info_a, LayoutDiff#layer_index_a, LayoutDiff#layer_info_b and LayoutDiff#layer_index_b. In verbose mode (see Verbose flag) more signals will be emitted for paths that are different between the two layouts.

Python specific notes:
The object exposes a readable attribute 'on_begin_path_differences'. This is the getter. The object exposes a writable attribute 'on_begin_path_differences'. This is the setter.

on_begin_polygon_differences

Signature: [signal] void on_begin_polygon_differences

Description: This signal indicates differences in the polygons on the current layer

The current layer is indicated by the begin_layer_event signal or can be obtained from the diff object through LayoutDiff#layer_info_a, LayoutDiff#layer_index_a, LayoutDiff#layer_info_b and LayoutDiff#layer_index_b. In verbose mode (see Verbose flag) more signals will be emitted for polygons that are different between the two layouts.

Python specific notes:
The object exposes a readable attribute 'on_begin_polygon_differences'. This is the getter. The object exposes a writable attribute 'on_begin_polygon_differences'. This is the setter.

on_begin_text_differences

Signature: [signal] void on_begin_text_differences

Description: This signal indicates differences in the texts on the current layer

The current layer is indicated by the begin_layer_event signal or can be obtained from the diff object through LayoutDiff#layer_info_a, LayoutDiff#layer_index_a, LayoutDiff#layer_info_b and LayoutDiff#layer_index_b. In verbose mode (see Verbose flag) more signals will be emitted for texts that are different between the two layouts.

Python specific notes:
The object exposes a readable attribute 'on_begin_text_differences'. This is the getter. The object exposes a writable attribute 'on_begin_text_differences'. This is the setter.

on_box_in_a_only

Signature: [signal] void on_box_in_a_only (const Box anotb, unsigned long prop_id)

Description: This signal indicates a box that is present in the first layout only

Python specific notes:
The object exposes a readable attribute 'on_box_in_a_only'. This is the getter. The object exposes a writable attribute 'on_box_in_a_only'. This is the setter.

on_box_in_b_only

Signature: [signal] void on_box_in_b_only (const Box bnota, unsigned long prop_id)

Description: This signal indicates a box that is present in the second layout only

Python specific notes:
The object exposes a readable attribute 'on_box_in_b_only'. This is the getter. The object exposes a writable attribute 'on_box_in_b_only'. This is the setter.

on_cell_in_a_only

Signature: [signal] void on_cell_in_a_only (const Cell ptr c)

Description: This signal indicates that the given cell is only present in the first layout

Python specific notes:
The object exposes a readable attribute 'on_cell_in_a_only'. This is the getter. The object exposes a writable attribute 'on_cell_in_a_only'. This is the setter.

on_cell_in_b_only

Signature: [signal] void on_cell_in_b_only (const Cell ptr c)

Description: This signal indicates that the given cell is only present in the second layout

Python specific notes:
The object exposes a readable attribute 'on_cell_in_b_only'. This is the getter. The object exposes a writable attribute 'on_cell_in_b_only'. This is the setter.

on_cell_name_differs

Signature: [signal] void on_cell_name_differs (const Cell ptr ca, const Cell ptr cb)

Description: This signal indicates a difference in the cell names

This signal is emitted in 'smart cell mapping' mode (see SmartCellMapping) if two cells are considered identical, but have different names.

Python specific notes:
The object exposes a readable attribute 'on_cell_name_differs'. This is the getter. The object exposes a writable attribute 'on_cell_name_differs'. This is the setter.

on_dbu_differs

Signature: [signal] void on_dbu_differs (double dbu_a, double dbu_b)

Description: This signal indicates a difference in the database units of the layouts

Python specific notes:
The object exposes a readable attribute 'on_dbu_differs'. This is the getter. The object exposes a writable attribute 'on_dbu_differs'. This is the setter.

on_edge_in_a_only

Signature: [signal] void on_edge_in_a_only (const Edge anotb, unsigned long prop_id)

Description: This signal indicates an edge that is present in the first layout only

Python specific notes:
The object exposes a readable attribute 'on_edge_in_a_only'. This is the getter. The object exposes a writable attribute 'on_edge_in_a_only'. This is the setter.

on_edge_in_b_only

Signature: [signal] void on_edge_in_b_only (const Edge bnota, unsigned long prop_id)

Description: This signal indicates an edge that is present in the second layout only

Python specific notes:
The object exposes a readable attribute 'on_edge_in_b_only'. This is the getter. The object exposes a writable attribute 'on_edge_in_b_only'. This is the setter.

on_end_box_differences

Signature: [signal] void on_end_box_differences

Description: This signal indicates the end of sequence of box differences

Python specific notes:
The object exposes a readable attribute 'on_end_box_differences'. This is the getter. The object exposes a writable attribute 'on_end_box_differences'. This is the setter.

on_end_cell

Signature: [signal] void on_end_cell

Description: This signal indicates the end of a sequence of signals for a specific cell

Python specific notes:
The object exposes a readable attribute 'on_end_cell'. This is the getter. The object exposes a writable attribute 'on_end_cell'. This is the setter.

on_end_edge_differences

Signature: [signal] void on_end_edge_differences

Description: This signal indicates the end of sequence of edge differences

Python specific notes:
The object exposes a readable attribute 'on_end_edge_differences'. This is the getter. The object exposes a writable attribute 'on_end_edge_differences'. This is the setter.

on_end_inst_differences

Signature: [signal] void on_end_inst_differences

Description: This signal finishes a sequence of detailed instance difference events

Python specific notes:
The object exposes a readable attribute 'on_end_inst_differences'. This is the getter. The object exposes a writable attribute 'on_end_inst_differences'. This is the setter.

on_end_layer

Signature: [signal] void on_end_layer

Description: This signal indicates the end of a sequence of signals for a specific layer

Python specific notes:
The object exposes a readable attribute 'on_end_layer'. This is the getter. The object exposes a writable attribute 'on_end_layer'. This is the setter.

on_end_path_differences

Signature: [signal] void on_end_path_differences

Description: This signal indicates the end of sequence of path differences

Python specific notes:
The object exposes a readable attribute 'on_end_path_differences'. This is the getter. The object exposes a writable attribute 'on_end_path_differences'. This is the setter.

on_end_polygon_differences

Signature: [signal] void on_end_polygon_differences

Description: This signal indicates the end of sequence of polygon differences

Python specific notes:
The object exposes a readable attribute 'on_end_polygon_differences'. This is the getter. The object exposes a writable attribute 'on_end_polygon_differences'. This is the setter.

on_end_text_differences

Signature: [signal] void on_end_text_differences

Description: This signal indicates the end of sequence of text differences

Python specific notes:
The object exposes a readable attribute 'on_end_text_differences'. This is the getter. The object exposes a writable attribute 'on_end_text_differences'. This is the setter.

on_instance_in_a_only

Signature: [signal] void on_instance_in_a_only (const CellInstArray anotb, unsigned long prop_id)

Description: This signal indicates an instance that is present only in the first layout

This event is only emitted in verbose mode (Verbose flag).

Python specific notes:
The object exposes a readable attribute 'on_instance_in_a_only'. This is the getter. The object exposes a writable attribute 'on_instance_in_a_only'. This is the setter.

on_instance_in_b_only

Signature: [signal] void on_instance_in_b_only (const CellInstArray bnota, unsigned long prop_id)

Description: This signal indicates an instance that is present only in the second layout

This event is only emitted in verbose mode (Verbose flag).

Python specific notes:
The object exposes a readable attribute 'on_instance_in_b_only'. This is the getter. The object exposes a writable attribute 'on_instance_in_b_only'. This is the setter.

on_layer_in_a_only

Signature: [signal] void on_layer_in_a_only (const LayerInfo a)

Description: This signal indicates a layer that is present only in the first layout

Python specific notes:
The object exposes a readable attribute 'on_layer_in_a_only'. This is the getter. The object exposes a writable attribute 'on_layer_in_a_only'. This is the setter.

on_layer_in_b_only

Signature: [signal] void on_layer_in_b_only (const LayerInfo b)

Description: This signal indicates a layer that is present only in the second layout

Python specific notes:
The object exposes a readable attribute 'on_layer_in_b_only'. This is the getter. The object exposes a writable attribute 'on_layer_in_b_only'. This is the setter.

on_layer_name_differs

Signature: [signal] void on_layer_name_differs (const LayerInfo a, const LayerInfo b)

Description: This signal indicates a difference in the layer names

Python specific notes:
The object exposes a readable attribute 'on_layer_name_differs'. This is the getter. The object exposes a writable attribute 'on_layer_name_differs'. This is the setter.

on_path_in_a_only

Signature: [signal] void on_path_in_a_only (const Path anotb, unsigned long prop_id)

Description: This signal indicates a path that is present in the first layout only

Python specific notes:
The object exposes a readable attribute 'on_path_in_a_only'. This is the getter. The object exposes a writable attribute 'on_path_in_a_only'. This is the setter.

on_path_in_b_only

Signature: [signal] void on_path_in_b_only (const Path bnota, unsigned long prop_id)

Description: This signal indicates a path that is present in the second layout only

Python specific notes:
The object exposes a readable attribute 'on_path_in_b_only'. This is the getter. The object exposes a writable attribute 'on_path_in_b_only'. This is the setter.

on_per_layer_bbox_differs

Signature: [signal] void on_per_layer_bbox_differs (const Box ba, const Box bb)

Description: This signal indicates differences in the per-layer bounding boxes of the current cell

Python specific notes:
The object exposes a readable attribute 'on_per_layer_bbox_differs'. This is the getter. The object exposes a writable attribute 'on_per_layer_bbox_differs'. This is the setter.

on_polygon_in_a_only

Signature: [signal] void on_polygon_in_a_only (const Polygon anotb, unsigned long prop_id)

Description: This signal indicates a polygon that is present in the first layout only

Python specific notes:
The object exposes a readable attribute 'on_polygon_in_a_only'. This is the getter. The object exposes a writable attribute 'on_polygon_in_a_only'. This is the setter.

on_polygon_in_b_only

Signature: [signal] void on_polygon_in_b_only (const Polygon bnota, unsigned long prop_id)

Description: This signal indicates a polygon that is present in the second layout only

Python specific notes:
The object exposes a readable attribute 'on_polygon_in_b_only'. This is the getter. The object exposes a writable attribute 'on_polygon_in_b_only'. This is the setter.

on_text_in_a_only

Signature: [signal] void on_text_in_a_only (const Text anotb, unsigned long prop_id)

Description: This signal indicates a text that is present in the first layout only

Python specific notes:
The object exposes a readable attribute 'on_text_in_a_only'. This is the getter. The object exposes a writable attribute 'on_text_in_a_only'. This is the setter.

on_text_in_b_only

Signature: [signal] void on_text_in_b_only (const Text bnota, unsigned long prop_id)

Description: This signal indicates a text that is present in the second layout only

Python specific notes:
The object exposes a readable attribute 'on_text_in_b_only'. This is the getter. The object exposes a writable attribute 'on_text_in_b_only'. This is the setter.