HLRAlgo::EncodeMinMax((Standard_Address)VertMin,
(Standard_Address)VertMax,
(Standard_Address)MinMaxVert);
-
+ /*
#ifdef OCCT_DEBUG
{
Standard_Integer qwe,qwep8,q,q1,q2;
cout<<endl;
}
#endif
+ */
if (((MaxFace1 - MinVert1) & 0x80008000) != 0 ||
((MaxVert1 - MinFace1) & 0x80008000) != 0 ||
do {
gp_Pnt2d pnt2d(u,v);
- if (myClassifier->Classify(pnt2d,0.0)!=TopAbs_OUT) {
+ if (myClassifier->Classify(pnt2d,Precision::PConfusion())
+ != TopAbs_OUT)
+ {
InsideRestriction = Standard_True;
state = TopAbs_IN;
Level++;
BB.MakeCompound(Result);
TopoDS_Shape SharpEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Sharp, Standard_True, Standard_True);
- BB.Add(Result, SharpEdges);
+ if (!SharpEdges.IsNull())
+ BB.Add(Result, SharpEdges);
TopoDS_Shape OutLines = Reflector.GetCompoundOf3dEdges(HLRBRep_OutLine, Standard_True, Standard_True);
- BB.Add(Result, OutLines);
+ if (!OutLines.IsNull())
+ BB.Add(Result, OutLines);
TopoDS_Shape SmoothEdges = Reflector.GetCompoundOf3dEdges(HLRBRep_Rg1Line, Standard_True, Standard_True);
- BB.Add(Result, SmoothEdges);
+ if (!SmoothEdges.IsNull())
+ BB.Add(Result, SmoothEdges);
DBRep::Set(a[1], Result);
}
}
}
+
+ //Correction of internal outlines: unite coinciding vertices
+ const Standard_Real SqTol = tol*tol;
+ TopTools_ListIteratorOfListOfShape itl1(IntL);
+ for (; itl1.More(); itl1.Next())
+ {
+ TopoDS_Edge anIntLine = TopoDS::Edge(itl1.Value());
+ anIntLine.Orientation(TopAbs_FORWARD);
+ TopoDS_Vertex aVer [2];
+ TopExp::Vertices(anIntLine, aVer[0], aVer[1]);
+ TopTools_ListIteratorOfListOfShape itl2 = itl1;
+ for (; itl2.More(); itl2.Next())
+ {
+ TopoDS_Edge anIntLine2 = TopoDS::Edge(itl2.Value());
+ anIntLine2.Orientation(TopAbs_FORWARD);
+ if (anIntLine2.IsSame(anIntLine))
+ continue;
+ TopoDS_Vertex aVer2 [2];
+ TopExp::Vertices(anIntLine2, aVer2[0], aVer2[1]);
+ for (Standard_Integer i = 0; i < 2; i++)
+ {
+ if (i == 1 && aVer[0].IsSame(aVer[1]))
+ continue;
+ gp_Pnt Pnt1 = BRep_Tool::Pnt(aVer[i]);
+ for (Standard_Integer j = 0; j < 2; j++)
+ {
+ if (aVer[i].IsSame(aVer2[j]))
+ continue;
+ gp_Pnt Pnt2 = BRep_Tool::Pnt(aVer2[j]);
+ if (Pnt1.SquareDistance(Pnt2) <= SqTol)
+ {
+ BRep_Builder aBB;
+ aBB.Remove(anIntLine2, aVer2[j]);
+ aVer[i].Orientation((j==0)? TopAbs_FORWARD : TopAbs_REVERSED);
+ aBB.Add(anIntLine2, aVer[i]);
+ }
+ }
+ }
+ }
+ }
}
//=======================================================================
set nbshapes_expected "
Number of shapes in shape
- VERTEX : 167
- EDGE : 84
+ VERTEX : 93
+ EDGE : 47
WIRE : 0
FACE : 0
SHELL : 0
SOLID : 0
COMPSOLID : 0
COMPOUND : 1
- SHAPE : 252
+ SHAPE : 141
"
checknbshapes result -ref ${nbshapes_expected} -t -m "HLRToShape"
fit
checkprops result -l 291.117
-checknbshapes result -vertex 18 -edge 9
+checknbshapes result -vertex 16 -edge 8
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 334.113
-
-# 0027526: Excess micro-edge in HLR visualization of a torus
-if { [regexp {Windows} [dversion]] } {
- checknbshapes result -vertex 24 -edge 12
-} else {
- checknbshapes result -vertex 26 -edge 13
-}
+checknbshapes result -vertex 24 -edge 12
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 1188.11
-checknbshapes result -vertex 324 -edge 163
+checkprops result -l 1030.62
+checknbshapes result -vertex 236 -edge 119
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 425.969
-
-# 0027526: Excess micro-edge in HLR visualization of a torus
-if { [regexp {Windows} [dversion]] } {
- checknbshapes result -vertex 198 -edge 99
-} else {
- checknbshapes result -vertex 200 -edge 100
-}
+checkprops result -l 414.732
+checknbshapes result -vertex 200 -edge 100
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 3299.23
-checknbshapes result -vertex 648 -edge 324
+checkprops result -l 3249.9
+checknbshapes result -vertex 634 -edge 317
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 3016.59
-checknbshapes result -vertex 1388 -edge 696
+checkprops result -l 2867.9
+checknbshapes result -vertex 1365 -edge 684
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 1760.66
-checknbshapes result -vertex 508 -edge 254
+checknbshapes result -vertex 500 -edge 250
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 2893.98
-checknbshapes result -vertex 725 -edge 363
+checknbshapes result -vertex 697 -edge 349
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-# 0027526: Excess micro-edge in HLR visualization of a torus
-if { [regexp {Windows} [dversion]] } {
- checkprops result -l 2377.14
- checknbshapes result -vertex 1008 -edge 507
-} else {
- checkprops result -l 2345.73
- checknbshapes result -vertex 1007 -edge 506
-}
+checkprops result -l 2282.11
+checknbshapes result -vertex 943 -edge 474
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 1260.37
-checknbshapes result -vertex 527 -edge 264
+checkprops result -l 1169.48
+checknbshapes result -vertex 482 -edge 241
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 2040.68
-checknbshapes result -vertex 344 -edge 172
+checkprops result -l 2010.95
+checknbshapes result -vertex 312 -edge 156
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 808.299
-checknbshapes result -vertex 578 -edge 289
+checkprops result -l 778.117
+checknbshapes result -vertex 550 -edge 275
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 1124.09
-checknbshapes result -vertex 354 -edge 177
+checkprops result -l 1095.44
+checknbshapes result -vertex 328 -edge 164
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 520.703
-checknbshapes result -vertex 310 -edge 155
+checknbshapes result -vertex 306 -edge 153
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 9662.5
-checknbshapes result -vertex 4531 -edge 2272
+checknbshapes result -vertex 4417 -edge 2215
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 5910.01
-
-# 0027526: Excess micro-edge in HLR visualization of a torus
-if { [regexp {Windows} [dversion]] } {
- checknbshapes result -vertex 1461 -edge 731
-} else {
- checknbshapes result -vertex 1460 -edge 730
-}
+checknbshapes result -vertex 1406 -edge 703
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 5343.53
-
-# 0027526: Excess micro-edge in HLR visualization of a torus
-if { [regexp {Windows} [dversion]] } {
- checknbshapes result -vertex 1813 -edge 909
-} else {
- checknbshapes result -vertex 1812 -edge 908
-}
+checkprops result -l 5219.21
+checknbshapes result -vertex 1692 -edge 848
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 1764.64
-checknbshapes result -vertex 353 -edge 177
+checknbshapes result -vertex 345 -edge 173
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 2647.04
-checknbshapes result -vertex 614 -edge 307
+checkprops result -l 2619.72
+checknbshapes result -vertex 578 -edge 289
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 2429.7
-checknbshapes result -vertex 387 -edge 194
+checknbshapes result -vertex 379 -edge 190
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 792.344
-checknbshapes result -vertex 410 -edge 205
+checkprops result -l 755.552
+checknbshapes result -vertex 376 -edge 188
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 1751.95
-checknbshapes result -vertex 867 -edge 434
+checkprops result -l 1726.77
+checknbshapes result -vertex 801 -edge 401
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
checkprops result -l 6584.94
-
-# 0027526: Excess micro-edge in HLR visualization of a torus
-if { [regexp {Windows} [dversion]] } {
- checknbshapes result -vertex 819 -edge 410
-} else {
- checknbshapes result -vertex 818 -edge 409
-}
+checknbshapes result -vertex 774 -edge 387
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 838.306
-checknbshapes result -vertex 478 -edge 239
+checkprops result -l 813.531
+checknbshapes result -vertex 452 -edge 226
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 220.507
-checknbshapes result -vertex 110 -edge 55
+checkprops result -l 211.007
+checknbshapes result -vertex 102 -edge 51
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 565.837
-checknbshapes result -vertex 324 -edge 162
+checkprops result -l 521.037
+checknbshapes result -vertex 316 -edge 158
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
testreadstep [locate_data_file bug27341_conboom.stp] a
-set viewname "right"
+set viewname "back"
smallview
top
fit
-checkprops result -l 23600.7
-checknbshapes result -vertex 174 -edge 87
+checkprops result -l 48596.2
+checknbshapes result -vertex 312 -edge 156
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 47.1886
-checknbshapes result -vertex 70 -edge 35
+checkprops result -l 40.3211
+checknbshapes result -vertex 60 -edge 30
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
fit
-checkprops result -l 1147.49
-checknbshapes result -vertex 298 -edge 149
+checkprops result -l 1126.76
+checknbshapes result -vertex 280 -edge 140
checkview -screenshot -2d -path ${imagedir}/${test_image}.png