QGIS API Documentation 3.29.0-Master (8c80f25a4f)
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 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...
 
Qgis::PointCloudDrawOrder drawOrder2d () const
 Returns the drawing order used by the renderer for drawing points. More...
 
double eyeDomeLightingDistance () const
 Returns the eye dome lighting distance. More...
 
QgsUnitTypes::RenderUnit eyeDomeLightingDistanceUnit () const
 Returns unit for the eye dome lighting distance. More...
 
bool eyeDomeLightingEnabled () const
 Returns whether eye dome lighting effect will be used. More...
 
double eyeDomeLightingStrength () const
 Returns the eye dome lighting strength value. 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...
 
Qgis::PointCloudSymbol pointSymbol () const
 Returns the symbol used by the renderer for drawing points. More...
 
virtual std::unique_ptr< QgsPreparedPointCloudRendererDataprepare ()
 Returns prepared data container for bulk point color retrieval. 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 (Qgis::PointCloudDrawOrder order)
 Sets the drawing order used by the renderer for drawing points. More...
 
void setEyeDomeLightingDistance (double distance)
 Sets the eye dome lighting distance. More...
 
void setEyeDomeLightingDistanceUnit (QgsUnitTypes::RenderUnit unit)
 Sets unit for the eye dome lighting distance. More...
 
void setEyeDomeLightingEnabled (bool enabled)
 Sets whether eye dome lighting effect will be used. More...
 
void setEyeDomeLightingStrength (double strength)
 Sets the eye dome lighting strength value. 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 (Qgis::PointCloudSymbol 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 drawPointToElevationMap (double x, double y, double z, QgsPointCloudRenderContext &context) const
 Draws a point at the elevation z using at the specified x and y (in map coordinates) on the elevation map. 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 319 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 133 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 QgsPointCloudAttributeByRampRenderer, QgsPointCloudClassifiedRenderer, QgsPointCloudExtentRenderer, and QgsPointCloudRgbRenderer.

◆ 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 193 of file qgspointcloudrenderer.cpp.

◆ createLegendNodes()

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

Creates a set of legend nodes representing the renderer.

Reimplemented in QgsPointCloudAttributeByRampRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudExtentRenderer.

Definition at line 158 of file qgspointcloudrenderer.cpp.

◆ drawOrder2d()

Qgis::PointCloudDrawOrder QgsPointCloudRenderer::drawOrder2d ( ) const

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

See also
setDrawOrder2d()
Since
QGIS 3.24

Definition at line 250 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 679 of file qgspointcloudrenderer.h.

◆ drawPointToElevationMap()

void QgsPointCloudRenderer::drawPointToElevationMap ( double  x,
double  y,
double  z,
QgsPointCloudRenderContext context 
) const
protected

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

Since
QGIS 3.28

Definition at line 168 of file qgspointcloudrenderer.cpp.

◆ eyeDomeLightingDistance()

double QgsPointCloudRenderer::eyeDomeLightingDistance ( ) const
inline

Returns the eye dome lighting distance.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 627 of file qgspointcloudrenderer.h.

◆ eyeDomeLightingDistanceUnit()

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

Returns unit for the eye dome lighting distance.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 641 of file qgspointcloudrenderer.h.

◆ eyeDomeLightingEnabled()

bool QgsPointCloudRenderer::eyeDomeLightingEnabled ( ) const
inline

Returns whether eye dome lighting effect will be used.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 599 of file qgspointcloudrenderer.h.

◆ eyeDomeLightingStrength()

double QgsPointCloudRenderer::eyeDomeLightingStrength ( ) const
inline

Returns the eye dome lighting strength value.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 613 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 260 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 128 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 163 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 68 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 138 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 148 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 479 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 512 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 496 of file qgspointcloudrenderer.h.

◆ pointSymbol()

Qgis::PointCloudSymbol QgsPointCloudRenderer::pointSymbol ( ) const

Returns the symbol used by the renderer for drawing points.

See also
setPointSymbol()

Definition at line 240 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 655 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 668 of file qgspointcloudrenderer.h.

◆ prepare()

std::unique_ptr< QgsPreparedPointCloudRendererData > QgsPointCloudRenderer::prepare ( )
virtual

Returns prepared data container for bulk point color retrieval.

Note
Not available in Python bindings.
Since
QGIS 3.26

Reimplemented in QgsPointCloudAttributeByRampRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudRgbRenderer.

Definition at line 89 of file qgspointcloudrenderer.cpp.

◆ 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 QgsPointCloudAttributeByRampRenderer, QgsPointCloudClassifiedRenderer, QgsPointCloudExtentRenderer, and QgsPointCloudRgbRenderer.

◆ 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 208 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 QgsPointCloudAttributeByRampRenderer, QgsPointCloudClassifiedRenderer, QgsPointCloudExtentRenderer, and QgsPointCloudRgbRenderer.

◆ 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 224 of file qgspointcloudrenderer.cpp.

◆ setDrawOrder2d()

void QgsPointCloudRenderer::setDrawOrder2d ( Qgis::PointCloudDrawOrder  order)

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

See also
drawOrder2d()
Since
QGIS 3.24

Definition at line 255 of file qgspointcloudrenderer.cpp.

◆ setEyeDomeLightingDistance()

void QgsPointCloudRenderer::setEyeDomeLightingDistance ( double  distance)
inline

Sets the eye dome lighting distance.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 634 of file qgspointcloudrenderer.h.

◆ setEyeDomeLightingDistanceUnit()

void QgsPointCloudRenderer::setEyeDomeLightingDistanceUnit ( QgsUnitTypes::RenderUnit  unit)
inline

Sets unit for the eye dome lighting distance.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 648 of file qgspointcloudrenderer.h.

◆ setEyeDomeLightingEnabled()

void QgsPointCloudRenderer::setEyeDomeLightingEnabled ( bool  enabled)
inline

Sets whether eye dome lighting effect will be used.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 606 of file qgspointcloudrenderer.h.

◆ setEyeDomeLightingStrength()

void QgsPointCloudRenderer::setEyeDomeLightingStrength ( double  strength)
inline

Sets the eye dome lighting strength value.

Note
This is not a part of stable API - this function may be removed in a future release
Since
QGIS 3.28

Definition at line 620 of file qgspointcloudrenderer.h.

◆ 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 143 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 153 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 468 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 504 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 488 of file qgspointcloudrenderer.h.

◆ setPointSymbol()

void QgsPointCloudRenderer::setPointSymbol ( Qgis::PointCloudSymbol  symbol)

Sets the symbol used by the renderer for drawing points.

See also
pointSymbol()

Definition at line 245 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 94 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 121 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 QgsPointCloudAttributeByRampRenderer, QgsPointCloudClassifiedRenderer, and QgsPointCloudRgbRenderer.

Definition at line 84 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 387 of file qgspointcloudrenderer.h.


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