OA_BOOL APIOA_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 ClassThis 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 ClassThis 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 ClassThis 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 ClassThis 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 |
|