23
23
QgsMultiRenderChecker ,
24
24
QgsMapSettings ,
25
25
QgsRectangle ,
26
- QgsContrastEnhancement
26
+ QgsContrastEnhancement ,
27
+ QgsUnitTypes ,
28
+ QgsMapUnitScale
27
29
)
28
30
29
31
from qgis .PyQt .QtCore import QDir , QSize
@@ -83,7 +85,20 @@ def testBasic(self):
83
85
bluece .setContrastEnhancementAlgorithm (QgsContrastEnhancement .ClipToMinimumMaximum )
84
86
renderer .setBlueContrastEnhancement (bluece )
85
87
88
+ renderer .setMaximumScreenError (18 )
89
+ renderer .setMaximumScreenErrorUnit (QgsUnitTypes .RenderInches )
90
+ renderer .setPointSize (13 )
91
+ renderer .setPointSizeUnit (QgsUnitTypes .RenderPoints )
92
+ renderer .setPointSizeMapUnitScale (QgsMapUnitScale (1000 , 2000 ))
93
+
86
94
rr = renderer .clone ()
95
+ self .assertEqual (rr .maximumScreenError (), 18 )
96
+ self .assertEqual (rr .maximumScreenErrorUnit (), QgsUnitTypes .RenderInches )
97
+ self .assertEqual (rr .pointSize (), 13 )
98
+ self .assertEqual (rr .pointSizeUnit (), QgsUnitTypes .RenderPoints )
99
+ self .assertEqual (rr .pointSizeMapUnitScale ().minScale , 1000 )
100
+ self .assertEqual (rr .pointSizeMapUnitScale ().maxScale , 2000 )
101
+
87
102
self .assertEqual (rr .blueAttribute (), 'b' )
88
103
self .assertEqual (rr .greenAttribute (), 'g' )
89
104
self .assertEqual (rr .redAttribute (), 'r' )
@@ -101,6 +116,13 @@ def testBasic(self):
101
116
elem = renderer .save (doc , QgsReadWriteContext ())
102
117
103
118
r2 = QgsPointCloudRgbRenderer .create (elem , QgsReadWriteContext ())
119
+ self .assertEqual (r2 .maximumScreenError (), 18 )
120
+ self .assertEqual (r2 .maximumScreenErrorUnit (), QgsUnitTypes .RenderInches )
121
+ self .assertEqual (r2 .pointSize (), 13 )
122
+ self .assertEqual (r2 .pointSizeUnit (), QgsUnitTypes .RenderPoints )
123
+ self .assertEqual (r2 .pointSizeMapUnitScale ().minScale , 1000 )
124
+ self .assertEqual (r2 .pointSizeMapUnitScale ().maxScale , 2000 )
125
+
104
126
self .assertEqual (r2 .blueAttribute (), 'b' )
105
127
self .assertEqual (r2 .greenAttribute (), 'g' )
106
128
self .assertEqual (r2 .redAttribute (), 'r' )
@@ -130,7 +152,8 @@ def testRender(self):
130
152
layer = QgsPointCloudLayer (unitTestDataPath () + '/point_clouds/ept/rgb/ept.json' , 'test' , 'ept' )
131
153
self .assertTrue (layer .isValid ())
132
154
133
- layer .renderer ().setPenWidth (2 )
155
+ layer .renderer ().setPointSize (2 )
156
+ layer .renderer ().setPointSizeUnit (QgsUnitTypes .RenderMillimeters )
134
157
135
158
mapsettings = QgsMapSettings ()
136
159
mapsettings .setOutputSize (QSize (400 , 400 ))
@@ -152,7 +175,8 @@ def testRenderWithContrast(self):
152
175
layer = QgsPointCloudLayer (unitTestDataPath () + '/point_clouds/ept/rgb/ept.json' , 'test' , 'ept' )
153
176
self .assertTrue (layer .isValid ())
154
177
155
- layer .renderer ().setPenWidth (2 )
178
+ layer .renderer ().setPointSize (2 )
179
+ layer .renderer ().setPointSizeUnit (QgsUnitTypes .RenderMillimeters )
156
180
157
181
redce = QgsContrastEnhancement ()
158
182
redce .setMinimumValue (100 )
@@ -192,7 +216,8 @@ def testRenderOpacity(self):
192
216
layer = QgsPointCloudLayer (unitTestDataPath () + '/point_clouds/ept/rgb/ept.json' , 'test' , 'ept' )
193
217
self .assertTrue (layer .isValid ())
194
218
195
- layer .renderer ().setPenWidth (2 )
219
+ layer .renderer ().setPointSize (2 )
220
+ layer .renderer ().setPointSizeUnit (QgsUnitTypes .RenderMillimeters )
196
221
197
222
layer .setOpacity (0.5 )
198
223
@@ -216,7 +241,8 @@ def testRenderBlendMode(self):
216
241
layer = QgsPointCloudLayer (unitTestDataPath () + '/point_clouds/ept/rgb/ept.json' , 'test' , 'ept' )
217
242
self .assertTrue (layer .isValid ())
218
243
219
- layer .renderer ().setPenWidth (2 )
244
+ layer .renderer ().setPointSize (2 )
245
+ layer .renderer ().setPointSizeUnit (QgsUnitTypes .RenderMillimeters )
220
246
221
247
layer .setBlendMode (QPainter .CompositionMode_ColorBurn )
222
248
@@ -235,6 +261,29 @@ def testRenderBlendMode(self):
235
261
TestQgsPointCloudRgbRenderer .report += renderchecker .report ()
236
262
self .assertTrue (result )
237
263
264
+ @unittest .skipIf ('ept' not in QgsProviderRegistry .instance ().providerList (), 'EPT provider not available' )
265
+ def testRenderPointSize (self ):
266
+ layer = QgsPointCloudLayer (unitTestDataPath () + '/point_clouds/ept/rgb/ept.json' , 'test' , 'ept' )
267
+ self .assertTrue (layer .isValid ())
268
+
269
+ layer .renderer ().setPointSize (0.05 )
270
+ layer .renderer ().setPointSizeUnit (QgsUnitTypes .RenderMapUnits )
271
+
272
+ mapsettings = QgsMapSettings ()
273
+ mapsettings .setOutputSize (QSize (400 , 400 ))
274
+ mapsettings .setOutputDpi (96 )
275
+ mapsettings .setDestinationCrs (layer .crs ())
276
+ mapsettings .setExtent (QgsRectangle (497753.5 , 7050887.5 , 497754.6 , 7050888.6 ))
277
+ mapsettings .setLayers ([layer ])
278
+
279
+ renderchecker = QgsMultiRenderChecker ()
280
+ renderchecker .setMapSettings (mapsettings )
281
+ renderchecker .setControlPathPrefix ('pointcloudrenderer' )
282
+ renderchecker .setControlName ('expected_pointsize' )
283
+ result = renderchecker .runTest ('expected_pointsize' )
284
+ TestQgsPointCloudRgbRenderer .report += renderchecker .report ()
285
+ self .assertTrue (result )
286
+
238
287
239
288
if __name__ == '__main__' :
240
289
unittest .main ()
0 commit comments