0031035: Coding - uninitialized class fields reported by Visual Studio Code Analysis
[occt.git] / src / Sweep / Sweep_NumShapeIterator.cxx
1 // Created on: 1993-06-03
2 // Created by: Laurent BOURESCHE
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
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
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.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17
18 #include <Standard_NoMoreObject.hxx>
19 #include <Standard_NoSuchObject.hxx>
20 #include <Sweep_NumShape.hxx>
21 #include <Sweep_NumShapeIterator.hxx>
22
23 //=======================================================================
24 //function : Sweep_NumShapeIterator
25 //purpose  : 
26 //=======================================================================
27 Sweep_NumShapeIterator::Sweep_NumShapeIterator():
28        myNumShape(0,TopAbs_SHAPE),
29        myCurrentNumShape(0,TopAbs_SHAPE),
30        myCurrentRange(0),
31        myMore(Standard_False)
32 {
33 }
34
35
36 //=======================================================================
37 //function : Init
38 //purpose  : 
39 //=======================================================================
40
41 void  Sweep_NumShapeIterator::Init(const Sweep_NumShape& aShape)
42 {
43   myNumShape = aShape;
44   if (myNumShape.Type()==TopAbs_EDGE){
45     Standard_Integer nbvert = myNumShape.Index();
46     myMore = (nbvert >= 1);
47     if (myMore){
48       myCurrentRange = 1;
49       myCurrentNumShape = Sweep_NumShape(1,TopAbs_VERTEX,
50                                          myNumShape.Closed(),
51                                          Standard_False,
52                                          Standard_False);
53       if (nbvert==1){
54         if (myNumShape.BegInfinite()){
55           myCurrentOrientation = TopAbs_REVERSED;
56         }
57         else {
58           myCurrentOrientation = TopAbs_FORWARD;
59         }
60       }
61       else {
62         myCurrentOrientation = TopAbs_FORWARD;
63       }
64     }
65   }
66 }
67
68
69 //=======================================================================
70 //function : Next
71 //purpose  : 
72 //=======================================================================
73
74 void  Sweep_NumShapeIterator::Next()
75 {
76   myCurrentRange++;
77   myMore = myCurrentRange <= myNumShape.Index();
78   if (myMore){
79     if (myNumShape.Type()==TopAbs_EDGE){
80       myCurrentNumShape = Sweep_NumShape(myCurrentRange,TopAbs_VERTEX,
81                                          myNumShape.Closed(),
82                                          Standard_False,
83                                          Standard_False);
84       myCurrentOrientation = TopAbs_REVERSED;
85     }
86   }
87 }
88
89
90
91