Salome HOME
NRI : Remove dependence with VISU.
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_SComponentIterator_i.cxx
1 using namespace std;
2 //  File      : SALOMEDS_SComponentIterator_i.cxx
3 //  Created   : Wed Nov 28 16:23:49 2001
4 //  Author    : Yves FRICAUD
5
6 //  Project   : SALOME
7 //  Module    : SALOMEDS
8 //  Copyright : Open CASCADE 2001
9 //  $Header$
10
11 #include "SALOMEDS_SComponentIterator_i.hxx"
12
13
14 //============================================================================
15 /*! Function : constructor
16  * 
17  */
18 //============================================================================
19
20 SALOMEDS_SComponentIterator_i::SALOMEDS_SComponentIterator_i(const Handle(TDocStd_Document) aDoc, 
21                                                              CORBA::ORB_ptr orb) 
22 {
23   _orb = CORBA::ORB::_duplicate(orb);
24   _lab = aDoc->Main();
25   _it.Initialize (_lab);
26 }
27
28 //============================================================================
29 /*! Function : destructor
30  * 
31  */
32 //============================================================================
33 SALOMEDS_SComponentIterator_i::~SALOMEDS_SComponentIterator_i()
34 {
35 }
36
37 //============================================================================
38 /*! Function : Init
39  * 
40  */
41 //============================================================================
42 void SALOMEDS_SComponentIterator_i::Init()
43
44   _it.Initialize (_lab);
45 }
46
47 //============================================================================
48 /*! Function : More
49  * 
50  */
51 //============================================================================
52 CORBA::Boolean SALOMEDS_SComponentIterator_i::More()
53 {
54   if (!_it.More())
55     return false;
56   TDF_Label L = _it.Value();
57   if (SALOMEDS_SComponent_i::IsA(L))
58      return true;
59
60   return _it.More();
61 }
62
63  //============================================================================
64 /*! Function : Next
65   */
66 //============================================================================
67 void SALOMEDS_SComponentIterator_i::Next()
68 {
69   _it.Next();
70 }
71
72
73 //============================================================================
74 /*! Function : Value
75  * 
76  */
77 //============================================================================
78 SALOMEDS::SComponent_ptr SALOMEDS_SComponentIterator_i::Value()
79 {
80   SALOMEDS_SComponent_i *  so_servant = new SALOMEDS_SComponent_i (_it.Value(),_orb);
81   SALOMEDS::SComponent_var so  = SALOMEDS::SComponent::_narrow(so_servant->SComponent::_this());   //pb d'heritage??
82   return so;
83 }
84