0023062: Incorrect display of edge in draw axo viewer
authorika <ika@opencascade.com>
Fri, 25 Jan 2013 10:49:08 +0000 (14:49 +0400)
committerika <ika@opencascade.com>
Fri, 25 Jan 2013 10:49:08 +0000 (14:49 +0400)
Update first and last parameters of intervals, because they should be at same period like other values.

src/GeomAdaptor/GeomAdaptor_Curve.cxx
tests/bugs/end
tests/bugs/vis/bug23062 [new file with mode: 0755]

index 7ca68ce..b4f4a76 100755 (executable)
@@ -331,6 +331,7 @@ void GeomAdaptor_Curve::Intervals(TColStd_Array1OfReal& T,
 {
   Standard_Integer myNbIntervals = 1;
   Standard_Integer NbSplit;
+  Standard_Real FirstParam = myFirst, LastParam = myLast;
 
   if (myTypeCurve == GeomAbs_BSplineCurve) 
     {
@@ -398,6 +399,8 @@ void GeomAdaptor_Curve::Intervals(TColStd_Array1OfReal& T,
            BSplCLib::LocateParameter(myBspl->Degree(),TK,TM,myLast,
                                      myBspl->IsPeriodic(),
                                      1,Nb,Index2,newLast);
+            FirstParam = newFirst;
+            LastParam = newLast;
            // On decale eventuellement les indices  
            // On utilise une "petite" tolerance, la resolution ne doit 
            // servir que pour les tres longue courbes....(PRO9248)
@@ -456,8 +459,8 @@ void GeomAdaptor_Curve::Intervals(TColStd_Array1OfReal& T,
     // akm 05/04/02 ^^^
   }
   
-  T( T.Lower() ) = myFirst;
-  T( T.Lower() + myNbIntervals ) = myLast;
+  T( T.Lower() ) = FirstParam;
+  T( T.Lower() + myNbIntervals ) = LastParam;
 }
 
 //=======================================================================
index b0fd165..e3527d9 100755 (executable)
@@ -158,5 +158,9 @@ if { [info exist only_screen2d] } {
    v2ddump $imagedir/${test_image}.png
 }
 
+if { [info exist only_screen_axo] } {
+   xwd $imagedir/${test_image}.png
+}
+
 # to end a test script
 puts "TEST COMPLETED"
diff --git a/tests/bugs/vis/bug23062 b/tests/bugs/vis/bug23062
new file mode 100755 (executable)
index 0000000..80b9354
--- /dev/null
@@ -0,0 +1,21 @@
+puts "========"
+puts "CR23062"
+puts "========"
+puts ""
+
+#######################################################
+## Incorrect display of edge in draw axo viewer
+#######################################################
+
+restore [locate_data_file bug23062_ProblemWire.brep] result
+
+smallview
+display result
+fit
+
+explode result v
+
+vinit
+vdisplay result
+
+set only_screen_axo 1