mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
This adds a configuration interface and renderer that makes it easy to put all the pieces together which are required to get a 2.5D effect. It allow for configuring some of the styling and is meant to create an easy-to-use setup. Since every part of the system is built around QGIS' internal rendering and symbology engine, there is much to fine tune. To get all the possibilities, just change the renderer to a graduated, categorized or single symbol renderer upon creation and you will find full access to improve the style to your needs. Funded by * Regional Council of Picardy * ADUGA * Ville de Nyon * Wetu GIT cc
107 lines
3.0 KiB
Plaintext
107 lines
3.0 KiB
Plaintext
/***************************************************************************
|
|
qgs25drenderer.sip - Qgs25DRenderer
|
|
|
|
---------------------
|
|
begin : 14.1.2016
|
|
copyright : (C) 2016 by Matthias Kuhn
|
|
email : matthias@opengis.ch
|
|
***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
class Qgs25DRenderer : QgsFeatureRendererV2
|
|
{
|
|
%TypeHeaderCode
|
|
#include "qgs25drenderer.h"
|
|
%End
|
|
public:
|
|
Qgs25DRenderer();
|
|
|
|
/**
|
|
* Create a new 2.5D renderer from XML
|
|
*
|
|
* @param element XML information
|
|
*/
|
|
static QgsFeatureRendererV2* create( QDomElement& element );
|
|
QDomElement save( QDomDocument& doc );
|
|
|
|
void startRender( QgsRenderContext& context, const QgsFields& fields );
|
|
void stopRender( QgsRenderContext& context );
|
|
|
|
QList<QString> usedAttributes();
|
|
QgsFeatureRendererV2* clone() const;
|
|
|
|
virtual QgsSymbolV2* symbolForFeature( QgsFeature& feature, QgsRenderContext& context );
|
|
virtual QgsSymbolV2List symbols( QgsRenderContext& context );
|
|
|
|
/**
|
|
* Get the field or expression used to determine the height of extrusion
|
|
*/
|
|
QgsDataDefined height() const;
|
|
/**
|
|
* Set the field or expression used to determine the height of extrusion
|
|
*/
|
|
void setHeight( const QgsDataDefined& height );
|
|
|
|
/**
|
|
* Get the angle for the extrusion effect
|
|
*/
|
|
int angle() const;
|
|
/**
|
|
* Set the angle for the extrusion effect
|
|
*/
|
|
void setAngle( int angle );
|
|
|
|
/**
|
|
* Get the roof color
|
|
*/
|
|
QColor roofColor() const;
|
|
|
|
/**
|
|
* Set the roof color
|
|
*/
|
|
void setRoofColor( const QColor& roofColor );
|
|
|
|
/**
|
|
* Get the wall color
|
|
*/
|
|
QColor wallColor() const;
|
|
|
|
/**
|
|
* Set the wall color
|
|
*/
|
|
void setWallColor( const QColor& wallColor );
|
|
|
|
/**
|
|
* Get the shadow's color
|
|
*/
|
|
QColor shadowColor() const;
|
|
|
|
/**
|
|
* Set the shadow's color
|
|
*/
|
|
void setShadowColor( const QColor& shadowColor );
|
|
|
|
/**
|
|
* Get the shadow's spread distance in map units
|
|
*/
|
|
double shadowSpread() const;
|
|
/**
|
|
* Set the shadow's spread distance in map units
|
|
*/
|
|
void setShadowSpread( double shadowSpread );
|
|
|
|
/**
|
|
* Try to convert from an existing renderer. If it is not of the same type
|
|
* we assume that the internals are not compatible and create a new default
|
|
* 2.5D renderer.
|
|
*/
|
|
static Qgs25DRenderer* convertFromRenderer( QgsFeatureRendererV2* renderer );
|
|
|
|
};
|