Viewshed 6.1.0
A C++ library for calculation of viewshed, inverse viewshed and visibility indices for both of those analyses.
Loading...
Searching...
No Matches
visibility.h
1#pragma once
2#include "viewshed_export.h"
3
4#include "constants.h"
5#include "enums.h"
6
7using viewshed::CellEventPositionType;
8
9namespace viewshed
10{
11 class Point;
12 class RasterPosition;
14
19 class DLL_API Visibility
20 {
21 public:
32 static double distance( const double &x1, const double &y1, const double &x2, const double &y2,
33 const double &cellSize );
34
42 static double gradient( double elevationDiff, double distance );
43
52 static double curvatureCorrections( const double &distance, const double &refractionCoeff,
53 const double &earthDiameter );
54
62 static double curvatureCorrections( double &distance )
63 {
64 return curvatureCorrections( distance, viewshed::REFRACTION_COEFFICIENT, viewshed::EARTH_DIAMETER );
65 };
66
77 static CellEventPosition eventPosition( const CellEventPositionType &eventType, const int &row, const int &col,
78 const int &pointRow, const int &pointCol );
79
89 static double angle( const double &row, const double &column, const int &pointRow, const int &pointCol );
90 };
91} // namespace viewshed
Class that represents important point for viewshed - view point, or inverse viewshed - target point....
Definition point.h:21
Class to represent position on raster in term of row and column.
Definition rasterposition.h:12
Class that provides static functions to assist with viewshed calculation.
Definition visibility.h:20
static double gradient(double elevationDiff, double distance)
Calculate gradient.
Definition visibility.cpp:20
static double curvatureCorrections(double &distance)
Calculate elevation change based on distance, atmospheric refraction and earth curvature....
Definition visibility.h:62
static double curvatureCorrections(const double &distance, const double &refractionCoeff, const double &earthDiameter)
Calculate elevation change based on distance, atmospheric refraction and earth curvature.
Definition visibility.cpp:28
static double distance(const double &x1, const double &y1, const double &x2, const double &y2, const double &cellSize)
Calculate distance.
Definition visibility.cpp:14
Simple tuple representing cell event position in term of row and col (as double).
Definition celleventposition.h:11