Skip to content

Commit

Permalink
Add unit tests & fix some review issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Withalion committed Dec 18, 2024
1 parent 780da52 commit 77c1191
Show file tree
Hide file tree
Showing 10 changed files with 952 additions and 13 deletions.
8 changes: 4 additions & 4 deletions python/PyQt6/core/auto_additions/qgis.py
Original file line number Diff line number Diff line change
Expand Up @@ -11042,16 +11042,16 @@
# --
Qgis.MouseHandlesAction.baseClass = Qgis
# monkey patching scoped based enum
Qgis.PointCloudZoomOutRenderBehavior.RenderExtents.__doc__ = "Render just point cloud extends when zoomed out"
Qgis.PointCloudZoomOutRenderBehavior.RenderExtents.__doc__ = "Render only point cloud extents when zoomed out"
Qgis.PointCloudZoomOutRenderBehavior.RenderOverview.__doc__ = "Render overview point cloud when zoomed out"
Qgis.PointCloudZoomOutRenderBehavior.RenderOverviewAndExtents.__doc__ = "Render extent polygons over overview point cloud"
Qgis.PointCloudZoomOutRenderBehavior.RenderOverviewAndExtents.__doc__ = "Render point cloud extents over overview point cloud"
Qgis.PointCloudZoomOutRenderBehavior.__doc__ = """Point cloud zoom out options

.. versionadded:: 3.42

* ``RenderExtents``: Render just point cloud extends when zoomed out
* ``RenderExtents``: Render only point cloud extents when zoomed out
* ``RenderOverview``: Render overview point cloud when zoomed out
* ``RenderOverviewAndExtents``: Render extent polygons over overview point cloud
* ``RenderOverviewAndExtents``: Render point cloud extents over overview point cloud

"""
# --
Expand Down
8 changes: 4 additions & 4 deletions python/core/auto_additions/qgis.py
Original file line number Diff line number Diff line change
Expand Up @@ -10952,16 +10952,16 @@
# --
Qgis.MouseHandlesAction.baseClass = Qgis
# monkey patching scoped based enum
Qgis.PointCloudZoomOutRenderBehavior.RenderExtents.__doc__ = "Render just point cloud extends when zoomed out"
Qgis.PointCloudZoomOutRenderBehavior.RenderExtents.__doc__ = "Render only point cloud extents when zoomed out"
Qgis.PointCloudZoomOutRenderBehavior.RenderOverview.__doc__ = "Render overview point cloud when zoomed out"
Qgis.PointCloudZoomOutRenderBehavior.RenderOverviewAndExtents.__doc__ = "Render extent polygons over overview point cloud"
Qgis.PointCloudZoomOutRenderBehavior.RenderOverviewAndExtents.__doc__ = "Render point cloud extents over overview point cloud"
Qgis.PointCloudZoomOutRenderBehavior.__doc__ = """Point cloud zoom out options

.. versionadded:: 3.42

* ``RenderExtents``: Render just point cloud extends when zoomed out
* ``RenderExtents``: Render only point cloud extents when zoomed out
* ``RenderOverview``: Render overview point cloud when zoomed out
* ``RenderOverviewAndExtents``: Render extent polygons over overview point cloud
* ``RenderOverviewAndExtents``: Render point cloud extents over overview point cloud

"""
# --
Expand Down
4 changes: 2 additions & 2 deletions src/core/qgis.h
Original file line number Diff line number Diff line change
Expand Up @@ -5709,9 +5709,9 @@ class CORE_EXPORT Qgis
*/
enum class PointCloudZoomOutRenderBehavior : int
{
RenderExtents, //!< Render just point cloud extends when zoomed out
RenderExtents, //!< Render only point cloud extents when zoomed out
RenderOverview, //!< Render overview point cloud when zoomed out
RenderOverviewAndExtents //!< Render extent polygons over overview point cloud
RenderOverviewAndExtents //!< Render point cloud extents over overview point cloud
};
Q_ENUM( PointCloudZoomOutRenderBehavior )

