0024023: Revamp the OCCT Handle -- general
[occt.git] / src / IFSelect / IFSelect.cdl
CommitLineData
b311480e 1-- Created on: 1992-09-21
2-- Created by: Christian CAILLET
3-- Copyright (c) 1992-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
7fd59977 16
17package IFSelect
18
19 ---Purpose : Gives tools to manage Selecting a group of Entities
20 -- processed by an Interface, for instance to divide up an
21 -- original Model (from a File) to several smaller ones
22 -- They use description of an Interface Model as a graph
23 --
24 -- Remark that this corresponds to the description of a
25 -- "scenario" of sharing out a File. Parts of this Scenario
26 -- are intended to be permanently stored. IFSelect provides
27 -- the Transient, active counterparts (to run the Scenario).
28 -- But a permanent one (either as Persistent Objects or as
29 -- interpretable Text) must be provided elsewhere.
30
31uses MMgt, Standard, Message, TCollection, TColStd,
32 Interface, IFGraph, Dico, MoniTool
33
34is
35
36 deferred class Signature; -- to select an entity according a string (its signature)
37 class SignMultiple; -- liste of signatures
38 class SignType; -- signature = type cdl
39 class SignCategory; -- signature = category
40 class SignValidity; -- signature = validity
41 class SignAncestor; -- signature = type cdl + all ancestors
42
43 class ShareOut;
44 class AppliedModifiers;
45
46 class ShareOutResult;
47 class PacketList;
48
49 deferred class Dispatch;
50 class DispGlobal; -- takes all result in only ONE group
51 class DispPerOne; -- defines one group per selected entity
52 class DispPerCount; -- one group for a count of entities
53 class DispPerSignature; -- groups given by a SignatureList
54 class DispPerFiles; -- a determined count of groups
55 -- Other classes can be added for a specific Interface
56
57 class SelectionIterator;
58
59 deferred class Selection;
60
61 deferred class SelectBase; -- attached directly to the ShareOut :
62 class SelectModelRoots; -- roots knows as such in the model
63 class SelectModelEntities; -- all entities of the model
64 class SelectEntityNumber; -- one entity having a given Number
65 class SelectPointed; -- directly pointed items
66
67 deferred class SelectCombine; -- algebraic operators
68 class SelectUnion; -- "OR" operator between Selections
69 class SelectIntersection; -- "AND" operator between Selections
70 deferred class SelectControl; -- a main list controlled by a second
71 class SelectDiff; -- "Minus" operator between Selections
72
73 deferred class SelectDeduct; -- computed lists :
74 class SelectShared; -- directly shared entities
75 class SelectSharing; -- directly sharing entities
76 deferred class SelectAnyList; -- from a list in an entity
77 deferred class SelectInList; -- from a list of single entities
7fd59977 78 class SelectSuite; -- macro-select-deduct
79
80 deferred class SelectExtract; -- sorted lists (can be inverted) :
81 class SelectUnknownEntities;
82 class SelectErrorEntities;
83 class SelectIncorrectEntities; -- (according ComputeCheck)
84 class SelectRoots; -- roots local in a given group
85 class SelectRootComps; -- idem but manages cycles
86 class SelectRange; -- range in a list (from i-th to j-th)
87 deferred class SelectAnyType; -- type to be precised in sub-class
88 class SelectType; -- type given as a parameter
89 class SelectSignature; -- signature matching
90 class SelectFlag; -- flag recorded in the Graph
91 class SelectSent; -- sent/remaining entities to file
92 -- Other classes can be added for a specific Interface
93 -- (in particular, instantiations of SelectType)
94
95 -- Other classes can be added for a specific Interface
7fd59977 96 deferred class SelectExplore;
97 class SelectSignedShared; -- shared entities + signature
98 class SelectSignedSharing; -- sharing entities + signature
99
100 class IntParam; -- defines externally accessible integer parameters
101
102 class SignatureList;
103 class CheckCounter;
104 class SignCounter;
105 class GraphCounter;
106
107 deferred class Editor;
108 class ParamEditor;
109
110 class EditForm;
111 class ListEditor;
112
113 class ContextModif; -- (set of data used by Modifiers)
114 class ContextWrite; -- (set of data used by Modifiers)
115 deferred class Transformer; -- frame for data transformations
116 class TransformStandard; -- works with Modifiers
117
118 class ModelCopier; -- performs transfers (to produce files)
119 deferred class GeneralModifier; -- set of criteria for all Modifiers
120 deferred class Modifier; -- defines modifying actions on transferred model
121 class ModifReorder; -- reorder whole model from roots
122 class ModifEditForm; -- applies an EditForm
123 deferred generic class FileModifier; -- defines actions on file sending
124 deferred generic class ModelModifier; -- specific actions on model
125
126 -- -- Session Management -- --
127
128 class WorkSession; -- a set of useful facilities
129 deferred class WorkLibrary; -- capability of user extents
130
7fd59977 131 class SessionFile;
132 deferred class SessionDumper;
133 class BasicDumper;
134
135 deferred class Activator;
136 class SessionPilot;
137 class Act;
138 primitive ActFunc;
139 class Functions;
140 -- individual functions to be added by Act
141
142 enumeration ReturnStatus is RetVoid, RetDone, RetError, RetFail, RetStop;
143 ---Purpose : Qualifies an execution status :
144 -- RetVoid : normal execution which created nothing, or
145 -- no data to process
146 -- RetDone : normal execution with a result
147 -- RetError : error in command or input data, no execution
148 -- RetFail : execution was run and has failed
149 -- RetStop : indicates end or stop (such as Raise)
150
151 enumeration RemainMode is
152 RemainForget, RemainCompute, RemainDisplay, RemainUndo;
153 -- used to pilot SetRemaining from the WorkSession
154
155 enumeration PrintCount is ItemsByEntity, CountByItem, ShortByItem, ListByItem, EntitiesByItem, CountSummary,
156 GeneralInfo, Mapping, ResultCount;
157
158---Purpose:
159-- Lets you choose the manner in which you want to analyze an
160-- IGES or STEP file. Your analysis can be either message-oriented or
161-- entity-oriented. The specific values are as follows:
162-- - ItemsByEntity is a sequential list of all
163-- messages per entity of the defined type
164-- - CountByItem is the number of entities of the defined
165-- type, with their rank number per message
166-- - ShortByItem is the number of entities of the defined
167-- type, with their types per message; displays the rank
168-- numbers of the first five entities of the defined type
169-- per message
170-- - ListByItem is the number of entities of the defined type
171-- per message and the numbers of the entities
172-- - EntitiesByItem is the number of entities of the
173-- defined type, with their types, rank numbers and
174-- Directory Entry numbers per message
175-- - GeneralInfo is general information on transfer such as:
176-- - number of entities
177-- - number of roots
178-- - number of resulting Open CASCADE shapes
179-- - number of warnings and failures
180-- - CountSummary summary statistics for counters and signatures
181-- - ResultCount information that contains the number of
182-- roots in the IGES file and the number of resulting Open CASCADE shapes.
183 -- - Mapping of the IGES root entities to the resulting Open
184 -- CASCADE shape (including type and form of the IGES entity
185 -- and type of the resulting shape).
186
187 enumeration PrintFail is FailOnly, FailAndWarn;
188 ---Purpose: Indicates whether there will
189-- be information on warnings as well as on failures. The
190-- terms of this enumeration have the following semantics:
191-- - IFSelect_FailOnly gives information on failures only
192-- - IFSelect_FailAndWarn gives information on both
193-- failures and warnings. used to pilot PrintCheckList
194 enumeration EditValue is
195 Optional, Editable, EditProtected, EditComputed, EditRead, EditDynamic;
196 ---Purpose : Controls access on Values by an Editor
197 -- EditOptional : normal access, in addition may be removed
198 -- Editable : normal access, must be present
199 -- EditProtected : access must be validated
200 -- EditComputed : why write it ? it will be recomputed
201 -- EditRead : no way to write it, only for read
202 -- EditDynamic : not a field, only to be displayed
203
204 -- -- Instantiations -- --
205
df8d3970 206 imported TSeqOfDispatch;
207 imported TSeqOfSelection;
208 imported transient class HSeqOfSelection;
7fd59977 209
210 -- the followings sequences are used by ModelCopier (definition or result)
df8d3970 211 imported SequenceOfGeneralModifier;
212 imported SequenceOfInterfaceModel;
213 imported SequenceOfAppliedModifiers;
7fd59977 214
215 -- Package Methods --
216
217 SaveSession (WS : any WorkSession; file : CString) returns Boolean;
218 ---Purpose : Saves the state of a WorkSession from IFSelect, by using a
219 -- SessionFile from IFSelect. Returns True if Done, False in
220 -- case of Error on Writing. <file> gives the name of the File
221 -- to be produced (this avoids to export the class SessionFile).
222
6e33d3ce 223 RestoreSession (WS : WorkSession; file : CString) returns Boolean;
7fd59977 224 ---Purpose : Restore the state of a WorkSession from IFSelect, by using a
225 -- SessionFile from IFSelect. Returns True if Done, False in
226 -- case of Error on Writing. <file> gives the name of the File
227 -- to be used (this avoids to export the class SessionFile).
228
229end IFSelect;