API reference - Class CompoundRegionOperationNode

Notation used in Ruby API documentation

Module: db

Description: A base class for compound DRC operations

Sub-classes: LogicalOp, GeometricalOp, ResultType, ParameterType, RatioParameterType

This class is not intended to be used directly but rather provide a factory for various incarnations of compound operation nodes. Compound operations are a way to specify complex DRC operations put together by building a tree of operations. This operation tree then is executed with Region#complex_op and will act on individual clusters of shapes and their interacting neighbors.

A basic concept to the compound operations is the 'subject' (primary) and 'intruder' (secondary) input. The 'subject' is the Region, 'complex_op' with the operation tree is executed on. 'intruders' are regions inserted into the equation through secondary input nodes created with new_secondary_node. The algorithm will execute the operation tree for every subject shape considering intruder shapes from the secondary inputs. The algorithm will only act on subject shapes primarily. As a consequence, 'lonely' intruder shapes without a subject shape are not considered at all. Only subject shapes trigger evaluation of the operation tree.

The search distance for intruder shapes is determined by the operation and computed from the operation's requirements.

This class has been introduced in version 0.27. The API is considered internal and will change without notice.

Public constructors

new CompoundRegionOperationNode ptrnewCreates a new object of this class

Public methods

void_createEnsures the C++ object is created
void_destroyExplicitly destroys the object
[const]bool_destroyed?Returns a value indicating whether the object was already destroyed
[const]bool_is_const_object?Returns a value indicating whether the reference is a const reference
void_manageMarks the object as managed by the script side.
void_unmanageMarks the object as no longer owned by the script side.
[const]stringdescriptionGets the description for this node
voiddescription=(string d)Sets the description for this node
[const]intdistanceGets the distance value for this node
voiddistance=(int d)Sets the distance value for this nodeUsually it's not required to provide a distance because the nodes compute a distance based on their operation. If necessary you can supply a distance. The processor will use this distance or the computed one, whichever is larger.
[const]CompoundRegionOperationNode::ResultTyperesult_typeGets the result type of this node

Public static methods and constants

