mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-08 00:05:09 -04:00
Address review
This commit is contained in:
parent
1eb3d82c11
commit
bfb6e1cc76
@ -44,9 +44,11 @@ The caller takes ownership of the returned object.
|
||||
|
||||
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
||||
%Docstring
|
||||
Register an expression context generator class that will be used to retrieve
|
||||
Register an expression context ``generator`` class that will be used to retrieve
|
||||
an expression context for the widget when required.
|
||||
|
||||
Ownership is not transferred, and the ``generator`` must exist for the lifetime of this widget.
|
||||
|
||||
.. versionadded:: 3.40
|
||||
%End
|
||||
|
||||
|
@ -44,9 +44,11 @@ The caller takes ownership of the returned object.
|
||||
|
||||
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
||||
%Docstring
|
||||
Register an expression context generator class that will be used to retrieve
|
||||
Register an expression context ``generator`` class that will be used to retrieve
|
||||
an expression context for the widget when required.
|
||||
|
||||
Ownership is not transferred, and the ``generator`` must exist for the lifetime of this widget.
|
||||
|
||||
.. versionadded:: 3.40
|
||||
%End
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/***************************************************************************
|
||||
qgslinearreferencingsymbollayer.h
|
||||
qgslinearreferencingsymbollayer.cpp
|
||||
---------------------
|
||||
begin : August 2024
|
||||
copyright : (C) 2024 by Nyall Dawson
|
||||
@ -286,6 +286,13 @@ void QgsLinearReferencingSymbolLayer::renderPolyline( const QPolygonF &points, Q
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO (maybe?): if we don't have an original geometry, convert points to linestring and scale distance to painter units?
|
||||
// in reality this line type makes no sense for rendering non-real feature geometries...
|
||||
( void )points;
|
||||
const QgsAbstractGeometry *geometry = context.renderContext().geometry();
|
||||
if ( !geometry )
|
||||
return;
|
||||
|
||||
double skipMultiples = mSkipMultiplesOf;
|
||||
if ( mDataDefinedProperties.isActive( QgsSymbolLayer::Property::SkipMultiples ) )
|
||||
{
|
||||
@ -314,13 +321,6 @@ void QgsLinearReferencingSymbolLayer::renderPolyline( const QPolygonF &points, Q
|
||||
const double labelOffsetPainterUnitsY = context.renderContext().convertToPainterUnits( labelOffsetY, mLabelOffsetUnit, mLabelOffsetMapUnitScale );
|
||||
const double averageAngleDistancePainterUnits = context.renderContext().convertToPainterUnits( averageOver, mAverageAngleLengthUnit, mAverageAngleLengthMapUnitScale ) / 2;
|
||||
|
||||
// TODO (maybe?): if we don't have an original geometry, convert points to linestring and scale distance to painter units?
|
||||
// in reality this line type makes no sense for rendering non-real feature geometries...
|
||||
( void )points;
|
||||
const QgsAbstractGeometry *geometry = context.renderContext().geometry();
|
||||
if ( !geometry )
|
||||
return;
|
||||
|
||||
for ( auto partIt = geometry->const_parts_begin(); partIt != geometry->const_parts_end(); ++partIt )
|
||||
{
|
||||
renderGeometryPart( context, *partIt, labelOffsetPainterUnitsX, labelOffsetPainterUnitsY, skipMultiples, averageAngleDistancePainterUnits, showMarker );
|
||||
@ -803,8 +803,6 @@ void QgsLinearReferencingSymbolLayer::renderPolylineVertex( const QgsLineString
|
||||
|
||||
const QPointF pt = pointToPainter( context, thisX, thisY, thisZ );
|
||||
|
||||
double calculatedAngle = 0;
|
||||
|
||||
// track forward by averageAngleLengthPainterUnits
|
||||
double painterDistRemaining = averageAngleLengthPainterUnits;
|
||||
double startAverageSegmentX = thisXPainterUnits;
|
||||
@ -882,7 +880,7 @@ void QgsLinearReferencingSymbolLayer::renderPolylineVertex( const QgsLineString
|
||||
startAverageYPainterUnits = endAverageSegmentY;
|
||||
}
|
||||
|
||||
calculatedAngle = std::fmod( QgsGeometryUtilsBase::azimuth( startAverageXPainterUnits, startAverageYPainterUnits, endAverageXPainterUnits, endAverageYPainterUnits ) + 360, 360 );
|
||||
double calculatedAngle = std::fmod( QgsGeometryUtilsBase::azimuth( startAverageXPainterUnits, startAverageYPainterUnits, endAverageXPainterUnits, endAverageYPainterUnits ) + 360, 360 );
|
||||
|
||||
if ( calculatedAngle > 90 && calculatedAngle < 270 )
|
||||
calculatedAngle += 180;
|
||||
|
@ -304,6 +304,9 @@ class CORE_EXPORT QgsLinearReferencingSymbolLayer : public QgsLineSymbolLayer
|
||||
private:
|
||||
void renderPolylineInterval( const QgsLineString *line, QgsSymbolRenderContext &context, double skipMultiples, const QPointF &labelOffsetPainterUnits, double averageAngleLengthPainterUnits, bool showMarker );
|
||||
void renderPolylineVertex( const QgsLineString *line, QgsSymbolRenderContext &context, double skipMultiples, const QPointF &labelOffsetPainterUnits, double averageAngleLengthPainterUnits, bool showMarker );
|
||||
void renderGeometryPart( QgsSymbolRenderContext &context, const QgsAbstractGeometry *geometry, double labelOffsetPainterUnitsX, double labelOffsetPainterUnitsY, double skipMultiples, double averageAngleDistancePainterUnits, bool showMarker );
|
||||
void renderLineString( QgsSymbolRenderContext &context, const QgsLineString *line, double labelOffsetPainterUnitsX, double labelOffsetPainterUnitsY, double skipMultiples, double averageAngleDistancePainterUnits, bool showMarker );
|
||||
|
||||
static QPointF pointToPainter( QgsSymbolRenderContext &context, double x, double y, double z );
|
||||
|
||||
Qgis::LinearReferencingPlacement mPlacement = Qgis::LinearReferencingPlacement::IntervalCartesian2D;
|
||||
@ -327,8 +330,6 @@ class CORE_EXPORT QgsLinearReferencingSymbolLayer : public QgsLineSymbolLayer
|
||||
Qgis::RenderUnit mAverageAngleLengthUnit = Qgis::RenderUnit::Millimeters;
|
||||
QgsMapUnitScale mAverageAngleLengthMapUnitScale;
|
||||
|
||||
void renderGeometryPart( QgsSymbolRenderContext &context, const QgsAbstractGeometry *geometry, double labelOffsetPainterUnitsX, double labelOffsetPainterUnitsY, double skipMultiples, double averageAngleDistancePainterUnits, bool showMarker );
|
||||
void renderLineString( QgsSymbolRenderContext &context, const QgsLineString *line, double labelOffsetPainterUnitsX, double labelOffsetPainterUnitsY, double skipMultiples, double averageAngleDistancePainterUnits, bool showMarker );
|
||||
};
|
||||
|
||||
#endif // QGSLINEARREFERENCINGSYMBOLLAYER_H
|
||||
|
@ -58,8 +58,11 @@ class GUI_EXPORT QgsNumericFormatSelectorWidget : public QgsPanelWidget, private
|
||||
QgsNumericFormat *format() const SIP_TRANSFERBACK;
|
||||
|
||||
/**
|
||||
* Register an expression context generator class that will be used to retrieve
|
||||
* Register an expression context \a generator class that will be used to retrieve
|
||||
* an expression context for the widget when required.
|
||||
*
|
||||
* Ownership is not transferred, and the \a generator must exist for the lifetime of this widget.
|
||||
*
|
||||
* \since QGIS 3.40
|
||||
*/
|
||||
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
||||
|
Loading…
x
Reference in New Issue
Block a user