This class was introduced to simplify operations on polygon sets like boolean or sizing operations. Regions consist of many polygons and thus are a generalisation of single polygons which describes a single coherence set of points. Regions support a variety of operations and have several states.
The region's state can be empty (does not contain anything) or box-like, i.e. the region consists of a single box. In that case, some operations can be simplified. Regions can have merged state. In merged state, regions consist of merged (non-touching, non-self overlapping) polygons. Each polygon describes one coherent area in merged state.
The preferred representation of polygons inside the region are polygons with holes.
Regions are always expressed in database units. If you want to use regions from different database unit domains, scale the regions accordingly, i.e. by using the transformed method.
Regions provide convenient operators for the boolean operations. Hence it is often no longer required to work with the EdgeProcessor class. For example:
Regions can be used in two different flavors: in raw mode or merged semantics. With merged semantics (the default), connected polygons are considered to belong together and are effectively merged.
Overlapping areas are counted once in that mode. Internal edges (i.e. arising from cut lines) are not considered.
In raw mode (without merged semantics), each polygon is considered as it is. Overlaps between polygons
may exists and merging has to be done explicitly using the merge method. The semantics can be
selected using merged_semantics=.
This class has been introduced in version 0.23.
[const] | Region | & | (const Region other) | Returns the boolean AND between self and the other region |
| Region | &= | (const Region other) | Performs the boolean AND between self and the other region |
[const] | Region | + | (const Region other) | Returns the combined region of self and the other region |
| Region | += | (const Region other) | Adds the polygons of the other region to self |
[const] | Region | - | (const Region other) | Returns the boolean NOT between self and the other region |
| Region | -= | (const Region other) | Performs the boolean NOT between self and the other region |
[const] | const Polygon ptr | [] | (unsigned long n) | Returns the nth polygon of the region |
[const] | Region | ^ | (const Region other) | Returns the boolean NOT between self and the other region |
| Region | ^= | (const Region other) | Performs the boolean XOR between self and the other region |
| void | _create | | Ensures the C++ object is created |
| void | _destroy | | Explicitly 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 | _manage | | Marks the object as managed by the script side. |
| void | _unmanage | | Marks the object as no longer owned by the script side. |
[const] | long | area | | The area of the region |
[const] | long | area | (const Box rect) | The area of the region (restricted to a rectangle) |
| void | assign | (const Region other) | Assigns another object to self |
[const] | Box | bbox | | Return the bounding box of the region |
| void | clear | | Clears the region |
[const] | new Region ptr | corners | (double angle_start = -180, double angle_end = 180) | This method will select all corners whose attached edges satisfy the angle condition. |
[const] | Edges ptr | corners_dots | (double angle_start = -180, double angle_end = 180) | This method will select all corners whose attached edges satisfy the angle condition. |
[const] | new Shapes ptr | decompose_convex | (int preferred_orientation = Polygon#PO_any) | Decomposes the region into convex pieces. |
[const] | new Region ptr | decompose_convex_to_region | (int preferred_orientation = Polygon#PO_any) | Decomposes the region into convex pieces into a region. |
[const] | new Shapes ptr | decompose_trapezoids | (int mode = Polygon#TD_simple) | Decomposes the region into trapezoids. |
[const] | new Region ptr | decompose_trapezoids_to_region | (int mode = Polygon#TD_simple) | Decomposes the region into trapezoids. |
| void | disable_progress | | Disable progress reporting |
[const] | new Region ptr | dup | | Creates a copy of self |
[const,iter] | Polygon | each | | Returns each polygon of the region |
[const,iter] | Polygon | each_merged | | Returns each merged polygon of the region |
[const] | Edges | edges | | Returns an edge collection representing all edges of the polygons in this region |
| void | enable_progress | (string label) | Enable progress reporting |
[const] | EdgePairs | enclosing_check | (const Region other, unsigned int d) | Performs a check whether polygons of this region enclose polygons of the other region by some amount |
[const] | EdgePairs | enclosing_check | (const Region other, unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs an enclosing check with options |
[const] | Region | extents | | Returns a region with the bounding boxes of the polygons |
[const] | Region | extents | (int d) | Returns a region with the enlarged bounding boxes of the polygons |
[const] | Region | extents | (int dx, int dy) | Returns a region with the enlarged bounding boxes of the polygons |
[const] | EdgePairs | grid_check | (int gx, int gy) | Returns a marker for all vertices not being on the given grid |
[const] | Region | holes | | Returns the holes of the region |
[const] | Region | hulls | | Returns the hulls of the region |
| void | insert | (const Box box) | Inserts a box |
| void | insert | (const Polygon polygon) | Inserts a polygon |
| void | insert | (const SimplePolygon polygon) | Inserts a simple polygon |
| void | insert | (const Path path) | Inserts a path |
| void | insert | (RecursiveShapeIterator shape_iterator) | Inserts all shapes delivered by the recursive shape iterator into this region |
| void | insert | (RecursiveShapeIterator shape_iterator, ICplxTrans trans) | Inserts all shapes delivered by the recursive shape iterator into this region with a transformation |
| void | insert | (Polygon[] array) | Inserts all polygons from the array into this region |
| void | insert | (const Region region) | Inserts all polygons from the other region into this region |
| void | insert | (const Shapes shapes) | Inserts all polygons from the shape collection into this region |
| void | insert | (const Shapes shapes, const Trans arg2) | Inserts all polygons from the shape collection into this region with transformation |
| void | insert | (const Shapes shapes, const ICplxTrans arg2) | Inserts all polygons from the shape collection into this region with complex transformation |
[const] | Region | inside | (const Region other) | Returns the polygons of this region which are completely inside polygons from the other region |
[const] | EdgePairs | inside_check | (const Region other, unsigned int d) | Performs a check whether polygons of this region are inside polygons of the other region by some amount |
[const] | EdgePairs | inside_check | (const Region other, unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs an inside check with options |
[const] | Region | interacting | (const Region other) | Returns the polygons of this region which overlap or touch polygons from the other region |
[const] | Region | interacting | (const Edges other) | Returns the polygons of this region which overlap or touch edges from the edge collection |
[const] | bool | is_box? | | Returns true, if the region is a simple box |
[const] | bool | is_empty? | | Returns true if the region is empty |
[const] | bool | is_merged? | | Returns true if the region is merged |
[const] | EdgePairs | isolated_check | (unsigned int d) | Performs a space check between edges of different polygons |
[const] | EdgePairs | isolated_check | (unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs a space check between edges of different polygons with options |
[const] | Region | members_of | (const Region other) | Returns all polygons which are members of the other region |
| Region | merge | | Merge the region |
| Region | merge | (int min_wc) | Merge the region with options |
| Region | merge | (bool min_coherence, int min_wc) | Merge the region with options |
[const] | Region | merged | | Returns the merged region |
| Region | merged | (int min_wc) | Returns the merged region (with options) |
| Region | merged | (bool min_coherence, int min_wc) | Returns the merged region (with options) |
| void | merged_semantics= | (bool f) | Enables or disables merged semantics |
[const] | bool | merged_semantics? | | Gets a flag indicating whether merged semantics is enabled |
| void | min_coherence= | (bool f) | Enable or disable minimum coherence |
[const] | bool | min_coherence? | | Gets a flag indicating whether minimum coherence is selected |
[const] | Region | minkowsky_sum | (const Edge e) | Compute the Minkowsky sum of the region and an edge |
[const] | Region | minkowsky_sum | (const Polygon p) | Compute the Minkowsky sum of the region and a polygon |
[const] | Region | minkowsky_sum | (const Box b) | Compute the Minkowsky sum of the region and a box |
[const] | Region | minkowsky_sum | (Point[] b) | Compute the Minkowsky sum of the region and a contour of points (a trace) |
| Region | move | (const Vector v) | Moves the region |
| Region | move | (int x, int y) | Moves the region |
[const] | Region | moved | (const Vector p) | Returns the moved region (does not modify self) |
[const] | Region | moved | (int x, int y) | Returns the moved region (does not modify self) |
[const] | Region | non_rectangles | | Returns all polygons which are not rectangles |
[const] | Region | non_rectilinear | | Returns all polygons which are not rectilinear |
[const] | Region | not_inside | (const Region other) | Returns the polygons of this region which are not completely inside polygons from the other region |
[const] | Region | not_interacting | (const Region other) | Returns the polygons of this region which do not overlap or touch polygons from the other region |
[const] | Region | not_interacting | (const Edges other) | Returns the polygons of this region which do not overlap or touch edges from the edge collection |
[const] | Region | not_members_of | (const Region other) | Returns all polygons which are not members of the other region |
[const] | Region | not_outside | (const Region other) | Returns the polygons of this region which are not completely outside polygons from the other region |
[const] | Region | not_overlapping | (const Region other) | Returns the polygons of this region which do not overlap polygons from the other region |
[const] | EdgePairs | notch_check | (unsigned int d) | Performs a space check between edges of the same polygon |
[const] | EdgePairs | notch_check | (unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs a space check between edges of the same polygon with options |
[const] | Region | outside | (const Region other) | Returns the polygons of this region which are completely outside polygons from the other region |
[const] | EdgePairs | overlap_check | (const Region other, unsigned int d) | Performs a check whether polygons of this region overlap polygons of the other region by some amount |
[const] | EdgePairs | overlap_check | (const Region other, unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs an overlap check with options |
[const] | Region | overlapping | (const Region other) | Returns the polygons of this region which overlap polygons from the other region |
[const] | unsigned long | perimeter | | The total perimeter of the polygons |
[const] | unsigned long | perimeter | (const Box rect) | The total perimeter of the polygons (restricted to a rectangle) |
[const] | Region | rectangles | | Returns all polygons which are rectangles |
[const] | Region | rectilinear | | Returns all polygons which are rectilinear |
| void | round_corners | (double r_inner, double r_outer, unsigned int n) | Corner rounding |
[const] | Region | rounded_corners | (double r_inner, double r_outer, unsigned int n) | Corner rounding |
| Region | select_inside | (const Region other) | Selects the polygons of this region which are completely inside polygons from the other region |
| Region | select_interacting | (const Region other) | Selects the polygons from this region which overlap or touch polygons from the other region |
| Region | select_interacting | (const Edges other) | Selects the polygons from this region which overlap or touch edges from the edge collection |
| Region | select_not_inside | (const Region other) | Selects the polygons of this region which are not completely inside polygons from the other region |
| Region | select_not_interacting | (const Region other) | Selects the polygons from this region which do not overlap or touch polygons from the other region |
| Region | select_not_interacting | (const Edges other) | Selects the polygons from this region which do not overlap or touch edges from the edge collection |
| Region | select_not_outside | (const Region other) | Selects the polygons of this region which are not completely outside polygons from the other region |
| Region | select_not_overlapping | (const Region other) | Selects the polygons from this region which do not overlap polygons from the other region |
| Region | select_outside | (const Region other) | Selects the polygons of this region which are completely outside polygons from the other region |
| Region | select_overlapping | (const Region other) | Selects the polygons from this region which overlap polygons from the other region |
[const] | EdgePairs | separation_check | (const Region other, unsigned int d) | Performs a check whether polygons of this region are separated from polygons of the other region by some amount |
[const] | EdgePairs | separation_check | (const Region other, unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs a separation check with options |
| Region | size | (int dx, int dy, unsigned int mode) | Anisotropic sizing (biasing) |
| Region | size | (int d, unsigned int mode) | Isotropic sizing (biasing) |
| Region | size | (int d) | Isotropic sizing (biasing) |
[const] | unsigned long | size | | Returns the number of polygons in the region |
[const] | Region | sized | (int dx, int dy, unsigned int mode) | Returns the anisotropically sized region |
[const] | Region | sized | (int d, unsigned int mode) | Returns the isotropically sized region |
| Region | sized | (int d) | Isotropic sizing (biasing) |
| void | smooth | (int d) | Smoothing |
[const] | Region | smoothed | (int d) | Smoothing |
| void | snap | (int gx, int gy) | Snaps the region to the given grid |
[const] | Region | snapped | (int gx, int gy) | Returns the snapped region |
[const] | EdgePairs | space_check | (unsigned int d) | Performs a space check |
[const] | EdgePairs | space_check | (unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs a space check with options |
[const] | Region | strange_polygon_check | | Returns a region containing those parts of polygons which are "strange" |
| void | strict_handling= | (bool f) | Enables or disables strict handling |
[const] | bool | strict_handling? | | Gets a flag indicating whether merged semantics is enabled |
| void | swap | (Region other) | Swap the contents of this region with the contents of another region |
[const] | string | to_s | | Converts the region to a string |
[const] | string | to_s | (unsigned long max_count) | Converts the region to a string |
| Region | transform | (const Trans t) | Transform the region (modifies self) |
| Region | transform | (const ICplxTrans t) | Transform the region with a complex transformation (modifies self) |
[const] | Region | transformed | (const Trans t) | Transform the region |
[const] | Region | transformed | (const ICplxTrans t) | Transform the region with a complex transformation |
[const] | EdgePairs | width_check | (unsigned int d) | Performs a width check |
[const] | EdgePairs | width_check | (unsigned int d, bool whole_edges, variant metrics, variant ignore_angle, variant min_projection, variant max_projection) | Performs a width check with options |
[const] | EdgePairs | with_angle | (double angle, bool inverse) | Returns markers on every corner with the given angle (or not with the given angle) |
[const] | EdgePairs | with_angle | (double amin, double amax, bool inverse) | Returns markers on every corner with an angle of more than amin and less than amax (or the opposite) |
[const] | Region | with_area | (long area, bool inverse) | Filter the polygons by area |
[const] | Region | with_area | (variant min_area, variant max_area, bool inverse) | Filter the polygons by area |
[const] | Region | with_bbox_height | (unsigned int height, bool inverse) | Filter the polygons by bounding box height |
[const] | Region | with_bbox_height | (variant min_height, variant max_height, bool inverse) | Filter the polygons by bounding box height |
[const] | Region | with_bbox_max | (unsigned int dim, bool inverse) | Filter the polygons by bounding box width or height, whichever is larger |
[const] | Region | with_bbox_max | (variant min_dim, variant max_dim, bool inverse) | Filter the polygons by bounding box width or height, whichever is larger |
[const] | Region | with_bbox_min | (unsigned int dim, bool inverse) | Filter the polygons by bounding box width or height, whichever is smaller |
[const] | Region | with_bbox_min | (variant min_dim, variant max_dim, bool inverse) | Filter the polygons by bounding box width or height, whichever is smaller |
[const] | Region | with_bbox_width | (unsigned int width, bool inverse) | Filter the polygons by bounding box width |
[const] | Region | with_bbox_width | (variant min_width, variant max_width, bool inverse) | Filter the polygons by bounding box width |
[const] | Region | with_perimeter | (unsigned long perimeter, bool inverse) | Filter the polygons by perimeter |
[const] | Region | with_perimeter | (variant min_perimeter, variant max_perimeter, bool inverse) | Filter the polygons by perimeter |
[const] | Region | | | (const Region other) | Returns the boolean OR between self and the other region |
| Region | |= | (const Region other) | Performs the boolean OR between self and the other region |
& | Signature: [const] Region & (const Region other) Description: Returns the boolean AND between self and the other region Returns: | The result of the boolean AND operation |
This method will compute the boolean AND (intersection) between two regions. The result is often but not necessarily always merged.
|
&= | Signature: Region &= (const Region other) Description: Performs the boolean AND between self and the other region Returns: | The region after modification (self) |
This method will compute the boolean AND (intersection) between two regions. The result is often but not necessarily always merged.
|
+ | Signature: [const] Region + (const Region other) Description: Returns the combined region of self and the other region Returns: | The resulting region |
This operator adds the polygons of the other region to self and returns a new combined region. This usually creates unmerged regions and polygons may overlap. Use merge if you want to ensure the result region is merged.
|
+= | Signature: Region += (const Region other) Description: Adds the polygons of the other region to self Returns: | The region after modification (self) |
This operator adds the polygons of the other region to self. This usually creates unmerged regions and polygons may overlap. Use merge if you want to ensure the result region is merged.
|
- | Signature: [const] Region - (const Region other) Description: Returns the boolean NOT between self and the other region Returns: | The result of the boolean NOT operation |
This method will compute the boolean NOT (intersection) between two regions. The result is often but not necessarily always merged.
|
-= | Signature: Region -= (const Region other) Description: Performs the boolean NOT between self and the other region Returns: | The region after modification (self) |
This method will compute the boolean NOT (intersection) between two regions. The result is often but not necessarily always merged.
|
Euclidian | Signature: [static] int Euclidian Description: Specifies Euclidian metrics for the check functions
This value can be used for the metrics parameter in the check functions, i.e. width_check. This value specifies Euclidian metrics, i.e. the distance between two points is measured by:
d = sqrt(dx^2 + dy^2)
All points within a circle with radius d around one point are considered to have a smaller distance than d. |
Projection | Signature: [static] int Projection Description: Specifies projected distance metrics for the check functions
This value can be used for the metrics parameter in the check functions, i.e. width_check. This value specifies projected metrics, i.e. the distance is defined as the minimum distance measured perpendicular to one edge. That implies that the distance is defined only where two edges have a non-vanishing projection onto each other. |
Square | Signature: [static] int Square Description: Specifies square metrics for the check functions
This value can be used for the metrics parameter in the check functions, i.e. width_check. This value specifies sqaure metrics, i.e. the distance between two points is measured by:
d = max(abs(dx), abs(dy))
All points within a square with length 2*d around one point are considered to have a smaller distance than d in this metrics. |
[] | Signature: [const] const Polygon ptr [] (unsigned long n) Description: Returns the nth polygon of the region This method returns nil if the index is out of range.
This returns the raw polygon (not merged polygons if merged semantics is enabled). Using this method may be costly in terms of memory since it will load the polygons into an array if they have been stored in an hierarchical layout before. It is recommended to use the each iterator instead if possible. |
^ | Signature: [const] Region ^ (const Region other) Description: Returns the boolean NOT between self and the other region Returns: | The result of the boolean XOR operation |
This method will compute the boolean XOR (intersection) between two regions. The result is often but not necessarily always merged.
|
^= | Signature: Region ^= (const Region other) Description: Performs the boolean XOR between self and the other region Returns: | The region after modification (self) |
This method will compute the boolean XOR (intersection) between two regions. The result is often but not necessarily always merged.
|
_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. |
area | Signature: [const] long area Description: The area of the region Merged semantics applies for this method (see merged_semantics= of merged semantics)
If merged semantics is not enabled, overlapping areas are counted twice.
|
Signature: [const] long area (const Box rect) Description: The area of the region (restricted to a rectangle) This version will compute the area of the shapes, restricting the computation to the given rectangle. Merged semantics applies for this method (see merged_semantics= of merged semantics)
If merged semantics is not enabled, overlapping areas are counted twice.
|
assign | Signature: void assign (const Region other) Description: Assigns another object to self |
bbox | Signature: [const] Box bbox Description: Return the bounding box of the region
The bounding box is the box enclosing all points of all polygons.
|
clear | Signature: void clear Description: Clears the region |
corners | Signature: [const] new Region ptr corners (double angle_start = -180,double angle_end = 180) Description: This method will select all corners whose attached edges satisfy the angle condition. The angle values specify a range of angles: all corners whose attached edges form an angle between angle_start and angle_end will be reported as small (2x2 DBU) boxes. The angle is measured between the incoming and the outcoming edge in mathematical sense: a positive value is a turn left while a negative value is a turn right. Since polygon contours are oriented clockwise, positive angles will report concave corners while negative ones report convex ones. A similar function that reports corners as point-like edges is corners_dots. This function has been introduced in version 0.25.
|
corners_dots | Signature: [const] Edges ptr corners_dots (double angle_start = -180,double angle_end = 180) Description: This method will select all corners whose attached edges satisfy the angle condition. This method is similar to corners, but delivers an Edges collection with dot-like edges for each corner. This function has been introduced in version 0.25.
|
create | Signature: void create Description: Ensures the C++ object is created Use of this method is deprecated. Use _create instead |
decompose_convex | Signature: [const] new Shapes ptr decompose_convex (int preferred_orientation = Polygon#PO_any) Description: Decomposes the region into convex pieces. This method will return a Shapes container that holds a decomposition of the region into convex, simple polygons.
See Polygon#decompose_convex for details. If you want Region output, you should use decompose_convex_to_region. This method has been introduced in version 0.25. |
decompose_convex_to_region | Signature: [const] new Region ptr decompose_convex_to_region (int preferred_orientation = Polygon#PO_any) Description: Decomposes the region into convex pieces into a region. This method is identical to decompose_convex, but delivers a Region object. This method has been introduced in version 0.25. |
decompose_trapezoids | Signature: [const] new Shapes ptr decompose_trapezoids (int mode = Polygon#TD_simple) Description: Decomposes the region into trapezoids. This method will return a Shapes container that holds a decomposition of the region into trapezoids.
See Polygon#decompose_trapezoids for details. If you want Region output, you should use decompose_trapezoids_to_region. This method has been introduced in version 0.25. |
decompose_trapezoids_to_region | Signature: [const] new Region ptr decompose_trapezoids_to_region (int mode = Polygon#TD_simple) Description: Decomposes the region into trapezoids. This method is identical to decompose_trapezoids, but delivers a Region object. This method has been introduced in version 0.25. |
destroy | Signature: void destroy Description: Explicitly destroys the object Use of this method is deprecated. Use _destroy instead |
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 |
disable_progress | Signature: void disable_progress Description: Disable progress reporting
Calling this method will disable progress reporting. See enable_progress.
|
dup | Signature: [const] new Region ptr dup Description: Creates a copy of self |
each | Signature: [const,iter] Polygon each Description: Returns each polygon of the region This returns the raw polygons (not merged polygons if merged semantics is enabled).
Python specific notes: This method enables iteration of the object
|
each_merged | Signature: [const,iter] Polygon each_merged Description: Returns each merged polygon of the region This returns the raw polygons if merged semantics is disabled or the merged ones if merged semantics is enabled.
|
edges | Signature: [const] Edges edges Description: Returns an edge collection representing all edges of the polygons in this region
This method will decompose the polygons into the individual edges. Edges making up the hulls of the polygons are oriented clockwise while edges making up the holes are oriented counterclockwise. The edge collection returned can be manipulated in various ways. See Edges for a description of the possibilities of the edge collection. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
enable_progress | Signature: void enable_progress (string label) Description: Enable progress reporting After calling this method, the region will report the progress through a progress bar while expensive operations are running.
The label is a text which is put in front of the progress bar.
Using a progress bar will imply a performance penalty of a few percent typically.
|
enclosing_check | Signature: [const] EdgePairs enclosing_check (const Region other,unsigned int d) Description: Performs a check whether polygons of this region enclose polygons of the other region by some amount d: | The minimum overlap for which the polygons are checked | other: | The other region against which to check |
Returns edge pairs for all locations where edges of polygons of this region are enclosing polygons of the other region by less than the given value "d".
Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs enclosing_check (const Region other,unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs an enclosing check with options d: | The minimum enclosing distance for which the polygons are checked | other: | The other region against which to check | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the width check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
extents | Signature: [const] Region extents Description: Returns a region with the bounding boxes of the polygons
This method will return a region consisting of the bounding boxes of the polygons.
The boxes will not be merged, so it is possible to determine overlaps of these boxes for example. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region extents (int d) Description: Returns a region with the enlarged bounding boxes of the polygons This method will return a region consisting of the bounding boxes of the polygons enlarged by the given distance d.
The enlargement is specified per edge, i.e the width and height will be increased by 2*d.
The boxes will not be merged, so it is possible to determine overlaps of these boxes for example. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region extents (int dx,int dy) Description: Returns a region with the enlarged bounding boxes of the polygons This method will return a region consisting of the bounding boxes of the polygons enlarged by the given distance dx in x direction and dy in y direction.
The enlargement is specified per edge, i.e the width will be increased by 2*dx.
The boxes will not be merged, so it is possible to determine overlaps of these boxes for example. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
grid_check | Signature: [const] EdgePairs grid_check (int gx,int gy) Description: Returns a marker for all vertices not being on the given grid This method will return an edge pair object for every vertex whose x coordinate is not a multiple of gx or whose y coordinate is not a multiple of gy. The edge pair objects contain two edges consisting of the same single point - the original vertex. If gx or gy is 0 or less, the grid is not checked in that direction. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
holes | Signature: [const] Region holes Description: Returns the holes of the region
This method returns all holes as filled polygons. Merged semantics applies for this method (see merged_semantics= of merged semantics)
If merge semantics is not enabled, the holes may not be detected if the polygons are taken from a hole-less representation (i.e. GDS2 file). Use explicit merge (merge method) in order to merge the polygons and detect holes.
|
hulls | Signature: [const] Region hulls Description: Returns the hulls of the region
This method returns all hulls as polygons. The holes will be removed (filles).
Merged semantics applies for this method (see merged_semantics= of merged semantics)
If merge semantics is not enabled, the hull may also enclose holes if the polygons are taken from a hole-less representation (i.e. GDS2 file). Use explicit merge (merge method) in order to merge the polygons and detect holes.
|
in | Signature: [const] Region in (const Region other) Description: Returns all polygons which are members of the other region Use of this method is deprecated. Use members_of instead Python specific notes: This method is available as method 'in_' in Python
|
insert | Signature: void insert (const Box box) Description: Inserts a box Inserts a box into the region.
|
Signature: void insert (const Polygon polygon) Description: Inserts a polygon Inserts a polygon into the region.
|
Signature: void insert (const SimplePolygon polygon) Description: Inserts a simple polygon Inserts a simple polygon into the region.
|
Signature: void insert (const Path path) Description: Inserts a path Inserts a path into the region.
|
Signature: void insert (RecursiveShapeIterator shape_iterator) Description: Inserts all shapes delivered by the recursive shape iterator into this region This method will insert all shapes delivered by the shape iterator and insert them into the region.
Text objects and edges are not inserted, because they cannot be converted to polygons.
|
Signature: void insert (RecursiveShapeIterator shape_iterator,ICplxTrans trans) Description: Inserts all shapes delivered by the recursive shape iterator into this region with a transformation This method will insert all shapes delivered by the shape iterator and insert them into the region.
Text objects and edges are not inserted, because they cannot be converted to polygons.
This variant will apply the given transformation to the shapes. This is useful to scale the shapes to a specific database unit for example.
|
Signature: void insert (Polygon[] array) Description: Inserts all polygons from the array into this region |
Signature: void insert (const Region region) Description: Inserts all polygons from the other region into this region This method has been introduced in version 0.25. |
Signature: void insert (const Shapes shapes) Description: Inserts all polygons from the shape collection into this region This method takes each "polygon-like" shape from the shape collection and insertes this shape into the region. Paths and boxes are converted to polygons during this process. Edges and text objects are ignored. This method has been introduced in version 0.25. |
Signature: void insert (const Shapes shapes,const Trans arg2) Description: Inserts all polygons from the shape collection into this region with transformation This method takes each "polygon-like" shape from the shape collection and insertes this shape into the region after applying the given transformation. Paths and boxes are converted to polygons during this process. Edges and text objects are ignored. This method has been introduced in version 0.25. |
Signature: void insert (const Shapes shapes,const ICplxTrans arg2) Description: Inserts all polygons from the shape collection into this region with complex transformation This method takes each "polygon-like" shape from the shape collection and insertes this shape into the region after applying the given complex transformation. Paths and boxes are converted to polygons during this process. Edges and text objects are ignored. This method has been introduced in version 0.25. |
inside | Signature: [const] Region inside (const Region other) Description: Returns the polygons of this region which are completely inside polygons from the other region Returns: | A new region containing the polygons which are inside polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
inside_check | Signature: [const] EdgePairs inside_check (const Region other,unsigned int d) Description: Performs a check whether polygons of this region are inside polygons of the other region by some amount d: | The minimum overlap for which the polygons are checked | other: | The other region against which to check |
Returns edge pairs for all locations where edges of polygons of this region are inside polygons of the other region by less than the given value "d". Contrary to the name, this check does not check whether polygons are inside other polygons but rather checks whether there is enough overlap of the other polygons vs. polygons of this region.
Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs inside_check (const Region other,unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs an inside check with options d: | The minimum distance for which the polygons are checked | other: | The other region against which to check | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the width check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
interacting | Signature: [const] Region interacting (const Region other) Description: Returns the polygons of this region which overlap or touch polygons from the other region Returns: | A new region containing the polygons overlapping or touching polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region interacting (const Edges other) Description: Returns the polygons of this region which overlap or touch edges from the edge collection Returns: | A new region containing the polygons overlapping or touching edges from the edge collection |
Merged semantics applies for this method (see merged_semantics= of merged semantics) This method has been introduced in version 0.25
|
is_box? | Signature: [const] bool is_box? Description: Returns true, if the region is a simple box Returns: | True if the region is a box. |
This method does not apply implicit merging if merge semantics is enabled.
If the region is not merged, this method may return false even
if the merged region would be a box.
|
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 |
is_empty? | Signature: [const] bool is_empty? Description: Returns true if the region is empty |
is_merged? | Signature: [const] bool is_merged? Description: Returns true if the region is merged
If the region is merged, polygons will not touch or overlap. You can ensure merged state by calling merge.
|
isolated_check | Signature: [const] EdgePairs isolated_check (unsigned int d) Description: Performs a space check between edges of different polygons d: | The minimum space for which the polygons are checked |
Performs a space check against the minimum space "d". For locations where a polygon has a space less than the given value to other polygons (not itself), an error marker is produced. Error markers form a EdgePairs collection. Edge pairs are pairs of edges where each edge marks one edge of the original polygon. Edge pairs can be converted back to polygons or separated into their edge contributions.
See EdgePairs for a description of that collection object. This version is restricted to checking edges of one polygon vs. edges of other polygons.
To ensure that the polygon is merged and does not come in pieces, use the merge method before.
space_check is a version which checks spacing of all polygon edges vs. edges of the some or other polygons.
notch_check is a version which checks spacing of polygons edges of the same polygon only. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs isolated_check (unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs a space check between edges of different polygons with options d: | The minimum space for which the polygons are checked | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the space check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
members_of | Signature: [const] Region members_of (const Region other) Description: Returns all polygons which are members of the other region This method returns all polygons in self which can be found in the other region as well with exactly the same geometry. Python specific notes: This method is available as method 'in_' in Python
|
merge | Signature: Region merge Description: Merge the region Returns: | The region after is has been merged (self). |
Merging removes overlaps and joins touching polygons.
If the region is already merged, this method does nothing
|
Signature: Region merge (int min_wc) Description: Merge the region with options min_wc: | Overlap selection | Returns: | The region after is has been merged (self). |
Merging removes overlaps and joins touching polygons.
This version provides one additional option: "min_wc" controls whether output is only produced if multiple polygons overlap. The value specifies the number of polygons that need to overlap. A value of 2 means that output is only produced if two or more polygons overlap. This method is equivalent to "merge(false, min_wc).
|
Signature: Region merge (bool min_coherence,int min_wc) Description: Merge the region with options min_coherence: | A flag indicating whether the resulting polygons shall have minimum coherence | min_wc: | Overlap selection | Returns: | The region after is has been merged (self). |
Merging removes overlaps and joins touching polygons.
This version provides two additional options: if "min_coherence" is set to true, "kissing corners" are resolved by producing separate polygons. "min_wc" controls whether output is only produced if multiple polygons overlap. The value specifies the number of polygons that need to overlap. A value of 2 means that output is only produced if two or more polygons overlap.
|
merged | Signature: [const] Region merged Description: Returns the merged region Returns: | The region after is has been merged. |
Merging removes overlaps and joins touching polygons.
If the region is already merged, this method does nothing.
In contrast to merge, this method does not modify the region but returns a merged copy.
|
Signature: Region merged (int min_wc) Description: Returns the merged region (with options) Returns: | The region after is has been merged. |
This version provides one additional options: "min_wc" controls whether output is only produced if multiple polygons overlap. The value specifies the number of polygons that need to overlap. A value of 2 means that output is only produced if two or more polygons overlap. This method is equivalent to "merged(false, min_wc)". In contrast to merge, this method does not modify the region but returns a merged copy.
|
Signature: Region merged (bool min_coherence,int min_wc) Description: Returns the merged region (with options) min_coherence: | A flag indicating whether the resulting polygons shall have minimum coherence | min_wc: | Overlap selection | Returns: | The region after is has been merged (self). |
Merging removes overlaps and joins touching polygons.
This version provides two additional options: if "min_coherence" is set to true, "kissing corners" are resolved by producing separate polygons. "min_wc" controls whether output is only produced if multiple polygons overlap. The value specifies the number of polygons that need to overlap. A value of 2 means that output is only produced if two or more polygons overlap. In contrast to merge, this method does not modify the region but returns a merged copy.
|
merged_semantics= | Signature: void merged_semantics= (bool f) Description: Enables or disables merged semantics If merged semantics is enabled (the default), coherent polygons will be considered
as single regions and artificial edges such as cut-lines will not be considered.
Merged semantics thus is equivalent to considering coherent areas rather than
single polygons
Python specific notes: The object exposes a writable attribute 'merged_semantics'. This is the setter.
|
merged_semantics? | Signature: [const] bool merged_semantics? Description: Gets a flag indicating whether merged semantics is enabled
See merged_semantics= for a description of this attribute.
Python specific notes: The object exposes a readable attribute 'merged_semantics'. This is the getter.
|
min_coherence= | Signature: void min_coherence= (bool f) Description: Enable or disable minimum coherence If minimum coherence is set, the merge operations (explicit merge with merge or
implicit merge through merged_semantics) are performed using minimum coherence mode.
The coherence mode determines how kissing-corner situations are resolved. If
minimum coherence is selected, they are resolved such that multiple polygons are
created which touch at a corner). The default setting is maximum coherence (min_coherence = false).
Python specific notes: The object exposes a writable attribute 'min_coherence'. This is the setter.
|
min_coherence? | Signature: [const] bool min_coherence? Description: Gets a flag indicating whether minimum coherence is selected
See min_coherence= for a description of this attribute.
Python specific notes: The object exposes a readable attribute 'min_coherence'. This is the getter.
|
minkowsky_sum | Signature: [const] Region minkowsky_sum (const Edge e) Description: Compute the Minkowsky sum of the region and an edge e: | The edge. | Returns: | The new polygons representing the Minkowsky sum with the edge e. |
The Minkowsky sum of a region and an edge basically results in the area covered when "dragging" the region along the line given by the edge. The effect is similar to drawing the line with a pencil that has the shape of the given region. The resulting polygons are not merged. In order to remove overlaps, use the merge or merged method.Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region minkowsky_sum (const Polygon p) Description: Compute the Minkowsky sum of the region and a polygon p: | The first argument. | Returns: | The new polygons representing the Minkowsky sum of self and p. |
The Minkowsky sum of a region and a polygon is basically the result of "painting" the region with a pen that has the shape of the second polygon. The resulting polygons are not merged. In order to remove overlaps, use the merge or merged method.Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region minkowsky_sum (const Box b) Description: Compute the Minkowsky sum of the region and a box b: | The box. | Returns: | The new polygons representing the Minkowsky sum of self and the box. |
The result is equivalent to the region-with-polygon Minkowsky sum with the box used as the second polygon. The resulting polygons are not merged. In order to remove overlaps, use the merge or merged method.Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region minkowsky_sum (Point[] b) Description: Compute the Minkowsky sum of the region and a contour of points (a trace) b: | The contour (a series of points forming the trace). | Returns: | The new polygons representing the Minkowsky sum of self and the contour. |
The Minkowsky sum of a region and a contour basically results in the area covered when "dragging" the region along the contour. The effect is similar to drawing the contour with a pencil that has the shape of the given region. The resulting polygons are not merged. In order to remove overlaps, use the merge or merged method.Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
move | Signature: Region move (const Vector v) Description: Moves the region v: | The distance to move the region. | Returns: | The moved region (self). |
Moves the polygon by the given offset and returns the
moved region. The region is overwritten. Starting with version 0.25 this method accepts a vector argument. |
Signature: Region move (int x,int y) Description: Moves the region x: | The x distance to move the region. | y: | The y distance to move the region. | Returns: | The moved region (self). |
Moves the region by the given offset and returns the
moved region. The region is overwritten. |
moved | Signature: [const] Region moved (const Vector p) Description: Returns the moved region (does not modify self) p: | The distance to move the region. | Returns: | The moved region. |
Moves the region by the given offset and returns the
moved region. The region is not modified. Starting with version 0.25 this method accepts a vector argument. |
Signature: [const] Region moved (int x,int y) Description: Returns the moved region (does not modify self) x: | The x distance to move the region. | y: | The y distance to move the region. | Returns: | The moved region. |
Moves the region by the given offset and returns the
moved region. The region is not modified. |
new | Signature: [static] new Region ptr new Description: Default constructor This constructor creates an empty region.
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (Polygon[] array) Description: Constructor from a polygon array This constructor creates a region from an array of polygons.
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const Box box) Description: Box constructor This constructor creates a region from a box.
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const Polygon polygon) Description: Polygon constructor This constructor creates a region from a polygon.
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const SimplePolygon polygon) Description: Simple polygon constructor This constructor creates a region from a simple polygon.
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const Path path) Description: Path constructor This constructor creates a region from a path.
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const Shapes shapes) Description: Shapes constructor This constructor creates a region from a Shapes collection. This constructor has been introduced in version 0.25. Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const RecursiveShapeIterator shape_iterator) Description: Constructor from a hierarchical shape set This constructor creates a region from the shapes delivered by the given recursive shape iterator.
Text objects and edges are not inserted, because they cannot be converted to polygons.
This method allows to feed the shapes from a hierarchy of cells into the region.
layout = ... # a layout
cell = ... # the index of the initial cell
layer = ... # the index of the layer from where to take the shapes from
r = RBA::Region::new(layout.begin_shapes(cell, layer))
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const RecursiveShapeIterator shape_iterator,const ICplxTrans trans) Description: Constructor from a hierarchical shape set with a transformation This constructor creates a region from the shapes delivered by the given recursive shape iterator.
Text objects and edges are not inserted, because they cannot be converted to polygons.
On the delivered shapes it applies the given transformation.
This method allows to feed the shapes from a hierarchy of cells into the region.
The transformation is useful to scale to a specific database unit for example.
layout = ... # a layout
cell = ... # the index of the initial cell
layer = ... # the index of the layer from where to take the shapes from
dbu = 0.1 # the target database unit
r = RBA::Region::new(layout.begin_shapes(cell, layer), RBA::ICplxTrans::new(layout.dbu / dbu))
Python specific notes: This method is the default initializer of the object
|
Signature: [static] new Region ptr new (const RecursiveShapeIterator shape_iterator,string expr,bool as_pattern = true) Description: Constructor from a text set shape_iterator: | The iterator from which to derive the texts | expr: | The selection string | as_pattern: | If true, the selection string is treated as a glob pattern. Otherwise the match is exact. |
This special constructor will create a region from the text objects delivered by the shape iterator. Each text object will deliver a small (non-empty) box that represents the text origin.
Texts can be selected by their strings - either through a glob pattern or by exact comparison with the given string. The following options are available:
region = RBA::Region::new(iter, "*") # all texts
region = RBA::Region::new(iter, "A*") # all texts starting with an 'A'
region = RBA::Region::new(iter, "A*", false) # all texts exactly matchin 'A*'
This method has been introduced in version 0.25. Python specific notes: This method is the default initializer of the object
|
non_rectangles | Signature: [const] Region non_rectangles Description: Returns all polygons which are not rectangles
This method returns all polygons in self which are not rectangles.Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
non_rectilinear | Signature: [const] Region non_rectilinear Description: Returns all polygons which are not rectilinear
This method returns all polygons in self which are not rectilinear.Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
not_in | Signature: [const] Region not_in (const Region other) Description: Returns all polygons which are not members of the other region Use of this method is deprecated. Use not_members_of instead |
not_inside | Signature: [const] Region not_inside (const Region other) Description: Returns the polygons of this region which are not completely inside polygons from the other region Returns: | A new region containing the polygons which are not inside polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
not_interacting | Signature: [const] Region not_interacting (const Region other) Description: Returns the polygons of this region which do not overlap or touch polygons from the other region Returns: | A new region containing the polygons not overlapping or touching polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region not_interacting (const Edges other) Description: Returns the polygons of this region which do not overlap or touch edges from the edge collection Returns: | A new region containing the polygons not overlapping or touching edges from the edge collection |
Merged semantics applies for this method (see merged_semantics= of merged semantics) This method has been introduced in version 0.25
|
not_members_of | Signature: [const] Region not_members_of (const Region other) Description: Returns all polygons which are not members of the other region This method returns all polygons in self which can not be found in the other region with exactly the same geometry. |
not_outside | Signature: [const] Region not_outside (const Region other) Description: Returns the polygons of this region which are not completely outside polygons from the other region Returns: | A new region containing the polygons which are not outside polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
not_overlapping | Signature: [const] Region not_overlapping (const Region other) Description: Returns the polygons of this region which do not overlap polygons from the other region Returns: | A new region containing the polygons not overlapping polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
notch_check | Signature: [const] EdgePairs notch_check (unsigned int d) Description: Performs a space check between edges of the same polygon d: | The minimum space for which the polygons are checked |
Performs a space check against the minimum space "d". For locations where a polygon has a space less than the given value to either itself (a notch) or to other polygons, an error marker is produced. Error markers form a EdgePairs collection. Edge pairs are pairs of edges where each edge marks one edge of the original polygon. Edge pairs can be converted back to polygons or separated into their edge contributions.
See EdgePairs for a description of that collection object. This version is restricted to checking edges of one polygon vs. edges of itself.
To ensure that the polygon is merged and does not come in pieces, use the merge method before.
space_check is a version which checks spacing of all polygon edges vs. edges of the some or other polygons.
isolated_check is a version which checks spacing between different polygons only. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs notch_check (unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs a space check between edges of the same polygon with options d: | The minimum space for which the polygons are checked | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the space check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
outside | Signature: [const] Region outside (const Region other) Description: Returns the polygons of this region which are completely outside polygons from the other region Returns: | A new region containing the polygons which are outside polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
overlap_check | Signature: [const] EdgePairs overlap_check (const Region other,unsigned int d) Description: Performs a check whether polygons of this region overlap polygons of the other region by some amount d: | The minimum overlap for which the polygons are checked | other: | The other region against which to check |
Returns edge pairs for all locations where edges of polygons of this region overlap polygons of the other region by less than the given value "d".
Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs overlap_check (const Region other,unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs an overlap check with options d: | The minimum overlap for which the polygons are checked | other: | The other region against which to check | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the width check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
overlapping | Signature: [const] Region overlapping (const Region other) Description: Returns the polygons of this region which overlap polygons from the other region Returns: | A new region containing the polygons overlapping polygons from the other region |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
perimeter | Signature: [const] unsigned long perimeter Description: The total perimeter of the polygons Merged semantics applies for this method (see merged_semantics= of merged semantics)
If merged semantics is not enabled, internal edges are counted as well.
|
Signature: [const] unsigned long perimeter (const Box rect) Description: The total perimeter of the polygons (restricted to a rectangle) This version will compute the perimeter of the polygons, restricting the computation to the given rectangle.
Edges along the border are handled in a special way: they are counted when they are oriented with their inside side toward the rectangle (in other words: outside edges must coincide with the rectangle's border in order to be counted). Merged semantics applies for this method (see merged_semantics= of merged semantics)
If merged semantics is not enabled, internal edges are counted as well.
|
rectangles | Signature: [const] Region rectangles Description: Returns all polygons which are rectangles
This method returns all polygons in self which are rectangles.Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
rectilinear | Signature: [const] Region rectilinear Description: Returns all polygons which are rectilinear
This method returns all polygons in self which are rectilinear.Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
round_corners | Signature: void round_corners (double r_inner,double r_outer,unsigned int n) Description: Corner rounding r_inner: | Inner corner radius (in database units) | r_outer: | Outer corner radius (in database units) | n: | The number of points per circle |
This method rounds the corners of the polygons in the region. Inner corners will be rounded with a radius of r_inner and outer corners with a radius of r_outer. The circles will be approximated by segments using n segments per full circle. This method modifies the region. rounded_corners is a method that does the same but returns a new region without modifying self. Merged semantics applies for this method.
|
rounded_corners | Signature: [const] Region rounded_corners (double r_inner,double r_outer,unsigned int n) Description: Corner rounding r_inner: | Inner corner radius (in database units) | r_outer: | Outer corner radius (in database units) | n: | The number of points per circle |
See round_corners for a description of this method. This version returns a new region instead of modifying self (out-of-place). |
select_inside | Signature: Region select_inside (const Region other) Description: Selects the polygons of this region which are completely inside polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
select_interacting | Signature: Region select_interacting (const Region other) Description: Selects the polygons from this region which overlap or touch polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: Region select_interacting (const Edges other) Description: Selects the polygons from this region which overlap or touch edges from the edge collection Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics) This method has been introduced in version 0.25
|
select_not_inside | Signature: Region select_not_inside (const Region other) Description: Selects the polygons of this region which are not completely inside polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
select_not_interacting | Signature: Region select_not_interacting (const Region other) Description: Selects the polygons from this region which do not overlap or touch polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: Region select_not_interacting (const Edges other) Description: Selects the polygons from this region which do not overlap or touch edges from the edge collection Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics) This method has been introduced in version 0.25
|
select_not_outside | Signature: Region select_not_outside (const Region other) Description: Selects the polygons of this region which are not completely outside polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
select_not_overlapping | Signature: Region select_not_overlapping (const Region other) Description: Selects the polygons from this region which do not overlap polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
select_outside | Signature: Region select_outside (const Region other) Description: Selects the polygons of this region which are completely outside polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
select_overlapping | Signature: Region select_overlapping (const Region other) Description: Selects the polygons from this region which overlap polygons from the other region Returns: | The region after the polygons have been selected (self) |
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
separation_check | Signature: [const] EdgePairs separation_check (const Region other,unsigned int d) Description: Performs a check whether polygons of this region are separated from polygons of the other region by some amount d: | The minimum separation for which the polygons are checked | other: | The other region against which to check |
Returns edge pairs for all locations where edges of polygons of this region are separated by polygons of the other region by less than the given value "d".
Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs separation_check (const Region other,unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs a separation check with options d: | The minimum separation for which the polygons are checked | other: | The other region against which to check | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the width check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
size | Signature: Region size (int dx,int dy,unsigned int mode) Description: Anisotropic sizing (biasing) Returns: | The region after the sizing has applied (self) |
Shifts the contour outwards (dx,dy>0) or inwards (dx,dy<0).
dx is the sizing in x-direction and dy is the sizing in y-direction. The sign of dx and dy should be identical. This method applies a sizing to the region. Before the sizing is done, the
region is merged if this is not the case already. The mode defines at which bending angle cutoff occurs
(0:>0, 1:>45, 2:>90, 3:>135, 4:>approx. 168, other:>approx. 179) Merged semantics applies for this method (see merged_semantics= of merged semantics) The result is a set of polygons which may be overlapping, but are not self-
intersecting. Polygons may overlap afterwards because they grew big enough to overlap their neighbors.
In that case, merge can be used to detect this overlaps by setting the "min_wc" parameter to value 1:
r = RBA::Region::new
r.insert(RBA::Box::new(0, 0, 50, 50))
r.insert(RBA::Box::new(100, 0, 150, 50))
r.size(50, 2)
r.merge(false, 1)
# r now is (50,-50;50,100;100,100;100,-50)
|
Signature: Region size (int d,unsigned int mode) Description: Isotropic sizing (biasing) Returns: | The region after the sizing has applied (self) |
This method is equivalent to "size(d, d, mode)". Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: Region size (int d) Description: Isotropic sizing (biasing) Returns: | The region after the sizing has applied (self) |
This method is equivalent to "size(d, d, 2)". Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] unsigned long size Description: Returns the number of polygons in the region This returns the number of raw polygons (not merged polygons if merged semantics is enabled).
|
sized | Signature: [const] Region sized (int dx,int dy,unsigned int mode) Description: Returns the anisotropically sized region This method is returns the sized region (see size), but does not modify self. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region sized (int d,unsigned int mode) Description: Returns the isotropically sized region This method is returns the sized region (see size), but does not modify self. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: Region sized (int d) Description: Isotropic sizing (biasing) Returns: | The region after the sizing has applied (self) |
This method is equivalent to "sized(d, d, 2)". Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
smooth | Signature: void smooth (int d) Description: Smoothing d: | The smoothing tolerance (in database units) |
This method will simplify the merged polygons of the region by removing vertexes if the resulting polygon stays equivalent with the original polygon. Equivalence is measured in terms of a deviation which is guaranteed to not become larger than d.
This method modifies the region. smoothed is a method that does the same but returns a new region without modifying self. Merged semantics applies for this method.
|
smoothed | Signature: [const] Region smoothed (int d) Description: Smoothing d: | The smoothing tolerance (in database units) |
See smooth for a description of this method. This version returns a new region instead of modifying self (out-of-place). It has been introduced in version 0.25. |
snap | Signature: void snap (int gx,int gy) Description: Snaps the region to the given grid This method will snap the region to the given grid - each x or y coordinate is brought on the gx or gy grid by rounding to the nearest value which is a multiple of gx or gy. If gx or gy is 0 or less, no snapping happens in that direction. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
snapped | Signature: [const] Region snapped (int gx,int gy) Description: Returns the snapped region This method will snap the region to the given grid and return the snapped region (see snap). The original region is not modified.
|
space_check | Signature: [const] EdgePairs space_check (unsigned int d) Description: Performs a space check d: | The minimum space for which the polygons are checked |
Performs a space check against the minimum space "d". For locations where a polygon has a space less than the given value to either itself (a notch) or to other polygons, an error marker is produced. Error markers form a EdgePairs collection. Edge pairs are pairs of edges where each edge marks one edge of the original polygon. Edge pairs can be converted back to polygons or separated into their edge contributions.
See EdgePairs for a description of that collection object. notch_check is a version which checks spacing of polygon edges only against edges of the same polygon.
isolated_check is a version which checks spacing between different polygons only. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs space_check (unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs a space check with options d: | The minimum space for which the polygons are checked | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the space check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
strange_polygon_check | Signature: [const] Region strange_polygon_check Description: Returns a region containing those parts of polygons which are "strange"
Strange parts of polygons are self-overlapping parts or non-orientable parts (i.e. in the "8" configuration). Merged semantics does not apply for this method (see merged_semantics= of merged semantics)
|
strict_handling= | Signature: void strict_handling= (bool f) Description: Enables or disables strict handling Strict handling means to leave away some optimizations. Specifically the
output of boolean operations will be merged even if one input is empty.
Without strict handling, the operation will be optimized and output
won't be merged. Strict handling is disabled by default and optimization is in place. This method has been introduced in version 0.23.2. Python specific notes: The object exposes a writable attribute 'strict_handling'. This is the setter.
|
strict_handling? | Signature: [const] bool strict_handling? Description: Gets a flag indicating whether merged semantics is enabled
See strict_handling= for a description of this attribute. This method has been introduced in version 0.23.2. Python specific notes: The object exposes a readable attribute 'strict_handling'. This is the getter.
|
swap | Signature: void swap (Region other) Description: Swap the contents of this region with the contents of another region This method is useful to avoid excessive memory allocation in some cases. For managed memory languages such as Ruby, those cases will be rare. |
to_s | Signature: [const] string to_s Description: Converts the region to a string
The length of the output is limited to 20 polygons to avoid giant strings on large regions. For full output use "to_s" with a maximum count parameter.
Python specific notes: This method is also available as 'str(object)' and 'repr(object)'
|
Signature: [const] string to_s (unsigned long max_count) Description: Converts the region to a string This version allows specification of the maximum number of polygons contained in the string. Python specific notes: This method is also available as 'str(object)' and 'repr(object)'
|
transform | Signature: Region transform (const Trans t) Description: Transform the region (modifies self) t: | The transformation to apply. | Returns: | The transformed region. |
Transforms the region with the given transformation.
This version modifies the region and returns a reference to self. |
Signature: Region transform (const ICplxTrans t) Description: Transform the region with a complex transformation (modifies self) t: | The transformation to apply. | Returns: | The transformed region. |
Transforms the region with the given transformation.
This version modifies the region and returns a reference to self. |
transform_icplx | Signature: Region transform_icplx (const ICplxTrans t) Description: Transform the region with a complex transformation (modifies self) t: | The transformation to apply. | Returns: | The transformed region. |
Use of this method is deprecated. Use transform instead |
transformed | Signature: [const] Region transformed (const Trans t) Description: Transform the region t: | The transformation to apply. | Returns: | The transformed region. |
Transforms the region with the given transformation.
Does not modify the region but returns the transformed region. |
Signature: [const] Region transformed (const ICplxTrans t) Description: Transform the region with a complex transformation t: | The transformation to apply. | Returns: | The transformed region. |
Transforms the region with the given complex transformation.
Does not modify the region but returns the transformed region. |
transformed_icplx | Signature: [const] Region transformed_icplx (const ICplxTrans t) Description: Transform the region with a complex transformation t: | The transformation to apply. | Returns: | The transformed region. |
Use of this method is deprecated. Use transformed instead |
width_check | Signature: [const] EdgePairs width_check (unsigned int d) Description: Performs a width check d: | The minimum width for which the polygons are checked |
Performs a width check against the minimum width "d". For locations where a polygon has a width less than the given value, an error marker is produced. Error markers form a EdgePairs collection. Edge pairs are pairs of edges where each edge marks one edge of the original polygon. Edge pairs can be converted back to polygons or separated into their edge contributions.
See EdgePairs for a description of that collection object. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs width_check (unsigned int d,bool whole_edges,variant metrics,variant ignore_angle,variant min_projection,variant max_projection) Description: Performs a width check with options d: | The minimum width for which the polygons are checked | whole_edges: | If true, deliver the whole edges | metrics: | Specify the metrics type | ignore_angle: | The angle above which no check is performed | min_projection: | The lower threshold of the projected length of one edge onto another | max_projection: | The upper limit of the projected length of one edge onto another |
This version is similar to the simple version with one parameter. In addition, it allows to specify many more options. If "whole_edges" is true, the resulting EdgePairs collection will receive the whole edges which contribute in the width check. "metrics" can be one of the constants Euclidian, Square or Projection. See there for a description of these constants.
Use nil for this value to select the default (Euclidian metrics). "ignore_angle" specifies the angle limit of two edges. If two edges form an angle equal or above the given value, they will not contribute in the check. Setting this value to 90 (the default) will exclude edges with an angle of 90 degree or more from the check.
Use nil for this value to select the default. "min_projection" and "max_projection" allow to select edges by their projected value upon each other. It is sufficient if the projection of one edge on the other matches the specified condition. The projected length must be larger or equal to "min_projection" and less than "max_projection". If you don't want to specify one limit, pass nil to the respective value. Merged semantics applies for the input of this method (see merged_semantics= of merged semantics)
|
with_angle | Signature: [const] EdgePairs with_angle (double angle,bool inverse) Description: Returns markers on every corner with the given angle (or not with the given angle) If the inverse flag is false, this method returns an error marker (an EdgePair object) for every corner whose connected edges form an angle with the given value (in degree). If the inverse flag is true, the method returns markers for every corner whose angle is not the given value. The edge pair objects returned will contain both edges forming the angle. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] EdgePairs with_angle (double amin,double amax,bool inverse) Description: Returns markers on every corner with an angle of more than amin and less than amax (or the opposite) If the inverse flag is false, this method returns an error marker (an EdgePair object) for every corner whose connected edges form an angle whose value is more or equal to amin (in degree) or less (but not equal to) amax. If the inverse flag is true, the method returns markers for every corner whose angle is not matching that criterion. The edge pair objects returned will contain both edges forming the angle. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
with_area | Signature: [const] Region with_area (long area,bool inverse) Description: Filter the polygons by area Filters the polygons inside the region by area. If "inverse" is false, only polygons which have the given area are returned. If "inverse" is true, polygons not having the given area are returned. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region with_area (variant min_area,variant max_area,bool inverse) Description: Filter the polygons by area Filters the polygons inside the region by area. If "inverse" is false, only polygons which have an area larger or equal to "min_area" and less than "max_area" are returned. If "inverse" is true, polygons having an area less than "min_area" or larger or equal than "max_area" are returned. If you don't want to specify a lower or upper limit, pass nil to that parameter. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
with_bbox_height | Signature: [const] Region with_bbox_height (unsigned int height,bool inverse) Description: Filter the polygons by bounding box height Filters the polygons inside the region by the height of their bounding box. If "inverse" is false, only polygons whose bounding box has the given height are returned. If "inverse" is true, polygons whose bounding box does not have the given height are returned. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region with_bbox_height (variant min_height,variant max_height,bool inverse) Description: Filter the polygons by bounding box height Filters the polygons inside the region by the height of their bounding box. If "inverse" is false, only polygons whose bounding box has a height larger or equal to "min_height" and less than "max_height" are returned. If "inverse" is true, all polygons not matching this criterion are returned.
If you don't want to specify a lower or upper limit, pass nil to that parameter. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
with_bbox_max | Signature: [const] Region with_bbox_max (unsigned int dim,bool inverse) Description: Filter the polygons by bounding box width or height, whichever is larger Filters the polygons inside the region by the maximum dimension of their bounding box. If "inverse" is false, only polygons whose bounding box's larger dimension is equal to the given value are returned. If "inverse" is true, all polygons not matching this criterion are returned.
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region with_bbox_max (variant min_dim,variant max_dim,bool inverse) Description: Filter the polygons by bounding box width or height, whichever is larger Filters the polygons inside the region by the minimum dimension of their bounding box. If "inverse" is false, only polygons whose bounding box's larger dimension is larger or equal to "min_dim" and less than "max_dim" are returned. If "inverse" is true, all polygons not matching this criterion are returned.
If you don't want to specify a lower or upper limit, pass nil to that parameter. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
with_bbox_min | Signature: [const] Region with_bbox_min (unsigned int dim,bool inverse) Description: Filter the polygons by bounding box width or height, whichever is smaller Filters the polygons inside the region by the minimum dimension of their bounding box. If "inverse" is false, only polygons whose bounding box's smaller dimension is equal to the given value are returned. If "inverse" is true, all polygons not matching this criterion are returned.
Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region with_bbox_min (variant min_dim,variant max_dim,bool inverse) Description: Filter the polygons by bounding box width or height, whichever is smaller Filters the polygons inside the region by the minimum dimension of their bounding box. If "inverse" is false, only polygons whose bounding box's smaller dimension is larger or equal to "min_dim" and less than "max_dim" are returned. If "inverse" is true, all polygons not matching this criterion are returned.
If you don't want to specify a lower or upper limit, pass nil to that parameter. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
with_bbox_width | Signature: [const] Region with_bbox_width (unsigned int width,bool inverse) Description: Filter the polygons by bounding box width Filters the polygons inside the region by the width of their bounding box. If "inverse" is false, only polygons whose bounding box has the given width are returned. If "inverse" is true, polygons whose bounding box does not have the given width are returned. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region with_bbox_width (variant min_width,variant max_width,bool inverse) Description: Filter the polygons by bounding box width Filters the polygons inside the region by the width of their bounding box. If "inverse" is false, only polygons whose bounding box has a width larger or equal to "min_width" and less than "max_width" are returned. If "inverse" is true, all polygons not matching this criterion are returned.
If you don't want to specify a lower or upper limit, pass nil to that parameter. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
with_perimeter | Signature: [const] Region with_perimeter (unsigned long perimeter,bool inverse) Description: Filter the polygons by perimeter Filters the polygons inside the region by perimeter. If "inverse" is false, only polygons which have the given perimeter are returned. If "inverse" is true, polygons not having the given perimeter are returned. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
Signature: [const] Region with_perimeter (variant min_perimeter,variant max_perimeter,bool inverse) Description: Filter the polygons by perimeter Filters the polygons inside the region by perimeter. If "inverse" is false, only polygons which have a perimeter larger or equal to "min_perimeter" and less than "max_perimeter" are returned. If "inverse" is true, polygons having a perimeter less than "min_perimeter" or larger or equal than "max_perimeter" are returned. If you don't want to specify a lower or upper limit, pass nil to that parameter. Merged semantics applies for this method (see merged_semantics= of merged semantics)
|
| | Signature: [const] Region | (const Region other) Description: Returns the boolean OR between self and the other region Returns: | The resulting region |
The boolean OR is implemented by merging the polygons of both regions. To simply join the regions without merging, the + operator is more efficient. |
|= | Signature: Region |= (const Region other) Description: Performs the boolean OR between self and the other region Returns: | The region after modification (self) |
The boolean OR is implemented by merging the polygons of both regions. To simply join the regions without merging, the + operator is more efficient. |