blob: 3f08d1d1285ee02798328f4ac9d918eb74d349de (
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
|
// File: TopOpeBRepDS_Filter.cxx
// Created: Mon Apr 21 17:31:57 1997
// Author: Prestataire Mary FABIEN
// <fbi@langdox.paris1.matra-dtv.fr>
#include <TopOpeBRepDS_Filter.ixx>
#include <TopOpeBRepDS_DataStructure.hxx>
#include <TopoDS_Shape.hxx>
#include <TopOpeBRepDS_Interference.hxx>
#include <TopOpeBRepDS_ListOfInterference.hxx>
#include <TopOpeBRepDS_ListIteratorOfListOfInterference.hxx>
#ifdef DEB
Standard_IMPORT Standard_Boolean TopOpeBRepDS_GettracePEI();
Standard_IMPORT Standard_Boolean TopOpeBRepDS_GettracePI();
Standard_IMPORT Standard_Boolean TopOpeBRepDS_GettraceSPSX(const Standard_Integer);
//unreferenced function, commented
/*static Standard_Boolean TRCE(const Standard_Integer EIX) {
Standard_Boolean b1 = TopOpeBRepDS_GettracePEI();
Standard_Boolean b2 = TopOpeBRepDS_GettracePI();
Standard_Boolean b3 = TopOpeBRepDS_GettraceSPSX(EIX);
return (b1 || b2 || b3);
}*/
#endif
//=======================================================================
//function : TopOpeBRepDS_Filter
//purpose :
//=======================================================================
TopOpeBRepDS_Filter::TopOpeBRepDS_Filter
(const Handle(TopOpeBRepDS_HDataStructure)& HDS,
const TopOpeBRepTool_PShapeClassifier& pClassif)
: myHDS(HDS),
myPShapeClassif(pClassif)
{}
//=======================================================================
//function : ProcessInterferences
//purpose :
//=======================================================================
void TopOpeBRepDS_Filter::ProcessInterferences()
{
ProcessEdgeInterferences();
ProcessCurveInterferences();
}
//=======================================================================
//function : ProcessEdgeInterferences
//purpose :
//=======================================================================
void TopOpeBRepDS_Filter::ProcessEdgeInterferences()
{
TopOpeBRepDS_DataStructure& BDS = myHDS->ChangeDS();
Standard_Integer i,nshape = BDS.NbShapes();
for (i = 1; i <= nshape; i++) {
const TopoDS_Shape& S = BDS.Shape(i);
if(S.IsNull()) continue;
if ( S.ShapeType() == TopAbs_EDGE ) {
ProcessEdgeInterferences(i);
}
}
}
//=======================================================================
//function : ProcessFaceInterferences
//purpose :
//=======================================================================
void TopOpeBRepDS_Filter::ProcessFaceInterferences
(const TopOpeBRepDS_DataMapOfShapeListOfShapeOn1State& MEsp)
{
TopOpeBRepDS_DataStructure& BDS = myHDS->ChangeDS();
Standard_Integer i,nshape = BDS.NbShapes();
for (i = 1; i <= nshape; i++) {
const TopoDS_Shape& S = BDS.Shape(i);
if(S.IsNull()) continue;
if ( S.ShapeType() == TopAbs_FACE ) {
ProcessFaceInterferences(i,MEsp);
}
}
}
//=======================================================================
//function : ProcessCurveInterferences
//purpose :
//=======================================================================
void TopOpeBRepDS_Filter::ProcessCurveInterferences()
{
TopOpeBRepDS_DataStructure& BDS = myHDS->ChangeDS();
Standard_Integer i,ncurve = BDS.NbCurves();
for (i = 1; i <= ncurve; i++) {
ProcessCurveInterferences(i);
}
}
// ProcessFaceInterferences : voir FilterFaceInterferences.cxx
// ProcessEdgeInterferences : voir FilterEdgeInterferences.cxx
// ProcessCurveInterferences : voir FilterCurveInterferences.cxx
|