b311480e |
1 | // Copyright (c) 1999-2012 OPEN CASCADE SAS |
2 | // |
3 | // The content of this file is subject to the Open CASCADE Technology Public |
4 | // License Version 6.5 (the "License"). You may not use the content of this file |
5 | // except in compliance with the License. Please obtain a copy of the License |
6 | // at http://www.opencascade.org and read it completely before using this file. |
7 | // |
8 | // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
9 | // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
10 | // |
11 | // The Original Code and all software distributed under the License is |
12 | // distributed on an "AS IS" basis, without warranty of any kind, and the |
13 | // Initial Developer hereby disclaims all such warranties, including without |
14 | // limitation, any warranties of merchantability, fitness for a particular |
15 | // purpose or non-infringement. Please see the License for the specific terms |
16 | // and conditions governing the rights and limitations under the License. |
17 | |
7fd59977 |
18 | #include <IFSelect_SelectCombine.ixx> |
19 | #include <IFGraph_Cumulate.hxx> |
20 | |
21 | |
b311480e |
22 | IFSelect_SelectCombine::IFSelect_SelectCombine () { } |
7fd59977 |
23 | // { thelist = new IFSelect_SequenceOfSelection(); } |
24 | |
25 | Standard_Integer IFSelect_SelectCombine::NbInputs () const |
26 | { return thelist.Length(); } |
27 | |
28 | Handle(IFSelect_Selection) IFSelect_SelectCombine::Input |
29 | (const Standard_Integer num) const |
30 | { return thelist.Value(num); } |
31 | |
32 | Standard_Integer IFSelect_SelectCombine::InputRank |
33 | (const Handle(IFSelect_Selection)& sel) const |
34 | { |
35 | if (sel.IsNull()) return 0; |
36 | Standard_Integer i, nb = thelist.Length(); |
37 | for (i = 1; i <= nb; i ++) |
38 | if (sel == thelist.Value(i)) return i; |
39 | return 0; |
40 | } |
41 | |
42 | void IFSelect_SelectCombine::Add |
43 | (const Handle(IFSelect_Selection)& sel, const Standard_Integer atnum) |
44 | { |
45 | if (atnum <= 0 || atnum > thelist.Length()) thelist.Append(sel); |
46 | else thelist.InsertBefore(atnum,sel); |
47 | } |
48 | |
49 | Standard_Boolean IFSelect_SelectCombine::Remove |
50 | (const Handle(IFSelect_Selection)& sel) |
51 | { return Remove (InputRank(sel)); } |
52 | |
53 | Standard_Boolean IFSelect_SelectCombine::Remove |
54 | (const Standard_Integer num) |
55 | { |
56 | if (num <= 0 || num > thelist.Length()) return Standard_False; |
57 | thelist.Remove(num); |
58 | return Standard_True; |
59 | } |
60 | |
61 | |
62 | Standard_Boolean IFSelect_SelectCombine::HasUniqueResult () const |
63 | { return Standard_True; } |
64 | |
65 | void IFSelect_SelectCombine::FillIterator |
66 | (IFSelect_SelectionIterator& iter) const |
67 | { iter.AddList(thelist); } |