new CompoundRegionOperationNode ptrnew_area_filter(CompoundRegionOperationNode ptr input,
bool inverse = false,
long amin = 0,
long amax = max)
Creates a node filtering the input by area.
new CompoundRegionOperationNode ptrnew_area_sum_filter(CompoundRegionOperationNode ptr input,
bool inverse = false,
long amin = 0,
long amax = max)
Creates a node filtering the input by area sum.
new CompoundRegionOperationNode ptrnew_bbox_filter(CompoundRegionOperationNode ptr input,
CompoundRegionOperationNode::ParameterType parameter,
bool inverse = false,
unsigned int pmin = 0,
unsigned int pmax = max)
Creates a node filtering the input by bounding box parameters.
new CompoundRegionOperationNode ptrnew_case(CompoundRegionOperationNode ptr[] inputs)Creates a 'switch ladder' (case statement) compound operation node.
new CompoundRegionOperationNode ptrnew_centers(CompoundRegionOperationNode ptr input,
unsigned int length,
double fraction)
Creates a node delivering a part at the center of each input edge.
new CompoundRegionOperationNode ptrnew_convex_decomposition(CompoundRegionOperationNode ptr input,
PreferredOrientation mode)
Creates a node providing a composition into convex pieces.
new CompoundRegionOperationNode ptrnew_corners_as_dots(CompoundRegionOperationNode ptr input,
double angle_min,
bool include_angle_min,
double angle_max,
bool include_angle_max)
Creates a node turning corners into dots (single-point edges).
new CompoundRegionOperationNode ptrnew_corners_as_edge_pairs(CompoundRegionOperationNode ptr input,
double angle_min,
bool include_angle_min,
double angle_max,
bool include_angle_max)
Creates a node turning corners into edge pairs containing the two edges adjacent to the corner.
new CompoundRegionOperationNode ptrnew_corners_as_rectangles(CompoundRegionOperationNode ptr input,
double angle_min,
bool include_angle_min,
double angle_max,
bool include_angle_max,
int dim)
Creates a node turning corners into rectangles.
new CompoundRegionOperationNode ptrnew_count_filter(CompoundRegionOperationNode ptr inputs,
bool invert = false,
unsigned long min_count = 0,
unsigned long max_count = 18446744073709551615)
Creates a node selecting results but their shape count.
new CompoundRegionOperationNode ptrnew_edge_length_filter(CompoundRegionOperationNode ptr input,
bool inverse = false,
unsigned int lmin = 0,
unsigned int lmax = max)
Creates a node filtering edges by their length.
new CompoundRegionOperationNode ptrnew_edge_length_sum_filter(CompoundRegionOperationNode ptr input,
bool inverse = false,
unsigned int lmin = 0,
unsigned int lmax = max)
Creates a node filtering edges by their length sum (over the local set).
new CompoundRegionOperationNode ptrnew_edge_orientation_filter(CompoundRegionOperationNode ptr input,
bool inverse,
double amin,
bool include_amin,
double amax,
bool include_amax)
Creates a node filtering edges by their orientation.
new CompoundRegionOperationNode ptrnew_edge_pair_to_first_edges(CompoundRegionOperationNode ptr input)Creates a node delivering the first edge of each edges pair.
new CompoundRegionOperationNode ptrnew_edge_pair_to_second_edges(CompoundRegionOperationNode ptr input)Creates a node delivering the second edge of each edges pair.
new CompoundRegionOperationNode ptrnew_edges(CompoundRegionOperationNode ptr input)Creates a node converting polygons into its edges.
new CompoundRegionOperationNode ptrnew_empty(CompoundRegionOperationNode::ResultType type)Creates a node delivering an empty result of the given type
new CompoundRegionOperationNode ptrnew_enclosed_check(CompoundRegionOperationNode ptr other,
int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
Region::OppositeFilter opposite_filter = NoOppositeFilter,
Region::RectFilter rect_filter = NoRectFilter,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing an enclosed (secondary enclosing primary) check.
new CompoundRegionOperationNode ptrnew_enclosing(CompoundRegionOperationNode ptr a,
CompoundRegionOperationNode ptr b,
bool inverse = false,
unsigned long min_count = 0,
unsigned long max_count = unlimited)
Creates a node representing an inside selection operation between the inputs.
new CompoundRegionOperationNode ptrnew_enclosing_check(CompoundRegionOperationNode ptr other,
int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
Region::OppositeFilter opposite_filter = NoOppositeFilter,
Region::RectFilter rect_filter = NoRectFilter,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing an inside (enclosure) check.
new CompoundRegionOperationNode ptrnew_end_segments(CompoundRegionOperationNode ptr input,
unsigned int length,
double fraction)
Creates a node delivering a part at the end of each input edge.
new CompoundRegionOperationNode ptrnew_extended(CompoundRegionOperationNode ptr input,
int ext_b,
int ext_e,
int ext_o,
int ext_i)
Creates a node delivering a polygonized version of the edges with the four extension parameters.
new CompoundRegionOperationNode ptrnew_extended_in(CompoundRegionOperationNode ptr input,
int e)
Creates a node delivering a polygonized, inside-extended version of the edges.
new CompoundRegionOperationNode ptrnew_extended_out(CompoundRegionOperationNode ptr input,
int e)
Creates a node delivering a polygonized, inside-extended version of the edges.
new CompoundRegionOperationNode ptrnew_extents(CompoundRegionOperationNode ptr input,
int e = 0)
Creates a node returning the extents of the objects.
new CompoundRegionOperationNode ptrnew_foreignCreates a node object representing the primary input without the current polygon
new CompoundRegionOperationNode ptrnew_geometrical_boolean(CompoundRegionOperationNode::GeometricalOp op,
CompoundRegionOperationNode ptr a,
CompoundRegionOperationNode ptr b)
Creates a node representing a geometrical boolean operation between the inputs.
new CompoundRegionOperationNode ptrnew_hole_count_filter(CompoundRegionOperationNode ptr input,
bool inverse = false,
unsigned long hmin = 0,
unsigned long hmax = max)
Creates a node filtering the input by number of holes per polygon.
new CompoundRegionOperationNode ptrnew_holes(CompoundRegionOperationNode ptr input)Creates a node extracting the holes from polygons.
new CompoundRegionOperationNode ptrnew_hulls(CompoundRegionOperationNode ptr input)Creates a node extracting the hulls from polygons.
new CompoundRegionOperationNode ptrnew_inside(CompoundRegionOperationNode ptr a,
CompoundRegionOperationNode ptr b,
bool inverse = false)
Creates a node representing an inside selection operation between the inputs.
new CompoundRegionOperationNode ptrnew_interacting(CompoundRegionOperationNode ptr a,
CompoundRegionOperationNode ptr b,
bool inverse = false,
unsigned long min_count = 0,
unsigned long max_count = unlimited)
Creates a node representing an interacting selection operation between the inputs.
new CompoundRegionOperationNode ptrnew_isolated_check(int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
Region::OppositeFilter opposite_filter = NoOppositeFilter,
Region::RectFilter rect_filter = NoRectFilter,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing a isolated polygons (space between different polygons) check.
new CompoundRegionOperationNode ptrnew_join(CompoundRegionOperationNode ptr[] inputs)Creates a node that joins the inputs.
new CompoundRegionOperationNode ptrnew_logical_boolean(CompoundRegionOperationNode::LogicalOp op,
bool invert,
CompoundRegionOperationNode ptr[] inputs)
Creates a node representing a logical boolean operation between the inputs.
new CompoundRegionOperationNode ptrnew_merged(CompoundRegionOperationNode ptr input,
bool min_coherence = false,
unsigned int min_wc = 0)
Creates a node providing merged input polygons.
new CompoundRegionOperationNode ptrnew_minkowski_sum(CompoundRegionOperationNode ptr input,
const Edge e)
Creates a node providing a Minkowski sum with an edge.
new CompoundRegionOperationNode ptrnew_minkowski_sum(CompoundRegionOperationNode ptr input,
const Polygon p)
Creates a node providing a Minkowski sum with a polygon.
new CompoundRegionOperationNode ptrnew_minkowski_sum(CompoundRegionOperationNode ptr input,
const Box p)
Creates a node providing a Minkowski sum with a box.
new CompoundRegionOperationNode ptrnew_minkowski_sum(CompoundRegionOperationNode ptr input,
Point[] p)
Creates a node providing a Minkowski sum with a point sequence forming a contour.
new CompoundRegionOperationNode ptrnew_notch_check(int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing a intra-polygon space check.
new CompoundRegionOperationNode ptrnew_outside(CompoundRegionOperationNode ptr a,
CompoundRegionOperationNode ptr b,
bool inverse = false)
Creates a node representing an outside selection operation between the inputs.
new CompoundRegionOperationNode ptrnew_overlap_check(CompoundRegionOperationNode ptr other,
int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
Region::OppositeFilter opposite_filter = NoOppositeFilter,
Region::RectFilter rect_filter = NoRectFilter,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing an overlap check.
new CompoundRegionOperationNode ptrnew_overlapping(CompoundRegionOperationNode ptr a,
CompoundRegionOperationNode ptr b,
bool inverse = false,
unsigned long min_count = 0,
unsigned long max_count = unlimited)
Creates a node representing an overlapping selection operation between the inputs.
new CompoundRegionOperationNode ptrnew_perimeter_filter(CompoundRegionOperationNode ptr input,
bool inverse = false,
unsigned long pmin = 0,
unsigned long pmax = max)
Creates a node filtering the input by perimeter.
new CompoundRegionOperationNode ptrnew_perimeter_sum_filter(CompoundRegionOperationNode ptr input,
bool inverse = false,
unsigned long amin = 0,
unsigned long amax = max)
Creates a node filtering the input by area sum.
new CompoundRegionOperationNode ptrnew_polygon_breaker(CompoundRegionOperationNode ptr input,
unsigned long max_vertex_count,
double max_area_ratio)
Creates a node providing a composition into parts with less than the given number of points and a smaller area ratio.
new CompoundRegionOperationNode ptrnew_polygons(CompoundRegionOperationNode ptr input,
int e = 0)
Creates a node converting the input to polygons.
new CompoundRegionOperationNode ptrnew_primaryCreates a node object representing the primary input
new CompoundRegionOperationNode ptrnew_ratio_filter(CompoundRegionOperationNode ptr input,
CompoundRegionOperationNode::RatioParameterType parameter,
bool inverse = false,
double pmin = 0,
bool pmin_included = true,
double pmax = max,
bool pmax_included = true)
Creates a node filtering the input by ratio parameters.
new CompoundRegionOperationNode ptrnew_rectangle_filter(CompoundRegionOperationNode ptr input,
bool is_square = false,
bool inverse = false)
Creates a node filtering the input for rectangular or square shapes.
new CompoundRegionOperationNode ptrnew_rectilinear_filter(CompoundRegionOperationNode ptr input,
bool inverse = false)
Creates a node filtering the input for rectilinear shapes (or non-rectilinear ones with 'inverse' set to 'true').
new CompoundRegionOperationNode ptrnew_relative_extents(CompoundRegionOperationNode ptr input,
double fx1,
double fy1,
double fx2,
double fy2,
int dx,
int dy)
Creates a node returning markers at specified locations of the extent (e.g. at the center).
new CompoundRegionOperationNode ptrnew_relative_extents_as_edges(CompoundRegionOperationNode ptr input,
double fx1,
double fy1,
double fx2,
double fy2)
Creates a node returning edges at specified locations of the extent (e.g. at the center).
new CompoundRegionOperationNode ptrnew_rounded_corners(CompoundRegionOperationNode ptr input,
double rinner,
double router,
unsigned int n)
Creates a node generating rounded corners.
new CompoundRegionOperationNode ptrnew_secondary(Region ptr region)Creates a node object representing the secondary input from the given region
new CompoundRegionOperationNode ptrnew_separation_check(CompoundRegionOperationNode ptr other,
int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
Region::OppositeFilter opposite_filter = NoOppositeFilter,
Region::RectFilter rect_filter = NoRectFilter,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing a separation check.
new CompoundRegionOperationNode ptrnew_sized(CompoundRegionOperationNode ptr input,
int dx,
int dy,
unsigned int mode)
Creates a node providing sizing.
new CompoundRegionOperationNode ptrnew_smoothed(CompoundRegionOperationNode ptr input,
int d,
bool keep_hv = false)
Creates a node smoothing the polygons.
new CompoundRegionOperationNode ptrnew_space_check(int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
Region::OppositeFilter opposite_filter = NoOppositeFilter,
Region::RectFilter rect_filter = NoRectFilter,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing a space check.
new CompoundRegionOperationNode ptrnew_start_segments(CompoundRegionOperationNode ptr input,
unsigned int length,
double fraction)
Creates a node delivering a part at the beginning of each input edge.
new CompoundRegionOperationNode ptrnew_strange_polygons_filter(CompoundRegionOperationNode ptr input)Creates a node extracting strange polygons.
new CompoundRegionOperationNode ptrnew_trapezoid_decomposition(CompoundRegionOperationNode ptr input,
TrapezoidDecompositionMode mode)
Creates a node providing a composition into trapezoids.
new CompoundRegionOperationNode ptrnew_width_check(int d,
bool whole_edges = false,
Metrics metrics = Euclidian,
variant ignore_angle = default,
variant min_projection = 0,
variant max_projection = max.,
bool shielded = true,
ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching,
bool negative = false)
Creates a node providing a width check.

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

voidcreateUse of this method is deprecated. Use _create instead
voiddestroyUse of this method is deprecated. Use _destroy instead
[const]booldestroyed?Use of this method is deprecated. Use _destroyed? instead
[const]boolis_const_object?Use of this method is deprecated. Use _is_const_object? instead
[static]new CompoundRegionOperationNode ptrnew_minkowsky_sum(CompoundRegionOperationNode ptr input,
const Edge e)
Use of this method is deprecated. Use new_minkowski_sum instead
[static]new CompoundRegionOperationNode ptrnew_minkowsky_sum(CompoundRegionOperationNode ptr input,
const Polygon p)
Use of this method is deprecated. Use new_minkowski_sum instead
[static]new CompoundRegionOperationNode ptrnew_minkowsky_sum(CompoundRegionOperationNode ptr input,
const Box p)
Use of this method is deprecated. Use new_minkowski_sum instead
[static]new CompoundRegionOperationNode ptrnew_minkowsky_sum(CompoundRegionOperationNode ptr input,
Point[] p)
Use of this method is deprecated. Use new_minkowski_sum instead

Detailed description

_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.

create

Signature: void create

Description: Ensures the C++ object is created

Use of this method is deprecated. Use _create instead

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

description

Signature: [const] string description

Description: Gets the description for this node

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

description=

Signature: void description= (string d)

Description: Sets the description for this node

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

destroy

Signature: void destroy

Description: Explicitly destroys the object

Use of this method is deprecated. Use _destroy instead

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

destroyed?

Signature: [const] bool destroyed?

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

Use of this method is deprecated. Use _destroyed? instead

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

distance

Signature: [const] int distance

Description: Gets the distance value for this node

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

distance=

Signature: void distance= (int d)

Description: Sets the distance value for this nodeUsually it's not required to provide a distance because the nodes compute a distance based on their operation. If necessary you can supply a distance. The processor will use this distance or the computed one, whichever is larger.

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

is_const_object?

Signature: [const] bool is_const_object?

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

Use of this method is deprecated. Use _is_const_object? instead

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

new

Signature: [static] new CompoundRegionOperationNode ptr new

Description: Creates a new object of this class

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

new_area_filter

Signature: [static] new CompoundRegionOperationNode ptr new_area_filter (CompoundRegionOperationNode ptr input, bool inverse = false, long amin = 0, long amax = max)

Description: Creates a node filtering the input by area.

This node renders the input if the area is between amin and amax (exclusively). If 'inverse' is set to true, the input shape is returned if the area is less than amin (exclusively) or larger than amax (inclusively).

new_area_sum_filter

Signature: [static] new CompoundRegionOperationNode ptr new_area_sum_filter (CompoundRegionOperationNode ptr input, bool inverse = false, long amin = 0, long amax = max)

Description: Creates a node filtering the input by area sum.

Like new_area_filter, but applies to the sum of all shapes in the current set.

new_bbox_filter

Signature: [static] new CompoundRegionOperationNode ptr new_bbox_filter (CompoundRegionOperationNode ptr input, CompoundRegionOperationNode::ParameterType parameter, bool inverse = false, unsigned int pmin = 0, unsigned int pmax = max)

Description: Creates a node filtering the input by bounding box parameters.

This node renders the input if the specified bounding box parameter of the input shape is between pmin and pmax (exclusively). If 'inverse' is set to true, the input shape is returned if the parameter is less than pmin (exclusively) or larger than pmax (inclusively).

new_case

Signature: [static] new CompoundRegionOperationNode ptr new_case (CompoundRegionOperationNode ptr[] inputs)

Description: Creates a 'switch ladder' (case statement) compound operation node.

The inputs are treated as a sequence of condition/result pairs: c1,r1,c2,r2 etc. If there is an odd number of inputs, the last element is taken as the default result. The implementation will evaluate c1 and if not empty, will render r1. Otherwise, c2 will be evaluated and r2 rendered if c2 isn't empty etc. If none of the conditions renders a non-empty set and a default result is present, the default will be returned. Otherwise, the result is empty.

new_centers

Signature: [static] new CompoundRegionOperationNode ptr new_centers (CompoundRegionOperationNode ptr input, unsigned int length, double fraction)

Description: Creates a node delivering a part at the center of each input edge.

new_convex_decomposition

Signature: [static] new CompoundRegionOperationNode ptr new_convex_decomposition (CompoundRegionOperationNode ptr input, PreferredOrientation mode)

Description: Creates a node providing a composition into convex pieces.

new_corners_as_dots

Signature: [static] new CompoundRegionOperationNode ptr new_corners_as_dots (CompoundRegionOperationNode ptr input, double angle_min, bool include_angle_min, double angle_max, bool include_angle_max)

Description: Creates a node turning corners into dots (single-point edges).

new_corners_as_edge_pairs

Signature: [static] new CompoundRegionOperationNode ptr new_corners_as_edge_pairs (CompoundRegionOperationNode ptr input, double angle_min, bool include_angle_min, double angle_max, bool include_angle_max)

Description: Creates a node turning corners into edge pairs containing the two edges adjacent to the corner.

The first edge will be the incoming edge and the second one the outgoing edge.

This feature has been introduced in version 0.27.1.

new_corners_as_rectangles

Signature: [static] new CompoundRegionOperationNode ptr new_corners_as_rectangles (CompoundRegionOperationNode ptr input, double angle_min, bool include_angle_min, double angle_max, bool include_angle_max, int dim)

Description: Creates a node turning corners into rectangles.

new_count_filter

Signature: [static] new CompoundRegionOperationNode ptr new_count_filter (CompoundRegionOperationNode ptr inputs, bool invert = false, unsigned long min_count = 0, unsigned long max_count = 18446744073709551615)

Description: Creates a node selecting results but their shape count.

new_edge_length_filter

Signature: [static] new CompoundRegionOperationNode ptr new_edge_length_filter (CompoundRegionOperationNode ptr input, bool inverse = false, unsigned int lmin = 0, unsigned int lmax = max)

Description: Creates a node filtering edges by their length.

new_edge_length_sum_filter

Signature: [static] new CompoundRegionOperationNode ptr new_edge_length_sum_filter (CompoundRegionOperationNode ptr input, bool inverse = false, unsigned int lmin = 0, unsigned int lmax = max)

Description: Creates a node filtering edges by their length sum (over the local set).

new_edge_orientation_filter

Signature: [static] new CompoundRegionOperationNode ptr new_edge_orientation_filter (CompoundRegionOperationNode ptr input, bool inverse, double amin, bool include_amin, double amax, bool include_amax)

Description: Creates a node filtering edges by their orientation.

new_edge_pair_to_first_edges

Signature: [static] new CompoundRegionOperationNode ptr new_edge_pair_to_first_edges (CompoundRegionOperationNode ptr input)

Description: Creates a node delivering the first edge of each edges pair.

new_edge_pair_to_second_edges

Signature: [static] new CompoundRegionOperationNode ptr new_edge_pair_to_second_edges (CompoundRegionOperationNode ptr input)

Description: Creates a node delivering the second edge of each edges pair.

new_edges

Signature: [static] new CompoundRegionOperationNode ptr new_edges (CompoundRegionOperationNode ptr input)

Description: Creates a node converting polygons into its edges.

new_empty

Signature: [static] new CompoundRegionOperationNode ptr new_empty (CompoundRegionOperationNode::ResultType type)

Description: Creates a node delivering an empty result of the given type

new_enclosed_check

Signature: [static] new CompoundRegionOperationNode ptr new_enclosed_check (CompoundRegionOperationNode ptr other, int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, Region::OppositeFilter opposite_filter = NoOppositeFilter, Region::RectFilter rect_filter = NoRectFilter, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing an enclosed (secondary enclosing primary) check.

This method has been added in version 0.27.5. The zero_distance_mode argument has been inserted in version 0.29.

new_enclosing

Signature: [static] new CompoundRegionOperationNode ptr new_enclosing (CompoundRegionOperationNode ptr a, CompoundRegionOperationNode ptr b, bool inverse = false, unsigned long min_count = 0, unsigned long max_count = unlimited)

Description: Creates a node representing an inside selection operation between the inputs.

new_enclosing_check

Signature: [static] new CompoundRegionOperationNode ptr new_enclosing_check (CompoundRegionOperationNode ptr other, int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, Region::OppositeFilter opposite_filter = NoOppositeFilter, Region::RectFilter rect_filter = NoRectFilter, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing an inside (enclosure) check.

The zero_distance_mode argument has been inserted in version 0.29.

new_end_segments

Signature: [static] new CompoundRegionOperationNode ptr new_end_segments (CompoundRegionOperationNode ptr input, unsigned int length, double fraction)

Description: Creates a node delivering a part at the end of each input edge.

new_extended

Signature: [static] new CompoundRegionOperationNode ptr new_extended (CompoundRegionOperationNode ptr input, int ext_b, int ext_e, int ext_o, int ext_i)

Description: Creates a node delivering a polygonized version of the edges with the four extension parameters.

new_extended_in

Signature: [static] new CompoundRegionOperationNode ptr new_extended_in (CompoundRegionOperationNode ptr input, int e)

Description: Creates a node delivering a polygonized, inside-extended version of the edges.

new_extended_out

Signature: [static] new CompoundRegionOperationNode ptr new_extended_out (CompoundRegionOperationNode ptr input, int e)

Description: Creates a node delivering a polygonized, inside-extended version of the edges.

new_extents

Signature: [static] new CompoundRegionOperationNode ptr new_extents (CompoundRegionOperationNode ptr input, int e = 0)

Description: Creates a node returning the extents of the objects.

The 'e' parameter provides a generic enlargement which is applied to the boxes. This is helpful to cover dot-like edges or edge pairs in the input.

new_foreign

Signature: [static] new CompoundRegionOperationNode ptr new_foreign

Description: Creates a node object representing the primary input without the current polygon

new_geometrical_boolean

Signature: [static] new CompoundRegionOperationNode ptr new_geometrical_boolean (CompoundRegionOperationNode::GeometricalOp op, CompoundRegionOperationNode ptr a, CompoundRegionOperationNode ptr b)

Description: Creates a node representing a geometrical boolean operation between the inputs.

new_hole_count_filter

Signature: [static] new CompoundRegionOperationNode ptr new_hole_count_filter (CompoundRegionOperationNode ptr input, bool inverse = false, unsigned long hmin = 0, unsigned long hmax = max)

Description: Creates a node filtering the input by number of holes per polygon.

This node renders the input if the hole count is between hmin and hmax (exclusively). If 'inverse' is set to true, the input shape is returned if the hole count is less than hmin (exclusively) or larger than hmax (inclusively).

new_holes

Signature: [static] new CompoundRegionOperationNode ptr new_holes (CompoundRegionOperationNode ptr input)

Description: Creates a node extracting the holes from polygons.

new_hulls

Signature: [static] new CompoundRegionOperationNode ptr new_hulls (CompoundRegionOperationNode ptr input)

Description: Creates a node extracting the hulls from polygons.

new_inside

Signature: [static] new CompoundRegionOperationNode ptr new_inside (CompoundRegionOperationNode ptr a, CompoundRegionOperationNode ptr b, bool inverse = false)

Description: Creates a node representing an inside selection operation between the inputs.

new_interacting

Signature: [static] new CompoundRegionOperationNode ptr new_interacting (CompoundRegionOperationNode ptr a, CompoundRegionOperationNode ptr b, bool inverse = false, unsigned long min_count = 0, unsigned long max_count = unlimited)

Description: Creates a node representing an interacting selection operation between the inputs.

new_isolated_check

Signature: [static] new CompoundRegionOperationNode ptr new_isolated_check (int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, Region::OppositeFilter opposite_filter = NoOppositeFilter, Region::RectFilter rect_filter = NoRectFilter, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing a isolated polygons (space between different polygons) check.

The zero_distance_mode argument has been inserted in version 0.29.

new_join

Signature: [static] new CompoundRegionOperationNode ptr new_join (CompoundRegionOperationNode ptr[] inputs)

Description: Creates a node that joins the inputs.

new_logical_boolean

Signature: [static] new CompoundRegionOperationNode ptr new_logical_boolean (CompoundRegionOperationNode::LogicalOp op, bool invert, CompoundRegionOperationNode ptr[] inputs)

Description: Creates a node representing a logical boolean operation between the inputs.

A logical AND operation will evaluate the arguments and render the subject shape when all arguments are non-empty. The logical OR operation will evaluate the arguments and render the subject shape when one argument is non-empty. Setting 'inverse' to true will reverse the result and return the subject shape when one argument is empty in the AND case and when all arguments are empty in the OR case.

new_merged

Signature: [static] new CompoundRegionOperationNode ptr new_merged (CompoundRegionOperationNode ptr input, bool min_coherence = false, unsigned int min_wc = 0)

Description: Creates a node providing merged input polygons.

new_minkowski_sum

(1) Signature: [static] new CompoundRegionOperationNode ptr new_minkowski_sum (CompoundRegionOperationNode ptr input, const Edge e)

Description: Creates a node providing a Minkowski sum with an edge.

(2) Signature: [static] new CompoundRegionOperationNode ptr new_minkowski_sum (CompoundRegionOperationNode ptr input, const Polygon p)

Description: Creates a node providing a Minkowski sum with a polygon.

(3) Signature: [static] new CompoundRegionOperationNode ptr new_minkowski_sum (CompoundRegionOperationNode ptr input, const Box p)

Description: Creates a node providing a Minkowski sum with a box.

(4) Signature: [static] new CompoundRegionOperationNode ptr new_minkowski_sum (CompoundRegionOperationNode ptr input, Point[] p)

Description: Creates a node providing a Minkowski sum with a point sequence forming a contour.

new_minkowsky_sum

(1) Signature: [static] new CompoundRegionOperationNode ptr new_minkowsky_sum (CompoundRegionOperationNode ptr input, const Edge e)

Description: Creates a node providing a Minkowski sum with an edge.

Use of this method is deprecated. Use new_minkowski_sum instead

(2) Signature: [static] new CompoundRegionOperationNode ptr new_minkowsky_sum (CompoundRegionOperationNode ptr input, const Polygon p)

Description: Creates a node providing a Minkowski sum with a polygon.

Use of this method is deprecated. Use new_minkowski_sum instead

(3) Signature: [static] new CompoundRegionOperationNode ptr new_minkowsky_sum (CompoundRegionOperationNode ptr input, const Box p)

Description: Creates a node providing a Minkowski sum with a box.

Use of this method is deprecated. Use new_minkowski_sum instead

(4) Signature: [static] new CompoundRegionOperationNode ptr new_minkowsky_sum (CompoundRegionOperationNode ptr input, Point[] p)

Description: Creates a node providing a Minkowski sum with a point sequence forming a contour.

Use of this method is deprecated. Use new_minkowski_sum instead

new_notch_check

Signature: [static] new CompoundRegionOperationNode ptr new_notch_check (int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing a intra-polygon space check.

The zero_distance_mode argument has been inserted in version 0.29.

new_outside

Signature: [static] new CompoundRegionOperationNode ptr new_outside (CompoundRegionOperationNode ptr a, CompoundRegionOperationNode ptr b, bool inverse = false)

Description: Creates a node representing an outside selection operation between the inputs.

new_overlap_check

Signature: [static] new CompoundRegionOperationNode ptr new_overlap_check (CompoundRegionOperationNode ptr other, int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, Region::OppositeFilter opposite_filter = NoOppositeFilter, Region::RectFilter rect_filter = NoRectFilter, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing an overlap check.

The zero_distance_mode argument has been inserted in version 0.29.

new_overlapping

Signature: [static] new CompoundRegionOperationNode ptr new_overlapping (CompoundRegionOperationNode ptr a, CompoundRegionOperationNode ptr b, bool inverse = false, unsigned long min_count = 0, unsigned long max_count = unlimited)

Description: Creates a node representing an overlapping selection operation between the inputs.

new_perimeter_filter

Signature: [static] new CompoundRegionOperationNode ptr new_perimeter_filter (CompoundRegionOperationNode ptr input, bool inverse = false, unsigned long pmin = 0, unsigned long pmax = max)

Description: Creates a node filtering the input by perimeter.

This node renders the input if the perimeter is between pmin and pmax (exclusively). If 'inverse' is set to true, the input shape is returned if the perimeter is less than pmin (exclusively) or larger than pmax (inclusively).

new_perimeter_sum_filter

Signature: [static] new CompoundRegionOperationNode ptr new_perimeter_sum_filter (CompoundRegionOperationNode ptr input, bool inverse = false, unsigned long amin = 0, unsigned long amax = max)

Description: Creates a node filtering the input by area sum.

Like new_perimeter_filter, but applies to the sum of all shapes in the current set.

new_polygon_breaker

Signature: [static] new CompoundRegionOperationNode ptr new_polygon_breaker (CompoundRegionOperationNode ptr input, unsigned long max_vertex_count, double max_area_ratio)

Description: Creates a node providing a composition into parts with less than the given number of points and a smaller area ratio.

new_polygons

Signature: [static] new CompoundRegionOperationNode ptr new_polygons (CompoundRegionOperationNode ptr input, int e = 0)

Description: Creates a node converting the input to polygons.

e:The enlargement parameter when converting edges or edge pairs to polygons.

new_primary

Signature: [static] new CompoundRegionOperationNode ptr new_primary

Description: Creates a node object representing the primary input

new_ratio_filter

Signature: [static] new CompoundRegionOperationNode ptr new_ratio_filter (CompoundRegionOperationNode ptr input, CompoundRegionOperationNode::RatioParameterType parameter, bool inverse = false, double pmin = 0, bool pmin_included = true, double pmax = max, bool pmax_included = true)

Description: Creates a node filtering the input by ratio parameters.

This node renders the input if the specified ratio parameter of the input shape is between pmin and pmax. If 'pmin_included' is true, the range will include pmin. Same for 'pmax_included' and pmax. If 'inverse' is set to true, the input shape is returned if the parameter is not within the specified range.

new_rectangle_filter

Signature: [static] new CompoundRegionOperationNode ptr new_rectangle_filter (CompoundRegionOperationNode ptr input, bool is_square = false, bool inverse = false)

Description: Creates a node filtering the input for rectangular or square shapes.

If 'is_square' is true, only squares will be selected. If 'inverse' is true, the non-rectangle/non-square shapes are returned.

new_rectilinear_filter

Signature: [static] new CompoundRegionOperationNode ptr new_rectilinear_filter (CompoundRegionOperationNode ptr input, bool inverse = false)

Description: Creates a node filtering the input for rectilinear shapes (or non-rectilinear ones with 'inverse' set to 'true').

new_relative_extents

Signature: [static] new CompoundRegionOperationNode ptr new_relative_extents (CompoundRegionOperationNode ptr input, double fx1, double fy1, double fx2, double fy2, int dx, int dy)

Description: Creates a node returning markers at specified locations of the extent (e.g. at the center).

new_relative_extents_as_edges

Signature: [static] new CompoundRegionOperationNode ptr new_relative_extents_as_edges (CompoundRegionOperationNode ptr input, double fx1, double fy1, double fx2, double fy2)

Description: Creates a node returning edges at specified locations of the extent (e.g. at the center).

new_rounded_corners

Signature: [static] new CompoundRegionOperationNode ptr new_rounded_corners (CompoundRegionOperationNode ptr input, double rinner, double router, unsigned int n)

Description: Creates a node generating rounded corners.

rinner:The inner corner radius.@param router The outer corner radius.@param n The number if points per full circle.

new_secondary

Signature: [static] new CompoundRegionOperationNode ptr new_secondary (Region ptr region)

Description: Creates a node object representing the secondary input from the given region

new_separation_check

Signature: [static] new CompoundRegionOperationNode ptr new_separation_check (CompoundRegionOperationNode ptr other, int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, Region::OppositeFilter opposite_filter = NoOppositeFilter, Region::RectFilter rect_filter = NoRectFilter, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing a separation check.

The zero_distance_mode argument has been inserted in version 0.29.

new_sized

Signature: [static] new CompoundRegionOperationNode ptr new_sized (CompoundRegionOperationNode ptr input, int dx, int dy, unsigned int mode)

Description: Creates a node providing sizing.

new_smoothed

Signature: [static] new CompoundRegionOperationNode ptr new_smoothed (CompoundRegionOperationNode ptr input, int d, bool keep_hv = false)

Description: Creates a node smoothing the polygons.

d:The tolerance to be applied for the smoothing.
keep_hv:If true, horizontal and vertical edges are maintained.

new_space_check

Signature: [static] new CompoundRegionOperationNode ptr new_space_check (int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, Region::OppositeFilter opposite_filter = NoOppositeFilter, Region::RectFilter rect_filter = NoRectFilter, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing a space check.

The zero_distance_mode argument has been inserted in version 0.29.

new_start_segments

Signature: [static] new CompoundRegionOperationNode ptr new_start_segments (CompoundRegionOperationNode ptr input, unsigned int length, double fraction)

Description: Creates a node delivering a part at the beginning of each input edge.

new_strange_polygons_filter

Signature: [static] new CompoundRegionOperationNode ptr new_strange_polygons_filter (CompoundRegionOperationNode ptr input)

Description: Creates a node extracting strange polygons.

'strange polygons' are ones which cannot be oriented - e.g. '8' shape polygons.

new_trapezoid_decomposition

Signature: [static] new CompoundRegionOperationNode ptr new_trapezoid_decomposition (CompoundRegionOperationNode ptr input, TrapezoidDecompositionMode mode)

Description: Creates a node providing a composition into trapezoids.

new_width_check

Signature: [static] new CompoundRegionOperationNode ptr new_width_check (int d, bool whole_edges = false, Metrics metrics = Euclidian, variant ignore_angle = default, variant min_projection = 0, variant max_projection = max., bool shielded = true, ZeroDistanceMode zero_distance_mode = IncludeZeroDistanceWhenTouching, bool negative = false)

Description: Creates a node providing a width check.

The zero_distance_mode argument has been inserted in version 0.29.

result_type

Signature: [const] CompoundRegionOperationNode::ResultType result_type

Description: Gets the result type of this node