0023024: Update headers of OCCT files
[occt.git] / src / BOPTools / BOPTools_PaveBlockIterator.cxx
CommitLineData
b311480e 1// Created on: 2001-03-07
2// Created by: Peter KURNEV
3// Copyright (c) 2001-2012 OPEN CASCADE SAS
4//
5// The content of this file is subject to the Open CASCADE Technology Public
6// License Version 6.5 (the "License"). You may not use the content of this file
7// except in compliance with the License. Please obtain a copy of the License
8// at http://www.opencascade.org and read it completely before using this file.
9//
10// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12//
13// The Original Code and all software distributed under the License is
14// distributed on an "AS IS" basis, without warranty of any kind, and the
15// Initial Developer hereby disclaims all such warranties, including without
16// limitation, any warranties of merchantability, fitness for a particular
17// purpose or non-infringement. Please see the License for the specific terms
18// and conditions governing the rights and limitations under the License.
19
7fd59977 20
21
22#include <BOPTools_PaveBlockIterator.ixx>
23
24#include <BOPTools_ListOfPave.hxx>
25#include <BOPTools_ListIteratorOfListOfPave.hxx>
26#include <BOPTools_Pave.hxx>
27
28//=======================================================================
29// function:BOPTools_PaveBlockIterator
30// purpose:
31//=======================================================================
b311480e 32BOPTools_PaveBlockIterator::BOPTools_PaveBlockIterator()
7fd59977 33 :
34 myEdge(0),
35 myIndex(1)
36{
37}
38//=======================================================================
39// function:BOPTools_PaveBlockIterator
40// purpose:
41//=======================================================================
42 BOPTools_PaveBlockIterator::BOPTools_PaveBlockIterator (const Standard_Integer anEdge,
43 const BOPTools_PaveSet& aPaveSet)
44{
45 Initialize (anEdge, aPaveSet);
46}
47//=======================================================================
48// function:Initialize
49// purpose:
50//=======================================================================
51 void BOPTools_PaveBlockIterator::Initialize(const Standard_Integer anEdge,
52 const BOPTools_PaveSet& aPaveSet)
53{
54 Standard_Integer i, aNb;
55
56 myPaveSet=aPaveSet;
57 myIndex=1;
58 myEdge=anEdge;
59 myPaveBlock.SetOriginalEdge(myEdge);
60
61 myPaveSet.SortSet();
62 BOPTools_ListOfPave& aLP=myPaveSet.ChangeSet();
63 aNb=aLP.Extent();
64 myPaves.Resize(aNb);
65 BOPTools_ListIteratorOfListOfPave anIt(aLP);
66 for (i=1; anIt.More(); anIt.Next(), i++) {
67 const BOPTools_Pave& aPave=anIt.Value();
68 myPaves(i)=aPave;
69 }
70}
71
72//=======================================================================
73// function:More
74// purpose:
75//=======================================================================
76 Standard_Boolean BOPTools_PaveBlockIterator::More() const
77{
78 Standard_Integer aNb;
79 aNb=myPaves.Extent();
80 return (myIndex < aNb);
81}
82//=======================================================================
83// function:Next
84// purpose:
85//=======================================================================
86 void BOPTools_PaveBlockIterator::Next()
87{
88 myIndex++;
89}
90//=======================================================================
91// function:Value
92// purpose:
93//=======================================================================
94 BOPTools_PaveBlock& BOPTools_PaveBlockIterator::Value()
95{
96 Standard_Integer i1, i2;
97 Standard_Real aT1, aT2;
98 BOPTools_PaveBlock* pPB= (BOPTools_PaveBlock*) &myPaveBlock;
99
100 i1=myIndex;
101 i2=i1+1;
102 const BOPTools_Pave& aPave1=myPaves(i1);
103 const BOPTools_Pave& aPave2=myPaves(i2);
104 aT1=aPave1.Param();
105 aT2=aPave2.Param();
106
107 if (aT1 > aT2) {
108 pPB->SetPave1(aPave1);
109 pPB->SetPave2(aPave2);
110 }
111 else {
112 pPB->SetPave1(aPave2);
113 pPB->SetPave2(aPave1);
114 }
115 return myPaveBlock;
116}
117