42cf5bc1 |
1 | // Created on: 1992-09-21 |
2 | // Created by: Christian CAILLET |
3 | // Copyright (c) 1992-1999 Matra Datavision |
4 | // Copyright (c) 1999-2014 OPEN CASCADE SAS |
5 | // |
6 | // This file is part of Open CASCADE Technology software library. |
7 | // |
8 | // This library is free software; you can redistribute it and/or modify it under |
9 | // the terms of the GNU Lesser General Public License version 2.1 as published |
10 | // by the Free Software Foundation, with special exception defined in the file |
11 | // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT |
12 | // distribution for complete text of the license and disclaimer of any warranty. |
13 | // |
14 | // Alternatively, this file may be used under the terms of Open CASCADE |
15 | // commercial license or contractual agreement. |
16 | |
17 | #ifndef _IFSelect_HeaderFile |
18 | #define _IFSelect_HeaderFile |
19 | |
20 | #include <Standard.hxx> |
21 | #include <Standard_DefineAlloc.hxx> |
22 | #include <Standard_Handle.hxx> |
23 | |
24 | #include <Standard_Boolean.hxx> |
25 | #include <Standard_CString.hxx> |
26 | class IFSelect_WorkSession; |
27 | class IFSelect_Signature; |
28 | class IFSelect_SignMultiple; |
29 | class IFSelect_SignType; |
30 | class IFSelect_SignCategory; |
31 | class IFSelect_SignValidity; |
32 | class IFSelect_SignAncestor; |
33 | class IFSelect_ShareOut; |
34 | class IFSelect_AppliedModifiers; |
35 | class IFSelect_ShareOutResult; |
36 | class IFSelect_PacketList; |
37 | class IFSelect_Dispatch; |
38 | class IFSelect_DispGlobal; |
39 | class IFSelect_DispPerOne; |
40 | class IFSelect_DispPerCount; |
41 | class IFSelect_DispPerSignature; |
42 | class IFSelect_DispPerFiles; |
43 | class IFSelect_SelectionIterator; |
44 | class IFSelect_Selection; |
45 | class IFSelect_SelectBase; |
46 | class IFSelect_SelectModelRoots; |
47 | class IFSelect_SelectModelEntities; |
48 | class IFSelect_SelectEntityNumber; |
49 | class IFSelect_SelectPointed; |
50 | class IFSelect_SelectCombine; |
51 | class IFSelect_SelectUnion; |
52 | class IFSelect_SelectIntersection; |
53 | class IFSelect_SelectControl; |
54 | class IFSelect_SelectDiff; |
55 | class IFSelect_SelectDeduct; |
56 | class IFSelect_SelectShared; |
57 | class IFSelect_SelectSharing; |
58 | class IFSelect_SelectAnyList; |
59 | class IFSelect_SelectInList; |
60 | class IFSelect_SelectSuite; |
61 | class IFSelect_SelectExtract; |
62 | class IFSelect_SelectUnknownEntities; |
63 | class IFSelect_SelectErrorEntities; |
64 | class IFSelect_SelectIncorrectEntities; |
65 | class IFSelect_SelectRoots; |
66 | class IFSelect_SelectRootComps; |
67 | class IFSelect_SelectRange; |
68 | class IFSelect_SelectAnyType; |
69 | class IFSelect_SelectType; |
70 | class IFSelect_SelectSignature; |
71 | class IFSelect_SelectFlag; |
72 | class IFSelect_SelectSent; |
73 | class IFSelect_SelectExplore; |
74 | class IFSelect_SelectSignedShared; |
75 | class IFSelect_SelectSignedSharing; |
76 | class IFSelect_IntParam; |
77 | class IFSelect_SignatureList; |
78 | class IFSelect_CheckCounter; |
79 | class IFSelect_SignCounter; |
80 | class IFSelect_GraphCounter; |
81 | class IFSelect_Editor; |
82 | class IFSelect_ParamEditor; |
83 | class IFSelect_EditForm; |
84 | class IFSelect_ListEditor; |
85 | class IFSelect_ContextModif; |
86 | class IFSelect_ContextWrite; |
87 | class IFSelect_Transformer; |
88 | class IFSelect_TransformStandard; |
89 | class IFSelect_ModelCopier; |
90 | class IFSelect_GeneralModifier; |
91 | class IFSelect_Modifier; |
92 | class IFSelect_ModifReorder; |
93 | class IFSelect_ModifEditForm; |
94 | class IFSelect_FileModifier; |
95 | class IFSelect_ModelModifier; |
96 | class IFSelect_WorkSession; |
97 | class IFSelect_WorkLibrary; |
98 | class IFSelect_SessionFile; |
99 | class IFSelect_SessionDumper; |
100 | class IFSelect_BasicDumper; |
101 | class IFSelect_Activator; |
102 | class IFSelect_SessionPilot; |
103 | class IFSelect_Act; |
104 | class IFSelect_Functions; |
105 | |
106 | |
107 | //! Gives tools to manage Selecting a group of Entities |
108 | //! processed by an Interface, for instance to divide up an |
109 | //! original Model (from a File) to several smaller ones |
110 | //! They use description of an Interface Model as a graph |
111 | //! |
112 | //! Remark that this corresponds to the description of a |
113 | //! "scenario" of sharing out a File. Parts of this Scenario |
114 | //! are intended to be permanently stored. IFSelect provides |
115 | //! the Transient, active counterparts (to run the Scenario). |
116 | //! But a permanent one (either as Persistent Objects or as |
117 | //! interpretable Text) must be provided elsewhere. |
118 | class IFSelect |
119 | { |
120 | public: |
121 | |
122 | DEFINE_STANDARD_ALLOC |
123 | |
124 | |
125 | //! Saves the state of a WorkSession from IFSelect, by using a |
126 | //! SessionFile from IFSelect. Returns True if Done, False in |
127 | //! case of Error on Writing. <file> gives the name of the File |
128 | //! to be produced (this avoids to export the class SessionFile). |
129 | Standard_EXPORT static Standard_Boolean SaveSession (const Handle(IFSelect_WorkSession)& WS, const Standard_CString file); |
130 | |
131 | //! Restore the state of a WorkSession from IFSelect, by using a |
132 | //! SessionFile from IFSelect. Returns True if Done, False in |
133 | //! case of Error on Writing. <file> gives the name of the File |
134 | //! to be used (this avoids to export the class SessionFile). |
135 | Standard_EXPORT static Standard_Boolean RestoreSession (const Handle(IFSelect_WorkSession)& WS, const Standard_CString file); |
136 | |
137 | |
138 | |
139 | |
140 | protected: |
141 | |
142 | |
143 | |
144 | |
145 | |
146 | private: |
147 | |
148 | |
149 | |
150 | |
151 | friend class IFSelect_Signature; |
152 | friend class IFSelect_SignMultiple; |
153 | friend class IFSelect_SignType; |
154 | friend class IFSelect_SignCategory; |
155 | friend class IFSelect_SignValidity; |
156 | friend class IFSelect_SignAncestor; |
157 | friend class IFSelect_ShareOut; |
158 | friend class IFSelect_AppliedModifiers; |
159 | friend class IFSelect_ShareOutResult; |
160 | friend class IFSelect_PacketList; |
161 | friend class IFSelect_Dispatch; |
162 | friend class IFSelect_DispGlobal; |
163 | friend class IFSelect_DispPerOne; |
164 | friend class IFSelect_DispPerCount; |
165 | friend class IFSelect_DispPerSignature; |
166 | friend class IFSelect_DispPerFiles; |
167 | friend class IFSelect_SelectionIterator; |
168 | friend class IFSelect_Selection; |
169 | friend class IFSelect_SelectBase; |
170 | friend class IFSelect_SelectModelRoots; |
171 | friend class IFSelect_SelectModelEntities; |
172 | friend class IFSelect_SelectEntityNumber; |
173 | friend class IFSelect_SelectPointed; |
174 | friend class IFSelect_SelectCombine; |
175 | friend class IFSelect_SelectUnion; |
176 | friend class IFSelect_SelectIntersection; |
177 | friend class IFSelect_SelectControl; |
178 | friend class IFSelect_SelectDiff; |
179 | friend class IFSelect_SelectDeduct; |
180 | friend class IFSelect_SelectShared; |
181 | friend class IFSelect_SelectSharing; |
182 | friend class IFSelect_SelectAnyList; |
183 | friend class IFSelect_SelectInList; |
184 | friend class IFSelect_SelectSuite; |
185 | friend class IFSelect_SelectExtract; |
186 | friend class IFSelect_SelectUnknownEntities; |
187 | friend class IFSelect_SelectErrorEntities; |
188 | friend class IFSelect_SelectIncorrectEntities; |
189 | friend class IFSelect_SelectRoots; |
190 | friend class IFSelect_SelectRootComps; |
191 | friend class IFSelect_SelectRange; |
192 | friend class IFSelect_SelectAnyType; |
193 | friend class IFSelect_SelectType; |
194 | friend class IFSelect_SelectSignature; |
195 | friend class IFSelect_SelectFlag; |
196 | friend class IFSelect_SelectSent; |
197 | friend class IFSelect_SelectExplore; |
198 | friend class IFSelect_SelectSignedShared; |
199 | friend class IFSelect_SelectSignedSharing; |
200 | friend class IFSelect_IntParam; |
201 | friend class IFSelect_SignatureList; |
202 | friend class IFSelect_CheckCounter; |
203 | friend class IFSelect_SignCounter; |
204 | friend class IFSelect_GraphCounter; |
205 | friend class IFSelect_Editor; |
206 | friend class IFSelect_ParamEditor; |
207 | friend class IFSelect_EditForm; |
208 | friend class IFSelect_ListEditor; |
209 | friend class IFSelect_ContextModif; |
210 | friend class IFSelect_ContextWrite; |
211 | friend class IFSelect_Transformer; |
212 | friend class IFSelect_TransformStandard; |
213 | friend class IFSelect_ModelCopier; |
214 | friend class IFSelect_GeneralModifier; |
215 | friend class IFSelect_Modifier; |
216 | friend class IFSelect_ModifReorder; |
217 | friend class IFSelect_ModifEditForm; |
218 | friend class IFSelect_FileModifier; |
219 | friend class IFSelect_ModelModifier; |
220 | friend class IFSelect_WorkSession; |
221 | friend class IFSelect_WorkLibrary; |
222 | friend class IFSelect_SessionFile; |
223 | friend class IFSelect_SessionDumper; |
224 | friend class IFSelect_BasicDumper; |
225 | friend class IFSelect_Activator; |
226 | friend class IFSelect_SessionPilot; |
227 | friend class IFSelect_Act; |
228 | friend class IFSelect_Functions; |
229 | |
230 | }; |
231 | |
232 | |
233 | |
234 | |
235 | |
236 | |
237 | |
238 | #endif // _IFSelect_HeaderFile |