/*!
\page using_boolean_operations_page Boolean Operations
For a detailed description of Boolean operations refer to
this document.
It provides a general review of the Partition and Boolean
operations algorithms, describes the usage methodology and highlights
major limitations of these operations.
You can use the following boolean operations for construction of more
complex geometrical objects (2D & 3D elements):
- \subpage fuse_operation_page "Fuse" - creates a shape from a list of shapes.
- \subpage common_operation_page "Common" - transforms the common part
of a list of objects into an independent object.
- \subpage cut_operation_page "Cut" - cuts one shape with
a list of others.
- \subpage section_operation_page "Intersection" - performs an intersection between two shapes.
You can use advanced TUI commands performing these operations
independently from each other:
\par
geompy.MakeFuseList(theShapesList, checkSelfInte, rmExtraEdges), where \em theShapesList is
the list of shapes for Fuse operation;
\par
geompy.MakeCommonList(theShapesList, checkSelfInte), where \em theShapesList is
the list of shapes for Common operation;
\par
geompy.MakeCutList(theMainShape, theShapesList, checkSelfInte), where \em
theMainShape is the object of the operation and \em theShapesList is
the list of tools for Cut operation;
\par
geompy.MakeSection(Shape1, Shape2, checkSelfInte), where \em Shape1 is the first
argument and \em Shape2 is the second argument of Intersection operation;
There are several TUI commands that can be used to perform boolean operations
with only two arguments. There is a general TUI command covering these
operations, which can be used alongside with separate commands for each
operation.
\par
geompy.MakeBoolean(Shape1, Shape2, Operation, checkSelfInte), where \em
Shape1 is the first argument and \em Shape2 is the second argument of
a Boolean operation, \em Operation is the type of a Boolean operation (1
— Common, 2 — Cut, 3 — Fuse, 4 — Intersection).
Besides, you can use advanced TUI commands performing these operations
independently from each other:
\par
geompy.MakeFuse(Shape1, Shape2, checkSelfInte, rmExtraEdges), where \em Shape1 is the first
argument and \em Shape2 is the second argument of Fuse operation;
\par
geompy.MakeCommon(Shape1, Shape2, checkSelfInte), where \em Shape1 is the first
argument and \em Shape2 is the second argument of Common operation;
\par
geompy.MakeCut(Shape1, Shape2, checkSelfInte), where \em Shape1 is the first
argument and \em Shape2 is the second argument of Cut operation;
The flag \em checkSelfInte indicates whether the arguments should be checked for
self-intersection prior to an operation. Its default value is \em False, which
means that there is no need to check it. This option is provided to ensure that
an operation is performed on not self-intersected shapes as they are
not valid for boolean operations.
\note This algorithm does not find all types of self-intersections. It is tuned
to detect vertex/vertex, vertex/edge, edge/edge, vertex/face and edge/face
intersections. Face/face intersections detection is switched off as it
is a time-consuming operation that gives an impact on performance. To find
all self-intersections use \ref check_self_intersections_page
"Detect Self-intersection tool".
The flag \em rmExtraEdges is used for \em MakeFuseList and \em MakeFuse
operations only. It indicates if Remove Extra Edges operation should be
performed during the operation. Its default value is \em False, which
means that there is no need to do it.
\note \em rmExtraEdges is not available for \em MakeBoolean call with
operation type 3 (Fuse). \em MakeBoolean operation doesn't perform
Remove Extra Edges. So the call geompy.MakeBoolean(Shape1, Shape2,
3, checkSelfInte) is equivalent to geompy.MakeFuse(Shape1,
Shape2, checkSelfInte, False).
Our TUI Scripts provide you with useful examples of the use of
\ref tui_boolean_operations_page "Boolean Operations".
*/