1
/***************************************************************************
2
qgsaspectfilter.cpp - description
3
-----------------------------------
4
begin : August 7th, 2009
5
copyright : (C) 2009 by Marco Hugentobler
6
email : marco dot hugentobler at karto dot baug dot ethz dot ch
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
16
***************************************************************************/
18
#include "qgsaspectfilter.h"
20
QgsAspectFilter::QgsAspectFilter( const QString& inputFile, const QString& outputFile, const QString& outputFormat ) :
21
QgsDerivativeFilter( inputFile, outputFile, outputFormat )
26
QgsAspectFilter::~QgsAspectFilter()
31
float QgsAspectFilter::processNineCellWindow(
32
float* x11, float* x21, float* x31,
33
float* x12, float* x22, float* x32,
34
float* x13, float* x23, float* x33 )
36
float derX = calcFirstDerX( x11, x21, x31, x12, x22, x32, x13, x23, x33 );
37
float derY = calcFirstDerY( x11, x21, x31, x12, x22, x32, x13, x23, x33 );
39
if ( derX == mOutputNodataValue ||
40
derY == mOutputNodataValue ||
41
( derX == 0.0 && derY == 0.0 ) )
43
return mOutputNodataValue;
47
return 180.0 + atan2( derX, derY ) * 180.0 / M_PI;