QGIS API Documentation  3.24.2-Tisler (13c1a02865)
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
QgsPointCloudRenderer Class Referenceabstract

Abstract base class for 2d point cloud renderers. More...

#include <qgspointcloudrenderer.h>

Inheritance diagram for QgsPointCloudRenderer:
Inheritance graph
[legend]

Public Types

enum class  DrawOrder : int { Default , BottomToTop , TopToBottom }
 Pointcloud rendering order for 2d views /since QGIS 3.24. More...
 
enum  PointSymbol { Square , Circle }
 Rendering symbols for points. More...
 

Public Member Functions

 QgsPointCloudRenderer ()=default
 Constructor for QgsPointCloudRenderer. More...
 
 QgsPointCloudRenderer (const QgsPointCloudRenderer &other)=delete
 QgsPointCloudRenderer cannot be copied – use clone() instead. More...
 
virtual ~QgsPointCloudRenderer ()=default
 
virtual void checkLegendItem (const QString &key, bool state=true)
 Called when the check state of the legend item with the specified key is changed. More...
 
virtual QgsPointCloudRendererclone () const =0
 Create a deep copy of this renderer. More...
 
virtual QList< QgsLayerTreeModelLegendNode * > createLegendNodes (QgsLayerTreeLayer *nodeLayer)
 Creates a set of legend nodes representing the renderer. More...
 
DrawOrder drawOrder2d () const
 Returns the drawing order used by the renderer for drawing points. More...
 
QVector< QVariantMap > identify (QgsPointCloudLayer *layer, const QgsRenderContext &context, const QgsGeometry &geometry, double toleranceForPointIdentification=0)
 Returns the list of visible points of the point cloud layer layer and an extent defined by a geometry in the 2D plane geometry. More...
 
virtual bool legendItemChecked (const QString &key)
 Returns true if the legend item with the specified key is checked. More...
 
virtual QStringList legendRuleKeys () const
 Returns a list of all rule keys for legend nodes created by the renderer. More...
 
double maximumScreenError () const
 Returns the maximum screen error allowed when rendering the point cloud. More...
 
QgsUnitTypes::RenderUnit maximumScreenErrorUnit () const
 Returns the unit for the maximum screen error allowed when rendering the point cloud. More...
 
QgsPointCloudRendereroperator= (const QgsPointCloudRenderer &other)=delete
 QgsPointCloudRenderer cannot be copied – use clone() instead. More...
 
double pointSize () const
 Returns the point size. More...
 
const QgsMapUnitScalepointSizeMapUnitScale () const
 Returns the map unit scale used for the point size. More...
 
QgsUnitTypes::RenderUnit pointSizeUnit () const
 Returns the units used for the point size. More...
 
PointSymbol pointSymbol () const
 Returns the symbol used by the renderer for drawing points. More...
 
virtual void renderBlock (const QgsPointCloudBlock *block, QgsPointCloudRenderContext &context)=0
 Renders a block of point cloud data using the specified render context. More...
 
virtual QDomElement save (QDomDocument &doc, const QgsReadWriteContext &context) const =0
 Saves the renderer configuration to an XML element. More...
 
void setDrawOrder2d (DrawOrder order)
 Sets the drawing order used by the renderer for drawing points. More...
 
void setMaximumScreenError (double error)
 Sets the maximum screen error allowed when rendering the point cloud. More...
 
void setMaximumScreenErrorUnit (QgsUnitTypes::RenderUnit unit)
 Sets the unit for the maximum screen error allowed when rendering the point cloud. More...
 
void setPointSize (double size)
 Sets the point size. More...
 
void setPointSizeMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for the point size. More...
 
void setPointSizeUnit (const QgsUnitTypes::RenderUnit units)
 Sets the units used for the point size. More...
 
void setPointSymbol (PointSymbol symbol)
 Sets the symbol used by the renderer for drawing points. More...
 
virtual void startRender (QgsPointCloudRenderContext &context)
 Must be called when a new render cycle is started. More...
 
virtual void stopRender (QgsPointCloudRenderContext &context)
 Must be called when a render cycle has finished, to allow the renderer to clean up. More...
 
virtual QString type () const =0
 Returns the identifier of the renderer type. More...
 
virtual QSet< QString > usedAttributes (const QgsPointCloudRenderContext &context) const
 Returns a list of attributes required by this renderer. More...
 
virtual bool willRenderPoint (const QMap< QString, QVariant > &pointAttributes)
 Checks whether the point holding pointAttributes attributes will be rendered By default if not overridden in the subclass renderer will return true ( the renderer is responsible for the filtering behavior ) More...
 

Static Public Member Functions

static QgsPointCloudRendererload (QDomElement &element, const QgsReadWriteContext &context)
 Creates a renderer from an XML element. More...
 

Protected Member Functions

