#include #include #include #include #include #include #include #include #include #include #include #include #ifdef DEB static void DEBUG(const AppParCurves_MultiCurve& MC) { Standard_Integer i, j; Standard_Integer nbcu = MC.NbCurves(); Standard_Integer nbpoles = MC.NbPoles(); TColgp_Array1OfPnt Poles(1, nbpoles); TColgp_Array1OfPnt2d Poles2d(1, nbpoles); for (i = 1; i <= nbcu; i++) { cout << " Curve No. " << i << endl; if (MC.Dimension(i) == 3) { MC.Curve(i, Poles); for (j = 1; j <= nbpoles; j++) { cout<< " Pole = " << Poles(j).X() <<" "< 0) { BSplCLib::IncreaseDegree(deg, ThePoles, PLib::NoWeights(), Points, PLib::NoWeights()); } else { Points = ThePoles; } for (k = first; k <= last; k++) { tabMU.ChangeValue(kpol++).SetPoint(j, Points(k)); } } kpoles3d = kpol; for (j = thefirst; j <= nb2d; j++) { kpol = kpoles2d; TColgp_Array1OfPnt2d ThePoles2d(1, CU.NbPoles()); CU.Curve(j+nb3d, ThePoles2d); Inc = deg-mydegre; TColgp_Array1OfPnt2d Points2d(1, deg+1); if (Inc > 0) { BSplCLib::IncreaseDegree(deg, ThePoles2d, PLib::NoWeights(), Points2d, PLib::NoWeights()); } else { Points2d = ThePoles2d; } for (k = first; k <= last; k++) { tabMU.ChangeValue(kpol++).SetPoint2d(j+nb3d, Points2d(k)); } } kpoles2d = kpol; } mySpline = AppParCurves_MultiBSpCurve(tabMU, TheKnots, TheMults); } #ifdef DEB if(debug) DEBUG(mySpline); #endif myDone = Standard_True; } const AppParCurves_MultiBSpCurve& Approx_MCurvesToBSpCurve::Value() const { return mySpline; } const AppParCurves_MultiBSpCurve& Approx_MCurvesToBSpCurve::ChangeValue() { return mySpline; }