blob: 66b99e4312f22ee706511e978c624a975e020e32 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
// File: TopOpeBRep_VPointIterator.cxx
// Created: Tue Nov 16 10:52:21 1993
// Author: Jean Yves LEBEY
// <jyl@phobox>
#include <TopOpeBRep_VPointInterIterator.ixx>
#include <Standard_ProgramError.hxx>
//=======================================================================
//function : VPointInterIterator
//purpose :
//=======================================================================
TopOpeBRep_VPointInterIterator::TopOpeBRep_VPointInterIterator() :
myLineInter(NULL),myVPointIndex(0),myVPointNb(0),mycheckkeep(Standard_False)
{}
//=======================================================================
//function : VPointInterIterator
//purpose :
//=======================================================================
TopOpeBRep_VPointInterIterator::TopOpeBRep_VPointInterIterator
(const TopOpeBRep_LineInter& LI)
{
Init(LI);
}
//=======================================================================
//function : Init
//purpose :
//=======================================================================
void TopOpeBRep_VPointInterIterator::Init
(const TopOpeBRep_LineInter& LI,
const Standard_Boolean checkkeep)
{
myLineInter = (TopOpeBRep_LineInter*)&LI;
mycheckkeep = checkkeep;
Init();
}
//=======================================================================
//function : Init
//purpose :
//=======================================================================
void TopOpeBRep_VPointInterIterator::Init()
{
myVPointIndex = 1;
myVPointNb = myLineInter->NbVPoint();
if ( mycheckkeep ) {
while ( More() ) {
const TopOpeBRep_VPointInter& VP = CurrentVP();
if (VP.Keep()) break;
else myVPointIndex++;
}
}
}
//=======================================================================
//function : More
//purpose :
//=======================================================================
Standard_Boolean TopOpeBRep_VPointInterIterator::More() const
{
return (myVPointIndex <= myVPointNb);
}
//=======================================================================
//function : Next
//purpose :
//=======================================================================
void TopOpeBRep_VPointInterIterator::Next()
{
myVPointIndex++;
if ( mycheckkeep ) {
while ( More() ) {
const TopOpeBRep_VPointInter& VP = CurrentVP();
if (VP.Keep()) break;
else myVPointIndex++;
}
}
}
//=======================================================================
//function : CurrentVP
//purpose :
//=======================================================================
const TopOpeBRep_VPointInter& TopOpeBRep_VPointInterIterator::CurrentVP()
{
if (!More())
Standard_ProgramError::Raise("TopOpeBRep_VPointInterIterator::CurrentVP");
const TopOpeBRep_VPointInter& VP = myLineInter->VPoint(myVPointIndex);
return VP;
}
//=======================================================================
//function : ChangeCurrentVP
//purpose :
//=======================================================================
TopOpeBRep_VPointInter& TopOpeBRep_VPointInterIterator::ChangeCurrentVP()
{
if (!More())
Standard_ProgramError::Raise("TopOpeBRep_VPointInterIterator::ChangeCurrentVP");
TopOpeBRep_VPointInter& VP = myLineInter->ChangeVPoint(myVPointIndex);
return VP;
}
//=======================================================================
//function : CurrentVPIndex
//purpose :
//=======================================================================
Standard_Integer TopOpeBRep_VPointInterIterator::CurrentVPIndex()const
{
if (!More())
Standard_ProgramError::Raise("TopOpeBRep_VPointInterIterator::CurrentVPIndex");
return myVPointIndex;
}
TopOpeBRep_PLineInter TopOpeBRep_VPointInterIterator::PLineInterDummy() const {return myLineInter;}
|