Class EdgeProcessor (version 0.21)Description: The edge processor (boolean, sizing, merge) The edge processor implements the boolean and edge set operations (size, merge). Because the edge processor might allocate resources which can be reused in later operations, it is implemented as an object that can be used several times.
Method Overviewassign( EdgeProcessor other )Description: Assign the contents of another object to self This method assigns the contents of another object to self. This is a deep copy that does not only copy the reference but the actual content.
Edge[ ] boolean_e2e( Edge a[ ], Edge b[ ], int mode )
|
| a: | The input edges (first operand) |
| b: | The input edges (second operand) |
| mode: | The boolean mode (one of the mode_.. values) |
| returns: | The output edges |
Description: Boolean operation for a set of given edges, creating polygons
This method computes the result for the given boolean operation on two sets of edges. The input edges must form closed contours where holes and hulls must be oriented differently. The input edges are processed with a simple non-zero wrap count rule as a whole.
This method produces polygons on output and allows to fine-tune the parameters for that purpose.
Prior to version 0.21 this method was called 'boolean_to_polygon'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| a: | The input polygons (first operand) |
| b: | The input polygons (second operand) |
| mode: | The boolean mode (one of the mode_.. values) |
| resolve_holes: | true, if holes should be resolved into the hull |
| min_coherence: | true, if touching corners should be resolved into less connected contours |
| returns: | The output polygons |
Description: Boolean operation for a set of given polygons, creating edges
This method computes the result for the given boolean operation on two sets of polygons. The result is presented as a set of edges forming closed contours. Hulls are oriented clockwise while holes are oriented counter-clockwise.
This is a convenience method that bundles filling of the edges, processing with a Boolean operator and puts the result into an output vector.
Prior to version 0.21 this method was called 'boolean'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| a: | The input polygons (first operand) |
| b: | The input polygons (second operand) |
| mode: | The boolean mode |
| returns: | The output edges |
Description: Boolean operation for a set of given polygons, creating polygons
This method computes the result for the given boolean operation on two sets of polygons. This method produces polygons on output and allows to fine-tune the parameters for that purpose.
This is a convenience method that bundles filling of the edges, processing with a Boolean operator and puts the result into an output vector.
Prior to version 0.21 this method was called 'boolean_to_polygon'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| a: | The input polygons (first operand) |
| b: | The input polygons (second operand) |
| mode: | The boolean mode (one of the mode_.. values) |
| resolve_holes: | true, if holes should be resolved into the hull |
| min_coherence: | true, if touching corners should be resolved into less connected contours |
| returns: | The output polygons |
Description: Explicitly destroy the object
Explicitly destroy the object on C++ side if it was owned by the Ruby interpreter. Subsequent access to this object will throw an exception. If the object is not owned by Ruby, this method will do nothing.
Description: Tell, if the object was 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.
Description: Creates a copy of self.
Description: Merge the given polygons
In contrast to "simple_merge", this merge implementation considers each polygon individually before merging them. Thus self-overlaps are effectively removed before the output is computed and holes are correctly merged with the hull. In addition, this method allows to select areas with a higher wrap count which allows to compute overlaps of polygons on the same layer. Because this method merges the polygons before the overlap is computed, self-overlapping polygons do not contribute to higher wrap count areas.
The result is presented as a set of edges forming closed contours. Hulls are oriented clockwise while holes are oriented counter-clockwise.
Prior to version 0.21 this method was called 'merge'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| min_wc: | The minimum wrap count for output (0: all polygons, 1: at least two overlapping) |
| returns: | The output edges |
Description: Merge the given polygons
In contrast to "simple_merge", this merge implementation considers each polygon individually before merging them. Thus self-overlaps are effectively removed before the output is computed and holes are correctly merged with the hull. In addition, this method allows to select areas with a higher wrap count which allows to compute overlaps of polygons on the same layer. Because this method merges the polygons before the overlap is computed, self-overlapping polygons do not contribute to higher wrap count areas.
This method produces polygons and allows to fine-tune the parameters for that purpose.
Prior to version 0.21 this method was called 'merge_to_polygon'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| min_wc: | The minimum wrap count for output (0: all polygons, 1: at least two overlapping) |
| resolve_holes: | true, if holes should be resolved into the hull |
| min_coherence: | true, if touching corners should be resolved into less connected contours |
| returns: | The output polygons |
Description: boolean method's mode value for AND operation
Description: boolean method's mode value for A NOT B operation
Description: boolean method's mode value for B NOT A operation
Description: boolean method's mode value for OR operation
Description: boolean method's mode value for XOR operation
Description: Merge the given edges in a simple "non-zero wrapcount" fashion
The egdes provided must form valid closed contours. Contours oriented differently "cancel" each other. Overlapping contours are merged when the orientation is the same.
The result is presented as a set of edges forming closed contours. Hulls are oriented clockwise while holes are oriented counter-clockwise.
This is a convenience method that bundles filling of the edges, processing with a SimpleMerge operator and puts the result into an output vector.
Prior to version 0.21 this method was called 'simple_merge'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input edges |
| returns: | The output edges |
Description: Merge the given edges in a simple "non-zero wrapcount" fashion into polygons
The egdes provided must form valid closed contours. Contours oriented differently "cancel" each other. Overlapping contours are merged when the orientation is the same.
This method produces polygons and allows to fine-tune the parameters for that purpose.
This is a convenience method that bundles filling of the edges, processing with a SimpleMerge operator and puts the result into an output vector.
Prior to version 0.21 this method was called 'simple_merge_to_polygon'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input edges |
| resolve_holes: | true, if holes should be resolved into the hull |
| min_coherence: | true, if touching corners should be resolved into less connected contours |
| returns: | The output polygons |
Description: Merge the given polygons in a simple "non-zero wrapcount" fashion
The wrapcount is computed over all polygons, i.e. overlapping polygons may "cancel" if they have different orientation (since a polygon is oriented by construction that is not easy to achieve). The other merge operation provided for this purpose is "merge" which normalizes each polygon individually before merging them. "simple_merge" is somewhat faster and consumes less memory.
The result is presented as a set of edges forming closed contours. Hulls are oriented clockwise while holes are oriented counter-clockwise.
This is a convenience method that bundles filling of the edges, processing with a SimpleMerge operator and puts the result into an output vector.
Prior to version 0.21 this method was called 'simple_merge'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| returns: | The output edges |
Description: Merge the given polygons in a simple "non-zero wrapcount" fashion into polygons
The wrapcount is computed over all polygons, i.e. overlapping polygons may "cancel" if they have different orientation (since a polygon is oriented by construction that is not easy to achieve). The other merge operation provided for this purpose is "merge" which normalizes each polygon individually before merging them. "simple_merge" is somewhat faster and consumes less memory.
This method produces polygons and allows to fine-tune the parameters for that purpose.
This is a convenience method that bundles filling of the edges, processing with a SimpleMerge operator and puts the result into an output vector.
Prior to version 0.21 this method was called 'simple_merge_to_polygon'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| resolve_holes: | true, if holes should be resolved into the hull |
| min_coherence: | true, if touching corners should be resolved into less connected contours |
| returns: | The output polygons |
Description: Size the given polygons
This method sizes a set of polygons. Before the sizing is applied, the polygons are merged. After that, sizing is applied on the individual result polygons of the merge step. The result may contain overlapping contours, but no self-overlaps.
dx and dy describe the sizing. A positive value indicates oversize (outwards) while a negative one describes undersize (inwards). The sizing applied can be choosen differently in x and y direction. In this case, the sign must be identical for both dx and dy.
The 'mode' parameter describes the corner fill strategy. Mode 0 connects all corner segments directly. Mode 1 is the 'octagon' strategy in which square corners are interpolated with a partial octagon. Mode 2 is the standard mode in which corners are filled by expanding edges unless these edges form a sharp bend with an angle of more than 90 degree. In that case, the corners are cut off. In Mode 3, no cutoff occures up to a bending angle of 135 degree. Mode 4 and 5 are even more aggressive and allow very sharp bends without cutoff. This strategy may produce long spikes on sharply bending corners. The result is presented as a set of edges forming closed contours. Hulls are oriented clockwise while holes are oriented counter-clockwise.
Prior to version 0.21 this method was called 'size'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| dx: | The sizing value in x direction |
| dy: | The sizing value in y direction |
| mode: | The sizing mode (standard is 2) |
| returns: | The output edges |
Description: Size the given polygons (isotropic)
This method is equivalent to calling the anisotropic version with identical dx and dy.
Prior to version 0.21 this method was called 'size'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| d: | The sizing value in x direction |
| mode: | The sizing mode |
| returns: | The output edges |
Description: Size the given polygons into polygons (isotropic)
This method is equivalent to calling the anisotropic version with identical dx and dy.
Prior to version 0.21 this method was called 'size_to_polygon'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| d: | The sizing value in x direction |
| mode: | The sizing mode |
| resolve_holes: | true, if holes should be resolved into the hull |
| min_coherence: | true, if touching corners should be resolved into less connected contours |
| returns: | The output polygons |
Description: Size the given polygons into polygons
This method sizes a set of polygons. Before the sizing is applied, the polygons are merged. After that, sizing is applied on the individual result polygons of the merge step. The result may contain overlapping polygons, but no self-overlapping ones. Polygon overlap occures if the polygons are close enough, so a positive sizing makes polygons overlap.
dx and dy describe the sizing. A positive value indicates oversize (outwards) while a negative one describes undersize (inwards). The sizing applied can be choosen differently in x and y direction. In this case, the sign must be identical for both dx and dy.
The 'mode' parameter describes the corner fill strategy. Mode 0 connects all corner segments directly. Mode 1 is the 'octagon' strategy in which square corners are interpolated with a partial octagon. Mode 2 is the standard mode in which corners are filled by expanding edges unless these edges form a sharp bend with an angle of more than 90 degree. In that case, the corners are cut off. In Mode 3, no cutoff occures up to a bending angle of 135 degree. Mode 4 and 5 are even more aggressive and allow very sharp bends without cutoff. This strategy may produce long spikes on sharply bending corners. This method produces polygons and allows to fine-tune the parameters for that purpose.
Prior to version 0.21 this method was called 'size_to_polygon'. Is was renamed to avoid ambiguities for empty input arrays. The old version is still available but deprecated.
| in: | The input polygons |
| dx: | The sizing value in x direction |
| dy: | The sizing value in y direction |
| mode: | The sizing mode (standard is 2) |
| resolve_holes: | true, if holes should be resolved into the hull |
| min_coherence: | true, if touching corners should be resolved into less connected contours |
| returns: | The output polygons |