@@ -4628,41 +4628,25 @@ void QgsGeometry::transformVertex( QgsWkbPtr &wkbPtr, const QTransform& trans, b
4628
4628
double x, y, rotated_x, rotated_y;
4629
4629
4630
4630
QgsWkbPtr tmp = wkbPtr;
4631
-
4632
- memcpy ( &x, tmp, sizeof ( double ) );
4633
- tmp += sizeof ( double );
4634
- memcpy ( &y, tmp, sizeof ( double ) );
4635
- tmp += sizeof ( double );
4636
-
4631
+ tmp >> x >> y;
4637
4632
trans.map ( x, y, &rotated_x, &rotated_y );
4638
-
4639
- // x-coordinate
4640
- memcpy ( wkbPtr, &rotated_x, sizeof ( double ) );
4641
- wkbPtr += sizeof ( double );
4642
-
4643
- // y-coordinate
4644
- memcpy ( wkbPtr, &rotated_y, sizeof ( double ) );
4645
- wkbPtr += sizeof ( double );
4633
+ wkbPtr << rotated_x << rotated_y;
4646
4634
4647
4635
if ( hasZValue )
4648
4636
wkbPtr += sizeof ( double );
4649
4637
}
4650
4638
4651
4639
void QgsGeometry::transformVertex ( QgsWkbPtr &wkbPtr, const QgsCoordinateTransform& ct, bool hasZValue )
4652
4640
{
4653
- double x, y, z;
4654
-
4655
- memcpy ( &x, wkbPtr, sizeof ( double ) );
4656
- memcpy ( &y, wkbPtr + sizeof ( double ), sizeof ( double ) );
4657
- z = 0.0 ; // Ignore Z for now.
4641
+ double x, y, z = 0.0 ;
4658
4642
4643
+ QgsWkbPtr tmp = wkbPtr;
4644
+ tmp >> x >> y;
4659
4645
ct.transformInPlace ( x, y, z );
4660
-
4661
- // new coordinate
4662
4646
wkbPtr << x << y;
4647
+
4663
4648
if ( hasZValue )
4664
4649
wkbPtr += sizeof ( double );
4665
-
4666
4650
}
4667
4651
4668
4652
GEOSGeometry* QgsGeometry::linePointDifference ( GEOSGeometry* GEOSsplitPoint )
0 commit comments