@@ -1547,82 +1547,80 @@ void TestQgsGeometry::circularString()
1547
1547
QCOMPARE ( l23.boundingBox (), QgsRectangle ( 2 , 6 , 22 , 36 ) );
1548
1548
1549
1549
// insert vertex
1550
- #if 0
1551
1550
// cannot insert vertex in empty line
1552
1551
QgsCircularString l24;
1553
1552
QVERIFY ( !l24.insertVertex ( QgsVertexId ( 0 , 0 , 0 ), QgsPoint ( 6.0 , 7.0 ) ) );
1554
1553
QCOMPARE ( l24.numPoints (), 0 );
1555
1554
1556
- //insert 4d vertex in empty line, should set line to 4d
1557
- l24.clear();
1558
- QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::PointZM, 6.0, 7.0, 1.0, 2.0 ) ) );
1559
- QCOMPARE( l24.numPoints(), 1 );
1560
- QVERIFY( l24.is3D() );
1561
- QVERIFY( l24.isMeasure() );
1562
- QCOMPARE( l24.wkbType(), QgsWkbTypes::CircularStringZM );
1563
- QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 6.0, 7.0, 1.0, 2.0 ) );
1564
-
1565
1555
// 2d line
1566
1556
l24.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 )
1567
1557
<< QgsPoint ( 11 , 12 ) << QgsPoint ( 21 , 22 ) );
1568
- QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( 6.0, 7.0 ) ) );
1569
- QCOMPARE( l24.numPoints(), 4 );
1558
+ QVERIFY ( l24.insertVertex ( QgsVertexId ( 0 , 0 , 1 ), QgsPoint ( 6.0 , 7.0 ) ) );
1559
+ QCOMPARE ( l24.numPoints (), 5 );
1570
1560
QVERIFY ( !l24.is3D () );
1571
1561
QVERIFY ( !l24.isMeasure () );
1572
- QCOMPARE( l24.wkbType(), QgsWkbTypes::LineString );
1562
+ QCOMPARE ( l24.wkbType (), QgsWkbTypes::CircularString );
1563
+ QCOMPARE ( l24.pointN ( 0 ), QgsPoint ( 1.0 , 2.0 ) );
1564
+ QCOMPARE ( l24.pointN ( 1 ), QgsPoint ( 6.0 , 7.0 ) );
1565
+ // note - the next point is just testing current behavior - I do NOT know if this is the correct value!
1566
+ QGSCOMPARENEAR ( l24.pointN ( 2 ).x (), -0.66 , 0.01 );
1567
+ QGSCOMPARENEAR ( l24.pointN ( 2 ).y (), -0.745 , 0.01 );
1568
+ QCOMPARE ( l24.pointN ( 3 ), QgsPoint ( 11.0 , 12.0 ) );
1569
+ QCOMPARE ( l24.pointN ( 4 ), QgsPoint ( 21.0 , 22.0 ) );
1570
+
1573
1571
QVERIFY ( l24.insertVertex ( QgsVertexId ( 0 , 0 , 1 ), QgsPoint ( 8.0 , 9.0 ) ) );
1574
1572
QVERIFY ( l24.insertVertex ( QgsVertexId ( 0 , 0 , 2 ), QgsPoint ( 18.0 , 19.0 ) ) );
1575
- QCOMPARE( l24.pointN( 0 ), QgsPoint( 6.0, 7.0 ) );
1576
- QCOMPARE( l24.pointN( 1 ), QgsPoint( 8.0, 9.0 ) );
1577
- QCOMPARE( l24.pointN( 2 ), QgsPoint( 18.0, 19.0 ) );
1578
- QCOMPARE( l24.pointN( 3 ), QgsPoint( 1.0, 2.0 ) );
1579
- QCOMPARE( l24.pointN( 4 ), QgsPoint( 11.0, 12.0 ) );
1580
- QCOMPARE( l24.pointN( 5 ), QgsPoint( 21.0, 22.0 ) );
1573
+ QCOMPARE ( l24.numPoints (), 9 );
1574
+ QCOMPARE ( l24.pointN ( 0 ), QgsPoint ( 1.0 , 2.0 ) );
1575
+ QGSCOMPARENEAR ( l24.pointN ( 1 ).x (), -0.63 , 0.01 );
1576
+ QGSCOMPARENEAR ( l24.pointN ( 1 ).y (), -0.774 , 0.01 );
1577
+ QCOMPARE ( l24.pointN ( 2 ), QgsPoint ( 8.0 , 9.0 ) );
1578
+ QCOMPARE ( l24.pointN ( 3 ), QgsPoint ( 18.0 , 19.0 ) );
1579
+ QGSCOMPARENEAR ( l24.pointN ( 4 ).x (), -0.658 , 0.01 );
1580
+ QGSCOMPARENEAR ( l24.pointN ( 4 ).y (), -0.753 , 0.01 );
1581
+ QCOMPARE ( l24.pointN ( 5 ), QgsPoint ( 6.0 , 7.0 ) );
1582
+ QGSCOMPARENEAR ( l24.pointN ( 6 ).x (), -0.666 , 0.01 );
1583
+ QGSCOMPARENEAR ( l24.pointN ( 6 ).y (), -0.745 , 0.01 );
1584
+ QCOMPARE ( l24.pointN ( 7 ), QgsPoint ( 11.0 , 12.0 ) );
1585
+ QCOMPARE ( l24.pointN ( 8 ), QgsPoint ( 21.0 , 22.0 ) );
1586
+
1581
1587
// insert vertex at end
1582
- QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 6 ), QgsPoint( 31.0, 32.0 ) ) );
1583
- QCOMPARE( l24.pointN( 6 ), QgsPoint( 31.0, 32.0 ) );
1584
- QCOMPARE( l24.numPoints(), 7 );
1588
+ QVERIFY ( !l24.insertVertex ( QgsVertexId ( 0 , 0 , 9 ), QgsPoint ( 31.0 , 32.0 ) ) );
1585
1589
1586
1590
// insert vertex past end
1587
- QVERIFY( !l24.insertVertex( QgsVertexId( 0, 0, 8 ), QgsPoint( 41.0, 42.0 ) ) );
1588
- QCOMPARE( l24.numPoints(), 7 );
1591
+ QVERIFY ( !l24.insertVertex ( QgsVertexId ( 0 , 0 , 10 ), QgsPoint ( 41.0 , 42.0 ) ) );
1592
+ QCOMPARE ( l24.numPoints (), 9 );
1589
1593
1590
1594
// insert vertex before start
1591
1595
QVERIFY ( !l24.insertVertex ( QgsVertexId ( 0 , 0 , -18 ), QgsPoint ( 41.0 , 42.0 ) ) );
1592
- QCOMPARE( l24.numPoints(), 7 );
1596
+ QCOMPARE ( l24.numPoints (), 9 );
1593
1597
1594
1598
// insert 4d vertex in 4d line
1595
1599
l24.setPoints ( QgsPointSequence () << QgsPoint ( QgsWkbTypes::PointZM, 1 , 1 , 2 , 3 )
1596
1600
<< QgsPoint ( QgsWkbTypes::PointZM, 1 , 10 , 4 , 5 )
1597
1601
<< QgsPoint ( QgsWkbTypes::PointZM, 15 , 10 , 6 , 7 ) );
1598
- QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 13, 14 ) ) );
1599
- QCOMPARE( l24.numPoints(), 4 );
1600
- QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 13, 14 ) );
1602
+ QVERIFY ( l24.insertVertex ( QgsVertexId ( 0 , 0 , 1 ), QgsPoint ( QgsWkbTypes::PointZM, 11 , 12 , 13 , 14 ) ) );
1603
+ QCOMPARE ( l24.numPoints (), 5 );
1604
+ QCOMPARE ( l24.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointZM, 11 , 12 , 13 , 14 ) );
1601
1605
1602
1606
// insert 2d vertex in 4d line
1603
1607
QVERIFY ( l24.insertVertex ( QgsVertexId ( 0 , 0 , 1 ), QgsPoint ( 101 , 102 ) ) );
1604
- QCOMPARE( l24.numPoints(), 5 );
1605
- QCOMPARE( l24.wkbType(), QgsWkbTypes::LineStringZM );
1608
+ QCOMPARE ( l24.numPoints (), 7 );
1609
+ QCOMPARE ( l24.wkbType (), QgsWkbTypes::CircularStringZM );
1606
1610
QCOMPARE ( l24.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointZM, 101 , 102 ) );
1607
1611
1608
1612
// insert 4d vertex in 2d line
1609
1613
l24.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 )
1610
1614
<< QgsPoint ( 11 , 12 ) << QgsPoint ( 21 , 22 ) );
1611
- QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::PointZM, 101, 102, 103, 104 ) ) );
1612
- QCOMPARE( l24.numPoints(), 4 );
1613
- QCOMPARE( l24.wkbType(), QgsWkbTypes::LineString );
1614
- QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::Point, 101, 102 ) );
1615
-
1616
- //insert first vertex as Point25D
1617
- l24.clear();
1618
- QVERIFY( l24.insertVertex( QgsVertexId( 0, 0, 0 ), QgsPoint( QgsWkbTypes::Point25D, 101, 102, 103 ) ) );
1619
- QCOMPARE( l24.wkbType(), QgsWkbTypes::LineString25D );
1620
- QCOMPARE( l24.pointN( 0 ), QgsPoint( QgsWkbTypes::Point25D, 101, 102, 103 ) );
1615
+ QVERIFY ( l24.insertVertex ( QgsVertexId ( 0 , 0 , 1 ), QgsPoint ( QgsWkbTypes::PointZM, 101 , 102 , 103 , 104 ) ) );
1616
+ QCOMPARE ( l24.numPoints (), 5 );
1617
+ QCOMPARE ( l24.wkbType (), QgsWkbTypes::CircularString );
1618
+ QCOMPARE ( l24.pointN ( 1 ), QgsPoint ( QgsWkbTypes::Point, 101 , 102 ) );
1621
1619
1622
1620
// move vertex
1623
1621
1624
1622
// empty line
1625
- QgsLineString l25;
1623
+ QgsCircularString l25;
1626
1624
QVERIFY ( !l25.moveVertex ( QgsVertexId ( 0 , 0 , 0 ), QgsPoint ( 6.0 , 7.0 ) ) );
1627
1625
QVERIFY ( l25.isEmpty () );
1628
1626
@@ -1664,14 +1662,15 @@ void TestQgsGeometry::circularString()
1664
1662
// delete vertex
1665
1663
1666
1664
// empty line
1667
- QgsLineString l26;
1668
- QVERIFY( ! l26.deleteVertex( QgsVertexId( 0, 0, 0 ) ) );
1665
+ QgsCircularString l26;
1666
+ QVERIFY ( l26.deleteVertex ( QgsVertexId ( 0 , 0 , 0 ) ) );
1669
1667
QVERIFY ( l26.isEmpty () );
1670
1668
1671
1669
// valid line
1672
1670
l26.setPoints ( QgsPointSequence () << QgsPoint ( QgsWkbTypes::PointZM, 1 , 2 , 2 , 3 )
1673
1671
<< QgsPoint ( QgsWkbTypes::PointZM, 11 , 12 , 4 , 5 )
1674
- << QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 ) );
1672
+ << QgsPoint ( QgsWkbTypes::PointZM, 21 , 22 , 6 , 7 )
1673
+ << QgsPoint ( QgsWkbTypes::PointZM, 31 , 32 , 6 , 7 ) );
1675
1674
// out of range vertices
1676
1675
QVERIFY ( !l26.deleteVertex ( QgsVertexId ( 0 , 0 , -1 ) ) );
1677
1676
QVERIFY ( !l26.deleteVertex ( QgsVertexId ( 0 , 0 , 100 ) ) );
@@ -1680,23 +1679,25 @@ void TestQgsGeometry::circularString()
1680
1679
QVERIFY ( l26.deleteVertex ( QgsVertexId ( 0 , 0 , 1 ) ) );
1681
1680
QCOMPARE ( l26.numPoints (), 2 );
1682
1681
QCOMPARE ( l26.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZM, 1 , 2 , 2 , 3 ) );
1683
- QCOMPARE( l26.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 21, 22, 6, 7 ) );
1684
- //removing the second to last vertex removes both remaining vertices
1682
+ QCOMPARE ( l26.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointZM, 31 , 32 , 6 , 7 ) );
1683
+
1684
+ // removing the next vertex removes all remaining vertices
1685
1685
QVERIFY ( l26.deleteVertex ( QgsVertexId ( 0 , 0 , 0 ) ) );
1686
1686
QCOMPARE ( l26.numPoints (), 0 );
1687
- QVERIFY( !l26.deleteVertex( QgsVertexId( 0, 0, 0 ) ) );
1687
+ QVERIFY ( l26.isEmpty () );
1688
+ QVERIFY ( l26.deleteVertex ( QgsVertexId ( 0 , 0 , 0 ) ) );
1688
1689
QVERIFY ( l26.isEmpty () );
1689
1690
1690
1691
// reversed
1691
- QgsLineString l27;
1692
- std::unique_ptr< QgsLineString > reversed( l27.reversed() );
1692
+ QgsCircularString l27;
1693
+ std::unique_ptr< QgsCircularString > reversed ( l27.reversed () );
1693
1694
QVERIFY ( reversed->isEmpty () );
1694
1695
l27.setPoints ( QgsPointSequence () << QgsPoint ( QgsWkbTypes::PointZM, 1 , 2 , 2 , 3 )
1695
1696
<< QgsPoint ( QgsWkbTypes::PointZM, 11 , 12 , 4 , 5 )
1696
1697
<< QgsPoint ( QgsWkbTypes::PointZM, 21 , 22 , 6 , 7 ) );
1697
1698
reversed.reset ( l27.reversed () );
1698
1699
QCOMPARE ( reversed->numPoints (), 3 );
1699
- QCOMPARE( reversed->wkbType(), QgsWkbTypes::LineStringZM );
1700
+ QCOMPARE ( reversed->wkbType (), QgsWkbTypes::CircularStringZM );
1700
1701
QVERIFY ( reversed->is3D () );
1701
1702
QVERIFY ( reversed->isMeasure () );
1702
1703
QCOMPARE ( reversed->pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZM, 21 , 22 , 6 , 7 ) );
@@ -1705,18 +1706,18 @@ void TestQgsGeometry::circularString()
1705
1706
1706
1707
// addZValue
1707
1708
1708
- QgsLineString l28;
1709
- QCOMPARE( l28.wkbType(), QgsWkbTypes::LineString );
1709
+ QgsCircularString l28;
1710
+ QCOMPARE ( l28.wkbType (), QgsWkbTypes::CircularString );
1710
1711
QVERIFY ( l28.addZValue () );
1711
- QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZ );
1712
+ QCOMPARE ( l28.wkbType (), QgsWkbTypes::CircularStringZ );
1712
1713
l28.clear ();
1713
1714
QVERIFY ( l28.addZValue () );
1714
- QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZ );
1715
+ QCOMPARE ( l28.wkbType (), QgsWkbTypes::CircularStringZ );
1715
1716
// 2d line
1716
1717
l28.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 ) << QgsPoint ( 11 , 12 ) );
1717
1718
QVERIFY ( l28.addZValue ( 2 ) );
1718
1719
QVERIFY ( l28.is3D () );
1719
- QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZ );
1720
+ QCOMPARE ( l28.wkbType (), QgsWkbTypes::CircularStringZ );
1720
1721
QCOMPARE ( l28.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZ, 1 , 2 , 2 ) );
1721
1722
QCOMPARE ( l28.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointZ, 11 , 12 , 2 ) );
1722
1723
QVERIFY ( !l28.addZValue ( 4 ) ); // already has z value, test that existing z is unchanged
@@ -1727,32 +1728,25 @@ void TestQgsGeometry::circularString()
1727
1728
QVERIFY ( l28.addZValue ( 5 ) );
1728
1729
QVERIFY ( l28.is3D () );
1729
1730
QVERIFY ( l28.isMeasure () );
1730
- QCOMPARE( l28.wkbType(), QgsWkbTypes::LineStringZM );
1731
+ QCOMPARE ( l28.wkbType (), QgsWkbTypes::CircularStringZM );
1731
1732
QCOMPARE ( l28.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZM, 1 , 2 , 5 , 3 ) );
1732
1733
QCOMPARE ( l28.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointZM, 11 , 12 , 5 , 4 ) );
1733
- //linestring25d
1734
- l28.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
1735
- QCOMPARE( l28.wkbType(), QgsWkbTypes::LineString25D );
1736
- QVERIFY( !l28.addZValue( 5 ) );
1737
- QCOMPARE( l28.wkbType(), QgsWkbTypes::LineString25D );
1738
- QCOMPARE( l28.pointN( 0 ), QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) );
1739
- QCOMPARE( l28.pointN( 1 ), QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
1740
1734
1741
1735
// addMValue
1742
1736
1743
- QgsLineString l29;
1744
- QCOMPARE( l29.wkbType(), QgsWkbTypes::LineString );
1737
+ QgsCircularString l29;
1738
+ QCOMPARE ( l29.wkbType (), QgsWkbTypes::CircularString );
1745
1739
QVERIFY ( l29.addMValue () );
1746
- QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringM );
1740
+ QCOMPARE ( l29.wkbType (), QgsWkbTypes::CircularStringM );
1747
1741
l29.clear ();
1748
1742
QVERIFY ( l29.addMValue () );
1749
- QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringM );
1743
+ QCOMPARE ( l29.wkbType (), QgsWkbTypes::CircularStringM );
1750
1744
// 2d line
1751
1745
l29.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 ) << QgsPoint ( 11 , 12 ) );
1752
1746
QVERIFY ( l29.addMValue ( 2 ) );
1753
1747
QVERIFY ( !l29.is3D () );
1754
1748
QVERIFY ( l29.isMeasure () );
1755
- QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringM );
1749
+ QCOMPARE ( l29.wkbType (), QgsWkbTypes::CircularStringM );
1756
1750
QCOMPARE ( l29.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointM, 1 , 2 , 0 , 2 ) );
1757
1751
QCOMPARE ( l29.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointM, 11 , 12 , 0 , 2 ) );
1758
1752
QVERIFY ( !l29.addMValue ( 4 ) ); // already has m value, test that existing m is unchanged
@@ -1763,31 +1757,21 @@ void TestQgsGeometry::circularString()
1763
1757
QVERIFY ( l29.addMValue ( 5 ) );
1764
1758
QVERIFY ( l29.is3D () );
1765
1759
QVERIFY ( l29.isMeasure () );
1766
- QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringZM );
1760
+ QCOMPARE ( l29.wkbType (), QgsWkbTypes::CircularStringZM );
1767
1761
QCOMPARE ( l29.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZM, 1 , 2 , 3 , 5 ) );
1768
1762
QCOMPARE ( l29.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointZM, 11 , 12 , 4 , 5 ) );
1769
- //linestring25d, should become LineStringZM
1770
- l29.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
1771
- QCOMPARE( l29.wkbType(), QgsWkbTypes::LineString25D );
1772
- QVERIFY( l29.addMValue( 5 ) );
1773
- QVERIFY( l29.is3D() );
1774
- QVERIFY( l29.isMeasure() );
1775
- QCOMPARE( l29.wkbType(), QgsWkbTypes::LineStringZM );
1776
- QCOMPARE( l29.pointN( 0 ), QgsPoint( QgsWkbTypes::PointZM, 1, 2, 3, 5 ) );
1777
- QCOMPARE( l29.pointN( 1 ), QgsPoint( QgsWkbTypes::PointZM, 11, 12, 4, 5 ) );
1778
-
1779
1763
1780
1764
// dropZValue
1781
- QgsLineString l28d;
1765
+ QgsCircularString l28d;
1782
1766
QVERIFY ( !l28d.dropZValue () );
1783
1767
l28d.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 ) << QgsPoint ( 11 , 12 ) );
1784
1768
QVERIFY ( !l28d.dropZValue () );
1785
1769
l28d.addZValue ( 1.0 );
1786
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZ );
1770
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularStringZ );
1787
1771
QVERIFY ( l28d.is3D () );
1788
1772
QVERIFY ( l28d.dropZValue () );
1789
1773
QVERIFY ( !l28d.is3D () );
1790
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1774
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularString );
1791
1775
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::Point, 1 , 2 ) );
1792
1776
QCOMPARE ( l28d.pointN ( 1 ), QgsPoint ( QgsWkbTypes::Point, 11 , 12 ) );
1793
1777
QVERIFY ( !l28d.dropZValue () ); // already dropped
@@ -1796,26 +1780,19 @@ void TestQgsGeometry::circularString()
1796
1780
QVERIFY ( l28d.dropZValue () );
1797
1781
QVERIFY ( !l28d.is3D () );
1798
1782
QVERIFY ( l28d.isMeasure () );
1799
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringM );
1783
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularStringM );
1800
1784
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointM, 1 , 2 , 0 , 4 ) );
1801
1785
QCOMPARE ( l28d.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointM, 11 , 12 , 0 , 4 ) );
1802
- //linestring25d
1803
- l28d.setPoints( QgsPointSequence() << QgsPoint( QgsWkbTypes::Point25D, 1, 2, 3 ) << QgsPoint( QgsWkbTypes::Point25D, 11, 12, 4 ) );
1804
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString25D );
1805
- QVERIFY( l28d.dropZValue() );
1806
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1807
- QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::Point, 1, 2 ) );
1808
- QCOMPARE( l28d.pointN( 1 ), QgsPoint( QgsWkbTypes::Point, 11, 12 ) );
1809
1786
1810
1787
// dropMValue
1811
1788
l28d.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 ) << QgsPoint ( 11 , 12 ) );
1812
1789
QVERIFY ( !l28d.dropMValue () );
1813
1790
l28d.addMValue ( 1.0 );
1814
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringM );
1791
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularStringM );
1815
1792
QVERIFY ( l28d.isMeasure () );
1816
1793
QVERIFY ( l28d.dropMValue () );
1817
1794
QVERIFY ( !l28d.isMeasure () );
1818
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1795
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularString );
1819
1796
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::Point, 1 , 2 ) );
1820
1797
QCOMPARE ( l28d.pointN ( 1 ), QgsPoint ( QgsWkbTypes::Point, 11 , 12 ) );
1821
1798
QVERIFY ( !l28d.dropMValue () ); // already dropped
@@ -1824,35 +1801,36 @@ void TestQgsGeometry::circularString()
1824
1801
QVERIFY ( l28d.dropMValue () );
1825
1802
QVERIFY ( !l28d.isMeasure () );
1826
1803
QVERIFY ( l28d.is3D () );
1827
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZ );
1804
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularStringZ );
1828
1805
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZ, 1 , 2 , 3 , 0 ) );
1829
1806
QCOMPARE ( l28d.pointN ( 1 ), QgsPoint ( QgsWkbTypes::PointZ, 11 , 12 , 3 , 0 ) );
1830
1807
1831
1808
// convertTo
1832
1809
l28d.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 ) << QgsPoint ( 11 , 12 ) );
1833
- QVERIFY( l28d.convertTo( QgsWkbTypes::LineString ) );
1834
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1835
- QVERIFY( l28d.convertTo( QgsWkbTypes::LineStringZ ) );
1836
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZ );
1810
+ QVERIFY ( l28d.convertTo ( QgsWkbTypes::CircularString ) );
1811
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularString );
1812
+ QVERIFY ( l28d.convertTo ( QgsWkbTypes::CircularStringZ ) );
1813
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularStringZ );
1837
1814
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZ, 1 , 2 ) );
1838
- l28d.setZAt( 0, 5.0 );
1839
- QVERIFY( l28d.convertTo( QgsWkbTypes::LineString25D ) );
1840
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString25D );
1841
- QCOMPARE( l28d.pointN( 0 ), QgsPoint( QgsWkbTypes::Point25D, 1, 2, 5.0 ) );
1842
- QVERIFY( l28d.convertTo( QgsWkbTypes::LineStringZM ) );
1843
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringZM );
1815
+
1816
+ QVERIFY ( l28d.convertTo ( QgsWkbTypes::CircularStringZM ) );
1817
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularStringZM );
1818
+ QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZM, 1 , 2 ) );
1819
+ l28d.moveVertex ( QgsVertexId ( 0 , 0 , 0 ), QgsPoint ( 1 , 2 , 5 ) );
1844
1820
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointZM, 1 , 2 , 5.0 ) );
1845
- l28d.setMAt( 0, 6.0 );
1846
- QVERIFY( l28d.convertTo( QgsWkbTypes::LineStringM ) );
1847
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineStringM );
1821
+ // l28d.setMAt( 0, 6.0 );
1822
+ QVERIFY ( l28d.convertTo ( QgsWkbTypes::CircularStringM ) );
1823
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularStringM );
1824
+ QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointM, 1 , 2 ) );
1825
+ l28d.moveVertex ( QgsVertexId ( 0 , 0 , 0 ), QgsPoint ( 1 , 2 , 0 , 6 ) );
1848
1826
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( QgsWkbTypes::PointM, 1 , 2 , 0.0 , 6.0 ) );
1849
- QVERIFY( l28d.convertTo( QgsWkbTypes::LineString ) );
1850
- QCOMPARE( l28d.wkbType(), QgsWkbTypes::LineString );
1827
+ QVERIFY ( l28d.convertTo ( QgsWkbTypes::CircularString ) );
1828
+ QCOMPARE ( l28d.wkbType (), QgsWkbTypes::CircularString );
1851
1829
QCOMPARE ( l28d.pointN ( 0 ), QgsPoint ( 1 , 2 ) );
1852
1830
QVERIFY ( !l28d.convertTo ( QgsWkbTypes::Polygon ) );
1853
1831
1854
1832
// isRing
1855
- QgsLineString l30;
1833
+ QgsCircularString l30;
1856
1834
QVERIFY ( !l30.isRing () );
1857
1835
l30.setPoints ( QgsPointSequence () << QgsPoint ( 1 , 2 ) << QgsPoint ( 11 , 12 ) << QgsPoint ( 1 , 2 ) );
1858
1836
QVERIFY ( !l30.isRing () ); // <4 points
@@ -1862,7 +1840,7 @@ void TestQgsGeometry::circularString()
1862
1840
QVERIFY ( l30.isRing () );
1863
1841
1864
1842
// coordinateSequence
1865
- QgsLineString l31;
1843
+ QgsCircularString l31;
1866
1844
QgsCoordinateSequence coords = l31.coordinateSequence ();
1867
1845
QCOMPARE ( coords.count (), 1 );
1868
1846
QCOMPARE ( coords.at ( 0 ).count (), 1 );
@@ -1878,6 +1856,7 @@ void TestQgsGeometry::circularString()
1878
1856
QCOMPARE ( coords.at ( 0 ).at ( 0 ).at ( 1 ), QgsPoint ( QgsWkbTypes::PointZM, 11 , 12 , 4 , 5 ) );
1879
1857
QCOMPARE ( coords.at ( 0 ).at ( 0 ).at ( 2 ), QgsPoint ( QgsWkbTypes::PointZM, 21 , 22 , 6 , 7 ) );
1880
1858
1859
+ #if 0
1881
1860
//nextVertex
1882
1861
1883
1862
QgsLineString l32;
0 commit comments