How to get length of curve in OpenCASCADE
OCCUtils provides a convenience function to get the length of a curve in OpenCASCADE:
occutils_curve_length.cpp
#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:
manual_curve_length.cpp
#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.
Check out similar posts by category:
C/C++, OpenCASCADE
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow