- PolyBoolean
- Home
News
Purchase
Support
Downloads
FAQ
Comparison...
Publications
- Complex A5
- company
products
contacts
news
russian
|
Implementation Restrictions
Triangulation
Polygon triangulation routine in PolyBoolean Software Library v0.0
based on a fast
incremental randomized algorithm for computing trapezoidal decompositions
and for triangulating polygons by Raimund Seidel. This algorithm
oriented only on "non-crossing" segments1).
Therefore, polygon shown on Figure 1, that can be
created with PolyBoolean library, is invalid for Seidel's triangulation
algorithm, because there're two segments that touch vertical segment (case
1). However, case 2 is valid segments configuration for
triangulation algorithm.
 |
Figure 1.
Polygon valid for PolyBoolean library.
|
| All versions of PolyBoolean.NET Class Libraries implement polygon triangulation routine
based on extended Seidel's triangulation algorithm and do not have this
restriction. |
Boolean Operations
If PolyBoolean used for polygons with coordinates of vertices
represented in floating point numbers, after converting floating point
coordinates to integer its easy to get the 'integer' polygon with
overlapped segments as shown on Figure 2. If such
polygon will used as one of the operands for Boolean operation in many
cases PolyBoolean will produce incorrect result polygon. Because polygon
with overlapped segments is invalid for Boolean operation algorithm that
implemented in PolyBoolean Software Library v0.0 and PolyBoolean.NET
v1.0.
 |
Figure 2.
Polygon with overlapped segments.
|
| PolyBoolean.NET v1.1 implements improved algorithm for
Boolean operations on 2D polygonal regions that correct handles an overlapped
(not a crossing!) segment chains in one of input regions or
both of them. |
Evaluation Version
All evaluation version of PolyBoolean.NET Class Libraries has the
following restriction: an InvalidArgumentException exception thrown
when total number of vertices in result polygon is not equal zero and
divisible by 7.
|