コード例 #1
0
void
convolve_calc_treemap( carmen_vascocore_quad_tree_t *tree,
		       carmen_vascocore_map_t *map,
		       carmen_gauss_kernel_t kernel, int hk, double std )
{
  int i, j;
  if ((tree->level)>0 ) {
    if (tree->elem[0]->inuse)
      convolve_calc_treemap( tree->elem[0], map, kernel, hk, std );
    if (tree->elem[1]->inuse)
      convolve_calc_treemap( tree->elem[1], map, kernel, hk, std );
    if (tree->elem[2]->inuse)
      convolve_calc_treemap( tree->elem[2], map, kernel, hk, std );
    if (tree->elem[3]->inuse)
      convolve_calc_treemap( tree->elem[3], map, kernel, hk, std );
  } else {
    if ( (tree->center.x/2)>hk+1 && (tree->center.x/2)<map->mapsize.x-hk-1 &&
	 (tree->center.y/2)>hk+1 && (tree->center.y/2)<map->mapsize.y-hk-1 ) {
      for (i=(tree->center.x/2)-hk;i<(tree->center.x/2)+hk;i++) {
	for (j=(tree->center.y/2)-hk;j<(tree->center.y/2)+hk;j++) {
	  if (map->updated[i][j] != UPDT_X)
	    convolve_calc_point( map, kernel, hk, i, j, std );
	}
      }
    }

  }
}
コード例 #2
0
ファイル: map.c プロジェクト: lixiao89/MBot
void
convolve_calc_treemap( QUAD_TREE *tree, MAP2 *map,
		       logtools_gauss_kernel_t kernel, int hk, double std )
{
  int i, j;
  if ((tree->level)>0 ) {
    if (tree->elem[0]->inuse)
      convolve_calc_treemap( tree->elem[0], map, kernel, hk, std );
    if (tree->elem[1]->inuse)
      convolve_calc_treemap( tree->elem[1], map, kernel, hk, std );
    if (tree->elem[2]->inuse)
      convolve_calc_treemap( tree->elem[2], map, kernel, hk, std );
    if (tree->elem[3]->inuse)
      convolve_calc_treemap( tree->elem[3], map, kernel, hk, std );
  } else {
    if ( (tree->center.x/2)>hk+1 && (tree->center.x/2)<map->mapsize.x-hk-1 &&
	 (tree->center.y/2)>hk+1 && (tree->center.y/2)<map->mapsize.y-hk-1 ) {
      for (i=(tree->center.x/2)-hk;i<(tree->center.x/2)+hk;i++) {
	for (j=(tree->center.y/2)-hk;j<(tree->center.y/2)+hk;j++) {
	  if (map->updated[i][j] != UPDT_X)
	    convolve_calc_point( map, kernel, hk, i, j, std );
	}
      }
    }

  }
}