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
|
#include <StdPrs_HLRToolShape.ixx>
#include <HLRAlgo_Projector.hxx>
#include <HLRBRep_Algo.hxx>
#include <HLRBRep_Data.hxx>
StdPrs_HLRToolShape::StdPrs_HLRToolShape (
const TopoDS_Shape& TheShape,
const HLRAlgo_Projector& TheProjector)
{
Handle(HLRBRep_Algo) Hider = new HLRBRep_Algo();
Standard_Integer nbIso = 0; // 5;
Hider->Add(TheShape, nbIso);
Hider->Projector(TheProjector);
Hider->Update();
Hider->Hide();
MyData = Hider->DataStructure();
MyCurrentEdgeNumber = 0;
}
Standard_Integer StdPrs_HLRToolShape::NbEdges() const {
return MyData->NbEdges();
}
void StdPrs_HLRToolShape::InitVisible(const Standard_Integer EdgeNumber) {
myEdgeIterator.InitVisible
(MyData->EDataArray().ChangeValue(EdgeNumber).Status());
MyCurrentEdgeNumber = EdgeNumber;
}
Standard_Boolean StdPrs_HLRToolShape::MoreVisible() const {
return myEdgeIterator.MoreVisible();
}
void StdPrs_HLRToolShape::NextVisible() {
myEdgeIterator.NextVisible();
}
void StdPrs_HLRToolShape::Visible(BRepAdaptor_Curve& TheEdge,
Standard_Real& U1,
Standard_Real& U2) {
TheEdge = MyData->EDataArray()
.ChangeValue(MyCurrentEdgeNumber)
.ChangeGeometry()
.Curve();
Standard_ShortReal t1,t2;
myEdgeIterator.Visible(U1,t1,U2,t2);
}
void StdPrs_HLRToolShape::InitHidden(const Standard_Integer EdgeNumber) {
myEdgeIterator.InitHidden
(MyData->EDataArray().ChangeValue(EdgeNumber).Status());
MyCurrentEdgeNumber = EdgeNumber;
}
Standard_Boolean StdPrs_HLRToolShape::MoreHidden() const {
return myEdgeIterator.MoreHidden();
}
void StdPrs_HLRToolShape::NextHidden() {
myEdgeIterator.NextHidden();
}
void StdPrs_HLRToolShape::Hidden (BRepAdaptor_Curve& TheEdge,
Standard_Real& U1,
Standard_Real& U2) {
TheEdge = MyData->EDataArray()
.ChangeValue(MyCurrentEdgeNumber)
.ChangeGeometry()
.Curve();
Standard_ShortReal t1,t2;
myEdgeIterator.Hidden(U1,t1,U2,t2);
}
|