예제 #1
0
void
convolve_prob_treemap( carmen_vascocore_quad_tree_t *tree,
		       carmen_vascocore_map_t *map,
		       carmen_gauss_kernel_t kernel, int hk )
{
  int i, j;
  if ((tree->level)>0 ) {
    if (tree->elem[0]->inuse)
      convolve_prob_treemap( tree->elem[0], map, kernel, hk );
    if (tree->elem[1]->inuse)
      convolve_prob_treemap( tree->elem[1], map, kernel, hk );
    if (tree->elem[2]->inuse)
      convolve_prob_treemap( tree->elem[2], map, kernel, hk );
    if (tree->elem[3]->inuse)
      convolve_prob_treemap( tree->elem[3], map, kernel, hk );
  } 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_Y)
	    convolve_prob_point( map, kernel, hk, i, j );
	}
      }
    }
  }
}
예제 #2
0
파일: map.c 프로젝트: lixiao89/MBot
void
convolve_prob_treemap( QUAD_TREE *tree, MAP2 *map,
		       logtools_gauss_kernel_t kernel, int hk )
{
  int i, j;
  if ((tree->level)>0 ) {
    if (tree->elem[0]->inuse)
      convolve_prob_treemap( tree->elem[0], map, kernel, hk );
    if (tree->elem[1]->inuse)
      convolve_prob_treemap( tree->elem[1], map, kernel, hk );
    if (tree->elem[2]->inuse)
      convolve_prob_treemap( tree->elem[2], map, kernel, hk );
    if (tree->elem[3]->inuse)
      convolve_prob_treemap( tree->elem[3], map, kernel, hk );
  } 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_Y)
	    convolve_prob_point( map, kernel, hk, i, j );
	}
      }
    }
  }
}