0024002: Overall code and build procedure refactoring -- automatic
[occt.git] / src / BOPDS / BOPDS_FaceInfo.hxx
CommitLineData
42cf5bc1 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
34class BOPDS_FaceInfo
35{
36public:
37
38 DEFINE_STANDARD_ALLOC
39
40
41
42 //! Empty contructor
43 BOPDS_FaceInfo();
44virtual ~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
150protected:
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
164private:
165
166
167
168
169
170};
171
172
173#include <BOPDS_FaceInfo.lxx>
174
175
176
177
178
179#endif // _BOPDS_FaceInfo_HeaderFile