How to get length of curve in OpenCASCADE
OCCUtils provides a convenience function to get the length of a curve in OpenCASCADE:
#include <occutils/Curve.hxx>
using namespace OCCUtils;
GeomAdaptor_Curve curve = /* ... */;
double length = Curve::Length(curve);
You can call it with GeomAdaptor_Curve
or Geom_TrimmedCurve
. While you can also call it with Handle(Geom_Curve)
, this is usually not what you want to do, since Geom_Curve
typically describes an infinite curve (like an infinitely long line) and doesn’t know about which section of the curve is actually use (GeomAdaptor_Curve
and Geom_TrimmedCurve
both have the required Umin/Umax information stored).
In case you need to do it manually (without OCCUtils), use this snippet:
#include <GCPnts_AbscissaPoint.hxx>
GeomAdaptor_Curve curve = /* ... */;
GCPnts_AbscissaPoint::Length(curve);
For a Geom_TrimmedCurve
, you need to convert it to a GeomAdaptor_Curve
first. SeeĀ How to convert Geom_TrimmedCurve to GeomAdaptor_Curve in OpenCASCADE for details on how to do that.