QgsHillshadeRenderer *QgsHillshadeRenderer::clone() const { QgsHillshadeRenderer* r = new QgsHillshadeRenderer( nullptr, mBand, mLightAzimuth, mLightAngle ); r->copyCommonProperties( this ); r->setZFactor( mZFactor ); r->setMultiDirectional( mMultiDirectional ); return r; }
QgsRasterRenderer *QgsHillshadeRenderer::create( const QDomElement &elem, QgsRasterInterface *input ) { if ( elem.isNull() ) { return nullptr; } int band = elem.attribute( "band", "0" ).toInt(); double azimuth = elem.attribute( "azimuth", "315" ).toDouble(); double angle = elem.attribute( "angle", "45" ).toDouble(); double zFactor = elem.attribute( "zfactor", "1" ).toDouble(); bool multiDirectional = elem.attribute( "multidirection", "0" ).toInt(); QgsHillshadeRenderer* r = new QgsHillshadeRenderer( input, band, azimuth , angle ); r->readXml( elem ); r->setZFactor( zFactor ); r->setMultiDirectional( multiDirectional ); return r; }
QgsRasterRenderer *QgsHillshadeRendererWidget::renderer() { if ( !mRasterLayer ) { return nullptr; } QgsRasterDataProvider* provider = mRasterLayer->dataProvider(); if ( !provider ) { return nullptr; } int band = mBandsCombo->currentData().toInt(); QgsHillshadeRenderer* renderer = new QgsHillshadeRenderer( provider, band, mLightAzimuth->value(), mLightAngle->value() ); double value = mZFactor->value(); renderer->setZFactor( value ); renderer->setMultiDirectional( mMultiDirection->checkState() ); return renderer; }