76
77
/*Simple vtk ASCII header */
77
78
fprintf(fp, "# vtk DataFile Version 3.0\n");
78
fprintf(fp, "GRASS 6 Export\n");
79
fprintf(fp, "GRASS GIS 7 Export\n");
79
80
fprintf(fp, "ASCII\n");
80
81
fprintf(fp, "DATASET STRUCTURED_POINTS\n"); /*We are using the structured point dataset. */
109
110
/*Simple vtk ASCII header */
110
111
fprintf(fp, "# vtk DataFile Version 3.0\n");
111
fprintf(fp, "GRASS 6 Export\n");
112
fprintf(fp, "GRASS GIS 7 Export\n");
112
113
fprintf(fp, "ASCII\n");
113
114
fprintf(fp, "DATASET STRUCTURED_GRID\n"); /*We are using the structured grid dataset. */
114
115
fprintf(fp, "DIMENSIONS %i %i %i\n", region.cols, region.rows, 1);
125
126
/*Simple vtk ASCII header */
126
127
fprintf(fp, "# vtk DataFile Version 3.0\n");
127
fprintf(fp, "GRASS 6 Export\n");
128
fprintf(fp, "GRASS GIS 7 Export\n");
128
129
fprintf(fp, "ASCII\n");
129
130
fprintf(fp, "DATASET POLYDATA\n"); /*We are using polydataset. */
130
131
fprintf(fp, "POINTS %i float\n", region.cols * region.rows);
176
raster = G_allocate_raster_buf(out_type);
177
raster = Rast_allocate_buf(out_type);
179
180
for (row = nrows - 1; row >= 0; row--) {
181
182
G_percent((row - nrows) * (-1), nrows, 2);
183
if (G_get_raster_row(fd, raster, row, out_type) < 0) {
184
G_fatal_error(_("Unable to read row %i\n"), row);
184
Rast_get_row(fd, raster, row, out_type);
188
186
nspos = region.ns_res / 2 + region.south + rowcount * region.ns_res;
189
187
nspos -= y_extent;
191
189
for (col = 0, ptr = raster; col < ncols;
192
col++, ptr = G_incr_void_ptr(ptr, G_raster_size(out_type))) {
190
col++, ptr = G_incr_void_ptr(ptr, Rast_cell_size(out_type))) {
194
192
region.ew_res / 2 + region.west + colcount * region.ew_res;
195
193
ewpos -= x_extent;
236
234
/*First we are writing the coordinate points, the elevation cell is only used for the z coordinate */
237
raster = G_allocate_raster_buf(out_type);
235
raster = Rast_allocate_buf(out_type);
240
238
for (row = nrows - 1; row >= 0; row--) {
242
240
G_percent((row - nrows) * (-1), nrows, 10);
244
if (G_get_raster_row(fd, raster, row, out_type) < 0) {
245
G_fatal_error(_("Unable to read row %i\n"), row);
242
Rast_get_row(fd, raster, row, out_type);
249
244
nspos = region.ns_res / 2 + region.south + rowcount * region.ns_res;
250
245
nspos -= y_extent;
252
247
for (col = 0, ptr = raster; col < ncols;
253
col++, ptr = G_incr_void_ptr(ptr, G_raster_size(out_type))) {
248
col++, ptr = G_incr_void_ptr(ptr, Rast_cell_size(out_type))) {
255
250
region.ew_res / 2 + region.west + colcount * region.ew_res;
256
251
ewpos -= x_extent;
348
343
fprintf(fp, "LOOKUP_TABLE default\n");
351
raster = G_allocate_raster_buf(out_type);
346
raster = Rast_allocate_buf(out_type);
353
348
for (row = nrows - 1; row >= 0; row--) {
354
349
G_percent((row - nrows) * (-1), nrows, 10);
356
if (G_get_raster_row(fd, raster, row, out_type) < 0) {
357
G_fatal_error(_("Unable to read row %i\n"), row);
351
Rast_get_row(fd, raster, row, out_type);
361
353
for (col = 0, ptr = raster; col < ncols;
362
col++, ptr = G_incr_void_ptr(ptr, G_raster_size(out_type))) {
354
col++, ptr = G_incr_void_ptr(ptr, Rast_cell_size(out_type))) {
364
356
value = get_raster_value_as_double(out_type, ptr, nullvalue);
365
357
fprintf(fp, "%.*f ", dp, value);
394
386
fprintf(fp, "COLOR_SCALARS %s 3\n", varname);
396
redraster = G_allocate_raster_buf(out_type);
397
greenraster = G_allocate_raster_buf(out_type);
398
blueraster = G_allocate_raster_buf(out_type);
388
redraster = Rast_allocate_buf(out_type);
389
greenraster = Rast_allocate_buf(out_type);
390
blueraster = Rast_allocate_buf(out_type);
400
392
for (row = nrows - 1; row >= 0; row--) {
401
393
G_percent((row - nrows) * (-1), nrows, 10);
403
if (G_get_raster_row(redfd, redraster, row, out_type) < 0) {
404
G_fatal_error(_("Unable to read row %i\n"), row);
407
if (G_get_raster_row(greenfd, greenraster, row, out_type) < 0) {
408
G_fatal_error(_("Unable to read row %i\n"), row);
411
if (G_get_raster_row(bluefd, blueraster, row, out_type) < 0) {
412
G_fatal_error(_("Unable to read row %i\n"), row);
395
Rast_get_row(redfd, redraster, row, out_type);
396
Rast_get_row(greenfd, greenraster, row, out_type);
397
Rast_get_row(bluefd, blueraster, row, out_type);
416
399
for (col = 0, redptr = redraster, greenptr = greenraster, blueptr =
417
400
blueraster; col < ncols;
419
G_incr_void_ptr(redptr, G_raster_size(out_type)), greenptr =
420
G_incr_void_ptr(greenptr, G_raster_size(out_type)), blueptr =
421
G_incr_void_ptr(blueptr, G_raster_size(out_type))) {
402
G_incr_void_ptr(redptr, Rast_cell_size(out_type)), greenptr =
403
G_incr_void_ptr(greenptr, Rast_cell_size(out_type)), blueptr =
404
G_incr_void_ptr(blueptr, Rast_cell_size(out_type))) {
423
406
r = get_raster_value_as_double(out_type, redptr, 0.0);
424
407
g = get_raster_value_as_double(out_type, greenptr, 0.0);
461
444
fprintf(fp, "VECTORS %s float\n", varname);
463
xraster = G_allocate_raster_buf(out_type);
464
yraster = G_allocate_raster_buf(out_type);
465
zraster = G_allocate_raster_buf(out_type);
446
xraster = Rast_allocate_buf(out_type);
447
yraster = Rast_allocate_buf(out_type);
448
zraster = Rast_allocate_buf(out_type);
467
450
for (row = nrows - 1; row >= 0; row--) {
468
451
G_percent((row - nrows) * (-1), nrows, 10);
470
if (G_get_raster_row(xfd, xraster, row, out_type) < 0) {
471
G_fatal_error(_("Unable to read row %i\n"), row);
474
if (G_get_raster_row(yfd, yraster, row, out_type) < 0) {
475
G_fatal_error(_("Unable to read row %i\n"), row);
478
if (G_get_raster_row(zfd, zraster, row, out_type) < 0) {
479
G_fatal_error(_("Unable to read row %i\n"), row);
453
Rast_get_row(xfd, xraster, row, out_type);
454
Rast_get_row(yfd, yraster, row, out_type);
455
Rast_get_row(zfd, zraster, row, out_type);
483
457
for (col = 0, xptr = xraster, yptr = yraster, zptr =
484
458
zraster; col < ncols;
486
G_incr_void_ptr(xptr, G_raster_size(out_type)), yptr =
487
G_incr_void_ptr(yptr, G_raster_size(out_type)), zptr =
488
G_incr_void_ptr(zptr, G_raster_size(out_type))) {
460
G_incr_void_ptr(xptr, Rast_cell_size(out_type)), yptr =
461
G_incr_void_ptr(yptr, Rast_cell_size(out_type)), zptr =
462
G_incr_void_ptr(zptr, Rast_cell_size(out_type))) {
490
464
x = get_raster_value_as_double(out_type, xptr, 0.0);
491
465
y = get_raster_value_as_double(out_type, yptr, 0.0);