0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- automatic
[occt.git] / src / BRepCheck / BRepCheck_Solid.hxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 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 _BRepCheck_Solid_HeaderFile
16 #define _BRepCheck_Solid_HeaderFile
17
18 #include <Standard.hxx>
19 #include <Standard_Type.hxx>
20
21 #include <BRepCheck_Result.hxx>
22 class TopoDS_Solid;
23 class TopoDS_Shape;
24
25
26 class BRepCheck_Solid;
27 DEFINE_STANDARD_HANDLE(BRepCheck_Solid, BRepCheck_Result)
28
29 //! The class is to check a solid.
30 class BRepCheck_Solid : public BRepCheck_Result
31 {
32
33 public:
34
35   
36
37   //! Constructor
38   //! <theS> is the solid to check
39   Standard_EXPORT BRepCheck_Solid(const TopoDS_Solid& theS);
40   
41
42   //! Checks the solid in context of
43   //! the shape <theContextShape>
44   Standard_EXPORT virtual void InContext (const TopoDS_Shape& theContextShape) Standard_OVERRIDE;
45   
46
47   //! Checks the solid per se.
48   //!
49   //! The scan area is:
50   //! 1.  Shells that overlaps each other
51   //! Status:  BRepCheck_InvalidImbricationOfShells
52   //!
53   //! 2.  Detached parts of the solid (vertices, edges)
54   //! that have non-internal orientation
55   //! Status:  BRepCheck_BadOrientationOfSubshape
56   //!
57   //! 3.  For closed, non-internal shells:
58   //! 3.1 Shells containing entities  of the solid that
59   //! are outside towards the shells
60   //! Status:  BRepCheck_SubshapeNotInShape
61   //!
62   //! 3.2 Shells that encloses other Shells
63   //! (for non-holes)
64   //! Status:  BRepCheck_EnclosedRegion
65   Standard_EXPORT virtual void Minimum() Standard_OVERRIDE;
66   
67
68   //! see the parent class for more details
69   Standard_EXPORT virtual void Blind() Standard_OVERRIDE;
70
71
72
73
74   DEFINE_STANDARD_RTTIEXT(BRepCheck_Solid,BRepCheck_Result)
75
76 protected:
77
78
79
80
81 private:
82
83
84
85
86 };
87
88
89
90
91
92
93
94 #endif // _BRepCheck_Solid_HeaderFile