4
\brief wxNviz extension (3D view mode) - load data layers
6
This program is free software under the GNU General Public
7
License (>=v2). Read the file COPYING that comes with GRASS
10
(C) 2008-2009 by Martin Landa, and the GRASS development team
12
\author Martin Landa <landa.martin gmail.com> (Google SoC 2008)
18
#include <grass/G3d.h>
19
#include <grass/glocale.h>
23
\brief Load raster map (surface)
25
\param name raster map name
26
\param color_name raster map for color (NULL for color_value)
27
\param color_value color string (named color or RGB triptet)
32
int Nviz::LoadSurface(const char* name, const char *color_name, const char *color_value)
37
mapset = G_find_cell2 (name, "");
39
G_warning(_("Raster map <%s> not found"),
45
id = Nviz_new_map_obj(MAP_OBJ_SURF,
46
G_fully_qualified_name(name, mapset), 0.0,
49
if (color_name) { /* check for color map */
50
mapset = G_find_cell2 (color_name, "");
52
G_warning(_("Raster map <%s> not found"),
54
GS_delete_surface(id);
58
Nviz_set_attr(id, MAP_OBJ_SURF, ATT_COLOR, MAP_ATT,
59
G_fully_qualified_name(color_name, mapset), -1.0,
62
else if (color_value) { /* check for color value */
63
Nviz_set_attr(id, MAP_OBJ_SURF, ATT_COLOR, CONST_ATT,
64
NULL, Nviz_color_from_str(color_value),
67
else { /* use by default elevation map for coloring */
68
Nviz_set_attr(id, MAP_OBJ_SURF, ATT_COLOR, MAP_ATT,
69
G_fully_qualified_name(name, mapset), -1.0,
75
set_default_wirecolors(data, i);
78
/* focus on loaded data */
79
Nviz_set_focus_map(MAP_OBJ_UNDEFINED, -1);
81
G_debug(1, "Nviz::LoadRaster(): name=%s -> id=%d", name, id);
94
int Nviz::UnloadSurface(int id)
96
if (!GS_surf_exists(id)) {
100
G_debug(1, "Nviz::UnloadSurface(): id=%d", id);
102
if (GS_delete_surface(id) < 0)
109
\brief Load vector map overlay
111
\param name vector map name
112
\param points if true load 2d points rather then 2d lines
115
\return -1 on failure
117
int Nviz::LoadVector(const char *name, bool points)
122
if (GS_num_surfs() == 0) { /* load base surface if no loaded */
123
int *surf_list, nsurf;
125
Nviz_new_map_obj(MAP_OBJ_SURF, NULL, 0.0, data);
127
surf_list = GS_get_surf_list(&nsurf);
128
GS_set_att_const(surf_list[0], ATT_TRANSP, 255);
131
mapset = G_find_vector2 (name, "");
132
if (mapset == NULL) {
133
G_warning(_("Vector map <%s> not found"),
138
id = Nviz_new_map_obj(MAP_OBJ_SITE,
139
G_fully_qualified_name(name, mapset), 0.0,
143
id = Nviz_new_map_obj(MAP_OBJ_VECT,
144
G_fully_qualified_name(name, mapset), 0.0,
148
G_debug(1, "Nviz::LoadVector(): name=%s -> id=%d", name, id);
154
\brief Unload vector set
156
\param id vector set id
157
\param points vector points or lines set
162
int Nviz::UnloadVector(int id, bool points)
164
G_debug(1, "Nviz::UnloadVector(): id=%d", id);
167
if (!GP_site_exists(id)) {
171
if (GP_delete_site(id) < 0)
175
if (!GV_vect_exists(id)) {
179
if (GV_delete_vector(id) < 0)
187
\brief Load 3d raster map (volume)
189
\param name 3d raster map name
190
\param color_name 3d raster map for color (NULL for color_value)
191
\param color_value color string (named color or RGB triptet)
194
\return -1 on failure
196
int Nviz::LoadVolume(const char* name, const char *color_name, const char *color_value)
201
mapset = G_find_grid3(name, "");
202
if (mapset == NULL) {
203
G_warning(_("3d raster map <%s> not found"),
209
id = Nviz_new_map_obj(MAP_OBJ_VOL,
210
G_fully_qualified_name(name, mapset), 0.0,
213
if (color_name) { /* check for color map */
214
mapset = G_find_grid3(color_name, "");
215
if (mapset == NULL) {
216
G_warning(_("3d raster map <%s> not found"),
222
Nviz_set_attr(id, MAP_OBJ_VOL, ATT_COLOR, MAP_ATT,
223
G_fully_qualified_name(color_name, mapset), -1.0,
226
else if (color_value) { /* check for color value */
227
Nviz_set_attr(id, MAP_OBJ_VOL, ATT_COLOR, CONST_ATT,
228
NULL, Nviz_color_from_str(color_value),
231
else { /* use by default elevation map for coloring */
232
Nviz_set_attr(id, MAP_OBJ_VOL, ATT_COLOR, MAP_ATT,
233
G_fully_qualified_name(name, mapset), -1.0,
237
G_debug(1, "Nviz::LoadVolume(): name=%s -> id=%d", name, id);
250
int Nviz::UnloadVolume(int id)
252
if (!GVL_vol_exists(id)) {
256
G_debug(1, "Nviz::UnloadVolume(): id=%d", id);
258
if (GVL_delete_vol(id) < 0)