|
iLand
|
HemiGrid represents a grid covering the hemisphehre as well as some operations. More...
#include <hemigrid.h>
Public Types | |
| enum | ModifyMode { Add , Multiply , SetTo } |
Public Member Functions | |
| HemiGrid () | |
| ~HemiGrid () | |
| HemiGrid (const HemiGrid &grid) | |
| void | setup (double cellsize_degree) |
| void | clear (double SetWith=0.) |
| double & | rGetByIndex (const int iAzimuth, const int iElevation) const |
| double & | rGet (const double Azimuth, const double Elevation) const |
| int | indexAzimuth (double Azimuth) const |
| get azimuth index of given azimuth angle. angle should be -pi .. pi. More... | |
| int | indexElevation (double Elevation) const |
| get index of elevation (0..pi/2) More... | |
| double | azimuth (const int iAzimuth) |
| get azimuth angle associated with given index. More... | |
| double | azimuthNorth (const int iAzimuth) |
| get azimuth angle associated with given index. More... | |
| double | elevation (const int iElevation) |
| get elevation angle associated with given index. More... | |
| int | matrixCountAzimuth () const |
| int | matrixCountElevation () const |
| void | matrixMinMax (double &rMatrixMin, double &rMatrixMax) const |
| get mininum and maximum value in the grid. More... | |
| double | sum (const double elevation=0) const |
| get sum of all cell values with elevation >= "elevation". More... | |
| void | modify (const HemiGrid &Source, const ModifyMode mode) |
| combine two Hemigrids. More... | |
| void | projectCylinder (const double &deltax, const double &deltay, const double &offsetz, const double &height, const double &r, const ModifyMode mode, const double &value) |
| void | modifyAngleRect (const double &elow, const double &alow1, const double &alow2, const double &ehigh, const double &ahigh1, const double &ahigh2, const ModifyMode mode, const double &value) |
| double | getSum (const HemiGrid *Weighter=NULL) const |
| retrieve total sum of the hemigrid. More... | |
| void | paintGrid (QImage &image) const |
| QString | dumpGrid () const |
Static Public Member Functions | |
| static void | projectLine (const double &x, const double &y, const double &deltah, const double &r, double &elevation, double &azimuth1, double &azimuth2) |
HemiGrid represents a grid covering the hemisphehre as well as some operations.
The sky is modeled as equally sized tiles. Coordinate system: azimuth: angle between -pi .. +pi, where 0=south direction elevation: 0: horizon - pi/2 (90°)
| enum HemiGrid::ModifyMode |
|
inline |
|
inline |
|
inline |
|
inline |
get azimuth angle associated with given index.
|
inline |
get azimuth angle associated with given index.
| void HemiGrid::clear | ( | double | SetWith = 0. | ) |
| QString HemiGrid::dumpGrid | ( | ) | const |
|
inline |
get elevation angle associated with given index.
| double HemiGrid::getSum | ( | const HemiGrid * | Weighter = NULL | ) | const |
retrieve total sum of the hemigrid.
| Weighter | if available (non null) each cell value of this grid is multiplied with the weighter grid (note: no additional calculations are performed) |
|
inline |
get azimuth index of given azimuth angle. angle should be -pi .. pi.
|
inline |
get index of elevation (0..pi/2)
|
inline |
|
inline |
| void HemiGrid::matrixMinMax | ( | double & | rMatrixMin, |
| double & | rMatrixMax | ||
| ) | const |
get mininum and maximum value in the grid.
| void HemiGrid::modify | ( | const HemiGrid & | Source, |
| const ModifyMode | mode | ||
| ) |
combine two Hemigrids.
use "Source" and combine it with curernt grid using the combine mode "mode". Available modes are: Add, Multiply, Set (=copy).
| Source | Hemigrid used as source (is const, and not modified). |
| mode | Combine mode (Add, Multiply, SetTo) |
| void HemiGrid::modifyAngleRect | ( | const double & | elow, |
| const double & | alow1, | ||
| const double & | alow2, | ||
| const double & | ehigh, | ||
| const double & | ahigh1, | ||
| const double & | ahigh2, | ||
| const ModifyMode | mode, | ||
| const double & | value | ||
| ) |
| void HemiGrid::paintGrid | ( | QImage & | image | ) | const |
| void HemiGrid::projectCylinder | ( | const double & | deltax, |
| const double & | deltay, | ||
| const double & | offsetz, | ||
| const double & | height, | ||
| const double & | r, | ||
| const ModifyMode | mode, | ||
| const double & | value | ||
| ) |
|
static |
| double & HemiGrid::rGet | ( | const double | Azimuth, |
| const double | Elevation | ||
| ) | const |
| double & HemiGrid::rGetByIndex | ( | const int | iAzimuth, |
| const int | iElevation | ||
| ) | const |
| void HemiGrid::setup | ( | double | cellsize_degree | ) |
| double HemiGrid::sum | ( | const double | elevation = 0 | ) | const |
get sum of all cell values with elevation >= "elevation".