15 HemiGrid(): mMatrix(0), mMatrixCountAzimuth(-1),
16 mMatrixCountElevation(-1) {}
20 void setup(
double cellsize_degree);
21 void clear(
double SetWith = 0.);
24 double&
rGetByIndex(
const int iAzimuth,
const int iElevation)
const;
25 double&
rGet(
const double Azimuth,
const double Elevation)
const;
28 int indexAzimuth(
double Azimuth)
const {
int x=int( (Azimuth + M_PI) / (2.*M_PI) * mMatrixCountAzimuth );
if (x==mMatrixCountAzimuth) --x;
return x;}
30 int indexElevation(
double Elevation)
const {
int x=int( Elevation / (M_PI / 2.) * mMatrixCountElevation );
if (x==mMatrixCountElevation) --x;
return x;}
33 double azimuth(
const int iAzimuth) {
return iAzimuth/double(mMatrixCountAzimuth) * M_PI*2 - M_PI; }
35 double azimuthNorth(
const int iAzimuth) {
double d = iAzimuth/double(mMatrixCountAzimuth) * M_PI*2 - M_PI/2.;
return d; }
37 double elevation(
const int iElevation) {
return iElevation/double(mMatrixCountElevation) * M_PI_2; }
42 void matrixMinMax(
double &rMatrixMin,
double &rMatrixMax)
const;
46 static void projectLine(
const double &x,
const double &y,
const double &deltah,
const double &r,
47 double &
elevation,
double &azimuth1,
double &azimuth2);
58 const double &offsetz,
const double &height,
const double &r,
60 void modifyAngleRect(
const double &elow,
const double &alow1,
const double &alow2,
61 const double &ehigh,
const double &ahigh1,
const double &ahigh2,
70 int mMatrixCountAzimuth;
71 int mMatrixCountElevation;
72 double mMatrixCellSize;
73 double mCellSizeDegree;
HemiGrid represents a grid covering the hemisphehre as well as some operations.
Definition: hemigrid.h:13
double getSum(const HemiGrid *Weighter=NULL) const
retrieve total sum of the hemigrid.
Definition: hemigrid.cpp:129
static void projectLine(const double &x, const double &y, const double &deltah, const double &r, double &elevation, double &azimuth1, double &azimuth2)
Definition: hemigrid.cpp:148
void clear(double SetWith=0.)
Definition: hemigrid.cpp:35
void setup(double cellsize_degree)
Definition: hemigrid.cpp:14
void modify(const HemiGrid &Source, const ModifyMode mode)
combine two Hemigrids.
Definition: hemigrid.cpp:115
~HemiGrid()
Definition: hemigrid.h:17
double & rGetByIndex(const int iAzimuth, const int iElevation) const
Definition: hemigrid.cpp:90
void matrixMinMax(double &rMatrixMin, double &rMatrixMax) const
get mininum and maximum value in the grid.
Definition: hemigrid.cpp:44
double & rGet(const double Azimuth, const double Elevation) const
Definition: hemigrid.cpp:105
void projectCylinder(const double &deltax, const double &deltay, const double &offsetz, const double &height, const double &r, const ModifyMode mode, const double &value)
Definition: hemigrid.cpp:205
HemiGrid(const HemiGrid &grid)
Definition: hemigrid.h:18
double azimuthNorth(const int iAzimuth)
get azimuth angle associated with given index.
Definition: hemigrid.h:35
void paintGrid(QImage &image) const
Definition: hemigrid.cpp:220
double azimuth(const int iAzimuth)
get azimuth angle associated with given index.
Definition: hemigrid.h:33
ModifyMode
Definition: hemigrid.h:49
@ Add
Definition: hemigrid.h:49
@ SetTo
Definition: hemigrid.h:49
@ Multiply
Definition: hemigrid.h:49
int indexAzimuth(double Azimuth) const
get azimuth index of given azimuth angle. angle should be -pi .. pi.
Definition: hemigrid.h:28
int matrixCountAzimuth() const
Definition: hemigrid.h:39
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)
Definition: hemigrid.cpp:170
HemiGrid()
Definition: hemigrid.h:15
int indexElevation(double Elevation) const
get index of elevation (0..pi/2)
Definition: hemigrid.h:30
double elevation(const int iElevation)
get elevation angle associated with given index.
Definition: hemigrid.h:37
double sum(const double elevation=0) const
get sum of all cell values with elevation >= "elevation".
Definition: hemigrid.cpp:56
int matrixCountElevation() const
Definition: hemigrid.h:40
QString dumpGrid() const
Definition: hemigrid.cpp:254