diff --git a/scripts/create_drc_samples.rb b/scripts/create_drc_samples.rb
index 962c026ac..b8ea6665a 100644
--- a/scripts/create_drc_samples.rb
+++ b/scripts/create_drc_samples.rb
@@ -2,9 +2,45 @@
# Run with:
# ./klayout -z -r ./create_drc_samples.rb -t -c klayoutrc_drc_samples
+class QRCGenerator
+
+ def res_path
+ "src/lay/lay"
+ end
+
+ def img_path
+ "doc/images"
+ end
+
+ def initialize
+ @path = res_path + "/" + "layDRCLVSHelpResources.qrc"
+ @file = File.open(@path, "w")
+ @file.puts("")
+ @file.puts(" ")
+ end
+
+ def <<(str)
+ @file.puts(str)
+ end
+
+ def finish
+ @file.puts(" ")
+ @file.puts("")
+ @file.close
+ puts "---> resource file written to #{@path}"
+ end
+
+ def self.instance
+ @@inst ||= QRCGenerator::new
+ @@inst
+ end
+
+end
+
def run_demo(gen, cmd, out)
- img_path = "src/lay/lay/doc/images"
+ res_path = QRCGenerator::instance.res_path
+ img_path = QRCGenerator::instance.img_path
mw = RBA::Application::instance::main_window
@@ -81,7 +117,9 @@ def run_demo(gen, cmd, out)
input1 = input(1, 0)
input = input1
input2 = input(2, 0)
- #{cmd}.data
+ labels1 = labels(1, 0)
+ labels = labels1
+ (#{cmd}).data
SCRIPT
if data.is_a?(RBA::Region)
@@ -101,15 +139,19 @@ SCRIPT
elsif data.is_a?(RBA::EdgePairs)
cell.shapes(lout_poly).insert_as_polygons(data, 1)
cell.shapes(lout).insert(data.edges)
+ elsif data.is_a?(RBA::Texts)
+ cell.shapes(lout).insert(data)
end
view.update_content
- view.save_image(img_path + "/" + out, 400, 400)
+ view.save_image(res_path + "/" + img_path + "/" + out, 400, 400)
- puts "---> written #{img_path}/#{out}"
+ puts "---> written #{res_path}/#{img_path}/#{out}"
mw.close_all
+ QRCGenerator::instance << " #{img_path}/#{out}"
+
end
class Gen
@@ -631,3 +673,41 @@ run_demo gen, "input.corners.sized(0.1)", "drc_corners1.png"
run_demo gen, "input.corners(90.0).sized(0.1)", "drc_corners2.png"
run_demo gen, "input.corners(-90.0 .. -45.0).sized(0.1)", "drc_corners3.png"
+
+class Gen
+ def produce(s1, s2)
+ s1.insert(RBA::Text::new("ABC", RBA::Trans::new(RBA::Vector::new(0, 2000))))
+ s1.insert(RBA::Text::new("A", RBA::Trans::new(RBA::Vector::new(0, 6000))))
+ s1.insert(RBA::Text::new("XYZ", RBA::Trans::new(RBA::Vector::new(4000, 2000))))
+ s1.insert(RBA::Text::new("A*", RBA::Trans::new(RBA::Vector::new(4000, 6000))))
+ end
+end
+
+gen = Gen::new
+
+run_demo gen, "labels.texts(\"A*\")", "drc_texts1.png"
+run_demo gen, "labels.texts(text(\"A*\"))", "drc_texts2.png"
+
+class Gen
+ def produce(s1, s2)
+ s1.insert(RBA::Text::new("T1", RBA::Trans::new(RBA::Vector::new(0, 2000))))
+ s1.insert(RBA::Text::new("T2", RBA::Trans::new(RBA::Vector::new(2000, 2000))))
+ s1.insert(RBA::Text::new("T3", RBA::Trans::new(RBA::Vector::new(4000, 2000))))
+ pts = [
+ RBA::Point::new(2000, 0),
+ RBA::Point::new(2000, 4000),
+ RBA::Point::new(6000, 4000),
+ RBA::Point::new(6000, 0)
+ ];
+ s2.insert(RBA::Polygon::new(pts))
+ end
+end
+
+gen = Gen::new
+
+run_demo gen, "labels & input2", "drc_textpoly1.png"
+run_demo gen, "labels - input2", "drc_textpoly2.png"
+
+
+QRCGenerator::instance.finish
+
diff --git a/src/db/db/gsiDeclDbShapes.cc b/src/db/db/gsiDeclDbShapes.cc
index cf2e175de..2dff334b9 100644
--- a/src/db/db/gsiDeclDbShapes.cc
+++ b/src/db/db/gsiDeclDbShapes.cc
@@ -419,6 +419,29 @@ static void insert_edge_pairs_with_dtrans (db::Shapes *sh, const db::EdgePairs &
}
}
+static void insert_texts (db::Shapes *sh, const db::Texts &r)
+{
+ for (db::Texts::const_iterator s = r.begin (); ! s.at_end (); ++s) {
+ sh->insert (*s);
+ }
+}
+
+static void insert_texts_with_trans (db::Shapes *sh, const db::Texts &r, const db::ICplxTrans &trans)
+{
+ for (db::Texts::const_iterator s = r.begin (); ! s.at_end (); ++s) {
+ sh->insert (s->transformed (trans));
+ }
+}
+
+static void insert_texts_with_dtrans (db::Shapes *sh, const db::Texts &r, const db::DCplxTrans &trans)
+{
+ db::CplxTrans dbu_trans (shapes_dbu (sh));
+ db::ICplxTrans itrans = dbu_trans.inverted () * trans * dbu_trans;
+ for (db::Texts::const_iterator s = r.begin (); ! s.at_end (); ++s) {
+ sh->insert (s->transformed (itrans));
+ }
+}
+
static unsigned int s_all () { return db::ShapeIterator::All; }
static unsigned int s_all_with_properties () { return db::ShapeIterator::AllWithProperties; }
static unsigned int s_properties () { return db::ShapeIterator::Properties; }
@@ -599,7 +622,7 @@ Class decl_Shapes ("db", "Shapes",
"@param edges The edge pairs to insert\n"
"@param trans The transformation to apply (displacement in micrometer units)\n"
"\n"
- "This method inserts all edge pairs from the edge collection into this shape container.\n"
+ "This method inserts all edge pairs from the edge pair collection into this shape container.\n"
"Before an edge pair is inserted, the given transformation is applied.\n"
"\n"
"This method has been introduced in version 0.26.\n"
@@ -682,6 +705,34 @@ Class decl_Shapes ("db", "Shapes",
"\n"
"This method has been introduced in version 0.25.\n"
) +
+ gsi::method_ext ("insert", &insert_texts, gsi::arg ("texts"),
+ "@brief Inserts the texts from the text collection into this shape container\n"
+ "@param texts The texts to insert\n"
+ "\n"
+ "This method inserts all texts from the text collection into this shape container.\n"
+ "\n"
+ "This method has been introduced in version 0.27.\n"
+ ) +
+ gsi::method_ext ("insert", &insert_texts_with_trans, gsi::arg ("texts"), gsi::arg ("trans"),
+ "@brief Inserts the texts from the text collection into this shape container with a transformation\n"
+ "@param edges The texts to insert\n"
+ "@param trans The transformation to apply\n"
+ "\n"
+ "This method inserts all texts from the text collection into this shape container.\n"
+ "Before an text is inserted, the given transformation is applied.\n"
+ "\n"
+ "This method has been introduced in version 0.27.\n"
+ ) +
+ gsi::method_ext ("insert", &insert_texts_with_dtrans, gsi::arg ("texts"), gsi::arg ("trans"),
+ "@brief Inserts the texts from the text collection into this shape container with a transformation (given in micrometer units)\n"
+ "@param edges The text to insert\n"
+ "@param trans The transformation to apply (displacement in micrometer units)\n"
+ "\n"
+ "This method inserts all texts from the text collection into this shape container.\n"
+ "Before an text is inserted, the given transformation is applied.\n"
+ "\n"
+ "This method has been introduced in version 0.27.\n"
+ ) +
gsi::method_ext ("transform", &transform_shapes, gsi::arg ("trans"),
"@brief Transforms all shapes with the given transformation\n"
"This method will invalidate all references to shapes inside this collection.\n\n"
diff --git a/src/drc/drc/built-in-macros/_drc_layer.rb b/src/drc/drc/built-in-macros/_drc_layer.rb
index 4f90e01f9..b6fc6802b 100644
--- a/src/drc/drc/built-in-macros/_drc_layer.rb
+++ b/src/drc/drc/built-in-macros/_drc_layer.rb
@@ -593,9 +593,11 @@ CODE
# selected text. By using the "as_dots" option, degenerated point-like edges will be
# produced.
#
- # This method can also be applied to true text layers obtained with \labels.
+ # The preferred method however is to use true text layers created with \labels.
# In this case, without specifying "as_dots" or "as_boxes" retains the text
- # objects as such. Only text filtering is applied.
+ # objects as such a text filtering is applied. In contrast to this, layers generated
+ # with \input cannot maintain the text nature of the selected objects and
+ # produce dots or small polygon boxes in the \texts method.
#
# Texts can be selected either by exact match string or a pattern match with a
# glob-style pattern. By default, glob-style pattern are used.
@@ -612,14 +614,22 @@ CODE
#
# @code
# # Selects all texts
- # t = input(1, 0).texts
+ # t = labels(1, 0).texts
# # Selects all texts beginning with an "A"
- # t = input(1, 0).texts("A*")
- # t = input(1, 0).texts(pattern("A*"))
- # # Selects all texts whose string is "A*"
- # t = input(1, 0).texts(text("A*"))
+ # t = labels(1, 0).texts("A*")
+ # t = labels(1, 0).texts(pattern("A*"))
+ # # Selects all texts whose string is "ABC"
+ # t = labels(1, 0).texts(text("ABC"))
# @/code
- #
+ #
+ # The effect of the operation is shown in these examples:
+ #
+ # @table
+ # @tr
+ # @td @img(/images/drc_texts1.png) @/td
+ # @td @img(/images/drc_texts2.png) @/td
+ # @/tr
+ # @/table
def texts(*args)
requires_texts_or_region("texts")
@@ -1168,7 +1178,7 @@ CODE
# borders of the polygons of the second operand.
#
# The following images show the effect of the "and" method
- # on polygons and edges (layer1: red, layer2: blue):
+ # on polygons and edges (input1: red, input2: blue):
#
# @table
# @tr
@@ -1177,6 +1187,16 @@ CODE
# @td @img(/images/drc_and3.png) @/td
# @/tr
# @/table
+ #
+ # The AND operation can be applied between a text and a polygon
+ # layer. In this case, the texts inside or at the border of the
+ # polygons will be written to the output (labels: red, input2: blue):
+ #
+ # @table
+ # @tr
+ # @td @img(/images/drc_textpoly1.png) @/td
+ # @/tr
+ # @/table
def and(other)
self & other
@@ -1195,7 +1215,7 @@ CODE
# of the second operand.
#
# The following images show the effect of the "not" method
- # on polygons and edges (layer1: red, layer2: blue):
+ # on polygons and edges (input1: red, input2: blue):
#
# @table
# @tr
@@ -1204,6 +1224,16 @@ CODE
# @td @img(/images/drc_not3.png) @/td
# @/tr
# @/table
+ #
+ # The NOT operation can be applied between a text and a polygon
+ # layer. In this case, the texts outside the polygons will be
+ # written to the output (labels: red, input2: blue):
+ #
+ # @table
+ # @tr
+ # @td @img(/images/drc_textpoly2.png) @/td
+ # @/tr
+ # @/table
def not(other)
self - other
@@ -1219,7 +1249,7 @@ CODE
# This method is available for polygon and edge layers.
#
# The following images show the effect of the "xor" method
- # on polygons and edges (layer1: red, layer2: blue):
+ # on polygons and edges (input1: red, input2: blue):
#
# @table
# @tr
@@ -1242,7 +1272,7 @@ CODE
# This method is available for polygon and edge layers.
#
# The following images show the effect of the "or" method
- # on polygons and edges (layer1: red, layer2: blue):
+ # on polygons and edges (input1: red, input2: blue):
#
# @table
# @tr
@@ -1265,7 +1295,7 @@ CODE
# This method is available for polygon, edge and edge pair layers.
#
# The following images show the effect of the "join" method
- # on polygons and edges (layer1: red, layer2: blue):
+ # on polygons and edges (input1: red, input2: blue):
#
# @table
# @tr
@@ -1587,8 +1617,9 @@ CODE
# It returns a new layer containing the selected shapes. A version which modifies self
# is \select_interacting.
#
- # This method is available for polygon and edge layers. Edges can be selected
- # with respect to other edges or polygons.
+ # This method is available for polygon, text and edge layers. Edges can be selected
+ # with respect to other edges or polygons. Texts can be selected with respect to
+ # polygons.
#
# The following image shows the effect of the "interacting" method (input1: red, input2: blue):
#
@@ -2502,7 +2533,7 @@ CODE
# Distance values can be given as floating-point values (in micron) or integer values (in
# database units). To explicitly specify the unit, use the unit denominators.
#
- # The following image shows the effect of the separation check (layer1: red, layer2: blue):
+ # The following image shows the effect of the separation check (input1: red, input2: blue):
#
# @table
# @tr
@@ -2537,7 +2568,7 @@ CODE
# Distance values can be given as floating-point values (in micron) or integer values (in
# database units). To explicitly specify the unit, use the unit denominators.
#
- # The following images show the effect of the overlap check (layer1: red, layer2: blue):
+ # The following images show the effect of the overlap check (input1: red, input2: blue):
#
# @table
# @tr
diff --git a/src/drc/drc/built-in-macros/_drc_netter.rb b/src/drc/drc/built-in-macros/_drc_netter.rb
index e40229d4e..bfc95d8cc 100644
--- a/src/drc/drc/built-in-macros/_drc_netter.rb
+++ b/src/drc/drc/built-in-macros/_drc_netter.rb
@@ -76,13 +76,19 @@ module DRC
# @name connect
# @brief Specifies a connection between two layers
# @synopsis connect(a, b)
- # a and b must be polygon layers. After calling this function, the
+ # a and b must be polygon or text layers. After calling this function, the
# Netter regards all overlapping or touching shapes on these layers
# to form an electrical connection between the materials formed by
# these layers. This also implies intra-layer connections: shapes
# on these layers touching or overlapping other shapes on these
# layers will form bigger, electrically connected areas.
#
+ # Texts will be used to assign net names to the nets. The preferred
+ # method is to use \labels to create a text layer from a design
+ # layer. When using \input, text labels are carried implicitly
+ # with the polygons but at the cost of small dummy shapes (2x2 DBU
+ # marker polygons) and limited functionality.
+ #
# Multiple connect calls must be made to form larger connectivity
# stacks across multiple layers. Such stacks may include forks and
# joins.
@@ -112,7 +118,7 @@ module DRC
# Connects the shapes from the given layer l to a global net with the given name.
# Global nets are common to all cells. Global nets automatically connect to parent
# cells throughs implied pins. An example is the substrate (bulk) net which connects
- # to shapes belonging to tie-down diodes.
+ # to shapes belonging to tie-down diodes. "l" can be a polygon or text layer.
def connect_global(l, name)
diff --git a/src/lay/lay/doc/about/drc_ref_global.xml b/src/lay/lay/doc/about/drc_ref_global.xml
index 7e4be95ba..5cf550238 100644
--- a/src/lay/lay/doc/about/drc_ref_global.xml
+++ b/src/lay/lay/doc/about/drc_ref_global.xml
@@ -362,6 +362,24 @@ This function creates an edge object. The arguments are the same than for the
The intention of that method is to create an empty layer which can be
filled with edge objects using Layer#insert.
+"edge_pairs" - Gets the edges from an original layer
+
+Usage:
+
+
+See Source#edge_pairs for a description of that function.
+
+"edges" - Gets the edges from an original layer
+
+Usage:
+
+
+See Source#edges for a description of that function.
+
"error" - Prints an error
Usage:
@@ -446,7 +464,7 @@ See Netter#l2n_data for a descr
Usage:
See Source#labels for a description of that function.
diff --git a/src/lay/lay/doc/about/drc_ref_layer.xml b/src/lay/lay/doc/about/drc_ref_layer.xml
index d7287b733..2f29c1d58 100644
--- a/src/lay/lay/doc/about/drc_ref_layer.xml
+++ b/src/lay/lay/doc/about/drc_ref_layer.xml
@@ -76,7 +76,7 @@ result will be the edges of the first operand which are inside or on the
borders of the polygons of the second operand.
The following images show the effect of the "and" method
-on polygons and edges (layer1: red, layer2: blue):
+on polygons and edges (input1: red, input2: blue):
@@ -85,6 +85,16 @@ on polygons and edges (layer1: red, layer2: blue):
 |
+
+The AND operation can be applied between a text and a polygon
+layer. In this case, the texts inside or at the border of the
+polygons will be written to the output (labels: red, input2: blue):
+
+
+
+ |
+
+
"area" - Returns the total area of the polygons in the region
@@ -594,7 +604,7 @@ Returns the first edges of the edge pairs in the collection.
If the layer already is a flat one, this method does nothing.
If the layer is a hierarchical layer (an original layer or
a derived layer in deep mode), this method will convert it
-to a flat collection of polygons, edges or edge pairs.
+to a flat collection of texts, polygons, edges or edge pairs.
"holes" - Selects all polygon holes from the input
@@ -740,8 +750,9 @@ otherwise individual shapes are selected.
It returns a new layer containing the selected shapes. A version which modifies self
is select_interacting.
-This method is available for polygon and edge layers. Edges can be selected
-with respect to other edges or polygons.
+This method is available for polygon, text and edge layers. Edges can be selected
+with respect to other edges or polygons. Texts can be selected with respect to
+polygons.
The following image shows the effect of the "interacting" method (input1: red, input2: blue):
@@ -860,7 +871,7 @@ It is an alias for the "+" operator.
This method is available for polygon, edge and edge pair layers.
The following images show the effect of the "join" method
-on polygons and edges (layer1: red, layer2: blue):
+on polygons and edges (input1: red, input2: blue):
@@ -1030,7 +1041,7 @@ result will be the edges of the first operand which are outside the polygons
of the second operand.
The following images show the effect of the "not" method
-on polygons and edges (layer1: red, layer2: blue):
+on polygons and edges (input1: red, input2: blue):
@@ -1039,6 +1050,16 @@ on polygons and edges (layer1: red, layer2: blue):
 |
+
+The NOT operation can be applied between a text and a polygon
+layer. In this case, the texts outside the polygons will be
+written to the output (labels: red, input2: blue):
+
+
+
+ |
+
+
"not_in" - Selects shapes or regions of self which are not contained in the other layer
@@ -1216,7 +1237,7 @@ It is an alias for the "|" operator.
This method is available for polygon and edge layers.
The following images show the effect of the "or" method
-on polygons and edges (layer1: red, layer2: blue):
+on polygons and edges (input1: red, input2: blue):
@@ -1318,7 +1339,7 @@ are the same than for width.
Distance values can be given as floating-point values (in micron) or integer values (in
database units). To explicitly specify the unit, use the unit denominators.
-The following images show the effect of the overlap check (layer1: red, layer2: blue):
+The following images show the effect of the overlap check (input1: red, input2: blue):
@@ -1766,7 +1787,7 @@ are the same than for width.
Distance values can be given as floating-point values (in micron) or integer values (in
database units). To explicitly specify the unit, use the unit denominators.
-The following image shows the effect of the separation check (layer1: red, layer2: blue):
+The following image shows the effect of the separation check (input1: red, input2: blue):
@@ -1985,6 +2006,12 @@ been created with input. By default, a small box (2x2 DBU)
selected text. By using the "as_dots" option, degenerated point-like edges will be
produced.
+The preferred method however is to use true text layers created with labels.
+In this case, without specifying "as_dots" or "as_boxes" retains the text
+objects as such a text filtering is applied. In contrast to this, layers generated
+with input cannot maintain the text nature of the selected objects and
+produce dots or small polygon boxes in the texts method.
+
Texts can be selected either by exact match string or a pattern match with a
glob-style pattern. By default, glob-style pattern are used.
The options available are:
@@ -2000,13 +2027,38 @@ Here are some examples:
# Selects all texts
-t = input(1, 0).texts
+t = labels(1, 0).texts
# Selects all texts beginning with an "A"
-t = input(1, 0).texts("A*")
-t = input(1, 0).texts(pattern("A*"))
-# Selects all texts whose string is "A*"
-t = input(1, 0).texts(text("A*"))
+t = labels(1, 0).texts("A*")
+t = labels(1, 0).texts(pattern("A*"))
+# Selects all texts whose string is "ABC"
+t = labels(1, 0).texts(text("ABC"))
+
+The effect of the operation is shown in these examples:
+
+
+
+ |
+ |
+
+
+
+"texts_not" - Selects texts from an original layer not matching a specific selection
+
+Usage:
+
+- layer.texts_not
+- layer.texts_not(p)
+- layer.texts_not([ options ])
+
+
+This method can be applied to true text layers obtained with labels.
+In this case, without specifying "as_dots" or "as_boxes" retains the text
+objects as such. Only text filtering is applied.
+
+Beside that this method acts like texts, but will select the text objects
+not matching the filter.
"transform" - Transforms a layer (modifies the layer)
@@ -2388,7 +2440,7 @@ It is an alias for the "^" operator.
This method is available for polygon and edge layers.
The following images show the effect of the "xor" method
-on polygons and edges (layer1: red, layer2: blue):
+on polygons and edges (input1: red, input2: blue):
diff --git a/src/lay/lay/doc/about/drc_ref_netter.xml b/src/lay/lay/doc/about/drc_ref_netter.xml
index c56e060df..a08620943 100644
--- a/src/lay/lay/doc/about/drc_ref_netter.xml
+++ b/src/lay/lay/doc/about/drc_ref_netter.xml
@@ -153,13 +153,19 @@ See connect for more details.
connect(a, b)
-a and b must be polygon layers. After calling this function, the
+a and b must be polygon or text layers. After calling this function, the
Netter regards all overlapping or touching shapes on these layers
to form an electrical connection between the materials formed by
these layers. This also implies intra-layer connections: shapes
on these layers touching or overlapping other shapes on these
layers will form bigger, electrically connected areas.
+Texts will be used to assign net names to the nets. The preferred
+method is to use labels to create a text layer from a design
+layer. When using input, text labels are carried implicitly
+with the polygons but at the cost of small dummy shapes (2x2 DBU
+marker polygons) and limited functionality.
+
Multiple connect calls must be made to form larger connectivity
stacks across multiple layers. Such stacks may include forks and
joins.
@@ -177,7 +183,7 @@ can be cleared with clear_connections.
Connects the shapes from the given layer l to a global net with the given name.
Global nets are common to all cells. Global nets automatically connect to parent
cells throughs implied pins. An example is the substrate (bulk) net which connects
-to shapes belonging to tie-down diodes.
+to shapes belonging to tie-down diodes. "l" can be a polygon or text layer.
"connect_implicit" - Specifies a search pattern for labels which create implicit net connections
diff --git a/src/lay/lay/doc/about/drc_ref_source.xml b/src/lay/lay/doc/about/drc_ref_source.xml
index a620c0b4b..d30545115 100644
--- a/src/lay/lay/doc/about/drc_ref_source.xml
+++ b/src/lay/lay/doc/about/drc_ref_source.xml
@@ -54,6 +54,48 @@ This method will create a new source which delivers the shapes
from that region clipped to the rectangle. A method doing the
same but without clipping is touching or overlapping.
+"edge_pairs" - Gets the edge pairs from an input layer
+
+Usage:
+
+- source.edge_pairs(layer)
+- source.edge_pairs(layer, datatype)
+- source.edge_pairs(layer_into)
+- source.edge_pairs(filter, ...)
+
+
+Creates a layer with the edge_pairs from the given layer of the source.
+Edge pairs are not supported by layout formats so far. So except if the source is
+a custom-built layout object, this method has little use. It is provided for future
+extensions which may include edge pairs in file streams.
+
+This method is identical to input with respect to the options supported.
+
+Use the global version of "edge_pairs" without a source object to address the default source.
+
+This method has been introduced in version 0.27.
+
+"edges" - Gets the edge shapes (or shapes that can be converted edges) from an input layer
+
+Usage:
+
+- source.edges(layer)
+- source.edges(layer, datatype)
+- source.edges(layer_into)
+- source.edges(filter, ...)
+
+
+Creates a layer with the edges from the given layer of the source.
+Edge layers are formed from shapes by decomposing the shapes into edges: polygons
+for example are decomposed into their outline edges. Some file formats support egdes
+as native objects.
+
+This method is identical to input with respect to the options supported.
+
+Use the global version of "edges" without a source object to address the default source.
+
+This method has been introduced in version 0.27.
+
"extent" - Returns a layer with the bounding box of the selected layout
Usage:
@@ -95,7 +137,7 @@ Some filter expressions are:
not have names)
-Layers created with "input" contain both texts and polygons. There is a subtle
+Layers created with "input" may contain both texts (labels) and polygons. There is a subtle
difference between flat and deep mode: in flat mode, texts are not visible in polygon
operations. In deep mode, texts appear as small 2x2 DBU rectangles. In flat mode,
some operations such as clipping are not fully supported for texts. Also, texts will
@@ -106,6 +148,11 @@ Texts can later be selected on the layer returned by "input" with the polygons to create an input layer with polygon data
only. If you only want to see texts, use labels to create an input layer with texts only.
+labels also produces a true "text layer" which contains text objects. A variety of
+operations is available for these objects, such as boolean "and" and "not" with a polygon layer.
+True text layers should be preferred over mixed polygon/text layers if text object processing
+is required.
+
Use the global version of "input" without a source object to address the default source.
"labels" - Gets the labels (texts) from an input layer
@@ -118,10 +165,12 @@ Use the global version of "input" without a source object to address the default
source.labels(filter, ...)
-Creates a layer with the labels from the given layer of the source.
+Creates a true text layer with the labels from the given layer of the source.
This method is identical to input, but takes only texts from the given input
-layer.
+layer. Starting with version 0.27, the result is no longer a polygon layer that tries
+to provide text support but a layer type which is provided for carrying text objects
+explicitly.
Use the global version of "labels" without a source object to address the default source.
diff --git a/src/lay/lay/doc/images/drc_and1.png b/src/lay/lay/doc/images/drc_and1.png
index 5964e1939..a0c736476 100644
Binary files a/src/lay/lay/doc/images/drc_and1.png and b/src/lay/lay/doc/images/drc_and1.png differ
diff --git a/src/lay/lay/doc/images/drc_and2.png b/src/lay/lay/doc/images/drc_and2.png
index f6a9cfe6b..8c99cc75e 100644
Binary files a/src/lay/lay/doc/images/drc_and2.png and b/src/lay/lay/doc/images/drc_and2.png differ
diff --git a/src/lay/lay/doc/images/drc_and3.png b/src/lay/lay/doc/images/drc_and3.png
index 08ba54228..4078a55a3 100644
Binary files a/src/lay/lay/doc/images/drc_and3.png and b/src/lay/lay/doc/images/drc_and3.png differ
diff --git a/src/lay/lay/doc/images/drc_centers1.png b/src/lay/lay/doc/images/drc_centers1.png
index 5f5b07296..9f7318210 100644
Binary files a/src/lay/lay/doc/images/drc_centers1.png and b/src/lay/lay/doc/images/drc_centers1.png differ
diff --git a/src/lay/lay/doc/images/drc_centers2.png b/src/lay/lay/doc/images/drc_centers2.png
index 65e267b7e..949971f74 100644
Binary files a/src/lay/lay/doc/images/drc_centers2.png and b/src/lay/lay/doc/images/drc_centers2.png differ
diff --git a/src/lay/lay/doc/images/drc_corners1.png b/src/lay/lay/doc/images/drc_corners1.png
index 461054bdf..f5782c1a6 100644
Binary files a/src/lay/lay/doc/images/drc_corners1.png and b/src/lay/lay/doc/images/drc_corners1.png differ
diff --git a/src/lay/lay/doc/images/drc_corners2.png b/src/lay/lay/doc/images/drc_corners2.png
index 24c48a316..36de46255 100644
Binary files a/src/lay/lay/doc/images/drc_corners2.png and b/src/lay/lay/doc/images/drc_corners2.png differ
diff --git a/src/lay/lay/doc/images/drc_corners3.png b/src/lay/lay/doc/images/drc_corners3.png
index ed6f97696..f0224dba8 100644
Binary files a/src/lay/lay/doc/images/drc_corners3.png and b/src/lay/lay/doc/images/drc_corners3.png differ
diff --git a/src/lay/lay/doc/images/drc_enc1.png b/src/lay/lay/doc/images/drc_enc1.png
index d4b448284..c0c25dc5f 100644
Binary files a/src/lay/lay/doc/images/drc_enc1.png and b/src/lay/lay/doc/images/drc_enc1.png differ
diff --git a/src/lay/lay/doc/images/drc_enc2.png b/src/lay/lay/doc/images/drc_enc2.png
index 27a38ac48..93c1b4c14 100644
Binary files a/src/lay/lay/doc/images/drc_enc2.png and b/src/lay/lay/doc/images/drc_enc2.png differ
diff --git a/src/lay/lay/doc/images/drc_end_segments1.png b/src/lay/lay/doc/images/drc_end_segments1.png
index e146be063..0c2c424ae 100644
Binary files a/src/lay/lay/doc/images/drc_end_segments1.png and b/src/lay/lay/doc/images/drc_end_segments1.png differ
diff --git a/src/lay/lay/doc/images/drc_end_segments2.png b/src/lay/lay/doc/images/drc_end_segments2.png
index 2bbf6f78b..cd56d40ec 100644
Binary files a/src/lay/lay/doc/images/drc_end_segments2.png and b/src/lay/lay/doc/images/drc_end_segments2.png differ
diff --git a/src/lay/lay/doc/images/drc_extended1.png b/src/lay/lay/doc/images/drc_extended1.png
index 04ae3e835..12db6370d 100644
Binary files a/src/lay/lay/doc/images/drc_extended1.png and b/src/lay/lay/doc/images/drc_extended1.png differ
diff --git a/src/lay/lay/doc/images/drc_extended2.png b/src/lay/lay/doc/images/drc_extended2.png
index 287ad4aa7..90816d5f8 100644
Binary files a/src/lay/lay/doc/images/drc_extended2.png and b/src/lay/lay/doc/images/drc_extended2.png differ
diff --git a/src/lay/lay/doc/images/drc_extended3.png b/src/lay/lay/doc/images/drc_extended3.png
index 185d601d0..330ed208a 100644
Binary files a/src/lay/lay/doc/images/drc_extended3.png and b/src/lay/lay/doc/images/drc_extended3.png differ
diff --git a/src/lay/lay/doc/images/drc_extended4.png b/src/lay/lay/doc/images/drc_extended4.png
index 6e24afc48..8caea794f 100644
Binary files a/src/lay/lay/doc/images/drc_extended4.png and b/src/lay/lay/doc/images/drc_extended4.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs1.png b/src/lay/lay/doc/images/drc_extent_refs1.png
index 2ab241463..c32c46129 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs1.png and b/src/lay/lay/doc/images/drc_extent_refs1.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs10.png b/src/lay/lay/doc/images/drc_extent_refs10.png
index 81a5603fe..2771cae38 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs10.png and b/src/lay/lay/doc/images/drc_extent_refs10.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs11.png b/src/lay/lay/doc/images/drc_extent_refs11.png
index 9b3618059..f1feb7337 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs11.png and b/src/lay/lay/doc/images/drc_extent_refs11.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs12.png b/src/lay/lay/doc/images/drc_extent_refs12.png
index f84556d24..1a9dae0b8 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs12.png and b/src/lay/lay/doc/images/drc_extent_refs12.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs13.png b/src/lay/lay/doc/images/drc_extent_refs13.png
index d1ebc5eaa..4543ee821 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs13.png and b/src/lay/lay/doc/images/drc_extent_refs13.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs20.png b/src/lay/lay/doc/images/drc_extent_refs20.png
index 170aa1b52..4b3a2c2e3 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs20.png and b/src/lay/lay/doc/images/drc_extent_refs20.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs21.png b/src/lay/lay/doc/images/drc_extent_refs21.png
index 26efee149..cbb4fd30d 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs21.png and b/src/lay/lay/doc/images/drc_extent_refs21.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs22.png b/src/lay/lay/doc/images/drc_extent_refs22.png
index 54581748d..0def07a46 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs22.png and b/src/lay/lay/doc/images/drc_extent_refs22.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs23.png b/src/lay/lay/doc/images/drc_extent_refs23.png
index f3ad4bdca..4e44e294d 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs23.png and b/src/lay/lay/doc/images/drc_extent_refs23.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs24.png b/src/lay/lay/doc/images/drc_extent_refs24.png
index 673df6948..35b36f9ae 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs24.png and b/src/lay/lay/doc/images/drc_extent_refs24.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs25.png b/src/lay/lay/doc/images/drc_extent_refs25.png
index f3a0db1a2..b90e4bfcc 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs25.png and b/src/lay/lay/doc/images/drc_extent_refs25.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs26.png b/src/lay/lay/doc/images/drc_extent_refs26.png
index d855fb789..c61984c21 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs26.png and b/src/lay/lay/doc/images/drc_extent_refs26.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs27.png b/src/lay/lay/doc/images/drc_extent_refs27.png
index 73b9597c0..eee91b62a 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs27.png and b/src/lay/lay/doc/images/drc_extent_refs27.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs30.png b/src/lay/lay/doc/images/drc_extent_refs30.png
index c8ac61634..1d76c687d 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs30.png and b/src/lay/lay/doc/images/drc_extent_refs30.png differ
diff --git a/src/lay/lay/doc/images/drc_extent_refs31.png b/src/lay/lay/doc/images/drc_extent_refs31.png
index 755dd2922..c490f81e5 100644
Binary files a/src/lay/lay/doc/images/drc_extent_refs31.png and b/src/lay/lay/doc/images/drc_extent_refs31.png differ
diff --git a/src/lay/lay/doc/images/drc_extents1.png b/src/lay/lay/doc/images/drc_extents1.png
index edc3fa060..5f9c37e02 100644
Binary files a/src/lay/lay/doc/images/drc_extents1.png and b/src/lay/lay/doc/images/drc_extents1.png differ
diff --git a/src/lay/lay/doc/images/drc_extents2.png b/src/lay/lay/doc/images/drc_extents2.png
index bb14947ce..29608ac31 100644
Binary files a/src/lay/lay/doc/images/drc_extents2.png and b/src/lay/lay/doc/images/drc_extents2.png differ
diff --git a/src/lay/lay/doc/images/drc_holes.png b/src/lay/lay/doc/images/drc_holes.png
index e245a0b88..c56f83164 100644
Binary files a/src/lay/lay/doc/images/drc_holes.png and b/src/lay/lay/doc/images/drc_holes.png differ
diff --git a/src/lay/lay/doc/images/drc_hulls.png b/src/lay/lay/doc/images/drc_hulls.png
index 65ef90930..e3f6fd16e 100644
Binary files a/src/lay/lay/doc/images/drc_hulls.png and b/src/lay/lay/doc/images/drc_hulls.png differ
diff --git a/src/lay/lay/doc/images/drc_in.png b/src/lay/lay/doc/images/drc_in.png
index 75ba7043b..b3017edb3 100644
Binary files a/src/lay/lay/doc/images/drc_in.png and b/src/lay/lay/doc/images/drc_in.png differ
diff --git a/src/lay/lay/doc/images/drc_inside.png b/src/lay/lay/doc/images/drc_inside.png
index 3e8e74b0f..03cf210a6 100644
Binary files a/src/lay/lay/doc/images/drc_inside.png and b/src/lay/lay/doc/images/drc_inside.png differ
diff --git a/src/lay/lay/doc/images/drc_inside_part.png b/src/lay/lay/doc/images/drc_inside_part.png
index eb827a8b1..0d407c4dd 100644
Binary files a/src/lay/lay/doc/images/drc_inside_part.png and b/src/lay/lay/doc/images/drc_inside_part.png differ
diff --git a/src/lay/lay/doc/images/drc_interacting.png b/src/lay/lay/doc/images/drc_interacting.png
index 96de49249..9feceacdc 100644
Binary files a/src/lay/lay/doc/images/drc_interacting.png and b/src/lay/lay/doc/images/drc_interacting.png differ
diff --git a/src/lay/lay/doc/images/drc_join1.png b/src/lay/lay/doc/images/drc_join1.png
index 74c2b4354..93422273d 100644
Binary files a/src/lay/lay/doc/images/drc_join1.png and b/src/lay/lay/doc/images/drc_join1.png differ
diff --git a/src/lay/lay/doc/images/drc_join2.png b/src/lay/lay/doc/images/drc_join2.png
index c6c751efe..b0dfc41d8 100644
Binary files a/src/lay/lay/doc/images/drc_join2.png and b/src/lay/lay/doc/images/drc_join2.png differ
diff --git a/src/lay/lay/doc/images/drc_merged1.png b/src/lay/lay/doc/images/drc_merged1.png
index 2f02b2930..d6c2d3e6d 100644
Binary files a/src/lay/lay/doc/images/drc_merged1.png and b/src/lay/lay/doc/images/drc_merged1.png differ
diff --git a/src/lay/lay/doc/images/drc_merged2.png b/src/lay/lay/doc/images/drc_merged2.png
index 76ea5368e..c5aec6c9d 100644
Binary files a/src/lay/lay/doc/images/drc_merged2.png and b/src/lay/lay/doc/images/drc_merged2.png differ
diff --git a/src/lay/lay/doc/images/drc_merged3.png b/src/lay/lay/doc/images/drc_merged3.png
index 2f7ead9dd..12bc538b5 100644
Binary files a/src/lay/lay/doc/images/drc_merged3.png and b/src/lay/lay/doc/images/drc_merged3.png differ
diff --git a/src/lay/lay/doc/images/drc_merged4.png b/src/lay/lay/doc/images/drc_merged4.png
index 0dc6f5580..e744c80fe 100644
Binary files a/src/lay/lay/doc/images/drc_merged4.png and b/src/lay/lay/doc/images/drc_merged4.png differ
diff --git a/src/lay/lay/doc/images/drc_middle1.png b/src/lay/lay/doc/images/drc_middle1.png
index 4fddc996b..335793134 100644
Binary files a/src/lay/lay/doc/images/drc_middle1.png and b/src/lay/lay/doc/images/drc_middle1.png differ
diff --git a/src/lay/lay/doc/images/drc_moved1.png b/src/lay/lay/doc/images/drc_moved1.png
index 649de520a..40319a781 100644
Binary files a/src/lay/lay/doc/images/drc_moved1.png and b/src/lay/lay/doc/images/drc_moved1.png differ
diff --git a/src/lay/lay/doc/images/drc_not1.png b/src/lay/lay/doc/images/drc_not1.png
index c62d8a9d3..dad0049f2 100644
Binary files a/src/lay/lay/doc/images/drc_not1.png and b/src/lay/lay/doc/images/drc_not1.png differ
diff --git a/src/lay/lay/doc/images/drc_not2.png b/src/lay/lay/doc/images/drc_not2.png
index c501c3ada..e3f229224 100644
Binary files a/src/lay/lay/doc/images/drc_not2.png and b/src/lay/lay/doc/images/drc_not2.png differ
diff --git a/src/lay/lay/doc/images/drc_not3.png b/src/lay/lay/doc/images/drc_not3.png
index 51b96ba4f..4a4553a3d 100644
Binary files a/src/lay/lay/doc/images/drc_not3.png and b/src/lay/lay/doc/images/drc_not3.png differ
diff --git a/src/lay/lay/doc/images/drc_not_in.png b/src/lay/lay/doc/images/drc_not_in.png
index c3e7986b3..a2556074c 100644
Binary files a/src/lay/lay/doc/images/drc_not_in.png and b/src/lay/lay/doc/images/drc_not_in.png differ
diff --git a/src/lay/lay/doc/images/drc_not_inside.png b/src/lay/lay/doc/images/drc_not_inside.png
index aa4c880eb..48398c45a 100644
Binary files a/src/lay/lay/doc/images/drc_not_inside.png and b/src/lay/lay/doc/images/drc_not_inside.png differ
diff --git a/src/lay/lay/doc/images/drc_not_interacting.png b/src/lay/lay/doc/images/drc_not_interacting.png
index 27a48eb06..3455d262b 100644
Binary files a/src/lay/lay/doc/images/drc_not_interacting.png and b/src/lay/lay/doc/images/drc_not_interacting.png differ
diff --git a/src/lay/lay/doc/images/drc_not_outside.png b/src/lay/lay/doc/images/drc_not_outside.png
index e6ede552a..738af1cb8 100644
Binary files a/src/lay/lay/doc/images/drc_not_outside.png and b/src/lay/lay/doc/images/drc_not_outside.png differ
diff --git a/src/lay/lay/doc/images/drc_not_overlapping.png b/src/lay/lay/doc/images/drc_not_overlapping.png
index 89f571221..254bac8c6 100644
Binary files a/src/lay/lay/doc/images/drc_not_overlapping.png and b/src/lay/lay/doc/images/drc_not_overlapping.png differ
diff --git a/src/lay/lay/doc/images/drc_or1.png b/src/lay/lay/doc/images/drc_or1.png
index 78386d1ff..a14ec27eb 100644
Binary files a/src/lay/lay/doc/images/drc_or1.png and b/src/lay/lay/doc/images/drc_or1.png differ
diff --git a/src/lay/lay/doc/images/drc_or2.png b/src/lay/lay/doc/images/drc_or2.png
index ae2974fa0..76fa8b7e4 100644
Binary files a/src/lay/lay/doc/images/drc_or2.png and b/src/lay/lay/doc/images/drc_or2.png differ
diff --git a/src/lay/lay/doc/images/drc_outside.png b/src/lay/lay/doc/images/drc_outside.png
index 190b2537c..c12dfb826 100644
Binary files a/src/lay/lay/doc/images/drc_outside.png and b/src/lay/lay/doc/images/drc_outside.png differ
diff --git a/src/lay/lay/doc/images/drc_outside_part.png b/src/lay/lay/doc/images/drc_outside_part.png
index 16789b517..8e3552e70 100644
Binary files a/src/lay/lay/doc/images/drc_outside_part.png and b/src/lay/lay/doc/images/drc_outside_part.png differ
diff --git a/src/lay/lay/doc/images/drc_overlap1.png b/src/lay/lay/doc/images/drc_overlap1.png
index 75d18813d..8a3653124 100644
Binary files a/src/lay/lay/doc/images/drc_overlap1.png and b/src/lay/lay/doc/images/drc_overlap1.png differ
diff --git a/src/lay/lay/doc/images/drc_overlap2.png b/src/lay/lay/doc/images/drc_overlap2.png
index 06d17e418..dbcea6cf9 100644
Binary files a/src/lay/lay/doc/images/drc_overlap2.png and b/src/lay/lay/doc/images/drc_overlap2.png differ
diff --git a/src/lay/lay/doc/images/drc_overlapping.png b/src/lay/lay/doc/images/drc_overlapping.png
index 2afb3ba85..33ebb1460 100644
Binary files a/src/lay/lay/doc/images/drc_overlapping.png and b/src/lay/lay/doc/images/drc_overlapping.png differ
diff --git a/src/lay/lay/doc/images/drc_raw1.png b/src/lay/lay/doc/images/drc_raw1.png
index fa2b1e6fd..3fea7103b 100644
Binary files a/src/lay/lay/doc/images/drc_raw1.png and b/src/lay/lay/doc/images/drc_raw1.png differ
diff --git a/src/lay/lay/doc/images/drc_raw2.png b/src/lay/lay/doc/images/drc_raw2.png
index 6bc582de5..3391b35e5 100644
Binary files a/src/lay/lay/doc/images/drc_raw2.png and b/src/lay/lay/doc/images/drc_raw2.png differ
diff --git a/src/lay/lay/doc/images/drc_raw3.png b/src/lay/lay/doc/images/drc_raw3.png
index 0288c1784..f4146586e 100644
Binary files a/src/lay/lay/doc/images/drc_raw3.png and b/src/lay/lay/doc/images/drc_raw3.png differ
diff --git a/src/lay/lay/doc/images/drc_rotated1.png b/src/lay/lay/doc/images/drc_rotated1.png
index 02011ed60..40bff10aa 100644
Binary files a/src/lay/lay/doc/images/drc_rotated1.png and b/src/lay/lay/doc/images/drc_rotated1.png differ
diff --git a/src/lay/lay/doc/images/drc_rounded_corners.png b/src/lay/lay/doc/images/drc_rounded_corners.png
index c77f0da8b..c0c8e3228 100644
Binary files a/src/lay/lay/doc/images/drc_rounded_corners.png and b/src/lay/lay/doc/images/drc_rounded_corners.png differ
diff --git a/src/lay/lay/doc/images/drc_scaled1.png b/src/lay/lay/doc/images/drc_scaled1.png
index 32c75761e..e29d4ecbf 100644
Binary files a/src/lay/lay/doc/images/drc_scaled1.png and b/src/lay/lay/doc/images/drc_scaled1.png differ
diff --git a/src/lay/lay/doc/images/drc_separation1.png b/src/lay/lay/doc/images/drc_separation1.png
index 1204d1d8a..4b370a1da 100644
Binary files a/src/lay/lay/doc/images/drc_separation1.png and b/src/lay/lay/doc/images/drc_separation1.png differ
diff --git a/src/lay/lay/doc/images/drc_sized1.png b/src/lay/lay/doc/images/drc_sized1.png
index c4a9d56a2..cfb54b87e 100644
Binary files a/src/lay/lay/doc/images/drc_sized1.png and b/src/lay/lay/doc/images/drc_sized1.png differ
diff --git a/src/lay/lay/doc/images/drc_sized2.png b/src/lay/lay/doc/images/drc_sized2.png
index af9090297..6803ba021 100644
Binary files a/src/lay/lay/doc/images/drc_sized2.png and b/src/lay/lay/doc/images/drc_sized2.png differ
diff --git a/src/lay/lay/doc/images/drc_sized3.png b/src/lay/lay/doc/images/drc_sized3.png
index d5a1f1ad6..090f30393 100644
Binary files a/src/lay/lay/doc/images/drc_sized3.png and b/src/lay/lay/doc/images/drc_sized3.png differ
diff --git a/src/lay/lay/doc/images/drc_sized4.png b/src/lay/lay/doc/images/drc_sized4.png
index d178ed236..35bb940f4 100644
Binary files a/src/lay/lay/doc/images/drc_sized4.png and b/src/lay/lay/doc/images/drc_sized4.png differ
diff --git a/src/lay/lay/doc/images/drc_sized5.png b/src/lay/lay/doc/images/drc_sized5.png
index 556ffb531..5efc64543 100644
Binary files a/src/lay/lay/doc/images/drc_sized5.png and b/src/lay/lay/doc/images/drc_sized5.png differ
diff --git a/src/lay/lay/doc/images/drc_sized6.png b/src/lay/lay/doc/images/drc_sized6.png
index c81dbdcd2..17cdf1f57 100644
Binary files a/src/lay/lay/doc/images/drc_sized6.png and b/src/lay/lay/doc/images/drc_sized6.png differ
diff --git a/src/lay/lay/doc/images/drc_space1.png b/src/lay/lay/doc/images/drc_space1.png
index 81b377a1a..0665068bb 100644
Binary files a/src/lay/lay/doc/images/drc_space1.png and b/src/lay/lay/doc/images/drc_space1.png differ
diff --git a/src/lay/lay/doc/images/drc_space2.png b/src/lay/lay/doc/images/drc_space2.png
index c4cc02b5b..65d1c9dc9 100644
Binary files a/src/lay/lay/doc/images/drc_space2.png and b/src/lay/lay/doc/images/drc_space2.png differ
diff --git a/src/lay/lay/doc/images/drc_space3.png b/src/lay/lay/doc/images/drc_space3.png
index db0b50898..5ac751bc3 100644
Binary files a/src/lay/lay/doc/images/drc_space3.png and b/src/lay/lay/doc/images/drc_space3.png differ
diff --git a/src/lay/lay/doc/images/drc_start_segments1.png b/src/lay/lay/doc/images/drc_start_segments1.png
index a6b45ecab..12ba8a091 100644
Binary files a/src/lay/lay/doc/images/drc_start_segments1.png and b/src/lay/lay/doc/images/drc_start_segments1.png differ
diff --git a/src/lay/lay/doc/images/drc_start_segments2.png b/src/lay/lay/doc/images/drc_start_segments2.png
index af8dfa514..806eb05ef 100644
Binary files a/src/lay/lay/doc/images/drc_start_segments2.png and b/src/lay/lay/doc/images/drc_start_segments2.png differ
diff --git a/src/lay/lay/doc/images/drc_textpoly1.png b/src/lay/lay/doc/images/drc_textpoly1.png
new file mode 100644
index 000000000..537997008
Binary files /dev/null and b/src/lay/lay/doc/images/drc_textpoly1.png differ
diff --git a/src/lay/lay/doc/images/drc_textpoly2.png b/src/lay/lay/doc/images/drc_textpoly2.png
new file mode 100644
index 000000000..6294f9f6d
Binary files /dev/null and b/src/lay/lay/doc/images/drc_textpoly2.png differ
diff --git a/src/lay/lay/doc/images/drc_texts1.png b/src/lay/lay/doc/images/drc_texts1.png
new file mode 100644
index 000000000..af37d9f6f
Binary files /dev/null and b/src/lay/lay/doc/images/drc_texts1.png differ
diff --git a/src/lay/lay/doc/images/drc_texts2.png b/src/lay/lay/doc/images/drc_texts2.png
new file mode 100644
index 000000000..125fc17a7
Binary files /dev/null and b/src/lay/lay/doc/images/drc_texts2.png differ
diff --git a/src/lay/lay/doc/images/drc_transformed1.png b/src/lay/lay/doc/images/drc_transformed1.png
index d232cbd6e..fd0ec2828 100644
Binary files a/src/lay/lay/doc/images/drc_transformed1.png and b/src/lay/lay/doc/images/drc_transformed1.png differ
diff --git a/src/lay/lay/doc/images/drc_width1.png b/src/lay/lay/doc/images/drc_width1.png
index 8fa847a50..75cfa7f14 100644
Binary files a/src/lay/lay/doc/images/drc_width1.png and b/src/lay/lay/doc/images/drc_width1.png differ
diff --git a/src/lay/lay/doc/images/drc_width2.png b/src/lay/lay/doc/images/drc_width2.png
index 1448ababb..6708ebf7d 100644
Binary files a/src/lay/lay/doc/images/drc_width2.png and b/src/lay/lay/doc/images/drc_width2.png differ
diff --git a/src/lay/lay/doc/images/drc_width3.png b/src/lay/lay/doc/images/drc_width3.png
index 2b4af24d9..3848ce744 100644
Binary files a/src/lay/lay/doc/images/drc_width3.png and b/src/lay/lay/doc/images/drc_width3.png differ
diff --git a/src/lay/lay/doc/images/drc_width4.png b/src/lay/lay/doc/images/drc_width4.png
index 727007a4b..9b281830f 100644
Binary files a/src/lay/lay/doc/images/drc_width4.png and b/src/lay/lay/doc/images/drc_width4.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle1.png b/src/lay/lay/doc/images/drc_with_angle1.png
index 4c9ba1f72..dadeb6727 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle1.png and b/src/lay/lay/doc/images/drc_with_angle1.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle2.png b/src/lay/lay/doc/images/drc_with_angle2.png
index 5fe220c01..fe3b022a8 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle2.png and b/src/lay/lay/doc/images/drc_with_angle2.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle3.png b/src/lay/lay/doc/images/drc_with_angle3.png
index 1aa664498..b3c8c978d 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle3.png and b/src/lay/lay/doc/images/drc_with_angle3.png differ
diff --git a/src/lay/lay/doc/images/drc_with_angle4.png b/src/lay/lay/doc/images/drc_with_angle4.png
index 6e5246d2a..30aa5e33d 100644
Binary files a/src/lay/lay/doc/images/drc_with_angle4.png and b/src/lay/lay/doc/images/drc_with_angle4.png differ
diff --git a/src/lay/lay/doc/images/drc_xor1.png b/src/lay/lay/doc/images/drc_xor1.png
index 6a53ec961..5ca89f97b 100644
Binary files a/src/lay/lay/doc/images/drc_xor1.png and b/src/lay/lay/doc/images/drc_xor1.png differ
diff --git a/src/lay/lay/doc/images/drc_xor2.png b/src/lay/lay/doc/images/drc_xor2.png
index 5b391cd3f..d67542b76 100644
Binary files a/src/lay/lay/doc/images/drc_xor2.png and b/src/lay/lay/doc/images/drc_xor2.png differ
diff --git a/src/lay/lay/doc/manual/drc_runsets.xml b/src/lay/lay/doc/manual/drc_runsets.xml
index 6123f5e0a..dd7442135 100644
--- a/src/lay/lay/doc/manual/drc_runsets.xml
+++ b/src/lay/lay/doc/manual/drc_runsets.xml
@@ -545,20 +545,20 @@ output(w, "width violations")
- Boolean AND with a polygon layer: will select those texts
which are inside or at the border of a polygon.
- interact is a synonym for this operation.
+ interact is a synonym for this operation.
- Boolean NOT with a polygon layer: will select those texts
which are outside of any polygon.
- not_interact is a synonym for this operation.
+ not_interact is a synonym for this operation.
- Text filtering by string: texts can be filtered either
by matching against a fixed text or a glob pattern.
The methods provided for this purpose are:
- texts and
- texts_not
- - flatten
+ texts and
+ texts_not
+ - flatten
will flatten the hierarchy of a text layer.
- Polygon or edge generation around the text's location:
- polygons and
- edges
+ polygons and
+ edges
Edge pairs and edge pair collections
diff --git a/src/lay/lay/lay.pro b/src/lay/lay/lay.pro
index c5b7c4cf9..cfb7e9c75 100644
--- a/src/lay/lay/lay.pro
+++ b/src/lay/lay/lay.pro
@@ -165,7 +165,8 @@ RESOURCES = layBuildInMacros.qrc \
layHelpResources.qrc \
layMacroTemplates.qrc \
layResources.qrc \
- laySaltTemplates.qrc
+ laySaltTemplates.qrc \
+ layDRCLVSHelpResources.qrc
INCLUDEPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC
DEPENDPATH += $$TL_INC $$GSI_INC $$DB_INC $$RDB_INC $$LAYBASIC_INC $$ANT_INC $$IMG_INC $$EDT_INC $$LYM_INC
diff --git a/src/lay/lay/layDRCLVSHelpResources.qrc b/src/lay/lay/layDRCLVSHelpResources.qrc
new file mode 100644
index 000000000..39a37e95b
--- /dev/null
+++ b/src/lay/lay/layDRCLVSHelpResources.qrc
@@ -0,0 +1,99 @@
+
+
+ doc/images/drc_width1.png
+ doc/images/drc_width2.png
+ doc/images/drc_width3.png
+ doc/images/drc_width4.png
+ doc/images/drc_space1.png
+ doc/images/drc_space2.png
+ doc/images/drc_space3.png
+ doc/images/drc_separation1.png
+ doc/images/drc_raw1.png
+ doc/images/drc_raw2.png
+ doc/images/drc_raw3.png
+ doc/images/drc_enc1.png
+ doc/images/drc_enc2.png
+ doc/images/drc_overlap1.png
+ doc/images/drc_overlap2.png
+ doc/images/drc_start_segments1.png
+ doc/images/drc_start_segments2.png
+ doc/images/drc_end_segments1.png
+ doc/images/drc_end_segments2.png
+ doc/images/drc_centers1.png
+ doc/images/drc_centers2.png
+ doc/images/drc_extended1.png
+ doc/images/drc_extended2.png
+ doc/images/drc_extended3.png
+ doc/images/drc_extended4.png
+ doc/images/drc_extents1.png
+ doc/images/drc_extents2.png
+ doc/images/drc_inside.png
+ doc/images/drc_not_inside.png
+ doc/images/drc_outside.png
+ doc/images/drc_not_outside.png
+ doc/images/drc_interacting.png
+ doc/images/drc_not_interacting.png
+ doc/images/drc_overlapping.png
+ doc/images/drc_not_overlapping.png
+ doc/images/drc_and1.png
+ doc/images/drc_or1.png
+ doc/images/drc_xor1.png
+ doc/images/drc_not1.png
+ doc/images/drc_join1.png
+ doc/images/drc_and2.png
+ doc/images/drc_or2.png
+ doc/images/drc_xor2.png
+ doc/images/drc_not2.png
+ doc/images/drc_join2.png
+ doc/images/drc_and3.png
+ doc/images/drc_not3.png
+ doc/images/drc_inside_part.png
+ doc/images/drc_outside_part.png
+ doc/images/drc_in.png
+ doc/images/drc_not_in.png
+ doc/images/drc_hulls.png
+ doc/images/drc_holes.png
+ doc/images/drc_merged1.png
+ doc/images/drc_merged2.png
+ doc/images/drc_merged3.png
+ doc/images/drc_merged4.png
+ doc/images/drc_moved1.png
+ doc/images/drc_rotated1.png
+ doc/images/drc_scaled1.png
+ doc/images/drc_transformed1.png
+ doc/images/drc_sized1.png
+ doc/images/drc_sized2.png
+ doc/images/drc_sized3.png
+ doc/images/drc_sized4.png
+ doc/images/drc_sized5.png
+ doc/images/drc_sized6.png
+ doc/images/drc_with_angle1.png
+ doc/images/drc_with_angle2.png
+ doc/images/drc_with_angle3.png
+ doc/images/drc_with_angle4.png
+ doc/images/drc_rounded_corners.png
+ doc/images/drc_middle1.png
+ doc/images/drc_extent_refs1.png
+ doc/images/drc_extent_refs10.png
+ doc/images/drc_extent_refs11.png
+ doc/images/drc_extent_refs12.png
+ doc/images/drc_extent_refs13.png
+ doc/images/drc_extent_refs20.png
+ doc/images/drc_extent_refs21.png
+ doc/images/drc_extent_refs22.png
+ doc/images/drc_extent_refs23.png
+ doc/images/drc_extent_refs24.png
+ doc/images/drc_extent_refs25.png
+ doc/images/drc_extent_refs26.png
+ doc/images/drc_extent_refs27.png
+ doc/images/drc_extent_refs30.png
+ doc/images/drc_extent_refs31.png
+ doc/images/drc_corners1.png
+ doc/images/drc_corners2.png
+ doc/images/drc_corners3.png
+ doc/images/drc_texts1.png
+ doc/images/drc_texts2.png
+ doc/images/drc_textpoly1.png
+ doc/images/drc_textpoly2.png
+
+
diff --git a/src/lay/lay/layHelpResources.qrc b/src/lay/lay/layHelpResources.qrc
index d6ba81d93..731ef64c8 100644
--- a/src/lay/lay/layHelpResources.qrc
+++ b/src/lay/lay/layHelpResources.qrc
@@ -2,100 +2,6 @@
doc/help_format.css
-
- doc/navigator_sep.png
- doc/images/drc_width1.png
- doc/images/drc_width2.png
- doc/images/drc_width3.png
- doc/images/drc_width4.png
- doc/images/drc_space1.png
- doc/images/drc_space2.png
- doc/images/drc_space3.png
- doc/images/drc_separation1.png
- doc/images/drc_raw1.png
- doc/images/drc_raw2.png
- doc/images/drc_raw3.png
- doc/images/drc_enc1.png
- doc/images/drc_enc2.png
- doc/images/drc_overlap1.png
- doc/images/drc_overlap2.png
- doc/images/drc_start_segments1.png
- doc/images/drc_start_segments2.png
- doc/images/drc_end_segments1.png
- doc/images/drc_end_segments2.png
- doc/images/drc_centers1.png
- doc/images/drc_centers2.png
- doc/images/drc_extended1.png
- doc/images/drc_extended2.png
- doc/images/drc_extended3.png
- doc/images/drc_extended4.png
- doc/images/drc_extents1.png
- doc/images/drc_extents2.png
- doc/images/drc_inside.png
- doc/images/drc_outside.png
- doc/images/drc_interacting.png
- doc/images/drc_overlapping.png
- doc/images/drc_not_inside.png
- doc/images/drc_not_outside.png
- doc/images/drc_not_interacting.png
- doc/images/drc_not_overlapping.png
- doc/images/drc_and1.png
- doc/images/drc_or1.png
- doc/images/drc_xor1.png
- doc/images/drc_not1.png
- doc/images/drc_join1.png
- doc/images/drc_and2.png
- doc/images/drc_or2.png
- doc/images/drc_xor2.png
- doc/images/drc_not2.png
- doc/images/drc_and3.png
- doc/images/drc_not3.png
- doc/images/drc_inside_part.png
- doc/images/drc_outside_part.png
- doc/images/drc_join2.png
- doc/images/drc_in.png
- doc/images/drc_not_in.png
- doc/images/drc_hulls.png
- doc/images/drc_holes.png
- doc/images/drc_merged1.png
- doc/images/drc_merged2.png
- doc/images/drc_merged3.png
- doc/images/drc_merged4.png
- doc/images/drc_moved1.png
- doc/images/drc_rotated1.png
- doc/images/drc_scaled1.png
- doc/images/drc_transformed1.png
- doc/images/drc_sized1.png
- doc/images/drc_sized2.png
- doc/images/drc_sized3.png
- doc/images/drc_sized4.png
- doc/images/drc_sized5.png
- doc/images/drc_sized6.png
- doc/images/drc_with_angle1.png
- doc/images/drc_with_angle2.png
- doc/images/drc_with_angle3.png
- doc/images/drc_with_angle4.png
- doc/images/drc_rounded_corners.png
- doc/images/drc_middle1.png
- doc/images/drc_extent_refs1.png
- doc/images/drc_extent_refs10.png
- doc/images/drc_extent_refs11.png
- doc/images/drc_extent_refs12.png
- doc/images/drc_extent_refs13.png
- doc/images/drc_extent_refs20.png
- doc/images/drc_extent_refs21.png
- doc/images/drc_extent_refs22.png
- doc/images/drc_extent_refs23.png
- doc/images/drc_extent_refs24.png
- doc/images/drc_extent_refs25.png
- doc/images/drc_extent_refs26.png
- doc/images/drc_extent_refs27.png
- doc/images/drc_extent_refs30.png
- doc/images/drc_extent_refs31.png
- doc/images/drc_corners1.png
- doc/images/drc_corners2.png
- doc/images/drc_corners3.png
-
doc/about/rba_notation.xml
doc/about/about_libraries.xml
diff --git a/testdata/drc/.drcSuiteTests.drc.swp b/testdata/drc/.drcSuiteTests.drc.swp
deleted file mode 100644
index ff550f50a..000000000
Binary files a/testdata/drc/.drcSuiteTests.drc.swp and /dev/null differ
diff --git a/testdata/drc/.drctest.drc.swp b/testdata/drc/.drctest.drc.swp
deleted file mode 100644
index 03518e417..000000000
Binary files a/testdata/drc/.drctest.drc.swp and /dev/null differ