diff --git a/src/core/mesh/qgsmeshadvancedediting.cpp b/src/core/mesh/qgsmeshadvancedediting.cpp index 1efe338d6111..ff306df10cde 100644 --- a/src/core/mesh/qgsmeshadvancedediting.cpp +++ b/src/core/mesh/qgsmeshadvancedediting.cpp @@ -727,19 +727,16 @@ bool QgsMeshTransformVerticesByExpression::calculate( QgsMeshLayer *layer ) if ( calcZ ) { + double z = std::numeric_limits::quiet_NaN(); if ( zvar.isValid() ) { - double z = zvar.toDouble( &ok ); - if ( ok ) - { - mNewZValues.append( z ); - mOldZValues.append( vert.z() ); - } - else - return false; + z = zvar.toDouble( &ok ); + if ( !ok ) + z = std::numeric_limits::quiet_NaN(); } - else - return false; + + mNewZValues.append( z ); + mOldZValues.append( vert.z() ); } } @@ -749,7 +746,7 @@ bool QgsMeshTransformVerticesByExpression::calculate( QgsMeshLayer *layer ) }; mNativeFacesIndexesGeometryChanged = qgis::setToList( concernedFaces ); - return layer->meshEditor()->canBeTransformed( mNativeFacesIndexesGeometryChanged, transformFunction ); + return ( !calcX && !calcY ) || layer->meshEditor()->canBeTransformed( mNativeFacesIndexesGeometryChanged, transformFunction ); } QString QgsMeshTransformVerticesByExpression::text() const