

QisBool
API Reference 

QisBool
API version v1.0 QisBool
Document version v1.0 (April 06, 2012) 















Basic concepts, terminologies 

Understand what is a QisBool object 

Understand how QisBool treats the numbers that represent geometry
such as coordinate values, width, sizes, gaps etc. 

Understand how a polygon is represented in QisBool 

Understand what is a leonov polygon and how it is represented in
QisBool 

Understand what are cutlines and why they are used 

Understand what is butting and how it is used 

Understand what is a reentrant polygon 

Understand what is a selftouching polygon 

Understand what kind of polygons are likely to be treated as
illegal 

Understand what is convex in X, Y or both 

Understand the various techniques used for sizing polygons 




Create and destroy instances of
QisBool 

Create an instance of QisBool 

Destroy an instance of QisBool 

Get Error details when a QisBool function fails 




Control various settings that
affect the Core functions 

Control overlap amount between butting output polygons 

Perform enhanced validation of input
polygons 

Control the level of validation for input polygons 

Control whether polygons inside another are
treated as holes 

Specify maximum number of vertices in output polygons 

Set a clipping window 

Control if the partitioned data is unionized after the Boolean
operation is complete 

Control how the data is partitioned during Boolean operations 

Control the number of vertices per partition during
autopartitioning 

Specify how the polygons are sized during Boolean operations 

Specify amount of sizing for standard and isotropic sizing 

Specify the amount of nonisotropic sizing in X and Y 

Control how round corners are handled for isotropic and
nonisotropic sizing 

Smoothen polygon edges by removing edges smaller than a set threshold 

Remove output polygons smaller/thinner than a certain threshold 

Specify chord error for approximating the roundness of round
paths 

Specify if either of the input polygon sets contain Leonov
polygons 

Specify how to output polygons with holes 

Control whether the output polygons are convex in x, fully convex
or trapezoids. 

Instruct QisBool_Booleanize to check and take advantage of
manhattan data in the input 

Remember buttingedges to be returned later using
QisBool_GetSliceEdges 

Control the width/thickness of the lines returned by
QisBool_GetSliceEdges 

Force union of input polygons even if they are Leonov 

Reset QisBool settings to default values 




Various Boolean operations 

Perform single threaded union, intersection, difference and xor
operations on sets of polygons 

Perform multithreaded union on a set of polygons 

Perform multithreaded intersection, difference and xor
operations on two sets of polygons 




Miscellaneous and Utility
functions 

Get QisBool version information 

Release the memory allocated by QisBool to store output polygons
from Boolean operations 

Release memory allocated by QisBool to store an array of integers 

Get a list of coordinates where QisBool encountered illegal
polygons in the input 

Get a list of cutlines if a polygon has any 

Get the edges (slices) used to generate butting polygons during
Boolean operations 




Perform operations on a single
polygon or path 

Reorder the polygon vertices to counterclockwise direction 

Get the area of a polygon 

Convert a polygon into one or more convex polygons 

Convert round path to boundaries 

Convert flush or halfextended path to boundaries 

Group connected boundaries into sets 

Limit the number of vertices in the input polygons and get a list
of edges used to break them. 

Limit the number of vertices in the input polygons 

Resize a polygon using standard sizing 




Check if point/boundary/path
cross specific regions 

Check the location of a point with respect to a polygon 

Check the location of a point with respect to set of polygons 

Check the location of a boundary/path with respect to another
boundary 

Setup a list of rectangular windows so that it can be used later by
QisBool_PolyCrossWindows 

Setup a list of polygonal windows so that it can be used later by
QisBool_PolyCrossRegions and QisBool_PolyCrossLeonovRegions 

Release the memory allocated by QisBool_SetupWindows and
QisBool_SetupRegions to store the
window data 

Check if a polygon crosses a set of rectangular windows 

Check if a polygon crosses a set of polygonal windows 

Check if a polygon crosses a set of leonov regions 




Clipping functions for Paths 

Clip a path to a polygonal region 

Clip a path to a rectangular window 

Clip a path to a leonov region 

Clip a path to multiple regions 






Single threaded union of polygons obtained from a single window
using QisLib 












© 2012 Artwork Conversion
Software Inc. 

417 Ingalls St. Santa Cruz CA
95060 

[T] +1 8314266163 [F] +1
8314262824 [E] info@artwork.com 