void copyCommonProperties (QgsPointCloudRenderer *destination) const
 Copies common point cloud properties (such as point size and screen error) to the destination renderer. More...
 
void drawPoint (double x, double y, const QColor &color, QgsPointCloudRenderContext &context) const
 Draws a point using a color at the specified x and y (in map coordinates). More...
 
void restoreCommonProperties (const QDomElement &element, const QgsReadWriteContext &context)
 Restores common renderer properties (such as point size and screen error) from the specified DOM element. More...
 
void saveCommonProperties (QDomElement &element, const QgsReadWriteContext &context) const
 Saves common renderer properties (such as point size and screen error) to the specified DOM element. More...
 

Static Protected Member Functions

static void pointXY (QgsPointCloudRenderContext &context, const char *ptr, int i, double &x, double &y)
 Retrieves the x and y coordinate for the point at index i. More...
 
static double pointZ (QgsPointCloudRenderContext &context, const char *ptr, int i)
 Retrieves the z value for the point at index i. More...
 

Detailed Description

Abstract base class for 2d point cloud renderers.

Since
QGIS 3.18

Definition at line 254 of file qgspointcloudrenderer.h.

Member Enumeration Documentation

◆ DrawOrder

Pointcloud rendering order for 2d views /since QGIS 3.24.

Enumerator
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.

Definition at line 290 of file qgspointcloudrenderer.h.

◆ PointSymbol

Rendering symbols for points.

Enumerator
Square 

Renders points as squares.

Circle 

Renders points as circles.

Definition at line 280 of file qgspointcloudrenderer.h.

Constructor & Destructor Documentation

◆ QgsPointCloudRenderer() [1/2]

QgsPointCloudRenderer::QgsPointCloudRenderer ( )
default

Constructor for QgsPointCloudRenderer.

◆ ~QgsPointCloudRenderer()

virtual QgsPointCloudRenderer::~QgsPointCloudRenderer ( )
virtualdefault

◆ QgsPointCloudRenderer() [2/2]

QgsPointCloudRenderer::QgsPointCloudRenderer ( const QgsPointCloudRenderer other)
delete

QgsPointCloudRenderer cannot be copied – use clone() instead.

Member Function Documentation

◆ checkLegendItem()

void QgsPointCloudRenderer::checkLegendItem ( const QString &  key,
bool  state = true 
)
virtual

Called when the check state of the legend item with the specified key is changed.

See also
legendItemChecked()

Reimplemented in QgsPointCloudClassifiedRenderer.

Definition at line 122 of file qgspointcloudrenderer.cpp.

◆ clone()

virtual QgsPointCloudRenderer* QgsPointCloudRenderer::clone ( ) const
pure virtual

Create a deep copy of this renderer.

Should be implemented by all subclasses and generate a proper subclass.

Implemented in QgsPointCloudRgbRenderer, QgsPointCloudExtentRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudAttributeByRampRenderer.

◆ copyCommonProperties()

void QgsPointCloudRenderer::copyCommonProperties ( QgsPointCloudRenderer destination) const
protected

Copies common point cloud properties (such as point size and screen error) to the destination renderer.

Definition at line 157 of file qgspointcloudrenderer.cpp.

◆ createLegendNodes()

QList< QgsLayerTreeModelLegendNode * > QgsPointCloudRenderer::createLegendNodes ( QgsLayerTreeLayer nodeLayer)
virtual

Creates a set of legend nodes representing the renderer.

Reimplemented in QgsPointCloudExtentRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudAttributeByRampRenderer.

Definition at line 147 of file qgspointcloudrenderer.cpp.

◆ drawOrder2d()

QgsPointCloudRenderer::DrawOrder QgsPointCloudRenderer::drawOrder2d ( ) const

Returns the drawing order used by the renderer for drawing points.

See also
setDrawOrder2d()
Since
QGIS 3.24

Definition at line 202 of file qgspointcloudrenderer.cpp.

◆ drawPoint()

void QgsPointCloudRenderer::drawPoint ( double  x,
double  y,
const QColor &  color,
QgsPointCloudRenderContext context 
) const
inlineprotected

Draws a point using a color at the specified x and y (in map coordinates).

Definition at line 570 of file qgspointcloudrenderer.h.

◆ identify()

QVector< QVariantMap > QgsPointCloudRenderer::identify ( QgsPointCloudLayer layer,
const QgsRenderContext context,
const QgsGeometry geometry,
double  toleranceForPointIdentification = 0 
)

Returns the list of visible points of the point cloud layer layer and an extent defined by a geometry in the 2D plane geometry.

The toleranceForPointIdentification argument can be used to specify a minimum tolerance allowable when identify from a point geometry value. This must be specified in the map units associated with the render context.

Warning
The geometry value must be specified in the render context's destination CRS, not the layer's native CRS!

Definition at line 212 of file qgspointcloudrenderer.cpp.

