Exemplo n.º 1
0
/*!
   \brief Set vector points style

   \param params parameters

   \return 1 on success
   \return 0 on failure
 */
int vpoints_set_attrb(const struct GParams *params)
{
    int i, layer, have_colors, with_z;
    int *site_list, nsites;
    int marker, color, width;
    float size;
    char *marker_str, *color_column, *size_column, *width_column,
	*marker_column;

    struct Colors colors;

    site_list = GP_get_site_list(&nsites);

    for (i = 0; i < nsites; i++) {
	check_map(params, i, FALSE, &layer, &with_z);

	color = Nviz_color_from_str(params->vpoint_color->answers[i]);
	color_column = params->vpoint_color_column->answers ?
	    params->vpoint_color_column->answers[i] : NULL;
	size = atof(params->vpoint_size->answers[i]);
	size_column = params->vpoint_size_column->answers ?
	    params->vpoint_size_column->answers[i] : NULL;
	width = atoi(params->vpoint_width->answers[i]);
	width_column = params->vpoint_width_column->answers ?
	    params->vpoint_width_column->answers[i] : NULL;
	marker_str = params->vpoint_marker->answers[i];
	marker_column = params->vpoint_marker_column->answers ?
	    params->vpoint_marker_column->answers[i] : NULL;
	marker = GP_str_to_marker(marker_str);

	if (with_z) {
	    if (strcmp(params->vpoint_mode->answers[i], "surface") == 0)
		GP_set_zmode(site_list[i], FALSE);
	    else
		GP_set_zmode(site_list[i], TRUE);
	}

	if (GP_set_style(site_list[i], color, width, size, marker) < 0)
	    return 0;

	/* check for vector color table */
	have_colors = Vect_read_colors(params->vpoints->answers[i], "",
				       &colors);

	if (have_colors || color_column || width_column ||
	    size_column || marker_column) {
	    if (GP_set_style_thematic(site_list[i], layer, color_column,
				      width_column, size_column,
				      marker_column,
				      have_colors ? &colors : NULL) < 0)
		return 0;
	}
    }

    return 1;
}
Exemplo n.º 2
0
/*!
  \brief Set vector points mode
  
  \param params parameters
  
  \return 1 on success
  \return 0 on failure
*/
int vpoints_set_attrb(const struct GParams *params)
{
    int i;
    int *site_list, nsites;
    int marker, color, width;
    float size;
    char *marker_str;

    site_list = GP_get_site_list(&nsites);

    for (i = 0; i < nsites; i++) {
	color = Nviz_color_from_str(params->vpoint_color->answers[i]);
	size = atof(params->vpoint_size->answers[i]);
	width = atoi(params->vpoint_width->answers[i]);
	marker_str = params->vpoint_marker->answers[i];

	if (strcmp(marker_str, "x") == 0)
	    marker = ST_X;
	else if (strcmp(marker_str, "sphere") == 0)
	    marker = ST_SPHERE;
	else if (strcmp(marker_str, "diamond") == 0)
	    marker = ST_DIAMOND;
	else if (strcmp(marker_str, "cube") == 0)
	    marker = ST_CUBE;
	else if (strcmp(marker_str, "box") == 0)
	    marker = ST_BOX;
	else if (strcmp(marker_str, "gyro") == 0)
	    marker = ST_GYRO;
	else if (strcmp(marker_str, "aster") == 0)
	    marker = ST_ASTER;
	else if (strcmp(marker_str, "histogram") == 0)
	    marker = ST_HISTOGRAM;
	else
	    G_fatal_error(_("Unknown icon marker"));
	
	GP_set_sitemode(site_list[i], ST_ATT_NONE,
			color, width, size, marker);
	
	/* GP_set_style(site_list[i], color, width, size, marker); */
    }

    return 1;
}