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 );
|
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
||||||
%Docstring
|
%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.
|
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
|
.. versionadded:: 3.40
|
||||||
%End
|
%End
|
||||||
|
|
||||||
|
@ -44,9 +44,11 @@ The caller takes ownership of the returned object.
|
|||||||
|
|
||||||
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
||||||
%Docstring
|
%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.
|
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
|
.. versionadded:: 3.40
|
||||||
%End
|
%End
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
qgslinearreferencingsymbollayer.h
|
qgslinearreferencingsymbollayer.cpp
|
||||||
---------------------
|
---------------------
|
||||||
begin : August 2024
|
begin : August 2024
|
||||||
copyright : (C) 2024 by Nyall Dawson
|
copyright : (C) 2024 by Nyall Dawson
|
||||||
@ -286,6 +286,13 @@ void QgsLinearReferencingSymbolLayer::renderPolyline( const QPolygonF &points, Q
|
|||||||
return;
|
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;
|
double skipMultiples = mSkipMultiplesOf;
|
||||||
if ( mDataDefinedProperties.isActive( QgsSymbolLayer::Property::SkipMultiples ) )
|
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 labelOffsetPainterUnitsY = context.renderContext().convertToPainterUnits( labelOffsetY, mLabelOffsetUnit, mLabelOffsetMapUnitScale );
|
||||||
const double averageAngleDistancePainterUnits = context.renderContext().convertToPainterUnits( averageOver, mAverageAngleLengthUnit, mAverageAngleLengthMapUnitScale ) / 2;
|
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 )
|
for ( auto partIt = geometry->const_parts_begin(); partIt != geometry->const_parts_end(); ++partIt )
|
||||||
{
|
{
|
||||||
renderGeometryPart( context, *partIt, labelOffsetPainterUnitsX, labelOffsetPainterUnitsY, skipMultiples, averageAngleDistancePainterUnits, showMarker );
|
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 );
|
const QPointF pt = pointToPainter( context, thisX, thisY, thisZ );
|
||||||
|
|
||||||
double calculatedAngle = 0;
|
|
||||||
|
|
||||||
// track forward by averageAngleLengthPainterUnits
|
// track forward by averageAngleLengthPainterUnits
|
||||||
double painterDistRemaining = averageAngleLengthPainterUnits;
|
double painterDistRemaining = averageAngleLengthPainterUnits;
|
||||||
double startAverageSegmentX = thisXPainterUnits;
|
double startAverageSegmentX = thisXPainterUnits;
|
||||||
@ -882,7 +880,7 @@ void QgsLinearReferencingSymbolLayer::renderPolylineVertex( const QgsLineString
|
|||||||
startAverageYPainterUnits = endAverageSegmentY;
|
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 )
|
if ( calculatedAngle > 90 && calculatedAngle < 270 )
|
||||||
calculatedAngle += 180;
|
calculatedAngle += 180;
|
||||||
|
@ -304,6 +304,9 @@ class CORE_EXPORT QgsLinearReferencingSymbolLayer : public QgsLineSymbolLayer
|
|||||||
private:
|
private:
|
||||||
void renderPolylineInterval( const QgsLineString *line, QgsSymbolRenderContext &context, double skipMultiples, const QPointF &labelOffsetPainterUnits, double averageAngleLengthPainterUnits, bool showMarker );
|
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 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 );
|
static QPointF pointToPainter( QgsSymbolRenderContext &context, double x, double y, double z );
|
||||||
|
|
||||||
Qgis::LinearReferencingPlacement mPlacement = Qgis::LinearReferencingPlacement::IntervalCartesian2D;
|
Qgis::LinearReferencingPlacement mPlacement = Qgis::LinearReferencingPlacement::IntervalCartesian2D;
|
||||||
@ -327,8 +330,6 @@ class CORE_EXPORT QgsLinearReferencingSymbolLayer : public QgsLineSymbolLayer
|
|||||||
Qgis::RenderUnit mAverageAngleLengthUnit = Qgis::RenderUnit::Millimeters;
|
Qgis::RenderUnit mAverageAngleLengthUnit = Qgis::RenderUnit::Millimeters;
|
||||||
QgsMapUnitScale mAverageAngleLengthMapUnitScale;
|
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
|
#endif // QGSLINEARREFERENCINGSYMBOLLAYER_H
|
||||||
|
@ -58,8 +58,11 @@ class GUI_EXPORT QgsNumericFormatSelectorWidget : public QgsPanelWidget, private
|
|||||||
QgsNumericFormat *format() const SIP_TRANSFERBACK;
|
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.
|
* 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
|
* \since QGIS 3.40
|
||||||
*/
|
*/
|
||||||
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
void registerExpressionContextGenerator( QgsExpressionContextGenerator *generator );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user