예제 #1
0
void OutCoreInterp::update_third_quadrant(int fileNum, double data_z, int base_x, int base_y, double x, double y)
{
    int i;
    int j;
    //int lb = gridMap[fileNum]->getOverlapLowerBound();

    for(i = base_x; i >= 0; i--)
        {
            //for(j = base_y; j >= lb; j--)
            for(j = base_y; j >= 0; j--)
                {
                    double distance = 	((base_x - i)*GRID_DIST_X + x) * ((base_x - i)*GRID_DIST_X + x) + 
                        ((base_y - j)*GRID_DIST_Y + y) * ((base_y - j)*GRID_DIST_Y + y);

                    if(distance <= radius_sqr)
                        {
                            updateGridPoint(fileNum, i, j, data_z, sqrt(distance));
                        } else if(j == base_y){
			return;
		    } else {
			break;
		    }
                }
        }
}
예제 #2
0
void OutCoreInterp::update_fourth_quadrant(int fileNum, double data_z, int base_x, int base_y, double x, double y)
{
    int i, j;
    //int lb = gridMap[fileNum]->getOverlapLowerBound();

    for(i = base_x; i < GRID_SIZE_X; i++)
        {
            //for(j = base_y; j >= lb; j--)
            for(j = base_y; j >= 0; j--)
                {
                    double distance = 	((i - base_x)*GRID_DIST_X + x) * ((i - base_x)*GRID_DIST_X + x) + 
                        ((base_y - j)*GRID_DIST_Y + y) * ((base_y - j)*GRID_DIST_Y + y);

                    if(distance <= radius_sqr)
                        {
                            //printf("(%d %d) ", i, j);
                            //interp[i][j]++;
                            updateGridPoint(fileNum, i, j, data_z, sqrt(distance));
                        } else if (j == base_y) {
			return ;
		    } else {
			break;
		    }
                }
        }
}
예제 #3
0
void OutCoreInterp::update_second_quadrant(int fileNum, double data_z, int base_x, int base_y, double x, double y)
{
    int i;
    int j;
    int ub = gridMap[fileNum]->getOverlapUpperBound() - gridMap[fileNum]->getOverlapLowerBound();
    //int ub = gridMap[fileNum]->getOverlapUpperBound();

    for(i = base_x; i >= 0; i--)
        {
            for(j = base_y; j < ub; j++)
                {
                    double distance = 	((base_x - i)*GRID_DIST_X + x) * ((base_x - i)*GRID_DIST_X + x) + 
                        ((j - base_y)*GRID_DIST_Y + y) * ((j - base_y)*GRID_DIST_Y + y);

                    if(distance <= radius_sqr)
                        {
                            //printf("(%d %d) ", i, j);
                            //interp[i][j]++;

                            updateGridPoint(fileNum, i, j, data_z, sqrt(distance));

                        } else if(j == base_y){
			return;
		    } else {
			break;
		    }
                }
        }
}
예제 #4
0
void OutCoreInterp::update_first_quadrant(int fileNum, double data_z, int base_x, int base_y, double x, double y)
{
    // base_x, base_y: local coordinates

    int i;
    int j;
    int ub = gridMap[fileNum]->getOverlapUpperBound() - gridMap[fileNum]->getOverlapLowerBound();

    for(i = base_x; i < GRID_SIZE_X; i++)
        {
            for(j = base_y; j < ub; j++)
                {
                    // i, j, base_x, base_y: local coordinates
                    double distance = 	((i - base_x)*GRID_DIST_X + x) * ((i - base_x)*GRID_DIST_X + x) + 
                        ((j - base_y)*GRID_DIST_Y + y) * ((j - base_y)*GRID_DIST_Y + y) ;

                    if(distance <= radius_sqr)
                        {
                            // update GridPoint
                            updateGridPoint(fileNum, i, j, data_z, distance);

                        } else if(j == base_y) {
			//printf("return ");
			return;
		    } else {
			//printf("break ");
			break;
		    }
                }
        }
}
예제 #5
0
void InCoreInterp::update_third_quadrant(double data_z, int base_x, int base_y, double x, double y)
{
    int i;
    int j;

    for(i = base_x; i >= 0; i--)
    {
        for(j = base_y; j >= 0; j--)
        {
            double distance = 	((base_x - i)*GRID_DIST_X + x) * ((base_x - i)*GRID_DIST_X + x) +
                                ((base_y - j)*GRID_DIST_Y + y) * ((base_y - j)*GRID_DIST_Y + y);

            if(distance <= radius_sqr)
            {
                //if(j == 30)
                //printf("(%d %d)\n", i, j);
                //interp[i][j]++;
                updateGridPoint(i, j, data_z, sqrt(distance));
            } else if(j == base_y) {
                return;
            } else {
                break;
            }
        }
    }
}
예제 #6
0
void InCoreInterp::update_first_quadrant(double data_z, int base_x, int base_y, double x, double y)
{
    int i;
    int j;
    //double temp;

    //printf("radius: %f ", radius_sqrt);

    for(i = base_x; i < GRID_SIZE_X; i++)
    {
        for(j = base_y; j < GRID_SIZE_Y; j++)
        {
            /*
              temp = (   ((i - base_x)*GRID_DIST + x) * ((i - base_x)*GRID_DIST + x) +
              ((j - base_y)*GRID_DIST + y) * ((j - base_y)*GRID_DIST + y)) ;
              printf("%f ", temp);
            */

            double distance = 	((i - base_x)*GRID_DIST_X + x) * ((i - base_x)*GRID_DIST_X + x) +
                                ((j - base_y)*GRID_DIST_Y + y) * ((j - base_y)*GRID_DIST_Y + y) ;

            if(distance <= radius_sqr)
            {
                //printf("(%d %d) ", i, j);
                //interp[i][j]++;

                // update GridPoint
                updateGridPoint(i, j, data_z, sqrt(distance));

            } else if(j == base_y) {
                //printf("return ");
                return;
            } else {
                //printf("break ");
                break;
            }
        }
    }

    //cerr << "test2" << endl;
}
예제 #7
0
void InCoreInterp::update_fourth_quadrant(double data_z, int base_x, int base_y, double x, double y)
{
    int i, j;

    for(i = base_x; i < GRID_SIZE_X; i++)
    {
        for(j = base_y; j >= 0; j--)
        {
            double distance = 	((i - base_x)*GRID_DIST_X + x) * ((i - base_x)*GRID_DIST_X + x) +
                                ((base_y - j)*GRID_DIST_Y + y) * ((base_y - j)*GRID_DIST_Y + y);

            if(distance <= radius_sqr)
            {
                //printf("(%d %d) ", i, j);
                //interp[i][j]++;
                updateGridPoint(i, j, data_z, sqrt(distance));
            } else if (j == base_y) {
                return ;
            } else {
                break;
            }
        }
    }
}