2 -- Created: Mon Sep 21 11:33:50 1992
3 -- Author: Christian CAILLET
5 ---Copyright: Matra Datavision 1992
10 ---Purpose : Gives tools to manage Selecting a group of Entities
11 -- processed by an Interface, for instance to divide up an
12 -- original Model (from a File) to several smaller ones
13 -- They use description of an Interface Model as a graph
15 -- Remark that this corresponds to the description of a
16 -- "scenario" of sharing out a File. Parts of this Scenario
17 -- are intended to be permanently stored. IFSelect provides
18 -- the Transient, active counterparts (to run the Scenario).
19 -- But a permanent one (either as Persistent Objects or as
20 -- interpretable Text) must be provided elsewhere.
22 uses MMgt, Standard, Message, TCollection, TColStd,
23 Interface, IFGraph, Dico, MoniTool
27 deferred class Signature; -- to select an entity according a string (its signature)
28 class SignMultiple; -- liste of signatures
29 class SignType; -- signature = type cdl
30 class SignCategory; -- signature = category
31 class SignValidity; -- signature = validity
32 class SignAncestor; -- signature = type cdl + all ancestors
35 class AppliedModifiers;
40 deferred class Dispatch;
41 class DispGlobal; -- takes all result in only ONE group
42 class DispPerOne; -- defines one group per selected entity
43 class DispPerCount; -- one group for a count of entities
44 class DispPerSignature; -- groups given by a SignatureList
45 class DispPerFiles; -- a determined count of groups
46 -- Other classes can be added for a specific Interface
48 class SelectionIterator;
50 deferred class Selection;
52 deferred class SelectBase; -- attached directly to the ShareOut :
53 class SelectModelRoots; -- roots knows as such in the model
54 class SelectModelEntities; -- all entities of the model
55 class SelectEntityNumber; -- one entity having a given Number
56 class SelectPointed; -- directly pointed items
58 deferred class SelectCombine; -- algebraic operators
59 class SelectUnion; -- "OR" operator between Selections
60 class SelectIntersection; -- "AND" operator between Selections
61 deferred class SelectControl; -- a main list controlled by a second
62 class SelectDiff; -- "Minus" operator between Selections
64 deferred class SelectDeduct; -- computed lists :
65 class SelectShared; -- directly shared entities
66 class SelectSharing; -- directly sharing entities
67 deferred class SelectAnyList; -- from a list in an entity
68 deferred class SelectInList; -- from a list of single entities
69 generic class SelectList; -- from an entity as a list
70 class SelectSuite; -- macro-select-deduct
72 deferred class SelectExtract; -- sorted lists (can be inverted) :
73 class SelectUnknownEntities;
74 class SelectErrorEntities;
75 class SelectIncorrectEntities; -- (according ComputeCheck)
76 class SelectRoots; -- roots local in a given group
77 class SelectRootComps; -- idem but manages cycles
78 class SelectRange; -- range in a list (from i-th to j-th)
79 deferred class SelectAnyType; -- type to be precised in sub-class
80 class SelectType; -- type given as a parameter
81 class SelectSignature; -- signature matching
82 class SelectFlag; -- flag recorded in the Graph
83 class SelectSent; -- sent/remaining entities to file
84 -- Other classes can be added for a specific Interface
85 -- (in particular, instantiations of SelectType)
87 -- Other classes can be added for a specific Interface
88 -- (in particular, instantiations of SelectList)
89 deferred class SelectExplore;
90 class SelectSignedShared; -- shared entities + signature
91 class SelectSignedSharing; -- sharing entities + signature
93 class IntParam; -- defines externally accessible integer parameters
100 deferred class Editor;
106 class ContextModif; -- (set of data used by Modifiers)
107 class ContextWrite; -- (set of data used by Modifiers)
108 deferred class Transformer; -- frame for data transformations
109 class TransformStandard; -- works with Modifiers
111 class ModelCopier; -- performs transfers (to produce files)
112 deferred class GeneralModifier; -- set of criteria for all Modifiers
113 deferred class Modifier; -- defines modifying actions on transferred model
114 class ModifReorder; -- reorder whole model from roots
115 class ModifEditForm; -- applies an EditForm
116 deferred generic class FileModifier; -- defines actions on file sending
117 deferred generic class ModelModifier; -- specific actions on model
119 -- -- Session Management -- --
121 class WorkSession; -- a set of useful facilities
122 deferred class WorkLibrary; -- capability of user extents
124 alias Option is Option from MoniTool; -- pre-defined values for a field
125 alias Profile is Profile from MoniTool; -- set of options bound/piloted together
128 deferred class SessionDumper;
131 deferred class Activator;
136 -- individual functions to be added by Act
138 enumeration ReturnStatus is RetVoid, RetDone, RetError, RetFail, RetStop;
139 ---Purpose : Qualifies an execution status :
140 -- RetVoid : normal execution which created nothing, or
141 -- no data to process
142 -- RetDone : normal execution with a result
143 -- RetError : error in command or input data, no execution
144 -- RetFail : execution was run and has failed
145 -- RetStop : indicates end or stop (such as Raise)
147 enumeration RemainMode is
148 RemainForget, RemainCompute, RemainDisplay, RemainUndo;
149 -- used to pilot SetRemaining from the WorkSession
151 enumeration PrintCount is ItemsByEntity, CountByItem, ShortByItem, ListByItem, EntitiesByItem, CountSummary,
152 GeneralInfo, Mapping, ResultCount;
155 -- Lets you choose the manner in which you want to analyze an
156 -- IGES or STEP file. Your analysis can be either message-oriented or
157 -- entity-oriented. The specific values are as follows:
158 -- - ItemsByEntity is a sequential list of all
159 -- messages per entity of the defined type
160 -- - CountByItem is the number of entities of the defined
161 -- type, with their rank number per message
162 -- - ShortByItem is the number of entities of the defined
163 -- type, with their types per message; displays the rank
164 -- numbers of the first five entities of the defined type
166 -- - ListByItem is the number of entities of the defined type
167 -- per message and the numbers of the entities
168 -- - EntitiesByItem is the number of entities of the
169 -- defined type, with their types, rank numbers and
170 -- Directory Entry numbers per message
171 -- - GeneralInfo is general information on transfer such as:
172 -- - number of entities
174 -- - number of resulting Open CASCADE shapes
175 -- - number of warnings and failures
176 -- - CountSummary summary statistics for counters and signatures
177 -- - ResultCount information that contains the number of
178 -- roots in the IGES file and the number of resulting Open CASCADE shapes.
179 -- - Mapping of the IGES root entities to the resulting Open
180 -- CASCADE shape (including type and form of the IGES entity
181 -- and type of the resulting shape).
183 enumeration PrintFail is FailOnly, FailAndWarn;
184 ---Purpose: Indicates whether there will
185 -- be information on warnings as well as on failures. The
186 -- terms of this enumeration have the following semantics:
187 -- - IFSelect_FailOnly gives information on failures only
188 -- - IFSelect_FailAndWarn gives information on both
189 -- failures and warnings. used to pilot PrintCheckList
190 enumeration EditValue is
191 Optional, Editable, EditProtected, EditComputed, EditRead, EditDynamic;
192 ---Purpose : Controls access on Values by an Editor
193 -- EditOptional : normal access, in addition may be removed
194 -- Editable : normal access, must be present
195 -- EditProtected : access must be validated
196 -- EditComputed : why write it ? it will be recomputed
197 -- EditRead : no way to write it, only for read
198 -- EditDynamic : not a field, only to be displayed
200 -- -- Instantiations -- --
202 class TSeqOfDispatch instantiates Sequence from TCollection (Dispatch);
203 class TSeqOfSelection instantiates Sequence from TCollection (Selection);
204 class HSeqOfSelection instantiates HSequence from TCollection
205 (Selection,TSeqOfSelection);
207 -- the followings sequences are used by ModelCopier (definition or result)
208 class SequenceOfGeneralModifier instantiates Sequence from TCollection
210 class SequenceOfInterfaceModel instantiates Sequence from TCollection
211 (InterfaceModel from Interface);
212 class SequenceOfAppliedModifiers instantiates Sequence from TCollection
215 -- Package Methods --
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).
223 RestoreSession (WS : mutable WorkSession; file : CString) returns Boolean;
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).