Skip to content

Commit df1552f

Browse files
committed
Ensure multicurve dimensionality is respected when adding new lines
1 parent c9117fc commit df1552f

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/core/geometry/qgsmulticurve.cpp

+13-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,19 @@ bool QgsMultiCurve::addGeometry( QgsAbstractGeometry *g )
126126
return false;
127127
}
128128

129-
setZMTypeFromSubGeometry( g, QgsWkbTypes::MultiCurve );
129+
if ( mGeometries.empty() )
130+
{
131+
setZMTypeFromSubGeometry( g, QgsWkbTypes::MultiCurve );
132+
}
133+
if ( is3D() && !g->is3D() )
134+
g->addZValue();
135+
else if ( !is3D() && g->is3D() )
136+
g->dropZValue();
137+
if ( isMeasure() && !g->isMeasure() )
138+
g->addMValue();
139+
else if ( !isMeasure() && g->isMeasure() )
140+
g->dropMValue();
141+
130142
return QgsGeometryCollection::addGeometry( g );
131143
}
132144

0 commit comments

Comments
 (0)