Expand Down
5 changes: 3 additions & 2 deletions src/gui/pointcloud/qgspointcloudrendererpropertieswidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ QgsPointCloudRendererPropertiesWidget::QgsPointCloudRendererPropertiesWidget( Qg
if ( !mLayer->dataProvider()->subIndexes().isEmpty() )
{
mLabelOptions->setDialogTitle( tr( "Customize label text" ) );
mLabelOptions->setText( tr( "Label format" ) );
connect( mLabels, &QCheckBox::stateChanged, this, &QgsPointCloudRendererPropertiesWidget::emitWidgetChanged );
connect( mLabelOptions, &QgsFontButton::changed, this, &QgsPointCloudRendererPropertiesWidget::emitWidgetChanged );
mZoomOutOptions->addItem( tr( "Show Extents Only" ), QVariant::fromValue( Qgis::PointCloudZoomOutRenderBehavior::RenderExtents ) );
Expand All @@ -146,8 +147,8 @@ QgsPointCloudRendererPropertiesWidget::QgsPointCloudRendererPropertiesWidget( Qg
mZoomOutOptions->setEnabled( false );
}

connect( mZoomOutOptions, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( int currentZoomOutOption ) {
switch ( static_cast<Qgis::PointCloudZoomOutRenderBehavior>( currentZoomOutOption ) )
connect( mZoomOutOptions, qOverload<int>( &QComboBox::currentIndexChanged ), this, [this]( int ) {
switch ( mZoomOutOptions->currentData().value<Qgis::PointCloudZoomOutRenderBehavior>() )
{
case Qgis::PointCloudZoomOutRenderBehavior::RenderOverview:
mLabels->setEnabled( false );
Expand Down
2 changes: 1 addition & 1 deletion tests/src/app/testqgsidentify.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1301,7 +1301,7 @@ void TestQgsIdentify::identifyPointCloud()
void TestQgsIdentify::identifyVirtualPointCloud()
{
#ifdef HAVE_COPC
std::unique_ptr<QgsPointCloudLayer> pointCloud = std::make_unique<QgsPointCloudLayer>( QStringLiteral( TEST_DATA_DIR ) + "/point_clouds/virtual/sunshine-coast/combined.vpc", QStringLiteral( "pointcloud" ), QStringLiteral( "vpc" ) );
std::unique_ptr<QgsPointCloudLayer> pointCloud = std::make_unique<QgsPointCloudLayer>( QStringLiteral( TEST_DATA_DIR ) + "/point_clouds/virtual/sunshine-coast/new-combined.vpc", QStringLiteral( "pointcloud" ), QStringLiteral( "vpc" ) );
QVERIFY( pointCloud->isValid() );
pointCloud->setCrs( QgsCoordinateReferenceSystem( QStringLiteral( "EPSG:28356" ) ) );
QCOMPARE( pointCloud->crs3D().horizontalCrs().authid(), QStringLiteral( "EPSG:28356" ) );
Expand Down
61 changes: 61 additions & 0 deletions tests/src/python/test_qgspointcloudclassifiedrenderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,67 @@ def testRenderTriangles(self):
)
)

@unittest.skipIf(
"vpc" not in QgsProviderRegistry.instance().providerList(),
"VPC provider not available",
)
def testOverviewRender(self):
layer = QgsPointCloudLayer(
unitTestDataPath()
+ "/point_clouds/virtual/sunshine-coast/new-combined.vpc",
"test",
"vpc",
)
self.assertTrue(layer.isValid())

layer.setRenderer(layer.dataProvider().createRenderer())

layer.renderer().setPointSize(2)
layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderUnit.RenderMillimeters)

mapsettings = QgsMapSettings()
mapsettings.setOutputSize(QSize(400, 400))
mapsettings.setOutputDpi(96)
mapsettings.setDestinationCrs(layer.crs())
mapsettings.setExtent(QgsRectangle(498061, 7050991, 498069, 7050999))
mapsettings.setLayers([layer])

self.assertTrue(
self.render_map_settings_check(
"classified_render_overview", "classified_render_overview", mapsettings
)
)

@unittest.skipIf(
"vpc" not in QgsProviderRegistry.instance().providerList(),
"VPC provider not available",
)
def testExtentsRender(self):
layer = QgsPointCloudLayer(
unitTestDataPath() + "/point_clouds/virtual/sunshine-coast/combined.vpc",
"test",
"vpc",
)
self.assertTrue(layer.isValid())

layer.setRenderer(layer.dataProvider().createRenderer())

layer.renderer().setPointSize(2)
layer.renderer().setPointSizeUnit(QgsUnitTypes.RenderUnit.RenderMillimeters)

mapsettings = QgsMapSettings()
mapsettings.setOutputSize(QSize(400, 400))
mapsettings.setOutputDpi(96)
mapsettings.setDestinationCrs(layer.crs())
mapsettings.setExtent(QgsRectangle(498061, 7050991, 498069, 7050999))
mapsettings.setLayers([layer])

self.assertTrue(
self.render_map_settings_check(
"classified_render_extents", "classified_render_extents", mapsettings
)
)


if __name__ == "__main__":
unittest.main()
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading

0 comments on commit 77c1191

Please sign in to comment.