Länge einer Kurve in OpenCASCADE ermitteln
OCCUtils stellt eine Bequemerfunktion zur Ermittlung der Länge einer Kurve in OpenCASCADE bereit:
#include <occutils/Curve.hxx>
using namespace OCCUtils;
GeomAdaptor_Curve curve = /* ... */;
double length = Curve::Length(curve);Du kannst sie mit GeomAdaptor_Curve oder Geom_TrimmedCurve aufrufen. Während du sie auch mit Handle(Geom_Curve) aufrufen kannst, ist dies normalerweise nicht das, was du tun möchtest, da Geom_Curve typischerweise eine unendliche Kurve beschreibt (wie eine unendlich lange Linie) und nicht weiß, welcher Abschnitt der Kurve tatsächlich verwendet wird (GeomAdaptor_Curve und Geom_TrimmedCurve haben beide die erforderlichen Umin/Umax-Informationen gespeichert).
Falls du es manuell tun musst (ohne OCCUtils), verwende dieses Snippet:
#include <GCPnts_AbscissaPoint.hxx>
GeomAdaptor_Curve curve = /* ... */;
GCPnts_AbscissaPoint::Length(curve);Für einen Geom_TrimmedCurve musst du ihn zuerst in einen GeomAdaptor_Curve konvertieren. Siehe How to convert Geom_TrimmedCurve to GeomAdaptor_Curve in OpenCASCADE für Details, wie man das tut.