Snip Method Deprecation and IFMEGeometryTools Migration Guide for FME 2025.2 | FME Objects

Liz Sanderson
Liz Sanderson
  • Updated

Introduction

In FME 2025.2 we are simplifying the curve geometry API to support upcoming b-spline functionality. Two long-standing methods - IFMECurve::snip() and IFMECurve::snipByPoints() - are now deprecated and replaced with methods on IFMEGeometryTools. This article describes what changed, and how third-party C++ developers can migrate their plug-ins and applications.

 

C++ Applications

After updating your build to the 2025.2 SDK, existing code that calls the two IFMECurve methods will fail to compile. Resolving those errors and adopting the new methods should result in a successful build.

 

Summary of Changes

Note that you will need to include igeometrytools.h in order to use these methods

Old APINew API
FME_Status IFMECurve::snip(...)FME_Status IFMEGeometryTools::snip(
IFMECurve*& curve,… )
FME_Status IFMECurve::snipByPoints(...)

FME_Status IFMEGeometryTools::snipByPoints(

IFMECurve*& curve, … )

 

Impact & Recommended Action

ImpactRecommended Action
Compile errors – Calls to the two removed IFMECurve methods will not resolve.Replace each call with IFMEGeometryTools::snip() or ::snipByPoints()
Runtime failures on non-recompiled plug-insIf your plug-in isn’t rebuilt and IFMECurve::snip() or IFMECurve::snipByPoints() encounters a b-spline, the deprecated stubs return FME_FAILURE

 

Migration Steps

1. Update SDK

Point your project to the FME 2025.2 SDK include/lib paths.

2. Search & Replace

For each occurrence of

curve->snip(...);
curve->snipByPoints(...);

3. Replace with:

IFMEGeometryTools* tools = ...
FME_Status status = tools->snip(curve, /* params */);

FME_Status status = tools->snipByPoints(curve, startPt, endPt);

4. Adjust Pointer Semantics 

Because the new helpers take IFMECurve*&, your curve variable may now reference a different concrete type after the call (e.g., stroked line). Update downstream code if it assumes the original type.

 

Before / After Example

// ----- Pre-2025.2 -----
FME_Status err = curve->snip(FME_MEASURE, FME_FALSE, 0.0, 100.0);

// ----- 2025.2 Migration -----
FME_Status err = tools->snip(
    curve,               // may be replaced with a stroked line!
    FME_MEASURE,
    FME_FALSE,
    0.0,
    100.0);

 

Was this article helpful?

We're sorry to hear that.

Please tell us why.

As of January 14th, 2026, comments on knowledge base articles have been closed. To make sure questions don’t get missed and to enable more community support, we’ve moved discussions to the FME Community. If you have a question or a comment about this article, please create a new post or create a support ticket.