mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-30 00:29:39 -05:00
add test on peprendicular constraint
This commit is contained in:
parent
fb94742344
commit
7116a96660
@ -43,12 +43,17 @@ class TestQgsAdvancedDigitizing: public QObject
|
||||
void distanceContrainst();
|
||||
void distanceContrainstDiffCrs();
|
||||
void distanceContrainstWhenSnapping();
|
||||
|
||||
void angleContrainst();
|
||||
void angleContrainstWithGeographicCrs();
|
||||
void distanceContrainstWithAngleContrainst();
|
||||
|
||||
void coordinateContrainst();
|
||||
void coordinateContrainstWithZM();
|
||||
void coordinateContrainstWhenSnapping();
|
||||
|
||||
void perpendicularConstraints();
|
||||
|
||||
void cadPointList();
|
||||
void currentPointWhenSanpping();
|
||||
void currentPointWhenSanppingWithDiffCanvasCRS();
|
||||
@ -166,6 +171,10 @@ void TestQgsAdvancedDigitizing::cleanup()
|
||||
QgsSnappingUtils *snappingUtils = mCanvas->snappingUtils();
|
||||
QgsSnappingConfig snapConfig = snappingUtils->config();
|
||||
snapConfig.setEnabled( false );
|
||||
snapConfig.setIntersectionSnapping( true );
|
||||
snapConfig.setSelfSnapping( true );
|
||||
snapConfig.setMode( QgsSnappingConfig::AllLayers );
|
||||
snapConfig.setTypeFlag( QgsSnappingConfig::VertexFlag );
|
||||
snappingUtils->setConfig( snapConfig );
|
||||
|
||||
// reset all layers
|
||||
@ -622,6 +631,48 @@ void TestQgsAdvancedDigitizing::coordinateContrainstWhenSnapping()
|
||||
QStringLiteral( "LineString (0 -2, 2.02 2)" ) );
|
||||
}
|
||||
|
||||
void TestQgsAdvancedDigitizing::perpendicularConstraints()
|
||||
{
|
||||
auto utils = getMapToolDigitizingUtils( mLayer3950 );
|
||||
|
||||
QSet<QgsFeatureId> oldFeatures = utils.existingFeatureIds();
|
||||
|
||||
// line for the perprendicular test
|
||||
utils.mouseClick( 0, 0, Qt::LeftButton );
|
||||
utils.mouseClick( 0, 10, Qt::LeftButton );
|
||||
utils.mouseClick( 1, 1, Qt::RightButton );
|
||||
QCOMPARE( getWktFromLastAddedFeature( utils, oldFeatures ),
|
||||
QStringLiteral( "LineString (0 0, 0 10)" ) );
|
||||
|
||||
QgsSnappingConfig snapConfig = mCanvas->snappingUtils()->config();
|
||||
snapConfig.setEnabled( true );
|
||||
snapConfig.setTypeFlag( QgsSnappingConfig::VertexFlag | QgsSnappingConfig::SegmentFlag );
|
||||
mCanvas->snappingUtils()->setConfig( snapConfig );
|
||||
|
||||
// test snapping on segment
|
||||
utils.mouseMove( 0.1, 4 );
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->currentPointV2(), QgsPoint( 0, 4 ) );
|
||||
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->additionalConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::AdditionalConstraint::NoConstraint );
|
||||
|
||||
// digitizing a first vertex
|
||||
utils.mouseClick( 5, 5, Qt::LeftButton );
|
||||
|
||||
mAdvancedDigitizingDockWidget->lockAdditionalConstraint( QgsAdvancedDigitizingDockWidget::AdditionalConstraint::Perpendicular );
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->additionalConstraint(),
|
||||
QgsAdvancedDigitizingDockWidget::AdditionalConstraint::Perpendicular );
|
||||
|
||||
// select the previous digitized line
|
||||
utils.mouseClick( 0.1, 4, Qt::LeftButton );
|
||||
|
||||
// test the perprendicular constrainst
|
||||
utils.mouseMove( 3, 2 );
|
||||
QCOMPARE( mAdvancedDigitizingDockWidget->currentPointV2(), QgsPoint( 3, 5 ) );
|
||||
|
||||
utils.mouseClick( 0, 0, Qt::RightButton );
|
||||
}
|
||||
|
||||
void TestQgsAdvancedDigitizing::cadPointList()
|
||||
{
|
||||
auto utils = getMapToolDigitizingUtils( mLayer3950 );
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user