19 #include <grass/gis.h>
20 #include <grass/Vect.h>
32 buf[0] = GV_SIDX_VER_MAJOR;
33 buf[1] = GV_SIDX_VER_MINOR;
34 buf[2] = GV_SIDX_EARLIEST_MAJOR;
35 buf[3] = GV_SIDX_EARLIEST_MINOR;
36 buf[4] = ptr->spidx_port.byte_order;
45 buf[0] = ptr->spidx_with_z;
65 G_debug(3,
"spidx offset node = %ld line = %ld, area = %ld isle = %ld",
66 ptr->Node_spidx_offset, ptr->Line_spidx_offset,
67 ptr->Area_spidx_offset, ptr->Isle_spidx_offset);
90 ptr->spidx_Version_Major = buf[0];
91 ptr->spidx_Version_Minor = buf[1];
92 ptr->spidx_Back_Major = buf[2];
93 ptr->spidx_Back_Minor = buf[3];
97 "Sidx header: file version %d.%d , supported from GRASS version %d.%d",
98 ptr->spidx_Version_Major, ptr->spidx_Version_Minor,
99 ptr->spidx_Back_Major, ptr->spidx_Back_Minor);
101 G_debug(2,
" byte order %d", byte_order);
104 if (ptr->spidx_Version_Major > GV_SIDX_VER_MAJOR ||
105 ptr->spidx_Version_Minor > GV_SIDX_VER_MINOR) {
108 if (ptr->spidx_Back_Major > GV_SIDX_VER_MAJOR ||
109 ptr->spidx_Back_Minor > GV_SIDX_VER_MINOR) {
112 (
"Spatial index format version %d.%d is not supported by this release."
113 " Try to rebuild topology or upgrade GRASS.",
114 ptr->spidx_Version_Major, ptr->spidx_Version_Minor);
119 (
"Your GRASS version does not fully support spatial index format %d.%d of the vector."
120 " Consider to rebuild topology or upgrade GRASS.",
121 ptr->spidx_Version_Major, ptr->spidx_Version_Minor);
130 G_debug(2,
" header size %ld", ptr->spidx_head_size);
135 ptr->spidx_with_z = buf[0];
136 G_debug(2,
" with_z %d", ptr->spidx_with_z);
157 G_debug(2,
" coor size %ld", coor_size);
159 dig_fseek(fp, ptr->spidx_head_size, SEEK_SET);
174 fprintf(fp,
" id = %d ", (
int)b->
child);
190 fprintf(fp,
"Node level=%d count=%d\n", n->
level, n->
count);
197 for (i = 0; i < nn; i++) {
199 fprintf(fp,
" Branch %d", i);
256 for (i = 0; i < nn; i++) {
273 G_debug(3,
"rtree_read_branch()");
309 G_debug(3,
"rtree_read_node()");
321 for (i = 0; i <
count; i++) {
358 G_debug(1,
"dig_read_spindx()");
367 dig_fseek(fp, Plus->Node_spidx_offset, 0);
370 dig_fseek(fp, Plus->Line_spidx_offset, 0);
373 dig_fseek(fp, Plus->Area_spidx_offset, 0);
376 dig_fseek(fp, Plus->Isle_spidx_offset, 0);
386 fprintf(fp,
"Nodes\n");
389 fprintf(fp,
"Lines\n");
392 fprintf(fp,
"Areas\n");
395 fprintf(fp,
"Isles\n");