0024157: Parallelization of assembly part of BO
[occt.git] / src / IFSelect / IFSelect_SelectSuite.cdl
CommitLineData
b311480e 1-- Created on: 1998-10-19
2-- Created by: Christian CAILLET
3-- Copyright (c) 1998-1999 Matra Datavision
4-- Copyright (c) 1999-2012 OPEN CASCADE SAS
5--
6-- The content of this file is subject to the Open CASCADE Technology Public
7-- License Version 6.5 (the "License"). You may not use the content of this file
8-- except in compliance with the License. Please obtain a copy of the License
9-- at http://www.opencascade.org and read it completely before using this file.
10--
11-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13--
14-- The Original Code and all software distributed under the License is
15-- distributed on an "AS IS" basis, without warranty of any kind, and the
16-- Initial Developer hereby disclaims all such warranties, including without
17-- limitation, any warranties of merchantability, fitness for a particular
18-- purpose or non-infringement. Please see the License for the specific terms
19-- and conditions governing the rights and limitations under the License.
20
7fd59977 21
22
23class SelectSuite from IFSelect inherits SelectDeduct from IFSelect
24
25 ---Purpose : A SelectSuite can describe a suite of SelectDeduct as a unique
26 -- one : in other words, it can be seen as a "macro selection"
27 --
28 -- It works by applying each of its items (which is a
29 -- SelectDeduct) on the result computed by the previous one
30 -- (by using Alternate Input)
31 --
32 -- But each of these Selections used as items may be used
33 -- independently, it will then give its own result
34 --
35 -- Hence, SelectSuite gives a way of defining a new Selection
36 -- from existing ones, without having to do copies or saves
37
38uses CString, AsciiString from TCollection,
39 SequenceOfTransient from TColStd,
40 Graph from Interface, EntityIterator from Interface,
41 Selection from IFSelect
42
43raises InterfaceError
44
45is
46
47 Create returns SelectSuite;
48 ---Purpose : Creates an empty SelectSuite
49
50 AddInput (me : mutable; item : Selection) returns Boolean;
51 ---Purpose : Adds an input selection. I.E. :
52 -- If <item> is a SelectDeduct, adds it as Previous, not as Input
53 -- Else, sets it as Input
54 -- Returns True when done
55 -- Returns False and refuses to work if Input is already defined
56
57 AddPrevious (me : mutable; item : SelectDeduct);
58 ---Purpose : Adds a new first item (prepends to the list). The Input is not
59 -- touched
60 -- If <item> is null, does nothing
61
62 AddNext (me : mutable; item : SelectDeduct);
63 ---Purpose : Adds a new last item (prepends to the list)
64 -- If <item> is null, does nothing
65
66 NbItems (me) returns Integer;
67 ---Purpose : Returns the count of Items
68
69 Item (me; num : Integer) returns SelectDeduct;
70 ---Purpose : Returns an item from its rank in the list
71 -- (the Input is always apart)
72
73 SetLabel (me : mutable; lab : CString);
74 ---Purpose : Sets a value for the Label
75
76 -- Definitions for Selecting
77
78 RootResult (me; G : Graph) returns EntityIterator
79 raises InterfaceError;
80 ---Purpose : Returns the list of selected entities
81 -- To do this, once InputResult has been taken (if Input or
82 -- Alternate has been defined, else the first Item gives it) :
83 -- this result is set as alternate input for the first item,
84 -- which computes its result : this result is set as alternate
85 -- input for the second item, etc...
86
87 Label (me) returns AsciiString from TCollection;
88 ---Purpose : Returns the Label
89 -- Either it has been defined by SetLabel, or it will give
90 -- "Suite of nn Selections"
91
92fields
93
94 thelab : AsciiString;
95 thesel : SequenceOfTransient;
96
97end SelectSuite;