0031836: Modeling Algorithms - Boolean cut failed between a Cone and a Torus
[occt.git] / src / BOPAlgo / BOPAlgo_SectionAttribute.hxx
1 // Created on: 2002-03-04
2 // Created by: Michael KLOKOV
3 // Copyright (c) 2002-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef _BOPAlgo_SectionAttribute_HeaderFile
17 #define _BOPAlgo_SectionAttribute_HeaderFile
18
19 #include <Standard_Boolean.hxx>
20
21 //! Class is a container of the flags used
22 //! by intersection algorithm
23 class BOPAlgo_SectionAttribute
24 {
25 public:
26
27   //! Default constructor
28   BOPAlgo_SectionAttribute()
29     : myApproximation(Standard_True),
30       myPCurve1(Standard_True),
31       myPCurve2(Standard_True) {}
32
33   //! Constructor
34   BOPAlgo_SectionAttribute(const Standard_Boolean theAproximation,
35                            const Standard_Boolean thePCurveOnS1,
36                            const Standard_Boolean thePCurveOnS2)
37     : myApproximation(theAproximation),
38       myPCurve1(thePCurveOnS1),
39       myPCurve2(thePCurveOnS2) {}
40
41   //! Sets the Approximation flag
42   void Approximation(const Standard_Boolean theApprox)
43   {
44     myApproximation = theApprox;
45   }
46
47   //! Sets the PCurveOnS1 flag
48   void PCurveOnS1(const Standard_Boolean thePCurveOnS1)
49   {
50     myPCurve1 = thePCurveOnS1;
51   }
52
53   //! Sets the PCurveOnS2 flag
54   void PCurveOnS2(const Standard_Boolean thePCurveOnS2)
55   {
56     myPCurve2 = thePCurveOnS2;
57   }
58
59   //! Returns the Approximation flag
60   Standard_Boolean Approximation() const
61   {
62     return myApproximation;
63   }
64
65   //! Returns the PCurveOnS1 flag
66   Standard_Boolean PCurveOnS1() const
67   {
68     return myPCurve1;
69   }
70
71   //! Returns the PCurveOnS2 flag
72   Standard_Boolean PCurveOnS2() const
73   {
74     return myPCurve2;
75   }
76
77 protected:
78
79 private:
80
81   Standard_Boolean myApproximation;
82   Standard_Boolean myPCurve1;
83   Standard_Boolean myPCurve2;
84
85 };
86
87 #endif // _BOPAlgo_SectionAttribute_HeaderFile