◆ legendItemChecked()

bool QgsPointCloudRenderer::legendItemChecked ( const QString &  key)
virtual

Returns true if the legend item with the specified key is checked.

See also
checkLegendItem()

Reimplemented in QgsPointCloudClassifiedRenderer.

Definition at line 117 of file qgspointcloudrenderer.cpp.

◆ legendRuleKeys()

QStringList QgsPointCloudRenderer::legendRuleKeys ( ) const
virtual

Returns a list of all rule keys for legend nodes created by the renderer.

Reimplemented in QgsPointCloudClassifiedRenderer.

Definition at line 152 of file qgspointcloudrenderer.cpp.

◆ load()

QgsPointCloudRenderer * QgsPointCloudRenderer::load ( QDomElement &  element,
const QgsReadWriteContext context 
)
static

Creates a renderer from an XML element.

Caller takes ownership of the returned renderer.

See also
save()

Definition at line 62 of file qgspointcloudrenderer.cpp.

◆ maximumScreenError()

double QgsPointCloudRenderer::maximumScreenError ( ) const

Returns the maximum screen error allowed when rendering the point cloud.

Larger values result in a faster render with less points rendered.

Units are retrieved via maximumScreenErrorUnit().

See also
setMaximumScreenError()
maximumScreenErrorUnit()

Definition at line 127 of file qgspointcloudrenderer.cpp.

◆ maximumScreenErrorUnit()

QgsUnitTypes::RenderUnit QgsPointCloudRenderer::maximumScreenErrorUnit ( ) const

Returns the unit for the maximum screen error allowed when rendering the point cloud.

See also
maximumScreenError()
setMaximumScreenErrorUnit()

Definition at line 137 of file qgspointcloudrenderer.cpp.

◆ operator=()

QgsPointCloudRenderer& QgsPointCloudRenderer::operator= ( const QgsPointCloudRenderer other)
delete

QgsPointCloudRenderer cannot be copied – use clone() instead.

◆ pointSize()

double QgsPointCloudRenderer::pointSize ( ) const
inline

Returns the point size.

The point size units are retrieved by calling pointSizeUnit().

See also
setPointSize()
pointSizeUnit()
pointSizeMapUnitScale()

Definition at line 426 of file qgspointcloudrenderer.h.

◆ pointSizeMapUnitScale()

const QgsMapUnitScale& QgsPointCloudRenderer::pointSizeMapUnitScale ( ) const
inline

Returns the map unit scale used for the point size.

See also
setPointSizeMapUnitScale()
pointSizeUnit()
pointSize()

Definition at line 459 of file qgspointcloudrenderer.h.

◆ pointSizeUnit()

QgsUnitTypes::RenderUnit QgsPointCloudRenderer::pointSizeUnit ( ) const
inline

Returns the units used for the point size.

See also
setPointSizeUnit()
pointSize()
pointSizeMapUnitScale()

Definition at line 443 of file qgspointcloudrenderer.h.

◆ pointSymbol()

QgsPointCloudRenderer::PointSymbol QgsPointCloudRenderer::pointSymbol ( ) const

Returns the symbol used by the renderer for drawing points.

See also
setPointSymbol()

Definition at line 192 of file qgspointcloudrenderer.cpp.

◆ pointXY()

static void QgsPointCloudRenderer::pointXY ( QgsPointCloudRenderContext context,
const char *  ptr,
int  i,
double &  x,
double &  y 
)
inlinestaticprotected

Retrieves the x and y coordinate for the point at index i.

Definition at line 546 of file qgspointcloudrenderer.h.

◆ pointZ()

static double QgsPointCloudRenderer::pointZ ( QgsPointCloudRenderContext context,
const char *  ptr,
int  i 
)
inlinestaticprotected

Retrieves the z value for the point at index i.

Definition at line 559 of file qgspointcloudrenderer.h.

◆ renderBlock()

virtual void QgsPointCloudRenderer::renderBlock ( const QgsPointCloudBlock block,
QgsPointCloudRenderContext context 
)
pure virtual

Renders a block of point cloud data using the specified render context.

Implemented in QgsPointCloudRgbRenderer, QgsPointCloudExtentRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudAttributeByRampRenderer.

◆ restoreCommonProperties()

void QgsPointCloudRenderer::restoreCommonProperties ( const QDomElement &  element,
const QgsReadWriteContext context 
)
protected

Restores common renderer properties (such as point size and screen error) from the specified DOM element.

See also
saveCommonProperties()

Definition at line 168 of file qgspointcloudrenderer.cpp.

◆ save()

virtual QDomElement QgsPointCloudRenderer::save ( QDomDocument &  doc,
const QgsReadWriteContext context 
) const
pure virtual

Saves the renderer configuration to an XML element.

See also
load()

