|
@@ -40,11 +40,7 @@ int load_rasters(const struct GParams *params, nv_data * data)
|
|
|
nelev_map = opt_get_num_answers(params->elev_map);
|
|
|
nelev_const = opt_get_num_answers(params->elev_const);
|
|
|
|
|
|
- if (nelev_map > 0)
|
|
|
- nelevs = nelev_map;
|
|
|
- else
|
|
|
- nelevs = nelev_const;
|
|
|
-
|
|
|
+ nelevs = nelev_const + nelev_map;
|
|
|
/* topography (required) */
|
|
|
for (i = 0; i < nelevs; i++) {
|
|
|
/* check maps */
|
|
@@ -61,10 +57,10 @@ int load_rasters(const struct GParams *params, nv_data * data)
|
|
|
0.0, data);
|
|
|
}
|
|
|
else {
|
|
|
- if (i < nelev_const && strcmp(params->elev_const->answers[i], "")) {
|
|
|
+ if (i-nelev_map < nelev_const && strcmp(params->elev_const->answers[i-nelev_map], "")) {
|
|
|
id = Nviz_new_map_obj(MAP_OBJ_SURF,
|
|
|
NULL,
|
|
|
- atof(params->elev_const->answers[i]),
|
|
|
+ atof(params->elev_const->answers[i-nelev_map]),
|
|
|
data);
|
|
|
}
|
|
|
else {
|
|
@@ -118,19 +114,25 @@ int load_rasters(const struct GParams *params, nv_data * data)
|
|
|
data);
|
|
|
}
|
|
|
/* check for color value */
|
|
|
- else if (i < ncolor_const &&
|
|
|
- strcmp(params->color_const->answers[i], "")) {
|
|
|
+ else if (i-ncolor_map < ncolor_const &&
|
|
|
+ strcmp(params->color_const->answers[i-ncolor_map], "")) {
|
|
|
Nviz_set_attr(id, MAP_OBJ_SURF, ATT_COLOR, CONST_ATT, NULL,
|
|
|
Nviz_color_from_str(params->color_const->
|
|
|
- answers[i]), data);
|
|
|
+ answers[i-ncolor_map]), data);
|
|
|
}
|
|
|
else { /* use by default elevation map for coloring */
|
|
|
- Nviz_set_attr(id, MAP_OBJ_SURF, ATT_COLOR, MAP_ATT,
|
|
|
- G_fully_qualified_name(params->elev_map->answers[i],
|
|
|
- mapset), -1.0, data);
|
|
|
- G_verbose_message(_("Color attribute not defined, using default <%s>"),
|
|
|
- G_fully_qualified_name(params->elev_map->
|
|
|
- answers[i], mapset));
|
|
|
+ if (nelev_map > 0){
|
|
|
+ Nviz_set_attr(id, MAP_OBJ_SURF, ATT_COLOR, MAP_ATT,
|
|
|
+ G_fully_qualified_name(params->elev_map->answers[i],
|
|
|
+ mapset), -1.0, data);
|
|
|
+ G_verbose_message(_("Color attribute not defined, using default <%s>"),
|
|
|
+ G_fully_qualified_name(params->elev_map->
|
|
|
+ answers[i], mapset));
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ G_fatal_error(_("Missing color attribute for surface %d"),
|
|
|
+ i + 1);
|
|
|
+ }
|
|
|
}
|
|
|
/* mask */
|
|
|
if (i < nmask_map && strcmp(params->mask_map->answers[i], "")) {
|
|
@@ -146,10 +148,10 @@ int load_rasters(const struct GParams *params, nv_data * data)
|
|
|
answers[i], mapset), -1.0,
|
|
|
data);
|
|
|
}
|
|
|
- else if (i < ntransp_const &&
|
|
|
- strcmp(params->transp_const->answers[i], "")) {
|
|
|
+ else if (i-ntransp_map < ntransp_const &&
|
|
|
+ strcmp(params->transp_const->answers[i-ntransp_map], "")) {
|
|
|
Nviz_set_attr(id, MAP_OBJ_SURF, ATT_TRANSP, CONST_ATT, NULL,
|
|
|
- atof(params->transp_const->answers[i]), data);
|
|
|
+ atof(params->transp_const->answers[i-ntransp_map]), data);
|
|
|
}
|
|
|
|
|
|
/* shininess */
|
|
@@ -159,10 +161,10 @@ int load_rasters(const struct GParams *params, nv_data * data)
|
|
|
answers[i], mapset), -1.0,
|
|
|
data);
|
|
|
}
|
|
|
- else if (i < nshine_const &&
|
|
|
- strcmp(params->shine_const->answers[i], "")) {
|
|
|
+ else if (i-nshine_map < nshine_const &&
|
|
|
+ strcmp(params->shine_const->answers[i-nshine_map], "")) {
|
|
|
Nviz_set_attr(id, MAP_OBJ_SURF, ATT_SHINE, CONST_ATT, NULL,
|
|
|
- atof(params->shine_const->answers[i]), data);
|
|
|
+ atof(params->shine_const->answers[i-nshine_map]), data);
|
|
|
}
|
|
|
|
|
|
/* emission */
|
|
@@ -171,10 +173,10 @@ int load_rasters(const struct GParams *params, nv_data * data)
|
|
|
G_fully_qualified_name(params->emit_map->answers[i],
|
|
|
mapset), -1.0, data);
|
|
|
}
|
|
|
- else if (i < nemit_const &&
|
|
|
- strcmp(params->emit_const->answers[i], "")) {
|
|
|
+ else if (i-nemit_map < nemit_const &&
|
|
|
+ strcmp(params->emit_const->answers[i-nemit_map], "")) {
|
|
|
Nviz_set_attr(id, MAP_OBJ_SURF, ATT_EMIT, CONST_ATT, NULL,
|
|
|
- atof(params->emit_const->answers[i]), data);
|
|
|
+ atof(params->emit_const->answers[i-nemit_map]), data);
|
|
|
}
|
|
|
|
|
|
/*
|