0024947: Redesign OCCT legacy type system -- final corrections
[occt.git] / src / IFSelect / IFSelect_GeneralModifier.cdl
CommitLineData
b311480e 1-- Created on: 1993-10-19
2-- Created by: Christian CAILLET
3-- Copyright (c) 1993-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
17deferred class GeneralModifier from IFSelect inherits TShared
18
19 ---Purpose : This class gives a frame for Actions which modify the effect
20 -- of a Dispatch, i.e. :
21 -- By Selections and Dispatches, an original Model can be
22 -- splitted into one or more "target" Models : these Models
23 -- contain Entities copied from the original one (that is, a
24 -- part of it). Basically, these dispatched Entities are copied
25 -- as identical to their original counterparts. Also the copied
26 -- Models reproduce the Header of the original one.
27 --
28 -- Modifiers allow to change this copied content : this is the
29 -- way to be used for any kind of alterations, adaptations ...
30 -- They are exploited by a ModelCopier, which firstly performs
31 -- the copy operation described by Dispatches, then invokes the
32 -- Modifiers to work on the result.
33 --
34 -- Each GeneralModifier can be attached to :
35 -- - all the Models produced
36 -- - a Dispatch (it will be applied to all the Models obtained
37 -- from this Dispatch) designated by its Ident in a ShareOut
38 -- - in addition, to a Selection (facultative) : this adds a
39 -- criterium, the Modifier is invoked on a produced Model only
40 -- if this Model contains an Entity copied from one of the
41 -- Entities designated by this Selection.
42 -- (for special Modifiers from IFAdapt, while they must work on
43 -- definite Entities, this Selection is mandatory to run)
44 --
45 -- Remark : this class has no action attached, it only provides
46 -- a frame to work on criteria. Then, sub-classes will define
47 -- their kind of action, which can be applied at a precise step
48 -- of the production of a File : see Modifier, and in the
49 -- package IFAdapt, EntityModifier and EntityCopier
50
51
52uses AsciiString from TCollection, Selection, Dispatch
53
54is
55
56 Initialize (maychangegraph : Boolean);
57 ---Purpose : Sets the Modifier criteria to default Values
58 -- (i.e. "always applies")
59 -- <maychangegraph> must be provided at creation time, to :
60 -- - False if this GeneralModifier surely lets the graph of
61 -- dependencies unchanged (NO edition of any reference, BUT
62 -- also NO entity added or replaced or removed)
63 -- - True if there is a possibility of changing the graph of
64 -- dependencies when this modifier is applied
65
66 MayChangeGraph (me) returns Boolean;
67 ---Purpose : Returns True if this modifier may change the graph of
68 -- dependences (aknowledged at creation time)
69
70 SetDispatch (me : mutable; disp : any Dispatch);
71 ---Purpose : Attaches to a Dispatch. If <disp> is Null, Resets it
72 -- (to apply the Modifier on every Dispatch)
73
74 Dispatch (me) returns any Dispatch;
75 ---Purpose : Returns the Dispatch to be matched, Null if not set
76
77 Applies (me; disp : Dispatch) returns Boolean;
78 ---Purpose : Returns True if a Model obtained from the Dispatch <disp>
79 -- is to be treated (apart from the Selection criterium)
80 -- If Dispatch(me) is Null, returns True. Else, checks <disp>
81
82
6e33d3ce 83 SetSelection (me : mutable; sel : Selection);
7fd59977 84 ---Purpose : Sets a Selection : a Model is treated if it contains one or
85 -- more Entities designated by the Selection
86
87 ResetSelection (me : mutable);
88 ---Purpose : Resets the Selection : this criterium is not longer active
89
90 HasSelection (me) returns Boolean;
91 ---Purpose : Returns True if a Selection is set as an additionnal criterium
92
6e33d3ce 93 Selection (me) returns Selection;
7fd59977 94 ---Purpose : Returns the Selection, or a Null Handle if not set
95
96
97 Label (me) returns AsciiString from TCollection is deferred;
98 ---Purpose : Returns a short text which defines the operation performed
99
100fields
101
102 thesel : Selection;
103 thedisp : Dispatch;
104 thechgr : Boolean;
105
106end GeneralModifier;