return GeomAbs_Circle;
default:
- return GeomAbs_OtherCurve;
+ return GeomAbs_OffsetCurve;
}
}
"Adaptor2d_OffsetCurve::BSpline() - wrong curve type");
return myCurve->BSpline();
}
+
+static Standard_Integer nbPoints(const Handle(Adaptor2d_HCurve2d)& theCurve)
+{
+
+ Standard_Integer nbs = 20;
+
+ if (theCurve->GetType() == GeomAbs_Line)
+ nbs = 2;
+ else if (theCurve->GetType() == GeomAbs_BezierCurve)
+ {
+ nbs = 3 + theCurve->NbPoles();
+ }
+ else if (theCurve->GetType() == GeomAbs_BSplineCurve) {
+ nbs = theCurve->NbKnots();
+ nbs *= theCurve->Degree();
+ }
+
+ if (nbs > 200)
+ nbs = 200;
+ return nbs;
+
+}
+
+Standard_Integer Adaptor2d_OffsetCurve::NbSamples() const
+{
+ return nbPoints(myCurve);
+}