Implemented in QgsPointCloudRgbRenderer, QgsPointCloudExtentRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudAttributeByRampRenderer.

◆ saveCommonProperties()

void QgsPointCloudRenderer::saveCommonProperties ( QDomElement &  element,
const QgsReadWriteContext context 
) const
protected

Saves common renderer properties (such as point size and screen error) to the specified DOM element.

See also
restoreCommonProperties()

Definition at line 180 of file qgspointcloudrenderer.cpp.

◆ setDrawOrder2d()

void QgsPointCloudRenderer::setDrawOrder2d ( DrawOrder  order)

Sets the drawing order used by the renderer for drawing points.

See also
drawOrder2d()
Since
QGIS 3.24

Definition at line 207 of file qgspointcloudrenderer.cpp.

◆ setMaximumScreenError()

void QgsPointCloudRenderer::setMaximumScreenError ( double  error)

Sets the maximum screen error allowed when rendering the point cloud.

Larger values result in a faster render with less points rendered.

Units are set via setMaximumScreenErrorUnit().

See also
maximumScreenError()
setMaximumScreenErrorUnit()

Definition at line 132 of file qgspointcloudrenderer.cpp.

◆ setMaximumScreenErrorUnit()

void QgsPointCloudRenderer::setMaximumScreenErrorUnit ( QgsUnitTypes::RenderUnit  unit)

Sets the unit for the maximum screen error allowed when rendering the point cloud.

See also
setMaximumScreenError()
maximumScreenErrorUnit()

Definition at line 142 of file qgspointcloudrenderer.cpp.

◆ setPointSize()

void QgsPointCloudRenderer::setPointSize ( double  size)
inline

Sets the point size.

Point size units are specified via setPointSizeUnit().

See also
pointSize()
setPointSizeUnit()
setPointSizeMapUnitScale()

Definition at line 415 of file qgspointcloudrenderer.h.

◆ setPointSizeMapUnitScale()

void QgsPointCloudRenderer::setPointSizeMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale used for the point size.

See also
pointSizeMapUnitScale()
setPointSize()
setPointSizeUnit()

Definition at line 451 of file qgspointcloudrenderer.h.

◆ setPointSizeUnit()

void QgsPointCloudRenderer::setPointSizeUnit ( const QgsUnitTypes::RenderUnit  units)
inline

Sets the units used for the point size.

See also
setPointSize()
pointSizeUnit()
setPointSizeMapUnitScale()

Definition at line 435 of file qgspointcloudrenderer.h.

◆ setPointSymbol()

void QgsPointCloudRenderer::setPointSymbol ( PointSymbol  symbol)

Sets the symbol used by the renderer for drawing points.

See also
pointSymbol()

Definition at line 197 of file qgspointcloudrenderer.cpp.

◆ startRender()

void QgsPointCloudRenderer::startRender ( QgsPointCloudRenderContext context)
virtual

Must be called when a new render cycle is started.

A call to startRender() must always be followed by a corresponding call to stopRender() after all features have been rendered.

See also
stopRender()
Warning
This method is not thread safe. Before calling startRender() in a non-main thread, the renderer should instead be cloned and startRender()/stopRender() called on the clone.

Reimplemented in QgsPointCloudExtentRenderer.

Definition at line 83 of file qgspointcloudrenderer.cpp.

◆ stopRender()

void QgsPointCloudRenderer::stopRender ( QgsPointCloudRenderContext context)
virtual

Must be called when a render cycle has finished, to allow the renderer to clean up.

Calls to stopRender() must always be preceded by a call to startRender().

Warning
This method is not thread safe. Before calling startRender() in a non-main thread, the renderer should instead be cloned and startRender()/stopRender() called on the clone.
See also
startRender()

Reimplemented in QgsPointCloudExtentRenderer.

Definition at line 110 of file qgspointcloudrenderer.cpp.

◆ type()

virtual QString QgsPointCloudRenderer::type ( ) const
pure virtual

◆ usedAttributes()

QSet< QString > QgsPointCloudRenderer::usedAttributes ( const QgsPointCloudRenderContext context) const
virtual

Returns a list of attributes required by this renderer.

Attributes not listed in here may not be requested from the provider at rendering time.

Note
the "X" and "Y" attributes will always be fetched and do not need to be explicitly returned here.

Reimplemented in QgsPointCloudRgbRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudAttributeByRampRenderer.

Definition at line 78 of file qgspointcloudrenderer.cpp.

◆ willRenderPoint()

virtual bool QgsPointCloudRenderer::willRenderPoint ( const QMap< QString, QVariant > &  pointAttributes)
inlinevirtual

Checks whether the point holding pointAttributes attributes will be rendered By default if not overridden in the subclass renderer will return true ( the renderer is responsible for the filtering behavior )

Definition at line 342 of file qgspointcloudrenderer.h.


The documentation for this class was generated from the following files: