#include <GeometryTest.hxx>
#include <Draw_Interpretor.hxx>
#include <Draw_Appli.hxx>
+#include <Draw_ProgressIndicator.hxx>
#include <DrawTrSurf.hxx>
#include <TopAbs_ShapeEnum.hxx>
#include <TopoDS.hxx>
NbPtsCur->Value(i));
Henri.Add(Cont);
}
-
- Henri.Perform();
+ Handle(Draw_ProgressIndicator) aProgress = new Draw_ProgressIndicator(di, 1);
+ Henri.Perform(aProgress->Start());
+ if (aProgress->UserBreak())
+ {
+ di << "Error: UserBreak\n";
+ return 0;
+ }
Standard_Real ErrG0 = 1.1*Henri.G0Error();
//std::cout<<" dist. max = "<<Henri.G0Error()<<" ; angle max = "<<Henri.G1Error()<<std::endl;
// commande gplate : resultat face egale a la surface approchee
////////////////////////////////////////////////////////////////////////////////
-static Standard_Integer gplate (Draw_Interpretor & ,Standard_Integer n,const char** a)
+static Standard_Integer gplate (Draw_Interpretor & di,Standard_Integer n,const char** a)
{
if (n < 6 ) return 1;
Standard_Integer NbCurFront=Draw::Atoi(a[2]),
Henri.Add(PCont);
}
}
- Henri.Perform();
+ Handle(Draw_ProgressIndicator) aProgress = new Draw_ProgressIndicator(di, 1);
+ Henri.Perform(aProgress->Start());
+ if (aProgress->UserBreak())
+ {
+ di << "Error: UserBreak\n";
+ return 0;
+ }
Standard_Integer nbcarreau=9;
Standard_Integer degmax=8;
Standard_Real seuil;
Henri.Add(Cont);
}
- Henri.Perform();
+ Handle(Draw_ProgressIndicator) aProgress = new Draw_ProgressIndicator(di, 1);
+ Henri.Perform(aProgress->Start());
+ if (aProgress->UserBreak())
+ {
+ di << "Error: UserBreak\n";
+ return 0;
+ }
Standard_Real dmax = Henri.G0Error(),
anmax = Henri.G1Error();
//======================================================================
// Initial Surface
//======================================================================
- Message_ProgressScope aPS(theProgress, NULL, 100, Standard_True);
+ Message_ProgressScope aPS(theProgress, "Calculating the surface filled", 100, Standard_True);
if (!mySurfInitIsGive)
{
ComputeSurfInit (aPS.Next(10));
//====================================================================
// Construction of the surface
//====================================================================
- myPlate.SolveTI(2, ComputeAnisotropie(), theProgress);
+ Message_ProgressScope aPS(theProgress, "ComputeSurfInit", 1);
+ myPlate.SolveTI(2, ComputeAnisotropie(), aPS.Next());
if (theProgress.UserBreak())
{
return;
Standard_Real pivot_max = 1.e-12;
OK = Standard_True;
- Message_ProgressScope aScope (theProgress, NULL, 10);
+ Message_ProgressScope aScope (theProgress, "Plate_Plate::SolveTI1()", 10);
math_Gauss algo_gauss(mat,pivot_max, aScope.Next (7));
if (aScope.UserBreak())
Standard_Real pivot_max = 1.e-12;
OK = Standard_True; // ************ JHH
- Message_ProgressScope aScope (theProgress, NULL, 10);
+ Message_ProgressScope aScope (theProgress, "Plate_Plate::SolveTI2()", 10);
math_Gauss algo_gauss(mat,pivot_max, aScope.Next (7));
if (aScope.UserBreak())
Standard_Real pivot_max = 1.e-12;
OK = Standard_True; // ************ JHH
- Message_ProgressScope aScope (theProgress, NULL, 10);
+ Message_ProgressScope aScope (theProgress, "Plate_Plate::SolveTI3()", 10);
math_Gauss algo_gauss(mat,pivot_max, aScope.Next (7));
if (aScope.UserBreak())
Standard_Integer n = a.RowNumber();
d = 1.0;
- Message_ProgressScope aPS(theProgress, "", n);
+ Message_ProgressScope aPS(theProgress, "math_Gauss LU_Decompose", n);
for(i = 1; i <= n; i++) {
big = 0.0;
007 intss
008 classifier
009 bvh
+010 progress
+
--- /dev/null
+puts "========"
+puts "0031190: Modeling Algorithms - progress indication in GeomPlate is inconsistent"
+puts "========"
+
+plane p
+trim p p -1 3 -1 3
+mkface p p
+
+beziercurve c1 3 0 0 0 1 0 1 2 0 0
+mkedge e1 c1
+tcopy e1 e2
+tcopy e1 e3
+
+ttranslate e2 0 2 0
+trotate e3 0 0 0 0 0 1 90
+tcopy e3 e4
+ttranslate e4 2 0 0
+
+# Configurate XProgress
+XProgress +t
+
+# create the surface
+set output [gplate r1 4 0 p e1 0 e2 0 e3 0 e4 0]
+
+# Test data
+set ctr {"0%" "Calculating the surface filled" "Plate_Plate::SolveTI1()" "math_Gauss LU_Decompose" "100%" }
+
+foreach data ${ctr} {
+ if ![regexp $data $output] {
+ puts "Error: gplate command: Mismatch data on '$data'"
+ break
+ }
+}
--- /dev/null
+puts "========"
+puts "0031190: Modeling Algorithms - progress indication in GeomPlate is inconsistent"
+puts "========"
+
+beziercurve c1 3 0 0 0 1 0 1 2 0 0
+mkedge e1 c1
+tcopy e1 e2
+ttranslate e2 0 2 0
+
+beziercurve c2 3 0 0 0 0 1 2 0 2 0
+mkedge e3 c2
+tcopy e3 e4
+ttranslate e4 2 0 0
+
+# Configurate XProgress
+XProgress +t
+
+# create the surface
+set output [gplate r1 4 0 e1 0 e2 0 e3 0 e4 0]
+
+# Test data
+set ctr {"0%" "Calculating the surface filled" "ComputeSurfInit"
+ "Plate_Plate::SolveTI1()" "math_Gauss LU_Decompose" "100%" }
+
+foreach data ${ctr} {
+ if ![regexp $data $output] {
+ puts "Error: gplate command: Mismatch data on '$data'"
+ break
+ }
+}
--- /dev/null
+puts "========"
+puts "0031190: Modeling Algorithms - progress indication in GeomPlate is inconsistent"
+puts "========"
+
+# Generate control points
+set points {}
+set i 0
+for {set j 0} {$j < 300} {incr j; incr i} {
+ point p$i $j 0 0
+ lappend points p$i
+}
+for {set j 1} {$j < 300} {incr j; incr i} {
+ point p$i 0 $j 0
+ lappend points p$i
+}
+for {set j 0} {$j < 300} {incr j; incr i} {
+ point p$i 300 $j 0
+ lappend points p$i
+}
+
+for {set j 0} {$j < 301} {incr j; incr i} {
+ point p$i $j 300 0
+ lappend points p$i
+}
+
+# Configurate XProgress
+XProgress +t
+
+# create the surface
+set output [eval gplate res 0 [llength $points] $points]
+
+# Test data
+set ctr {"0%" "Calculating the surface filled" "Plate_Plate::SolveTI1()" "math_Gauss LU_Decompose" "100%" }
+
+foreach data ${ctr} {
+ if ![regexp $data $output] {
+ puts "Error: gplate command: Mismatch data on '$data'"
+ break
+ }
+}
--- /dev/null
+puts "========"
+puts "0031190: Modeling Algorithms - progress indication in GeomPlate is inconsistent"
+puts "========"
+
+# Generate control points
+set n 100
+set l {}
+for {set i 0} {$i < $n} {incr i} {
+ point p$i [dval sin(2.*pi*$i/$n)] [dval cos(2.*pi*$i/$n)] [expr abs(1-2.*$i/$n)]
+ lappend l p$i
+}
+
+# Configurate XProgress
+XProgress +t
+
+# create the surface
+set output [eval gplate r 0 [llength $l] $l]
+
+# Test data
+set ctr {"0%" "Calculating the surface filled" "Plate_Plate::SolveTI1()" "math_Gauss LU_Decompose" "100%" }
+
+foreach data ${ctr} {
+ if ![regexp $data $output] {
+ puts "Error: gplate command: Mismatch data on '$data'"
+ break
+ }
+}