42cf5bc1 |
1 | // Created by: Peter KURNEV |
2 | // Copyright (c) 1999-2014 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_Section_HeaderFile |
16 | #define _BOPAlgo_Section_HeaderFile |
17 | |
18 | #include <Standard.hxx> |
19 | #include <Standard_DefineAlloc.hxx> |
20 | #include <Standard_Handle.hxx> |
21 | |
22 | #include <BOPAlgo_Builder.hxx> |
1155d05a |
23 | #include <NCollection_BaseAllocator.hxx> |
42cf5bc1 |
24 | #include <TopTools_ListOfShape.hxx> |
25 | class BOPAlgo_PaveFiller; |
26 | class TopoDS_Shape; |
27 | |
28 | |
29 | |
45b9409a |
30 | //! The algorithm to build a Section between the arguments. |
42cf5bc1 |
31 | //! The Section consists of vertices and edges. |
32 | //! The Section contains: |
33 | //! 1. new vertices that are subjects of V/V, E/E, E/F, F/F interferences |
34 | //! 2. vertices that are subjects of V/E, V/F interferences |
35 | //! 3. new edges that are subjects of F/F interferences |
36 | //! 4. edges that are Common Blocks |
37 | class BOPAlgo_Section : public BOPAlgo_Builder |
38 | { |
39 | public: |
40 | |
41 | DEFINE_STANDARD_ALLOC |
42 | |
42cf5bc1 |
43 | //! Empty constructor |
44 | Standard_EXPORT BOPAlgo_Section(); |
33ba8565 |
45 | Standard_EXPORT virtual ~BOPAlgo_Section(); |
42cf5bc1 |
46 | |
803a8caf |
47 | //! Constructor with allocator |
48 | Standard_EXPORT BOPAlgo_Section(const Handle(NCollection_BaseAllocator)& theAllocator); |
42cf5bc1 |
49 | |
42cf5bc1 |
50 | protected: |
51 | |
803a8caf |
52 | //! Checks the data before performing the operation |
42cf5bc1 |
53 | Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; |
803a8caf |
54 | |
55 | //! Combine the result of section operation |
56 | Standard_EXPORT virtual void BuildSection(); |
57 | |
58 | //! Performs calculations using prepared Filler object <thePF> |
59 | Standard_EXPORT virtual void PerformInternal1(const BOPAlgo_PaveFiller& thePF) Standard_OVERRIDE; |
42cf5bc1 |
60 | |
42cf5bc1 |
61 | private: |
62 | |
42cf5bc1 |
63 | }; |
64 | |
42cf5bc1 |
65 | #endif // _BOPAlgo_Section_HeaderFile |