ARTWORK CONVERSION SOFTWARE

GDSII | QISBOOL

 

QisBool API Reference

QisBool API version v1.0

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

 

 

 

QisBool Overview

QisBool Concepts

Basic Functions

Execution Control Functions

Core Execution Functions

Misc. Functions

Polygon & Path Functions

Intersection Check Functions

Path Clipping Functions

Sample Code

Version History

 

 

 

 

QisBool Concepts

Basic concepts, terminologies

QisBool Instance

Understand what is a QisBool object

QisBool Units

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

Polygon Representation

Understand how a polygon is represented in QisBool

Leonov Polygon Representation

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

Cutlines

Understand what are cutlines and why they are used

Butting Polygons

Understand what is butting and how it is used

Re-entrant Polygons

Understand what is a re-entrant polygon

Self-touching Polygons

Understand what is a self-touching polygon

Polygons to avoid

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

Convex Polygons

Understand what is convex in X, Y or both

Sizing Techniques

Understand the various techniques used for sizing polygons

 

 

Basic Functions

Create and destroy instances of QisBool

QisBool_Create

Create an instance of QisBool

QisBool_Destroy

Destroy an instance of QisBool

QisBool_ErrorMsg

Get Error details when a QisBool function fails

 

 

Execution Control Functions

Control various settings that affect the Core functions

QisBoolOptions_SetOverlap

Control overlap amount between butting output polygons

QisBoolOptions_SetEnhancedValidation

Perform enhanced validation of input polygons

QisBoolOptions_SetValidationMode

Control the level of validation for input polygons

QisBoolOptions_SetDeEmbedding

Control whether polygons inside another are treated as holes

QisBoolOptions_SetMaxPoints

Specify maximum number of vertices in output polygons

QisBoolOptions_SetClipWindow

Set a clipping window

QisBoolOptions_SetPartUnion

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

QisBoolOptions_SetPartition

Control how the data is partitioned during Boolean operations

QisBoolOptions_SetPartitioningThreshold

Control the number of vertices per partition during auto-partitioning

QisBoolOptions_SetSizingMode

Specify how the polygons are sized during Boolean operations

QisBoolOptions_SetSizing

Specify amount of sizing for standard and isotropic sizing

QisBoolOptions_SetNonIsotrSizing

Specify the amount of non-isotropic sizing in X and Y

QisBoolOptions_SetRoundCorners

Control how round corners are handled for isotropic and non-isotropic sizing

QisBoolOptions_SetSmoothing

Smoothen polygon edges by removing edges smaller than a set threshold

QisBoolOptions_SetSliver

Remove output polygons smaller/thinner than a certain threshold

QisBoolOptions_SetChordError

Specify chord error for approximating the roundness of round paths

QisBoolOptions_SetLeonovInput

Specify if either of the input polygon sets contain Leonov polygons

QisBoolOptions_SetLeonovOutput

Specify how to output polygons with holes

QisBoolOptions_SetConvexOutput

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

QisBoolOptions_SetTestManhattan

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

QisBoolOptions_SetReturnSliceEdges

Remember butting-edges to be returned later using QisBool_GetSliceEdges

QisBoolOptions_SetEdgePtCompensation

Control the width/thickness of the lines returned by QisBool_GetSliceEdges

QisBoolOptions_SetForceUnion

Force union of input polygons even if they are Leonov

QisBoolOptions_Reset

Reset QisBool settings to default values

 

 

Core Execution Functions

Various Boolean operations

QisBool_Booleanize

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

QisBool_UnionMT

Perform multi-threaded union on a set of polygons

QisBool_BinaryMT

Perform multi-threaded intersection, difference and xor operations on two sets of polygons

 

 

Misc. Functions

Miscellaneous and Utility functions

QisBool_Version

Get QisBool version information

QisBool_Release

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

QisBool_ReleaseArray

Release memory allocated by QisBool to store an array of integers

QisBool_GetIllegalPolygonIndices

Get a list of co-ordinates where QisBool encountered illegal polygons in the input

QisBool_GetCutLines

Get a list of cutlines if a polygon has any

QisBool_GetSliceEdges

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

 

 

Polygon & Path Utility Functions

Perform operations on a single polygon or path

QisBool_ConvertToCounterClockwise

Re-order the polygon vertices to counter-clockwise direction

QisBool_GetPolygonArea

Get the area of a polygon

QisBool_PolyConvexing

Convert a polygon into one or more convex polygons

QisBool_RoundPathToBoundaries

Convert round path to boundaries

QisBool_Path2Boundaries

Convert flush or half-extended path to boundaries

QisBool_GroupConnectedPolygons

Group connected boundaries into sets

QisBool_BreakPolygonGetEdges

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

QisBool_BreakPolygons

Limit the number of vertices in the input polygons

QisBool_PolyCompensation

Resize a polygon using standard sizing

 

 

Intersection Check Utility Functions

Check if point/boundary/path cross specific regions

QisBool_IsPointInsidePolygon

Check the location of a point with respect to a polygon

QisBool_IsPointInPolygons

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

QisBool_IsObjectInRegion

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

QisBool_SetupWindows

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

QisBool_SetupRegions

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

QisBool_ReleaseRegions

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

QisBool_PolyCrossWindows

Check if a polygon crosses a set of rectangular windows

QisBool_PolyCrossRegions

Check if a polygon crosses a set of polygonal windows

QisBool_PolyCrossLeonovRegions

Check if a polygon crosses a set of leonov regions

 

 

Path Clipping Utility Functions

Clipping functions for Paths

QisBool_ClipPathToRegion

Clip a path to a polygonal region

QisBool_ClipPathToWindow

Clip a path to a rectangular window

QisBool_ClipPathToLeonov

Clip a path to a leonov region

QisBool_ClipPathToMultiRegions

Clip a path to multiple regions

 

 

Sample Code

 

booleanize

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

 

 

Version History

 

 

 

 

 

2012 Artwork Conversion Software Inc.

417 Ingalls St. Santa Cruz CA 95060

[T] +1 831-426-6163 [F] +1 831-426-2824 [E] info@artwork.com