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