483ce1bd |
1 | // Created by: Eugeny MALTCHIKOV |
2 | // Copyright (c) 2016 OPEN CASCADE SAS |
3 | // |
4 | // This file is part of Open CASCADE Technology software library. |
5 | // |
6 | // This library is free software; you can redistribute it and/or modify it under |
7 | // the terms of the GNU Lesser General Public License version 2.1 as published |
8 | // by the Free Software Foundation, with special exception defined in the file |
9 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
10 | // distribution for complete text of the license and disclaimer of any warranty. |
11 | // |
12 | // Alternatively, this file may be used under the terms of Open CASCADE |
13 | // commercial license or contractual agreement. |
14 | |
15 | #ifndef _BOPAlgo_GlueEnum_HeaderFile |
16 | #define _BOPAlgo_GlueEnum_HeaderFile |
17 | |
18 | //! The Enumeration describes an additional option for the algorithms |
19 | //! in the Boolean Component such as General Fuse, Boolean operations, |
aeee70d3 |
20 | //! Section, Maker Volume, Splitter and Cells Builder algorithms.<br> |
483ce1bd |
21 | //! |
22 | //! The Gluing options have been designed to speed up the computation |
23 | //! of the interference among arguments of the operations on special cases, |
24 | //! in which the arguments may be overlapping but do not have real intersections |
aeee70d3 |
25 | //! between their sub-shapes.<br> |
483ce1bd |
26 | //! |
27 | //! This option cannot be used on the shapes having real intersections, |
28 | //! like intersection vertex between edges, or intersection vertex between |
aeee70d3 |
29 | //! edge and a face or intersection line between faces.<br> |
483ce1bd |
30 | //! |
aeee70d3 |
31 | //! There are two possibilities of overlapping shapes:<br> |
483ce1bd |
32 | //! 1. The shapes can be partially coinciding - the faces do not have |
33 | //! intersection curves, but overlapping. The faces of such arguments will |
aeee70d3 |
34 | //! be split during the operation;<br> |
483ce1bd |
35 | //! 2. The shapes can be fully coinciding - there should be no partial |
36 | //! overlapping of the faces, thus no intersection of type EDGE/FACE at all. |
aeee70d3 |
37 | //! In such cases the faces will not be split during the operation.<br> |
483ce1bd |
38 | //! |
39 | //! Even though there are no real intersections on such cases without Gluing options the algorithm |
aeee70d3 |
40 | //! will still intersect the sub-shapes of the arguments with interfering bounding boxes.<br> |
483ce1bd |
41 | //! |
42 | //! The performance improvement in gluing mode is achieved by excluding |
aeee70d3 |
43 | //! the most time consuming computations according to the given Gluing parameter:<br> |
44 | //! 1. Computation of FACE/FACE intersections for partial coincidence;<br> |
45 | //! 2. And computation of VERTEX/FACE, EDGE/FACE and FACE/FACE intersections for full coincidence.<br> |
483ce1bd |
46 | //! |
47 | //! By setting the Gluing option for the operation user should guarantee |
48 | //! that the arguments are really coinciding. The algorithms do not check this itself. |
aeee70d3 |
49 | //! Setting inappropriate option for the operation is likely to lead to incorrect result.<br> |
483ce1bd |
50 | //! |
aeee70d3 |
51 | //! There are following items in the enumeration:<br> |
52 | //! **BOPAlgo_GlueOff** - default value for the algorithms, Gluing is switched off;<br> |
53 | //! **BOPAlgo_GlueShift** - Glue option for shapes with partial coincidence;<br> |
54 | //! **BOPAlgo_GlueFull** - Glue option for shapes with full coincidence. |
483ce1bd |
55 | //! |
483ce1bd |
56 | enum BOPAlgo_GlueEnum |
57 | { |
58 | BOPAlgo_GlueOff, |
59 | BOPAlgo_GlueShift, |
60 | BOPAlgo_GlueFull |
61 | }; |
62 | |
63 | #endif // _BOPAlgo_GlueEnum_HeaderFile |