1 // Copyright (c) 1999-2012 OPEN CASCADE SAS
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.
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.
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.
18 #include <IFSelect_GraphCounter.ixx>
19 #include <Interface_EntityIterator.hxx>
20 #include <IFSelect_SelectPointed.hxx>
25 IFSelect_GraphCounter::IFSelect_GraphCounter
26 (const Standard_Boolean withmap, const Standard_Boolean withlist)
27 : IFSelect_SignCounter (withmap,withlist) { }
29 Handle(IFSelect_SelectDeduct) IFSelect_GraphCounter::Applied () const
30 { return theapplied; }
32 void IFSelect_GraphCounter::SetApplied
33 (const Handle(IFSelect_SelectDeduct)& applied)
34 { theapplied = applied; }
36 void IFSelect_GraphCounter::AddWithGraph
37 (const Handle(TColStd_HSequenceOfTransient)& list,
38 const Interface_Graph& graph)
40 if (theapplied.IsNull()) { AddList (list,graph.Model()); return; }
41 if (list.IsNull()) return;
42 Standard_Integer i, nb = list->Length();
43 for (i = 1; i <= nb; i ++) {
45 Handle(Standard_Transient) ent = list->Value(i);
46 theapplied->Alternate()->SetEntity (ent);
47 Interface_EntityIterator iter = theapplied->UniqueResult(graph);
48 Standard_Integer n = iter.NbEntities();
50 case 0: Add (ent,"0"); break;
51 case 1: Add (ent,"1"); break;
52 case 2: Add (ent,"2"); break;
53 case 3: Add (ent,"3"); break;
54 case 4: Add (ent,"4"); break;
55 case 5: Add (ent,"5"); break;
56 case 6: Add (ent,"6"); break;
57 case 7: Add (ent,"7"); break;
58 case 8: Add (ent,"8"); break;
59 case 9: Add (ent,"9"); break;