LuciadCPillar 2023.1.04
luciad::IPolylineConstraint Class Referenceabstract

A constraint on Polyline editing. More...

#include <luciad/geometries/constraints/IPolylineConstraint.h>

Public Member Functions

virtual ~IPolylineConstraint ()=default
 
virtual std::shared_ptr< Polylineapply (const std::shared_ptr< Polyline > &oldPolyline, const std::shared_ptr< Polyline > &newPolyline, const PolylineChange &changes)=0
 Applies this constraint on a pending change. More...
 
virtual std::shared_ptr< Polylineapply (const std::shared_ptr< Polyline > &polyline)=0
 Applies this constraint on a polyline without a (known) change. More...
 

Detailed Description

A constraint on Polyline editing.

This can for example be configured on a PolylineHandlesProvider.

Since
2020.1

Constructor & Destructor Documentation

◆ ~IPolylineConstraint()

virtual luciad::IPolylineConstraint::~IPolylineConstraint ( )
virtualdefault

Member Function Documentation

◆ apply() [1/2]

virtual std::shared_ptr< Polyline > luciad::IPolylineConstraint::apply ( const std::shared_ptr< Polyline > &  oldPolyline,
const std::shared_ptr< Polyline > &  newPolyline,
const PolylineChange changes 
)
pure virtual

Applies this constraint on a pending change.

Parameters
oldPolylinethe base polyline on which the change is performed, cannot be nullptr.
newPolylinethe result of the change, without any constraints applied, cannot be nullptr.
changesthe change that was applied.
Returns
the resulting polyline, after applying this constraint on the pending change. If the constraint does not apply, simply return the newPolyline. Cannot be nullptr.

◆ apply() [2/2]

virtual std::shared_ptr< Polyline > luciad::IPolylineConstraint::apply ( const std::shared_ptr< Polyline > &  polyline)
pure virtual

Applies this constraint on a polyline without a (known) change.

Parameters
polylinethe polyline to constrain, cannot be nullptr.
Returns
the resulting polyline, after applying this constraint. If the constraint does not apply, simply return the polyline. Cannot be nullptr.