0023024: Update headers of OCCT files
[occt.git] / src / BOPTools / BOPTools_SSInterference.cxx
CommitLineData
b311480e 1// Created on: 2000-11-21
2// Created by: Peter KURNEV
3// Copyright (c) 2000-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_SSInterference.ixx>
23
24#include <IntTools_Curve.hxx>
25#include <IntTools_SequenceOfCurves.hxx>
26#include <IntTools_Tools.hxx>
27#include <IntTools_PntOn2Faces.hxx>
28
29#include <BOPTools_Curve.hxx>
7fd59977 30//modified by NIZNHY-PKV Fri Jun 30 10:08:51 2006
31#include <TopTools_ListIteratorOfListOfShape.hxx>
32#include <TopoDS_Shape.hxx>
33#include <TColStd_ListOfInteger.hxx>
34#include <TColStd_ListIteratorOfListOfInteger.hxx>
35
36
37//=======================================================================
38//function : BOPTools_SSInterference
39//purpose :
40//=======================================================================
b311480e 41BOPTools_SSInterference::BOPTools_SSInterference()
7fd59977 42:
43 BOPTools_ShapeShapeInterference(0, 0),
44 myTangentFacesFlag(Standard_False),
45 mySenseFlag(0)
46{}
47
48//=======================================================================
49//function : BOPTools_SSInterference::BOPTools_SSInterference
50//purpose :
51//=======================================================================
52 BOPTools_SSInterference::BOPTools_SSInterference
53 (const Standard_Integer anIndex1,
54 const Standard_Integer anIndex2,
55 const Standard_Real aTolR3D,
56 const Standard_Real aTolR2D,
57 const IntTools_SequenceOfCurves& aCvs,
58 const IntTools_SequenceOfPntOn2Faces& aPnts)
59:
60 BOPTools_ShapeShapeInterference(anIndex1, anIndex2),
61 myTangentFacesFlag(Standard_False),
62 mySenseFlag(0)
63{
64 myTolR3D=aTolR3D;
65 myTolR2D=aTolR2D;
66
67 myCurves.Clear();
68 Standard_Integer i, aNbCurves;
69 aNbCurves=aCvs.Length();
70 for (i=1; i<=aNbCurves; i++) {
71 const IntTools_Curve& aIC=aCvs(i);
72 BOPTools_Curve aBC(aIC);
73 myCurves.Append(aBC);
74 }
75 //
76 SetAlonePnts(aPnts);
77}
78//=======================================================================
79//function : AppendBlock
80//purpose :
81//=======================================================================
82 void BOPTools_SSInterference::AppendBlock(const BOPTools_PaveBlock& aPB)
83{
84 myPBs.Append(aPB);
85}
86
87//=======================================================================
88//function : PaveBlocks
89//purpose :
90//=======================================================================
91 const BOPTools_ListOfPaveBlock& BOPTools_SSInterference::PaveBlocks() const
92{
93 return myPBs;
94}
95
96//=======================================================================
97//function : TolR3D
98//purpose :
99//=======================================================================
100 Standard_Real BOPTools_SSInterference::TolR3D() const
101{
102 return myTolR3D;
103}
104
105//=======================================================================
106//function : TolR2D
107//purpose :
108//=======================================================================
109 Standard_Real BOPTools_SSInterference::TolR2D() const
110{
111 return myTolR2D;
112}
113
114//=======================================================================
115//function : Curves
116//purpose :
117//=======================================================================
118 BOPTools_SequenceOfCurves& BOPTools_SSInterference::Curves()
119{
120 return myCurves;
121}
122
123//=======================================================================
124//function : NewPaveSet
125//purpose :
126//=======================================================================
127 BOPTools_PaveSet& BOPTools_SSInterference::NewPaveSet()
128{
129 return myNewPaveSet;
130}
131
132//=======================================================================
133//function : SetTangentFacesFlag
134//purpose :
135//=======================================================================
136 void BOPTools_SSInterference::SetTangentFacesFlag(const Standard_Boolean aFlag)
137{
138 myTangentFacesFlag=aFlag;
139}
140//=======================================================================
141//function : IsTangentFaces
142//purpose :
143//=======================================================================
144 Standard_Boolean BOPTools_SSInterference::IsTangentFaces()const
145{
146 return myTangentFacesFlag;
147}
148
149//=======================================================================
150// function: SetSenseFlag
151// purpose:
152//=======================================================================
153 void BOPTools_SSInterference::SetSenseFlag (const Standard_Integer iFlag)
154
155{
156 mySenseFlag=iFlag;
157}
158//=======================================================================
159// function: SenseFlag
160// purpose:
161//=======================================================================
162 Standard_Integer BOPTools_SSInterference::SenseFlag () const
163
164{
165 return mySenseFlag;
166}
167//=======================================================================
168// function: SetStatesMap
169// purpose:
170//=======================================================================
171 void BOPTools_SSInterference::SetStatesMap (const BOPTools_IndexedDataMapOfIntegerState& aMap)
172{
173 myStatesMap=aMap;
174}
175//=======================================================================
176// function: StatesMap
177// purpose:
178//=======================================================================
179 const BOPTools_IndexedDataMapOfIntegerState& BOPTools_SSInterference::StatesMap () const
180{
181 return myStatesMap;
182}
183
184//=======================================================================
185// function: SetAlonePnts
186// purpose:
187//=======================================================================
188 void BOPTools_SSInterference::SetAlonePnts (const IntTools_SequenceOfPntOn2Faces& aPnts)
189{
190 Standard_Integer i, aNb;
191 myAlonePnts.Clear();
192
193 aNb=aPnts.Length();
194 for (i=1; i<=aNb; ++i) {
195 const IntTools_PntOn2Faces& aPntOn2Faces=aPnts(i);
196 myAlonePnts.Append(aPntOn2Faces);
197 }
198}
199
200//=======================================================================
201// function: AlonePnts
202// purpose:
203//=======================================================================
204 const IntTools_SequenceOfPntOn2Faces& BOPTools_SSInterference::AlonePnts ()const
205{
206 return myAlonePnts;
207}
208
209//=======================================================================
210// function: AloneVertices
211// purpose:
212//=======================================================================
213 TColStd_ListOfInteger& BOPTools_SSInterference::AloneVertices ()
214{
215 return myAloneVertices;
216}
217//modified by NIZNHY-PKV Fri Jun 30 10:06:12 2006f
218//=======================================================================
219// function: SetSharedEdges
220// purpose:
221//=======================================================================
222 void BOPTools_SSInterference::SetSharedEdges (const TColStd_ListOfInteger& aLS)
223{
224 Standard_Integer nE;
225 TColStd_ListIteratorOfListOfInteger aIt;
226 //
227 aIt.Initialize(aLS);
228 for(; aIt.More(); aIt.Next()) {
229 nE=aIt.Value();
230 mySharedEdges.Append(nE);
231 }
232}
233//=======================================================================
234// function: SharedEdges
235// purpose:
236//=======================================================================
237 const TColStd_ListOfInteger& BOPTools_SSInterference::SharedEdges()const
238{
239 return mySharedEdges;
240}
241/*
242//=======================================================================
243// function: SetSharedEdges
244// purpose:
245//=======================================================================
246 void BOPTools_SSInterference::SetSharedEdges (const TopTools_ListOfShape& aLS)
247{
248 TopTools_ListIteratorOfListOfShape aIt;
249 //
250 aIt.Initialize(aLS);
251 for(; aIt.More(); aIt.Next()) {
252 const TopoDS_Shape& aE=aIt.Value();
253 mySharedEdges.Append(aE);
254 }
255}
256//=======================================================================
257// function: SharedEdges
258// purpose:
259//=======================================================================
260 const TopTools_ListOfShape& BOPTools_SSInterference::SharedEdges()const
261{
262 return mySharedEdges;
263}
264*/
265//modified by NIZNHY-PKV Fri Jun 30 10:06:14 2006t