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".