mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-16 00:05:45 -04:00
Move useful point cloud renderer enums to Qgis namespace
This commit is contained in:
parent
77052c6473
commit
c35d17b6e4
@ -1500,3 +1500,19 @@ Qgis.ProfileGeneratorFlag.__doc__ = 'Flags that control the way the :py:class:`Q
|
|||||||
Qgis.ProfileGeneratorFlag.baseClass = Qgis
|
Qgis.ProfileGeneratorFlag.baseClass = Qgis
|
||||||
Qgis.ProfileGeneratorFlags.baseClass = Qgis
|
Qgis.ProfileGeneratorFlags.baseClass = Qgis
|
||||||
ProfileGeneratorFlags = Qgis # dirty hack since SIP seems to introduce the flags in module
|
ProfileGeneratorFlags = Qgis # dirty hack since SIP seems to introduce the flags in module
|
||||||
|
QgsPointCloudRenderer.PointSymbol = Qgis.PointCloudSymbol
|
||||||
|
Qgis.PointCloudSymbol.baseClass = Qgis
|
||||||
|
QgsPointCloudRenderer.DrawOrder = Qgis.PointCloudDrawOrder
|
||||||
|
# monkey patching scoped based enum
|
||||||
|
QgsPointCloudRenderer.Default = Qgis.PointCloudDrawOrder.Default
|
||||||
|
QgsPointCloudRenderer.Default.is_monkey_patched = True
|
||||||
|
QgsPointCloudRenderer.Default.__doc__ = "Draw points in the order they are stored"
|
||||||
|
QgsPointCloudRenderer.BottomToTop = Qgis.PointCloudDrawOrder.BottomToTop
|
||||||
|
QgsPointCloudRenderer.BottomToTop.is_monkey_patched = True
|
||||||
|
QgsPointCloudRenderer.BottomToTop.__doc__ = "Draw points with larger Z values last"
|
||||||
|
QgsPointCloudRenderer.TopToBottom = Qgis.PointCloudDrawOrder.TopToBottom
|
||||||
|
QgsPointCloudRenderer.TopToBottom.is_monkey_patched = True
|
||||||
|
QgsPointCloudRenderer.TopToBottom.__doc__ = "Draw points with larger Z values first"
|
||||||
|
Qgis.PointCloudDrawOrder.__doc__ = 'Pointcloud rendering order for 2d views\n\n/since QGIS 3.26\n\n' + '* ``Default``: ' + Qgis.PointCloudDrawOrder.Default.__doc__ + '\n' + '* ``BottomToTop``: ' + Qgis.PointCloudDrawOrder.BottomToTop.__doc__ + '\n' + '* ``TopToBottom``: ' + Qgis.PointCloudDrawOrder.TopToBottom.__doc__
|
||||||
|
# --
|
||||||
|
Qgis.PointCloudDrawOrder.baseClass = Qgis
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
# The following has been generated automatically from src/core/pointcloud/qgspointcloudrenderer.h
|
|
||||||
# monkey patching scoped based enum
|
|
||||||
QgsPointCloudRenderer.DrawOrder.Default.__doc__ = "Draw points in the order they are stored"
|
|
||||||
QgsPointCloudRenderer.DrawOrder.BottomToTop.__doc__ = "Draw points with larger Z values last"
|
|
||||||
QgsPointCloudRenderer.DrawOrder.TopToBottom.__doc__ = "Draw points with larger Z values first"
|
|
||||||
QgsPointCloudRenderer.DrawOrder.__doc__ = 'Pointcloud rendering order for 2d views\n/since QGIS 3.24\n\n' + '* ``Default``: ' + QgsPointCloudRenderer.DrawOrder.Default.__doc__ + '\n' + '* ``BottomToTop``: ' + QgsPointCloudRenderer.DrawOrder.BottomToTop.__doc__ + '\n' + '* ``TopToBottom``: ' + QgsPointCloudRenderer.DrawOrder.TopToBottom.__doc__
|
|
||||||
# --
|
|
@ -191,19 +191,6 @@ Abstract base class for 2d point cloud renderers.
|
|||||||
%End
|
%End
|
||||||
public:
|
public:
|
||||||
|
|
||||||
enum PointSymbol
|
|
||||||
{
|
|
||||||
Square,
|
|
||||||
Circle,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class DrawOrder
|
|
||||||
{
|
|
||||||
Default,
|
|
||||||
BottomToTop,
|
|
||||||
TopToBottom,
|
|
||||||
};
|
|
||||||
|
|
||||||
QgsPointCloudRenderer();
|
QgsPointCloudRenderer();
|
||||||
%Docstring
|
%Docstring
|
||||||
Constructor for QgsPointCloudRenderer.
|
Constructor for QgsPointCloudRenderer.
|
||||||
@ -373,7 +360,7 @@ Returns the map unit scale used for the point size.
|
|||||||
.. seealso:: :py:func:`pointSize`
|
.. seealso:: :py:func:`pointSize`
|
||||||
%End
|
%End
|
||||||
|
|
||||||
DrawOrder drawOrder2d() const;
|
Qgis::PointCloudDrawOrder drawOrder2d() const;
|
||||||
%Docstring
|
%Docstring
|
||||||
Returns the drawing order used by the renderer for drawing points.
|
Returns the drawing order used by the renderer for drawing points.
|
||||||
|
|
||||||
@ -382,7 +369,7 @@ Returns the drawing order used by the renderer for drawing points.
|
|||||||
.. versionadded:: 3.24
|
.. versionadded:: 3.24
|
||||||
%End
|
%End
|
||||||
|
|
||||||
void setDrawOrder2d( DrawOrder order );
|
void setDrawOrder2d( Qgis::PointCloudDrawOrder order );
|
||||||
%Docstring
|
%Docstring
|
||||||
Sets the drawing ``order`` used by the renderer for drawing points.
|
Sets the drawing ``order`` used by the renderer for drawing points.
|
||||||
|
|
||||||
@ -391,14 +378,14 @@ Sets the drawing ``order`` used by the renderer for drawing points.
|
|||||||
.. versionadded:: 3.24
|
.. versionadded:: 3.24
|
||||||
%End
|
%End
|
||||||
|
|
||||||
PointSymbol pointSymbol() const;
|
Qgis::PointCloudSymbol pointSymbol() const;
|
||||||
%Docstring
|
%Docstring
|
||||||
Returns the symbol used by the renderer for drawing points.
|
Returns the symbol used by the renderer for drawing points.
|
||||||
|
|
||||||
.. seealso:: :py:func:`setPointSymbol`
|
.. seealso:: :py:func:`setPointSymbol`
|
||||||
%End
|
%End
|
||||||
|
|
||||||
void setPointSymbol( PointSymbol symbol );
|
void setPointSymbol( Qgis::PointCloudSymbol symbol );
|
||||||
%Docstring
|
%Docstring
|
||||||
Sets the ``symbol`` used by the renderer for drawing points.
|
Sets the ``symbol`` used by the renderer for drawing points.
|
||||||
|
|
||||||
|
@ -1025,6 +1025,19 @@ The development version
|
|||||||
typedef QFlags<Qgis::ProfileGeneratorFlag> ProfileGeneratorFlags;
|
typedef QFlags<Qgis::ProfileGeneratorFlag> ProfileGeneratorFlags;
|
||||||
|
|
||||||
|
|
||||||
|
enum PointCloudSymbol
|
||||||
|
{
|
||||||
|
Square,
|
||||||
|
Circle,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class PointCloudDrawOrder
|
||||||
|
{
|
||||||
|
Default,
|
||||||
|
BottomToTop,
|
||||||
|
TopToBottom,
|
||||||
|
};
|
||||||
|
|
||||||
static const double DEFAULT_SEARCH_RADIUS_MM;
|
static const double DEFAULT_SEARCH_RADIUS_MM;
|
||||||
|
|
||||||
static const float DEFAULT_MAPTOPIXEL_THRESHOLD;
|
static const float DEFAULT_MAPTOPIXEL_THRESHOLD;
|
||||||
|
@ -117,8 +117,8 @@ bool QgsPointCloudLayerRenderer::render()
|
|||||||
mAttributes.push_back( QgsPointCloudAttribute( QStringLiteral( "Y" ), QgsPointCloudAttribute::Int32 ) );
|
mAttributes.push_back( QgsPointCloudAttribute( QStringLiteral( "Y" ), QgsPointCloudAttribute::Int32 ) );
|
||||||
|
|
||||||
if ( !context.renderContext().zRange().isInfinite() ||
|
if ( !context.renderContext().zRange().isInfinite() ||
|
||||||
mRenderer->drawOrder2d() == QgsPointCloudRenderer::DrawOrder::BottomToTop ||
|
mRenderer->drawOrder2d() == Qgis::PointCloudDrawOrder::BottomToTop ||
|
||||||
mRenderer->drawOrder2d() == QgsPointCloudRenderer::DrawOrder::TopToBottom )
|
mRenderer->drawOrder2d() == Qgis::PointCloudDrawOrder::TopToBottom )
|
||||||
mAttributes.push_back( QgsPointCloudAttribute( QStringLiteral( "Z" ), QgsPointCloudAttribute::Int32 ) );
|
mAttributes.push_back( QgsPointCloudAttribute( QStringLiteral( "Z" ), QgsPointCloudAttribute::Int32 ) );
|
||||||
|
|
||||||
// collect attributes required by renderer
|
// collect attributes required by renderer
|
||||||
@ -193,13 +193,13 @@ bool QgsPointCloudLayerRenderer::render()
|
|||||||
|
|
||||||
switch ( mRenderer->drawOrder2d() )
|
switch ( mRenderer->drawOrder2d() )
|
||||||
{
|
{
|
||||||
case QgsPointCloudRenderer::DrawOrder::BottomToTop:
|
case Qgis::PointCloudDrawOrder::BottomToTop:
|
||||||
case QgsPointCloudRenderer::DrawOrder::TopToBottom:
|
case Qgis::PointCloudDrawOrder::TopToBottom:
|
||||||
{
|
{
|
||||||
nodesDrawn += renderNodesSorted( nodes, pc, context, request, canceled, mRenderer->drawOrder2d() );
|
nodesDrawn += renderNodesSorted( nodes, pc, context, request, canceled, mRenderer->drawOrder2d() );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case QgsPointCloudRenderer::DrawOrder::Default:
|
case Qgis::PointCloudDrawOrder::Default:
|
||||||
{
|
{
|
||||||
switch ( pc->accessType() )
|
switch ( pc->accessType() )
|
||||||
{
|
{
|
||||||
@ -359,7 +359,7 @@ int QgsPointCloudLayerRenderer::renderNodesAsync( const QVector<IndexedPointClou
|
|||||||
return nodesDrawn;
|
return nodesDrawn;
|
||||||
}
|
}
|
||||||
|
|
||||||
int QgsPointCloudLayerRenderer::renderNodesSorted( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled, QgsPointCloudRenderer::DrawOrder order )
|
int QgsPointCloudLayerRenderer::renderNodesSorted( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled, Qgis::PointCloudDrawOrder order )
|
||||||
{
|
{
|
||||||
int blockCount = 0;
|
int blockCount = 0;
|
||||||
int pointCount = 0;
|
int pointCount = 0;
|
||||||
@ -448,13 +448,13 @@ int QgsPointCloudLayerRenderer::renderNodesSorted( const QVector<IndexedPointClo
|
|||||||
|
|
||||||
switch ( order )
|
switch ( order )
|
||||||
{
|
{
|
||||||
case QgsPointCloudRenderer::DrawOrder::BottomToTop:
|
case Qgis::PointCloudDrawOrder::BottomToTop:
|
||||||
std::sort( allPairs.begin(), allPairs.end(), []( QPair<int, double> a, QPair<int, double> b ) { return a.second < b.second; } );
|
std::sort( allPairs.begin(), allPairs.end(), []( QPair<int, double> a, QPair<int, double> b ) { return a.second < b.second; } );
|
||||||
break;
|
break;
|
||||||
case QgsPointCloudRenderer::DrawOrder::TopToBottom:
|
case Qgis::PointCloudDrawOrder::TopToBottom:
|
||||||
std::sort( allPairs.begin(), allPairs.end(), []( QPair<int, double> a, QPair<int, double> b ) { return a.second > b.second; } );
|
std::sort( allPairs.begin(), allPairs.end(), []( QPair<int, double> a, QPair<int, double> b ) { return a.second > b.second; } );
|
||||||
break;
|
break;
|
||||||
case QgsPointCloudRenderer::DrawOrder::Default:
|
case Qgis::PointCloudDrawOrder::Default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ class CORE_EXPORT QgsPointCloudLayerRenderer: public QgsMapLayerRenderer
|
|||||||
QVector<IndexedPointCloudNode> traverseTree( const QgsPointCloudIndex *pc, const QgsRenderContext &context, IndexedPointCloudNode n, double maxErrorPixels, double nodeErrorPixels );
|
QVector<IndexedPointCloudNode> traverseTree( const QgsPointCloudIndex *pc, const QgsRenderContext &context, IndexedPointCloudNode n, double maxErrorPixels, double nodeErrorPixels );
|
||||||
int renderNodesSync( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled );
|
int renderNodesSync( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled );
|
||||||
int renderNodesAsync( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled );
|
int renderNodesAsync( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled );
|
||||||
int renderNodesSorted( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled, QgsPointCloudRenderer::DrawOrder order );
|
int renderNodesSorted( const QVector<IndexedPointCloudNode> &nodes, QgsPointCloudIndex *pc, QgsPointCloudRenderContext &context, QgsPointCloudRequest &request, bool &canceled, Qgis::PointCloudDrawOrder order );
|
||||||
|
|
||||||
QgsPointCloudLayer *mLayer = nullptr;
|
QgsPointCloudLayer *mLayer = nullptr;
|
||||||
|
|
||||||
|
@ -97,12 +97,12 @@ void QgsPointCloudRenderer::startRender( QgsPointCloudRenderContext &context )
|
|||||||
|
|
||||||
switch ( mPointSymbol )
|
switch ( mPointSymbol )
|
||||||
{
|
{
|
||||||
case Square:
|
case Qgis::PointCloudSymbol::Square:
|
||||||
// for square point we always disable antialiasing -- it's not critical here and we benefit from the performance boost disabling it gives
|
// for square point we always disable antialiasing -- it's not critical here and we benefit from the performance boost disabling it gives
|
||||||
context.renderContext().painter()->setRenderHint( QPainter::Antialiasing, false );
|
context.renderContext().painter()->setRenderHint( QPainter::Antialiasing, false );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Circle:
|
case Qgis::PointCloudSymbol::Circle:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,8 +173,8 @@ void QgsPointCloudRenderer::restoreCommonProperties( const QDomElement &element,
|
|||||||
|
|
||||||
mMaximumScreenError = element.attribute( QStringLiteral( "maximumScreenError" ), QStringLiteral( "0.3" ) ).toDouble();
|
mMaximumScreenError = element.attribute( QStringLiteral( "maximumScreenError" ), QStringLiteral( "0.3" ) ).toDouble();
|
||||||
mMaximumScreenErrorUnit = QgsUnitTypes::decodeRenderUnit( element.attribute( QStringLiteral( "maximumScreenErrorUnit" ), QStringLiteral( "MM" ) ) );
|
mMaximumScreenErrorUnit = QgsUnitTypes::decodeRenderUnit( element.attribute( QStringLiteral( "maximumScreenErrorUnit" ), QStringLiteral( "MM" ) ) );
|
||||||
mPointSymbol = static_cast< PointSymbol >( element.attribute( QStringLiteral( "pointSymbol" ), QStringLiteral( "0" ) ).toInt() );
|
mPointSymbol = static_cast< Qgis::PointCloudSymbol >( element.attribute( QStringLiteral( "pointSymbol" ), QStringLiteral( "0" ) ).toInt() );
|
||||||
mDrawOrder2d = static_cast< DrawOrder >( element.attribute( QStringLiteral( "drawOrder2d" ), QStringLiteral( "0" ) ).toInt() );
|
mDrawOrder2d = static_cast< Qgis::PointCloudDrawOrder >( element.attribute( QStringLiteral( "drawOrder2d" ), QStringLiteral( "0" ) ).toInt() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsPointCloudRenderer::saveCommonProperties( QDomElement &element, const QgsReadWriteContext & ) const
|
void QgsPointCloudRenderer::saveCommonProperties( QDomElement &element, const QgsReadWriteContext & ) const
|
||||||
@ -189,22 +189,22 @@ void QgsPointCloudRenderer::saveCommonProperties( QDomElement &element, const Qg
|
|||||||
element.setAttribute( QStringLiteral( "drawOrder2d" ), QString::number( static_cast< int >( mDrawOrder2d ) ) );
|
element.setAttribute( QStringLiteral( "drawOrder2d" ), QString::number( static_cast< int >( mDrawOrder2d ) ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsPointCloudRenderer::PointSymbol QgsPointCloudRenderer::pointSymbol() const
|
Qgis::PointCloudSymbol QgsPointCloudRenderer::pointSymbol() const
|
||||||
{
|
{
|
||||||
return mPointSymbol;
|
return mPointSymbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsPointCloudRenderer::setPointSymbol( PointSymbol symbol )
|
void QgsPointCloudRenderer::setPointSymbol( Qgis::PointCloudSymbol symbol )
|
||||||
{
|
{
|
||||||
mPointSymbol = symbol;
|
mPointSymbol = symbol;
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsPointCloudRenderer::DrawOrder QgsPointCloudRenderer::drawOrder2d() const
|
Qgis::PointCloudDrawOrder QgsPointCloudRenderer::drawOrder2d() const
|
||||||
{
|
{
|
||||||
return mDrawOrder2d;
|
return mDrawOrder2d;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsPointCloudRenderer::setDrawOrder2d( DrawOrder order )
|
void QgsPointCloudRenderer::setDrawOrder2d( Qgis::PointCloudDrawOrder order )
|
||||||
{
|
{
|
||||||
mDrawOrder2d = order;
|
mDrawOrder2d = order;
|
||||||
}
|
}
|
||||||
@ -261,7 +261,7 @@ QVector<QVariantMap> QgsPointCloudRenderer::identify( QgsPointCloudLayer *layer,
|
|||||||
const double pointSizePixels = renderContext.convertToPainterUnits( mPointSize, mPointSizeUnit, mPointSizeMapUnitScale );
|
const double pointSizePixels = renderContext.convertToPainterUnits( mPointSize, mPointSizeUnit, mPointSizeMapUnitScale );
|
||||||
switch ( pointSymbol() )
|
switch ( pointSymbol() )
|
||||||
{
|
{
|
||||||
case QgsPointCloudRenderer::PointSymbol::Square:
|
case Qgis::PointCloudSymbol::Square:
|
||||||
{
|
{
|
||||||
const QgsPointXY deviceCoords = renderContext.mapToPixel().transform( QgsPointXY( x, y ) );
|
const QgsPointXY deviceCoords = renderContext.mapToPixel().transform( QgsPointXY( x, y ) );
|
||||||
const QgsPointXY point1( deviceCoords.x() - std::max( toleranceInPixels, pointSizePixels / 2.0 ), deviceCoords.y() - std::max( toleranceInPixels, pointSizePixels / 2.0 ) );
|
const QgsPointXY point1( deviceCoords.x() - std::max( toleranceInPixels, pointSizePixels / 2.0 ), deviceCoords.y() - std::max( toleranceInPixels, pointSizePixels / 2.0 ) );
|
||||||
@ -272,7 +272,7 @@ QVector<QVariantMap> QgsPointCloudRenderer::identify( QgsPointCloudLayer *layer,
|
|||||||
selectionGeometry = QgsGeometry::fromRect( pointRect );
|
selectionGeometry = QgsGeometry::fromRect( pointRect );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case QgsPointCloudRenderer::PointSymbol::Circle:
|
case Qgis::PointCloudSymbol::Circle:
|
||||||
{
|
{
|
||||||
const QgsPoint centerMapCoords( x, y );
|
const QgsPoint centerMapCoords( x, y );
|
||||||
const QgsPointXY deviceCoords = renderContext.mapToPixel().transform( centerMapCoords );
|
const QgsPointXY deviceCoords = renderContext.mapToPixel().transform( centerMapCoords );
|
||||||
|
@ -274,26 +274,6 @@ class CORE_EXPORT QgsPointCloudRenderer
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/**
|
|
||||||
* Rendering symbols for points.
|
|
||||||
*/
|
|
||||||
enum PointSymbol
|
|
||||||
{
|
|
||||||
Square, //!< Renders points as squares
|
|
||||||
Circle, //!< Renders points as circles
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Pointcloud rendering order for 2d views
|
|
||||||
* /since QGIS 3.24
|
|
||||||
*/
|
|
||||||
enum class DrawOrder : int
|
|
||||||
{
|
|
||||||
Default, //!< Draw points in the order they are stored
|
|
||||||
BottomToTop, //!< Draw points with larger Z values last
|
|
||||||
TopToBottom, //!< Draw points with larger Z values first
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor for QgsPointCloudRenderer.
|
* Constructor for QgsPointCloudRenderer.
|
||||||
*/
|
*/
|
||||||
@ -464,7 +444,7 @@ class CORE_EXPORT QgsPointCloudRenderer
|
|||||||
* \see setDrawOrder2d()
|
* \see setDrawOrder2d()
|
||||||
* \since QGIS 3.24
|
* \since QGIS 3.24
|
||||||
*/
|
*/
|
||||||
DrawOrder drawOrder2d() const;
|
Qgis::PointCloudDrawOrder drawOrder2d() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the drawing \a order used by the renderer for drawing points.
|
* Sets the drawing \a order used by the renderer for drawing points.
|
||||||
@ -472,21 +452,21 @@ class CORE_EXPORT QgsPointCloudRenderer
|
|||||||
* \see drawOrder2d()
|
* \see drawOrder2d()
|
||||||
* \since QGIS 3.24
|
* \since QGIS 3.24
|
||||||
*/
|
*/
|
||||||
void setDrawOrder2d( DrawOrder order );
|
void setDrawOrder2d( Qgis::PointCloudDrawOrder order );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the symbol used by the renderer for drawing points.
|
* Returns the symbol used by the renderer for drawing points.
|
||||||
*
|
*
|
||||||
* \see setPointSymbol()
|
* \see setPointSymbol()
|
||||||
*/
|
*/
|
||||||
PointSymbol pointSymbol() const;
|
Qgis::PointCloudSymbol pointSymbol() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the \a symbol used by the renderer for drawing points.
|
* Sets the \a symbol used by the renderer for drawing points.
|
||||||
*
|
*
|
||||||
* \see pointSymbol()
|
* \see pointSymbol()
|
||||||
*/
|
*/
|
||||||
void setPointSymbol( PointSymbol symbol );
|
void setPointSymbol( Qgis::PointCloudSymbol symbol );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the maximum screen error allowed when rendering the point cloud.
|
* Returns the maximum screen error allowed when rendering the point cloud.
|
||||||
@ -574,13 +554,13 @@ class CORE_EXPORT QgsPointCloudRenderer
|
|||||||
QPainter *painter = context.renderContext().painter();
|
QPainter *painter = context.renderContext().painter();
|
||||||
switch ( mPointSymbol )
|
switch ( mPointSymbol )
|
||||||
{
|
{
|
||||||
case Square:
|
case Qgis::PointCloudSymbol::Square:
|
||||||
painter->fillRect( QRectF( x - mPainterPenWidth * 0.5,
|
painter->fillRect( QRectF( x - mPainterPenWidth * 0.5,
|
||||||
y - mPainterPenWidth * 0.5,
|
y - mPainterPenWidth * 0.5,
|
||||||
mPainterPenWidth, mPainterPenWidth ), color );
|
mPainterPenWidth, mPainterPenWidth ), color );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Circle:
|
case Qgis::PointCloudSymbol::Circle:
|
||||||
painter->setBrush( QBrush( color ) );
|
painter->setBrush( QBrush( color ) );
|
||||||
painter->setPen( Qt::NoPen );
|
painter->setPen( Qt::NoPen );
|
||||||
painter->drawEllipse( QRectF( x - mPainterPenWidth * 0.5,
|
painter->drawEllipse( QRectF( x - mPainterPenWidth * 0.5,
|
||||||
@ -628,9 +608,9 @@ class CORE_EXPORT QgsPointCloudRenderer
|
|||||||
QgsUnitTypes::RenderUnit mPointSizeUnit = QgsUnitTypes::RenderMillimeters;
|
QgsUnitTypes::RenderUnit mPointSizeUnit = QgsUnitTypes::RenderMillimeters;
|
||||||
QgsMapUnitScale mPointSizeMapUnitScale;
|
QgsMapUnitScale mPointSizeMapUnitScale;
|
||||||
|
|
||||||
PointSymbol mPointSymbol = Square;
|
Qgis::PointCloudSymbol mPointSymbol = Qgis::PointCloudSymbol::Square;
|
||||||
int mPainterPenWidth = 1;
|
int mPainterPenWidth = 1;
|
||||||
DrawOrder mDrawOrder2d = DrawOrder::Default;
|
Qgis::PointCloudDrawOrder mDrawOrder2d = Qgis::PointCloudDrawOrder::Default;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QGSPOINTCLOUDRENDERER_H
|
#endif // QGSPOINTCLOUDRENDERER_H
|
||||||
|
@ -1689,6 +1689,31 @@ class CORE_EXPORT Qgis
|
|||||||
Q_DECLARE_FLAGS( ProfileGeneratorFlags, ProfileGeneratorFlag )
|
Q_DECLARE_FLAGS( ProfileGeneratorFlags, ProfileGeneratorFlag )
|
||||||
Q_FLAG( ProfileGeneratorFlags )
|
Q_FLAG( ProfileGeneratorFlags )
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rendering symbols for point cloud points.
|
||||||
|
*
|
||||||
|
* \since QGIS 3.26
|
||||||
|
*/
|
||||||
|
enum PointCloudSymbol SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsPointCloudRenderer, PointSymbol ) : int
|
||||||
|
{
|
||||||
|
Square, //!< Renders points as squares
|
||||||
|
Circle, //!< Renders points as circles
|
||||||
|
};
|
||||||
|
Q_ENUM( PointCloudSymbol )
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pointcloud rendering order for 2d views
|
||||||
|
*
|
||||||
|
* /since QGIS 3.26
|
||||||
|
*/
|
||||||
|
enum class PointCloudDrawOrder SIP_MONKEYPATCH_SCOPEENUM_UNNEST( QgsPointCloudRenderer, DrawOrder ) : int
|
||||||
|
{
|
||||||
|
Default, //!< Draw points in the order they are stored
|
||||||
|
BottomToTop, //!< Draw points with larger Z values last
|
||||||
|
TopToBottom, //!< Draw points with larger Z values first
|
||||||
|
};
|
||||||
|
Q_ENUM( PointCloudDrawOrder )
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Identify search radius in mm
|
* Identify search radius in mm
|
||||||
* \since QGIS 2.3
|
* \since QGIS 2.3
|
||||||
|
@ -87,8 +87,8 @@ QgsPointCloudRendererPropertiesWidget::QgsPointCloudRendererPropertiesWidget( Qg
|
|||||||
|
|
||||||
cboRenderers->setCurrentIndex( -1 ); // set no current renderer
|
cboRenderers->setCurrentIndex( -1 ); // set no current renderer
|
||||||
|
|
||||||
mPointStyleComboBox->addItem( tr( "Square" ), QgsPointCloudRenderer::Square );
|
mPointStyleComboBox->addItem( tr( "Square" ), Qgis::PointCloudSymbol::Square );
|
||||||
mPointStyleComboBox->addItem( tr( "Circle" ), QgsPointCloudRenderer::Circle );
|
mPointStyleComboBox->addItem( tr( "Circle" ), Qgis::PointCloudSymbol::Circle );
|
||||||
|
|
||||||
connect( cboRenderers, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsPointCloudRendererPropertiesWidget::rendererChanged );
|
connect( cboRenderers, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsPointCloudRendererPropertiesWidget::rendererChanged );
|
||||||
|
|
||||||
@ -101,9 +101,9 @@ QgsPointCloudRendererPropertiesWidget::QgsPointCloudRendererPropertiesWidget( Qg
|
|||||||
connect( mPointSizeSpinBox, qOverload<double>( &QgsDoubleSpinBox::valueChanged ), this, &QgsPointCloudRendererPropertiesWidget::emitWidgetChanged );
|
connect( mPointSizeSpinBox, qOverload<double>( &QgsDoubleSpinBox::valueChanged ), this, &QgsPointCloudRendererPropertiesWidget::emitWidgetChanged );
|
||||||
connect( mPointSizeUnitWidget, &QgsUnitSelectionWidget::changed, this, &QgsPointCloudRendererPropertiesWidget::emitWidgetChanged );
|
connect( mPointSizeUnitWidget, &QgsUnitSelectionWidget::changed, this, &QgsPointCloudRendererPropertiesWidget::emitWidgetChanged );
|
||||||
|
|
||||||
mDrawOrderComboBox->addItem( tr( "Default" ), static_cast< int >( QgsPointCloudRenderer::DrawOrder::Default ) );
|
mDrawOrderComboBox->addItem( tr( "Default" ), static_cast< int >( Qgis::PointCloudDrawOrder::Default ) );
|
||||||
mDrawOrderComboBox->addItem( tr( "Bottom to Top" ), static_cast< int >( QgsPointCloudRenderer::DrawOrder::BottomToTop ) );
|
mDrawOrderComboBox->addItem( tr( "Bottom to Top" ), static_cast< int >( Qgis::PointCloudDrawOrder::BottomToTop ) );
|
||||||
mDrawOrderComboBox->addItem( tr( "Top to Bottom" ), static_cast< int >( QgsPointCloudRenderer::DrawOrder::TopToBottom ) );
|
mDrawOrderComboBox->addItem( tr( "Top to Bottom" ), static_cast< int >( Qgis::PointCloudDrawOrder::TopToBottom ) );
|
||||||
|
|
||||||
mMaxErrorUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderMetersInMapUnits << QgsUnitTypes::RenderMapUnits << QgsUnitTypes::RenderPixels
|
mMaxErrorUnitWidget->setUnits( QgsUnitTypes::RenderUnitList() << QgsUnitTypes::RenderMillimeters << QgsUnitTypes::RenderMetersInMapUnits << QgsUnitTypes::RenderMapUnits << QgsUnitTypes::RenderPixels
|
||||||
<< QgsUnitTypes::RenderPoints << QgsUnitTypes::RenderInches );
|
<< QgsUnitTypes::RenderPoints << QgsUnitTypes::RenderInches );
|
||||||
@ -185,11 +185,11 @@ void QgsPointCloudRendererPropertiesWidget::apply()
|
|||||||
mLayer->renderer()->setPointSizeUnit( mPointSizeUnitWidget->unit() );
|
mLayer->renderer()->setPointSizeUnit( mPointSizeUnitWidget->unit() );
|
||||||
mLayer->renderer()->setPointSizeMapUnitScale( mPointSizeUnitWidget->getMapUnitScale() );
|
mLayer->renderer()->setPointSizeMapUnitScale( mPointSizeUnitWidget->getMapUnitScale() );
|
||||||
|
|
||||||
mLayer->renderer()->setPointSymbol( static_cast< QgsPointCloudRenderer::PointSymbol >( mPointStyleComboBox->currentData().toInt() ) );
|
mLayer->renderer()->setPointSymbol( static_cast< Qgis::PointCloudSymbol >( mPointStyleComboBox->currentData().toInt() ) );
|
||||||
|
|
||||||
mLayer->renderer()->setMaximumScreenError( mMaxErrorSpinBox->value() );
|
mLayer->renderer()->setMaximumScreenError( mMaxErrorSpinBox->value() );
|
||||||
mLayer->renderer()->setMaximumScreenErrorUnit( mMaxErrorUnitWidget->unit() );
|
mLayer->renderer()->setMaximumScreenErrorUnit( mMaxErrorUnitWidget->unit() );
|
||||||
mLayer->renderer()->setDrawOrder2d( static_cast< QgsPointCloudRenderer::DrawOrder >( mDrawOrderComboBox->currentData().toInt() ) );
|
mLayer->renderer()->setDrawOrder2d( static_cast< Qgis::PointCloudDrawOrder >( mDrawOrderComboBox->currentData().toInt() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QgsPointCloudRendererPropertiesWidget::rendererChanged()
|
void QgsPointCloudRendererPropertiesWidget::rendererChanged()
|
||||||
|
@ -405,10 +405,10 @@ void QgsHighlight::paint( QPainter *p )
|
|||||||
sizeUnit = QgsUnitTypes::RenderPixels;
|
sizeUnit = QgsUnitTypes::RenderPixels;
|
||||||
switch ( pcRenderer->pointSymbol() )
|
switch ( pcRenderer->pointSymbol() )
|
||||||
{
|
{
|
||||||
case QgsPointCloudRenderer::PointSymbol::Circle:
|
case Qgis::PointCloudSymbol::Circle:
|
||||||
symbol = Circle;
|
symbol = Circle;
|
||||||
break;
|
break;
|
||||||
case QgsPointCloudRenderer::PointSymbol::Square:
|
case Qgis::PointCloudSymbol::Square:
|
||||||
symbol = Square;
|
symbol = Square;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user