123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /* the caps are being built by reading thru the original grid3 file
- ** and drawn to the screen not being stored at this time
- */
- #include <grass/gis.h>
- #include "vizual.h"
- #include <grass/raster3d.h>
- /*
- #define DEBUG1
- */
- int init_caps(D_Cap, g3reg)
- struct Cap *D_Cap;
- RASTER3D_Region *g3reg;
- /* this subroutine only needs to be called once */
- {
- int min; /*the smallest dimension */
- int dim1, dim2; /* the two largest dimensions */
- /* In order to determine how much memory to malloc for a D_buff
- ** need to determine the largest 2 dimensions (x,y or z)
- ** this is done by finding the minimum and using the other two */
- if (g3reg->cols < g3reg->rows) {
- dim1 = g3reg->rows;
- min = g3reg->cols;
- }
- else {
- dim1 = g3reg->cols;
- min = g3reg->rows;
- }
- if (g3reg->depths < min)
- dim2 = min;
- else
- dim2 = g3reg->depths;
- #ifdef DEBUG1
- fprintf(stderr, "dim1 = %d dim2 = %d \n", dim1, dim2);
- #endif
- /* NOTE: code only written for floats at this time */
- /* malloc memory for buffer that will hold slice of data */
- if ((D_Cap->D_buff =
- (float *)G_malloc(dim1 * dim2 * sizeof(float))) == NULL) {
- fprintf(stderr, "ERROR: in mallocing memory for D_Cap->D_buff\n");
- return (-1);
- }
- return (1);
- }
|