open access web page header

OA_BOOL API

OA_BOOL is an plug-in engine designed to provide boolean operations for the Open Access environment. The class and function descriptions are listed below:


acsBoolSettings Class


This class is used to define the boolean's different flags and parameters.

acsBoolSettings Public Functions

Function Description
acsBoolSettings(); This function is the acsBoolSettings' constructor.
It creates an object acsBoolSettings with default values.
acsBoolSettings();
~acsBoolSettings This function is the acsBoolSettings' destructor.
It destroys an object of acsBoolSettings.
~acsBoolSettings();
acsClear This function resets the values of the acsBoolSettings object’s variables to the default values.
void acsClear();

acsBoolSettings Public Variables

Variable Description
acs_MaxPoint

The maximum number of vertices per boundary. Positive Integer value > 200

acs_ReversalMode

Reversal Mode, if set, performs a final boolean to reverse the output polarity. An integer: 0=no reversal and 1=reversal.

acs_RoundCornerMode

Controls how the corners of polygons (where the angle is less than 90) are dealt with during boolean and sizing operations. 1 = right angle, 2 = use three point smoothing, 3 = use five point smoothing

acs_ConvexMode

Controls how the polygons are output. 0 = no convex postprocessor, 1 = break polygons if needed so they are convex in X, 2 = break into convex pieces, 3 = break into trapezoids.

acs_SizingMode

If turned "on" output polygons are sized up or down by the specified value (see acsSizingVal). There are two different sizing algorithms. For small sizings of Manhattan data the standard sizing is fast and correct. For large sizings or if data is non-manhattan incremental sizing will produce "better" results. 0 = no sizing, 1 = standard sizing, 2 = incremental sizing.

acs_SizingVal

defines the amount of sizing. Positive increases the area of the polygon - negative decreases it. This is a double.

acs_SmoothVal

Output polygons can be smoothed by removing closely spaced vertices. The SmoothVal defines the smallest distance between vertices. If set to 0, no smoothing is performed. SmoothVal is double.

acs_SliverVal

Slivers are "tiny" pieces of metal left over after a boolean operation, generally due to numerical noise. They can be identified and removed if the SliverVal is defined. SliverVal is a double. 0 = no removal. Positive > 0 values indicate size of sliver to remove.


acsOaLayerPurposePair Class


This class is used to define the boolean's primary (and secondary if appropriate) layer purpose pair operands.

acsOaLayerPurposePair Public Functions

Function Description
acsOaLayerPurposePair l: layer number of the object.
p: purpose number of the object.
acsOaLayerPurposePair(oaLayerNum l, oaPurposeNum p);
~acsOaLayerPurposePair This function is the acsOaLayerPurposePair's destructor. It destroys an object of acsOaLayerPurposePair.
~acsOaLayerPurposePair();

acsOaLayerPurposePair Public Variables

Variable Description
layer

oaLayerNum value (unsigned integer) This variable defines the operands’ layer number.

purpose

RoaPurposeNum value (unsigned integer)This variable defines the operand’s purpose number.


acsOaPolygon Class


This class defines the Boolean operation’s secondary polygon operands. One can use such a polygon operand to "clip" out regions from a layer.

acsOaPolygon Public Functions

Function Description
acsOaPolygon This function is the acsOaPolygon's constructor. It creates an object of acsOaPolygon with default values.
acsOaPolygon();
~acsOaPolygon This function is the acsOaPolygon's destructor. It destroys an object of acsOaPolygon.
~acsOaPolygon();

acsOaPolygon Public Variables

Variable Description
xyVert

an integer pointer. This variable defines the polygon's vertices. Note that the first and last vertex are the same.

numVert

Integer value. This variable defines the polygon operand’s number of vertices. Count must reflect the fact that the first/last vertex are the same. So a rectangle has a numVert = 5.


acsOaShapeQuery Class


This class runs a Shape Query from a specified design's region. It can return shapes directly or pass them through a boolean operation if the preprocess flag is set. This class is abstract. The user must derive a subclass that implements the virtual class acsOaQueryShape

acsOaShapeQuery Public Functions

Function Description
acsShapeQuery Constructor that initialises any object belonging to this class.
acsShapeQuery();
~acsShapeQuery Destructor responsible for cleanup.
virtual ~acsShapeQuery();
query Calling this function triggers a region query; data is returned to the calling program “through” the Boolean processor.
void query(<arguments>);
queryShape By means of this callback function, the Boolean Processor will get query data from the OA DB based on the various query parameters specified by the user.
void queryShape(oaShape* shape);
acsQueryShape By means of this callback function -- which the user must implement -- the Boolean Processor returns booleanized (or original OA Data) to the user’s program. - The user can terminate data processing by returning a special code when this function is called.
virtual int acsQueryShape
 (oaShape* shape, int ErrorCode, int StatusPercent) = 0;
acsSetPreProcess Allows user to control whether the data is booleanized by the Boolean processor or returned “as is” from the OA database.
void acsSetPreProcess(bool OnOff = true);
acsGetPreProcess Retrieves status indicating whether the Boolean is enabled.
bool acsGetPreProcess();
acsBoolSetPrimary Specifies the primary input layer/layer purpose set on which the Boolean will operate.
void acsBoolSetPrimary
 (acsLayerPurposePair** InputSet, int NumLayers);
acsBoolSetSecondary Specifies the secondary input layer/layer purpose set on which the Boolean will operate.
void acsBoolSetSecondary
 (acsLayerPurposePair** InputSet, int NumLayers);
acsBoolSetSecondary Specifies the secondary set on which the boolean will operate -- a set of polygons to be used instead of a layer/layer purpose pair.
void acsBoolSetSecondary
 ((acsPolygon** PolygonSet, int NumPolygons);
acsBoolSetOperator Specifies the boolean operation: union, intersection, XOR, sizing ....
void acsBoolSetOperator(acsOperator Operation);
acsBoolSetModifiers define settings which flavor the boolean operation. See the acsBoolSettings class for details.
void acsBoolSetModifiers
 (const acsBoolSettings& Settings);
acsBoolGetModifiers retrieve the current boolean settings.
void acsBoolGetModifiers
 (acsBoolSettings& Settings);
acsBoolInit initializes the plugin; needs to be called once before any plugin functionalities may be used. Typically called at the beginning of the user program. License acquisition is handled by this function.
static void acsBoolInit();
acsBoolClose Should be called once after the plugin is not needed anymore. This function returns license token obtained upon initialization.
static void acsBoolClose();
acsBoolClear returns the object of this class to the default state so that it can be used again.
void acsBoolClear();



OA Main Page API Download Revision History Sample Code


ARTWORK CONVERSION SOFTWARE, INC.       Company Profile
417 Ingalls St., Santa Cruz, CA 95060    Tel (831) 426-6163     Fax 426-2824    email: info@artwork.com