69 #pragma omp parallel for
70 for(
int y=0; y<
Get_NY(); y++)
for(
int x=0; x<
Get_NX(); x++)
86 #pragma omp parallel for
87 for(
int y=0; y<
Get_NY(); y++)
94 #pragma omp parallel for
95 for(
int y=0; y<
Get_NY(); y++)
97 for(
int x=0; x<
Get_NX(); x++)
136 bool bResult =
false;
139 if( m_System == pGrid->m_System )
143 #pragma omp parallel for
144 for(
int x=0; x<
Get_NX(); x++)
168 else switch( Interpolation )
174 bResult = _Assign_Interpolated(pGrid, Interpolation);
188 bResult = _Assign_Majority (pGrid);
229 #pragma omp parallel for
230 for(
int x=0; x<
Get_NX(); x++)
249 bool CSG_Grid::_Assign_ExtremeValue(
CSG_Grid *pGrid,
bool bMaximum)
266 int iy = (int)floor(py);
268 if( iy >= 0 && iy <
Get_NY() )
270 #pragma omp parallel for
271 for(
int x=0; x<pGrid->
Get_NX(); x++)
275 int ix = (int)floor(ax + x * d);
277 if( ix >= 0 && ix <
Get_NX() )
282 || (bMaximum ==
true && z >
asDouble(ix, iy))
283 || (bMaximum ==
false && z <
asDouble(ix, iy)) )
298 bool CSG_Grid::_Assign_MeanValue(
CSG_Grid *pGrid,
bool bAreaProportional)
313 int ay = (int)(bAreaProportional ? floor(py ) : ceil (py ));
314 int by = (int)(bAreaProportional ? ceil (py + d) : floor(py + d));
317 #pragma omp parallel for
318 for(
int x=0; x<
Get_NX(); x++)
320 double px = ox + x * d;
322 int ax = (int)(bAreaProportional ? floor(px ) : ceil (px ));
323 int bx = (int)(bAreaProportional ? ceil (px + d) : floor(px + d));
325 CSG_Rect rMean(px, py, px + d, py + d);
329 for(
int iy=ay; iy<=by; iy++)
331 if( iy >= 0 && iy < pGrid->
Get_NY() )
333 for(
int ix=ax; ix<=bx; ix++)
337 if( bAreaProportional )
339 CSG_Rect r(ix - 0.5, iy - 0.5, ix + 0.5, iy + 0.5);
341 if( r.Intersect(rMean) )
377 bool CSG_Grid::_Assign_Majority(
CSG_Grid *pGrid)
397 if( ay < pGrid->
Get_NY() && by > 0 )
404 if( by > pGrid->
Get_NY() )
411 for(
int x=0; x<
Get_NX(); x++)
416 if( ax < pGrid->
Get_NX() && bx > 0 )
425 if( bx > pGrid->
Get_NX() )
430 for(
int iy=ay; iy<by; iy++)
432 for(
int ix=ax; ix<bx; ix++)
636 #pragma omp parallel for
637 for(
int y=0; y<
Get_NY(); y++)
641 for(
int x=0; x<
Get_NX(); x++)
647 if( Grid.
Get_Value(xWorld, yWorld, Value, Interpolation) )
703 #pragma omp parallel for
704 for(
int y=0; y<
Get_NY(); y++)
706 for(
int x=0; x<
Get_NX(); x++)
741 #pragma omp parallel for
742 for(
int y=0; y<
Get_NY(); y++)
744 for(
int x=0; x<
Get_NX(); x++)
760 #pragma omp parallel for
761 for(
int x=0; x<
Get_NX(); x++)
763 for(
int yA=0, yB=
Get_NY()-1; yA<yB; yA++, yB--)
778 #pragma omp parallel for
779 for(
int y=0; y<
Get_NY(); y++)
781 for(
int xA=0, xB=
Get_NX()-1; xA<xB; xA++, xB--)
806 #pragma omp parallel for
807 for(
int y=0; y<
Get_NY(); y++)
809 for(
int x=0; x<
Get_NX(); x++)
827 if(
is_Valid() && Minimum < Maximum )
829 #pragma omp parallel for
830 for(
int y=0; y<
Get_NY(); y++)
832 for(
int x=0; x<
Get_NX(); x++)
855 #pragma omp parallel for
856 for(
int y=0; y<
Get_NY(); y++)
858 for(
int x=0; x<
Get_NX(); x++)
878 #pragma omp parallel for
879 for(
int y=0; y<
Get_NY(); y++)
881 for(
int x=0; x<
Get_NX(); x++)
922 double z =
asDouble(x, y), dzMax = 0.;
924 for(
int i=0; i<8; i++)
926 int ix = m_System.
Get_xTo(i, x);
927 int iy = m_System.
Get_yTo(i, y);
933 if( (!bDown || dz > 0.) && (Direction < 0 || dzMax < dz) )
964 for(
int i=0, iDir=0, ix, iy; i<4; i++, iDir+=2)
967 ix = m_System.
Get_xTo (iDir, x),
968 iy = m_System.
Get_yTo (iDir, y)) )
987 Slope = atan(sqrt(G*G + H*H));
1009 double z, iz, dz[4];
1013 for(
int i=0, iDir=0; i<4; i++, iDir+=2)
1036 Slope = atan(sqrt(G*G + H*H));
1058 return(
Get_Gradient(p.
x, p.
y, Incline, Azimuth, Interpolation) );