0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / BOPDS / BOPDS_FaceInfo.hxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 2010-2014 OPEN CASCADE SAS
3 // Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
4 // Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
5 //                         EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 //
7 // This file is part of Open CASCADE Technology software library.
8 //
9 // This library is free software; you can redistribute it and/or modify it under
10 // the terms of the GNU Lesser General Public License version 2.1 as published
11 // by the Free Software Foundation, with special exception defined in the file
12 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
13 // distribution for complete text of the license and disclaimer of any warranty.
14 //
15 // Alternatively, this file may be used under the terms of Open CASCADE
16 // commercial license or contractual agreement.
17
18 #ifndef _BOPDS_FaceInfo_HeaderFile
19 #define _BOPDS_FaceInfo_HeaderFile
20
21 #include <Standard.hxx>
22 #include <Standard_DefineAlloc.hxx>
23 #include <Standard_Handle.hxx>
24
25 #include <BOPCol_BaseAllocator.hxx>
26 #include <Standard_Integer.hxx>
27 #include <BOPDS_IndexedMapOfPaveBlock.hxx>
28 #include <BOPCol_MapOfInteger.hxx>
29
30
31
32 //! The class BOPDS_FaceInfo is to store
33 //! handy information about state of face
34 class BOPDS_FaceInfo 
35 {
36 public:
37
38   DEFINE_STANDARD_ALLOC
39
40   
41
42   //! Empty contructor
43     BOPDS_FaceInfo();
44 virtual ~BOPDS_FaceInfo();
45   
46
47   //! Contructor
48   //! theAllocator - the allocator to manage the memory
49     BOPDS_FaceInfo(const BOPCol_BaseAllocator& theAllocator);
50   
51
52   //! Clears the contents
53   Standard_EXPORT void Clear();
54   
55
56   //! Modifier
57   //! Sets the index of the face <theI>
58     void SetIndex (const Standard_Integer theI);
59   
60
61   //! Selector
62   //! Returns the index of the face
63   //!
64   //! In
65     Standard_Integer Index() const;
66   
67
68   //! Selector
69   //! Returns the pave blocks of the face
70   //! that  have state In
71     const BOPDS_IndexedMapOfPaveBlock& PaveBlocksIn() const;
72   
73
74   //! Selector/Modifier
75   //! Returns the pave blocks
76   //! of the face
77   //! that  have state In
78     BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksIn();
79   
80
81   //! Selector
82   //! Returns the list of indices for vertices
83   //! of the face
84   //! that have state In
85     const BOPCol_MapOfInteger& VerticesIn() const;
86   
87
88   //! Selector/Modifier
89   //! Returns the list of indices for vertices
90   //! of the face
91   //! that have state In
92   //!
93   //! On
94     BOPCol_MapOfInteger& ChangeVerticesIn();
95   
96
97   //! Selector
98   //! Returns the pave blocks of the face
99   //! that  have state On
100     const BOPDS_IndexedMapOfPaveBlock& PaveBlocksOn() const;
101   
102
103   //! Selector/Modifier
104   //! Returns the pave blocks
105   //! of the face
106   //! that  have state On
107     BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksOn();
108   
109
110   //! Selector
111   //! Returns the list of indices for vertices
112   //! of the face
113   //! that have state On
114     const BOPCol_MapOfInteger& VerticesOn() const;
115   
116
117   //! Selector/Modifier
118   //! Returns the list of indices for vertices
119   //! of the face
120   //! that have state On
121   //!
122   //! Sections
123     BOPCol_MapOfInteger& ChangeVerticesOn();
124   
125
126   //! Selector
127   //! Returns the pave blocks of the face
128   //! that are  pave blocks of section edges
129     const BOPDS_IndexedMapOfPaveBlock& PaveBlocksSc() const;
130   
131     BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksSc();
132   
133
134   //! Selector
135   //! Returns the list of indices for section  vertices
136   //! of the face
137     const BOPCol_MapOfInteger& VerticesSc() const;
138   
139
140   //! Selector/Modifier
141   //! Returns the list of indices for section  vertices
142   //! of the face
143   //!
144   //! Others
145     BOPCol_MapOfInteger& ChangeVerticesSc();
146
147
148
149
150 protected:
151
152
153
154   BOPCol_BaseAllocator myAllocator;
155   Standard_Integer myIndex;
156   BOPDS_IndexedMapOfPaveBlock myPaveBlocksIn;
157   BOPCol_MapOfInteger myVerticesIn;
158   BOPDS_IndexedMapOfPaveBlock myPaveBlocksOn;
159   BOPCol_MapOfInteger myVerticesOn;
160   BOPDS_IndexedMapOfPaveBlock myPaveBlocksSc;
161   BOPCol_MapOfInteger myVerticesSc;
162
163
164 private:
165
166
167
168
169
170 };
171
172
173 #include <BOPDS_FaceInfo.lxx>
174
175
176
177
178
179 #endif // _BOPDS_FaceInfo_HeaderFile