the fair gds editor MacroClassBooleanHandler
Please Sign in

BooleanHandler Class Reference

A module to perform boolean operations. More...

See also: BooleanTools, List of Classes


Detailed Description

Via this class it is possible to access the boolean utility. All operation between two set of shapes can be performed. The result of the boolean operation is added to the currentCell in the drawing to the active layer unless otherwise specified. The result is selected. After any boolean operation the two sets of shapes will be reset. The source shapes may remain in the design or will be deleted depending on the called boolean operation..

   1 layout->drawing->currentCell->fSelect(rect1);
   2 layout->booleanTool->setA();
   3 layout->drawing->currentCell->fSelect(rect2);
   4 layout->booleanTool->setB();
   5 layout->drawing->activeLayer=1;
   6 layout->booleanTool->aPlusB();

Member Function Documentation

void booleanHandler::aExorB()

The exor of A and B is added on the active Layer.

void booleanHandler::aExorBDel()

The exor of A and B is added on the active Layer. Shapes belonging to group A and group B are deleted, if it still exists unmodified in the current cell.

void booleanHandler::aExorBDelA()

The exor of A and B is added on the active Layer. Shapes belonging to group A are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::aExorBDelB()

The exor of A and B is added on the active Layer. Shapes belonging to group B are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::aMinusB()

The difference of A and B is added on the active Layer.

void booleanHandler::aMinusBDel()

The difference of A and B is added on the active Layer. Shapes belonging to group A and group B are deleted, if it still exists unmodified in the current cell.

void booleanHandler::aMinusBDelA()

The difference of A and B is added on the active Layer. Shapes belonging to group A are deleted, if it still exists unmodified in the current cell.

void booleanHandler::aMinusBDelB()

The difference of A and B is added on the active Layer. Shapes belonging to group B are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::aMultiB()

The intersection of A and B is added on the active Layer.

void booleanHandler::aMultiBDel()

The intersection of A and B is added on the active Layer. Shapes belonging to group A and group B are deleted, if it still exists unmodified in the current cell.

void booleanHandler::aMultiBDelA()

The intersection of A and B is added on the active Layer. Shapes belonging to group A are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::aMultiBDelB()

The intersection of A and B is added on the active Layer. Shapes belonging to group B are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::aPlusB()

The sum of A and B is added on the active Layer.

void booleanHandler::aPlusBDel()

The sum of A and B is added on the active Layer. Shapes belonging to group A and B are deleted, if it still exists unmodified in the current cell.

void booleanHandler::aPlusBDelA()

The sum of A and B is added on the active Layer. Shapes belonging to group A are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::aPlusBDelB()

The sum of A and B is added on the active Layer. Shapes belonging to group B are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::addA(pointArray pointarray)

adds the polygon to group A.

void booleanHandler::addB(pointArray pointarray)

adds the polygon to group B.

void booleanHandler::addLayerA(int layer)

adds all element including hierarchical element on layer in the current cell to group A. Added shapes will never be deleted after the boolean operation.

void booleanHandler::addLayerB(int layer)

adds all element including hierarchical element on layer in the current cell to group B. Added shapes will never be deleted after the boolean operation.

void booleanHandler::bMinusA()

The difference of group B and group A is added on the active Layer.

void booleanHandler::bMinusADel()

The difference of B and A is added on the active Layer. Shapes belonging to group A and group B are deleted, if it still exists unmodified in the current cell.

void booleanHandler::bMinusADelA()

The difference of B and A is added on the active Layer. Shapes belonging to group A are deleted, if it still exists unmodified in the current cell. (introduced with version 20161211)

void booleanHandler::bMinusADelB()

The difference of B and A is added on the active Layer. Shapes belonging to group B are deleted, if it still exists unmodified in the current cell.

void booleanHandler::boolOnLayer(int layerA,int layerB,int layerResult,string operation,int nx=0,int ny=0, int borderMerge=0)

Performs a boolean operation between layerA and layerB. The result is added to layerResult. The boolean operation is set by operation. Valid parameters are: "A+B", "A-B", "B-A", "A*B", "AeorB", AxorB", "A merge", A xor", "A invert" (introduced with version 20130614). The boolean operation is splitten into frames. The number of frames is calculated automaticly, if nx and ny is set to 0. Otherwise nx times ny frames are used. This operation will reset a previous setA, setB, etc. to the boolean engine. Previous set shapes are ignored.

borderMerge will define how the borders of the frames are handled (introduced with version 20130101):

0

only small shapes are merged at the border

1

shapes at frame border are not merged

2

all border shapes are merged

pointArray booleanHandler::getResultingPolygon()

Returns: one pointarray of the previous boolean operation, if it was made with performAEorB(), performAMinusB(), performAMultiB(), performAPlusB(), performBMinusA(). If the boolean operation result in more polygons, consequent call will return the next pointarray. A empty pointarray is return, if no more pointarray are available or a other boolean operation as mentioned before was made.

void booleanHandler::mergeSelect(int layer)

Selected elements will be merged and added to layer.

void booleanHandler::performAEorB()

The operation A exclusive or B is performed. Use the result with getResultingPolygon(), setResultToA() or setResultToB().

void booleanHandler::performAMinusB()

The operation A minus B is performed. Use the result with getResultingPolygon(), setResultToA() or setResultToB().

void booleanHandler::performAMultiB()

The intersection of A nad B is performed. Use the result with getResultingPolygon(), setResultToA() or setResultToB().

void booleanHandler::performAPlusB()

The operation A and B is performed. Use the result with getResultingPolygon(), setResultToA() or setResultToB().

void booleanHandler::performBMinusA()

The operation B minus A is performed. Use the result with getResultingPolygon(), setResultToA() or setResultToB().

void booleanHandler::setA()

Selected elements will be added to the group A. All elements will be deselected.

void booleanHandler::setB()

Selected elements will be added to the group B. All elements will be deselected.

void booleanHandler::setResultToA()

The result of the previous boolean operation, if it was made with performAEorB(), performAMinusB(), performAMultiB(), performAPlusB(), performBMinusA(), is set to group A for a following operation.

void booleanHandler::setResultToB()

The resultof the previous boolean operation, if it was made with performAEorB(), performAMinusB(), performAMultiB(), performAPlusB(), performBMinusA(), is set to group B for a following operation.

See also


CategoryMacroClass


MacroClassBooleanHandler (last edited 2017-03-22 15:17:10 by JurgenThies)