librtree 1.0.2 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -2
- data/README.md +4 -4
- data/ext/rtree/extconf.rb +18 -3
- data/ext/rtree/lib/bindex.c +2 -1
- data/ext/rtree/lib/branch.c +2 -1
- data/ext/rtree/lib/branches.c +2 -2
- data/ext/rtree/lib/bsrt.c +8 -18
- data/ext/rtree/lib/csv.c +3 -1
- data/ext/rtree/lib/error.c +2 -2
- data/ext/rtree/lib/json.c +6 -3
- data/ext/rtree/lib/mk/Hdr.mk +3 -3
- data/ext/rtree/lib/node.c +34 -34
- data/ext/rtree/lib/package.c +1 -1
- data/ext/rtree/lib/page.c +1 -1
- data/ext/rtree/lib/postscript.c +20 -16
- data/ext/rtree/lib/{bindex.h → private/bindex.h} +3 -8
- data/ext/rtree/lib/{bounds.h → private/bounds.h} +3 -3
- data/ext/rtree/lib/{rtree → private}/branch.h +10 -17
- data/ext/rtree/lib/{rtree → private}/branches.h +8 -14
- data/ext/rtree/lib/{bsrt.h → private/bsrt.h} +5 -5
- data/ext/rtree/lib/{constants.h → private/constants.h} +3 -3
- data/ext/rtree/lib/{csv.h → private/csv.h} +5 -5
- data/ext/rtree/lib/{endianness.h → private/endianness.h} +4 -8
- data/ext/rtree/lib/{json.h → private/json.h} +5 -5
- data/ext/rtree/lib/private/node.h +86 -0
- data/ext/rtree/lib/private/page.h +13 -0
- data/ext/rtree/lib/private/postscript.h +17 -0
- data/ext/rtree/lib/{rtree → private}/rect.h +6 -14
- data/ext/rtree/lib/{rtree → private}/rectf.h +3 -14
- data/ext/rtree/lib/private/rtree.h +20 -0
- data/ext/rtree/lib/private/search.h +20 -0
- data/ext/rtree/lib/private/split.h +15 -0
- data/ext/rtree/lib/{spvol.h → private/spvol.h} +3 -3
- data/ext/rtree/lib/private/state.h +91 -0
- data/ext/rtree/lib/rect.c +4 -1
- data/ext/rtree/lib/rectf.c +1 -1
- data/ext/rtree/lib/rtree/node.h +0 -75
- data/ext/rtree/lib/rtree/postscript.h +19 -21
- data/ext/rtree/lib/rtree/search.h +0 -6
- data/ext/rtree/lib/rtree/state.h +0 -79
- data/ext/rtree/lib/rtree-base.c +64 -4
- data/ext/rtree/lib/rtree.h +7 -11
- data/ext/rtree/lib/search.c +4 -3
- data/ext/rtree/lib/split.c +9 -6
- data/ext/rtree/lib/spvol.c +1 -1
- data/ext/rtree/lib/state.c +7 -7
- data/ext/rtree/rtree.c +18 -18
- data/lib/rtree.rb +2 -8
- metadata +38 -19
- data/ext/rtree/lib/page.h +0 -13
- data/ext/rtree/lib/split.h +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b253861945be28133a07d5041b080939164dc3725a4b5b458319899d1ad9b66
|
4
|
+
data.tar.gz: 56704611278f67678693ce56e4cec85ae436ba41d534803e0fb8694c39d5b45b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 904eacdcbbe518f91ccc41d2c03da9191591a0af6e17be87874be1d74525707a10815e68ed0c9c3dacf91afe70384f982723487f3b6434241ec51097745f0f3e
|
7
|
+
data.tar.gz: 8be9c36a56b92d1bea25a2ef352cb1e3062b1d197983c92cd11d0f753451573b454b3af22327c05fa300d52f3036561555bd1464faa79ea304d87811ddd4acd2
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,16 @@
|
|
1
1
|
Changelog
|
2
2
|
---------
|
3
3
|
|
4
|
-
### 1.0.
|
4
|
+
### 1.0.4, 30-10-2023
|
5
|
+
|
6
|
+
- Check for `__builtin_ctzl` (and use if found)
|
7
|
+
|
8
|
+
### 1.0.3, 16-10-2023
|
9
|
+
|
10
|
+
- Update to librtree 1.3.0
|
11
|
+
- Remove workaround for "optional argument to #exit!" issue
|
12
|
+
|
13
|
+
### 1.0.2, 06-04-2023
|
5
14
|
|
6
15
|
- The `#serialise` method raises if the read from pipe returns
|
7
16
|
nil (which it might), so the method (and other methods which
|
@@ -26,7 +35,7 @@ Changelog
|
|
26
35
|
|
27
36
|
- Tidying
|
28
37
|
- Fix warning "undefining the allocator of T_DATA class" on
|
29
|
-
Ruby 3
|
38
|
+
Ruby 3.2
|
30
39
|
- No functional changes
|
31
40
|
|
32
41
|
### 0.9.0, 07-11-2021
|
data/README.md
CHANGED
@@ -54,12 +54,12 @@ this.
|
|
54
54
|
If using [rbenv][4], then first set a local version of Ruby to use,
|
55
55
|
then install the gems into your local cache
|
56
56
|
|
57
|
-
rbenv local 2.
|
57
|
+
rbenv local 3.2.0
|
58
58
|
bundle install
|
59
59
|
|
60
|
-
The repository's `.gitignore` ignores **rbenv**'s `.ruby-version`
|
61
|
-
|
62
|
-
|
60
|
+
The repository's `.gitignore` ignores **rbenv**'s `.ruby-version` file,
|
61
|
+
since we don't want to mandate a particular Ruby version for the package
|
62
|
+
(although 3.0 is the minimal version for development at present).
|
63
63
|
|
64
64
|
If not using **rbenv** then just
|
65
65
|
|
data/ext/rtree/extconf.rb
CHANGED
@@ -17,7 +17,7 @@ if have_header('endian.h') ||
|
|
17
17
|
have_header('libkern/OSByteOrder.h') ||
|
18
18
|
have_header('winsock2.h')
|
19
19
|
then
|
20
|
-
append_cflags(
|
20
|
+
append_cflags('-DWITH_BSRT')
|
21
21
|
else
|
22
22
|
warn('cannot determine endianness, no BSRT support')
|
23
23
|
end
|
@@ -25,7 +25,7 @@ end
|
|
25
25
|
if have_header('jansson.h') &&
|
26
26
|
have_library('jansson', 'json_pack')
|
27
27
|
then
|
28
|
-
append_cflags(
|
28
|
+
append_cflags('-DWITH_JSON')
|
29
29
|
else
|
30
30
|
warn('cannot find jansson, no JSON support')
|
31
31
|
end
|
@@ -41,5 +41,20 @@ end
|
|
41
41
|
|
42
42
|
have_header('features.h')
|
43
43
|
|
44
|
+
if have_macro('__has_builtin') then
|
45
|
+
src = <<~EOF
|
46
|
+
#if __has_builtin(__builtin_ctzl)
|
47
|
+
#else
|
48
|
+
#error no __builtin_ctzl
|
49
|
+
#endif
|
50
|
+
EOF
|
51
|
+
checking_for(checking_message('__builtin_ctzl')) do
|
52
|
+
if result = try_compile(src) then
|
53
|
+
$defs.push('-DHAVE___BUILTIN_CTZL')
|
54
|
+
result
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
44
59
|
create_header('config.h')
|
45
|
-
create_makefile(
|
60
|
+
create_makefile('rtree')
|
data/ext/rtree/lib/bindex.c
CHANGED
data/ext/rtree/lib/branch.c
CHANGED
data/ext/rtree/lib/branches.c
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
not known until runtime, so we have to perform those calculations
|
5
5
|
ourselves. Note that we just do the arithmatic here, no error
|
6
6
|
checking -- so a over-sized index to branches_get() will lead to
|
7
|
-
a memory error, the caller is
|
7
|
+
a memory error, the caller is expected to do this check themselves
|
8
8
|
*/
|
9
9
|
|
10
10
|
#ifdef HAVE_CONFIG_H
|
11
11
|
#include "config.h"
|
12
12
|
#endif
|
13
13
|
|
14
|
-
#include "
|
14
|
+
#include "private/branches.h"
|
15
15
|
|
16
16
|
extern branch_t* branches_get(const state_t*, void*, size_t);
|
17
17
|
extern void branches_set(const state_t*, void*, size_t, const branch_t*);
|
data/ext/rtree/lib/bsrt.c
CHANGED
@@ -2,18 +2,20 @@
|
|
2
2
|
#include "config.h"
|
3
3
|
#endif
|
4
4
|
|
5
|
-
#include "
|
5
|
+
#include "private/branch.h"
|
6
|
+
#include "private/branches.h"
|
7
|
+
#include "private/bsrt.h"
|
8
|
+
#include "private/node.h"
|
6
9
|
|
7
10
|
#include "rtree/error.h"
|
8
|
-
#include "rtree/branches.h"
|
9
11
|
|
10
12
|
#include <errno.h>
|
11
13
|
#include <string.h>
|
12
14
|
|
13
15
|
#ifdef WITH_BSRT
|
14
16
|
|
15
|
-
#include "endianness.h"
|
16
|
-
#include "bounds.h"
|
17
|
+
#include "private/endianness.h"
|
18
|
+
#include "private/bounds.h"
|
17
19
|
|
18
20
|
#define BSRT_MAGIC "BSRt"
|
19
21
|
#define BSRT_FOOTER "fin"
|
@@ -129,28 +131,18 @@ static int write_rect(const state_t *state,
|
|
129
131
|
|
130
132
|
for (size_t i = 0 ; i < n ; i++)
|
131
133
|
{
|
132
|
-
/*
|
133
|
-
The type-punning to/from char* here is legal (the standard
|
134
|
-
makes an explicit exception), but cppcheck warns anyway, so
|
135
|
-
we suppress those warnings
|
136
|
-
*/
|
137
|
-
|
138
134
|
char p[k];
|
139
135
|
|
140
|
-
/* cppcheck-suppress invalidPointerCast */
|
141
136
|
*(rtree_coord_t*)p = rect[i];
|
142
137
|
|
143
138
|
#if SIZEOF_RTREE_COORD_T == 4
|
144
|
-
/* cppcheck-suppress invalidPointerCast */
|
145
139
|
*(uint32_t*)p = htole32(*(uint32_t*)p);
|
146
140
|
#elif SIZEOF_RTREE_COORD_T == 8
|
147
|
-
/* cppcheck-suppress invalidPointerCast */
|
148
141
|
*(uint64_t*)p = htole64(*(uint64_t*)p);
|
149
142
|
#else
|
150
143
|
#error rtree_coord_t size not handled
|
151
144
|
#endif
|
152
145
|
|
153
|
-
/* cppcheck-suppress invalidPointerCast */
|
154
146
|
buffer[i] = *(rtree_coord_t*)p;
|
155
147
|
}
|
156
148
|
|
@@ -321,7 +313,7 @@ static int read_v1_header(FILE *stream, uint16_t v[5])
|
|
321
313
|
return 0;
|
322
314
|
}
|
323
315
|
|
324
|
-
static bool read_v1_state_consistent(uint16_t v[5], const state_t *state)
|
316
|
+
static bool read_v1_state_consistent(const uint16_t v[5], const state_t *state)
|
325
317
|
{
|
326
318
|
return
|
327
319
|
(v[0] == state_dims(state)) &&
|
@@ -360,8 +352,6 @@ static int read_v1_rect(FILE *stream,
|
|
360
352
|
#error rtree_coord_t size not handled
|
361
353
|
#endif
|
362
354
|
|
363
|
-
/* cppcheck-suppress invalidPointerCast */
|
364
|
-
|
365
355
|
rect[i] = *(rtree_coord_t*)p;
|
366
356
|
}
|
367
357
|
|
@@ -592,7 +582,7 @@ static int read_v2_header(FILE *stream, uint16_t v[6])
|
|
592
582
|
return 0;
|
593
583
|
}
|
594
584
|
|
595
|
-
static bool read_v2_state_consistent(uint16_t v[6], const state_t *state)
|
585
|
+
static bool read_v2_state_consistent(const uint16_t v[6], const state_t *state)
|
596
586
|
{
|
597
587
|
return
|
598
588
|
(v[0] == state_dims(state)) &&
|
data/ext/rtree/lib/csv.c
CHANGED
data/ext/rtree/lib/error.c
CHANGED
data/ext/rtree/lib/json.c
CHANGED
@@ -2,11 +2,14 @@
|
|
2
2
|
#include "config.h"
|
3
3
|
#endif
|
4
4
|
|
5
|
-
#include "
|
6
|
-
#include "
|
5
|
+
#include "private/bounds.h"
|
6
|
+
#include "private/branch.h"
|
7
|
+
#include "private/branches.h"
|
8
|
+
#include "private/json.h"
|
9
|
+
#include "private/node.h"
|
10
|
+
#include "private/rtree.h"
|
7
11
|
|
8
12
|
#include "rtree/error.h"
|
9
|
-
#include "rtree/branches.h"
|
10
13
|
|
11
14
|
#include <errno.h>
|
12
15
|
|
data/ext/rtree/lib/mk/Hdr.mk
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
HDR := rtree/branch.h rtree/
|
2
|
-
rtree/
|
3
|
-
rtree/
|
1
|
+
HDR := rtree/branch.h rtree/error.h rtree/extent.h rtree/node.h \
|
2
|
+
rtree/package.h rtree/postscript.h rtree/rectf.h rtree/search.h \
|
3
|
+
rtree/state.h rtree/types.h rtree.h
|
data/ext/rtree/lib/node.c
CHANGED
@@ -2,12 +2,13 @@
|
|
2
2
|
#include "config.h"
|
3
3
|
#endif
|
4
4
|
|
5
|
-
#include "
|
6
|
-
#include "
|
7
|
-
#include "
|
8
|
-
#include "
|
5
|
+
#include "private/branch.h"
|
6
|
+
#include "private/branches.h"
|
7
|
+
#include "private/node.h"
|
8
|
+
#include "private/rect.h"
|
9
|
+
#include "private/split.h"
|
9
10
|
|
10
|
-
#include "
|
11
|
+
#include "rtree/error.h"
|
11
12
|
|
12
13
|
#include <stdbool.h>
|
13
14
|
#include <stddef.h>
|
@@ -307,23 +308,27 @@ node_t* node_add_branch(const state_t *state, node_t *node, branch_t *branch)
|
|
307
308
|
Pick a branch. Pick the one that will need the smallest increase
|
308
309
|
in volume to accomodate the new (hyper-)rectangle. This will result
|
309
310
|
in the least total volume for the covering rectangles in the current
|
310
|
-
node.
|
311
|
-
|
311
|
+
node.
|
312
|
+
|
313
|
+
This is expensive but does not show up directly in the profile since
|
314
|
+
it is only called once so obviously inlined.
|
312
315
|
*/
|
313
316
|
|
314
317
|
static int node_pick_branch(const state_t *state,
|
315
|
-
node_t *node,
|
318
|
+
node_t *node,
|
319
|
+
const rtree_coord_t *rect,
|
316
320
|
size_t *index)
|
317
321
|
{
|
318
|
-
const size_t
|
319
|
-
dims = state_dims(state);
|
320
|
-
size_t
|
321
|
-
index_min = SIZE_MAX;
|
322
|
-
rtree_coord_t
|
323
|
-
dvol_min = INFINITY,
|
324
|
-
vol_min = INFINITY;
|
325
322
|
|
326
|
-
|
323
|
+
const size_t dims = state_dims(state);
|
324
|
+
assert(dims > 0);
|
325
|
+
rtree_coord_t rect2[2 * dims];
|
326
|
+
|
327
|
+
const size_t n = node_count(node);
|
328
|
+
assert(n > 0);
|
329
|
+
rtree_coord_t dvol[n];
|
330
|
+
|
331
|
+
for (size_t i = 0 ; i < n ; i++)
|
327
332
|
{
|
328
333
|
branch_t *branch;
|
329
334
|
|
@@ -331,34 +336,29 @@ static int node_pick_branch(const state_t *state,
|
|
331
336
|
return RTREE_ERR_GETBRANCH;
|
332
337
|
|
333
338
|
const rtree_coord_t *rect1 = branch_get_rect(branch);
|
334
|
-
rtree_coord_t rect2[2 * dims];
|
335
339
|
rect_combine(state, rect, rect1, rect2);
|
336
340
|
|
337
341
|
rtree_coord_t
|
338
342
|
vol1 = rect_spherical_volume(state, rect1),
|
339
|
-
vol2 = rect_spherical_volume(state, rect2)
|
340
|
-
dvol = vol2 - vol1;
|
343
|
+
vol2 = rect_spherical_volume(state, rect2);
|
341
344
|
|
342
|
-
|
345
|
+
dvol[i] = vol2 - vol1;
|
346
|
+
}
|
347
|
+
|
348
|
+
rtree_coord_t dvol_min = dvol[0];
|
349
|
+
size_t index_min = 0;
|
350
|
+
|
351
|
+
for (size_t i = 1 ; i < n ; i++)
|
352
|
+
{
|
353
|
+
rtree_coord_t dvol_i = dvol[i];
|
354
|
+
|
355
|
+
if (dvol_i < dvol_min)
|
343
356
|
{
|
357
|
+
dvol_min = dvol_i;
|
344
358
|
index_min = i;
|
345
|
-
vol_min = vol1;
|
346
|
-
dvol_min = dvol;
|
347
359
|
}
|
348
360
|
}
|
349
361
|
|
350
|
-
/*
|
351
|
-
This can only happen if no branches are assigned in the above
|
352
|
-
block, on the first call of it, dvol_min == DBL_MAX, so either
|
353
|
-
the first case is called, or dvol == DBL_MAX, but dvol is equal
|
354
|
-
to vol2 - vol1, and vol1, vol2 are non-negative, so vol2 must
|
355
|
-
be DBL_MAX and vol1 zero, in particular vol1 < vol_min (DBL_MAX),
|
356
|
-
so the second condition is met.
|
357
|
-
*/
|
358
|
-
|
359
|
-
if (index_min == SIZE_MAX)
|
360
|
-
return RTREE_ERR_PICKBRANCH;
|
361
|
-
|
362
362
|
*index = index_min;
|
363
363
|
|
364
364
|
return RTREE_OK;
|
data/ext/rtree/lib/package.c
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
#include "rtree/package.h"
|
7
7
|
|
8
|
-
const char rtree_package_version[] = "1.
|
8
|
+
const char rtree_package_version[] = "1.3.0";
|
9
9
|
const char rtree_package_name[] = "librtree";
|
10
10
|
const char rtree_package_url[] = "https://gitlab.com/jjg/librtree";
|
11
11
|
const char rtree_package_bugreport[] = "j.j.green@gmx.co.uk";
|
data/ext/rtree/lib/page.c
CHANGED
data/ext/rtree/lib/postscript.c
CHANGED
@@ -2,9 +2,13 @@
|
|
2
2
|
#include "config.h"
|
3
3
|
#endif
|
4
4
|
|
5
|
-
#include "
|
6
|
-
#include "
|
5
|
+
#include "private/branch.h"
|
6
|
+
#include "private/node.h"
|
7
|
+
#include "private/state.h"
|
8
|
+
|
7
9
|
#include "rtree/error.h"
|
10
|
+
#include "rtree/package.h"
|
11
|
+
#include "rtree/postscript.h"
|
8
12
|
|
9
13
|
#include <time.h>
|
10
14
|
#include <errno.h>
|
@@ -32,7 +36,7 @@ typedef struct {
|
|
32
36
|
typedef struct {
|
33
37
|
const state_t *state;
|
34
38
|
const node_t *root;
|
35
|
-
const
|
39
|
+
const postscript_style_t *style;
|
36
40
|
page_t page;
|
37
41
|
} ps_t;
|
38
42
|
|
@@ -45,7 +49,7 @@ static bool clamped(float value)
|
|
45
49
|
return (value >= 0.0) && (value <= 1.0);
|
46
50
|
}
|
47
51
|
|
48
|
-
static int psr_colour(json_t *json,
|
52
|
+
static int psr_colour(json_t *json, postscript_colour_t *colour)
|
49
53
|
{
|
50
54
|
json_t *json_colour;
|
51
55
|
|
@@ -127,7 +131,7 @@ static int psr_colour(json_t *json, colour_t *colour)
|
|
127
131
|
return 1;
|
128
132
|
}
|
129
133
|
|
130
|
-
static int psr_style_level(json_t *json,
|
134
|
+
static int psr_style_level(json_t *json, postscript_style_level_t *style_level)
|
131
135
|
{
|
132
136
|
if (! json_is_object(json))
|
133
137
|
return 1;
|
@@ -169,7 +173,7 @@ static int psr_style_level(json_t *json, style_level_t *style_level)
|
|
169
173
|
return 0;
|
170
174
|
}
|
171
175
|
|
172
|
-
static
|
176
|
+
static postscript_style_t* psr_style(json_t *json)
|
173
177
|
{
|
174
178
|
if (! json_is_array(json))
|
175
179
|
return NULL;
|
@@ -179,16 +183,16 @@ static style_t* psr_style(json_t *json)
|
|
179
183
|
if (n == 0)
|
180
184
|
return NULL;
|
181
185
|
|
182
|
-
|
186
|
+
postscript_style_level_t *array;
|
183
187
|
|
184
|
-
if ((array = calloc(n, sizeof(
|
188
|
+
if ((array = calloc(n, sizeof(postscript_style_level_t))) != NULL)
|
185
189
|
{
|
186
190
|
size_t i;
|
187
191
|
json_t *json_style;
|
188
192
|
|
189
193
|
json_array_foreach(json, i, json_style)
|
190
194
|
{
|
191
|
-
|
195
|
+
postscript_style_level_t *style_level = array + i;
|
192
196
|
|
193
197
|
if (psr_style_level(json_style, style_level) != 0)
|
194
198
|
{
|
@@ -197,9 +201,9 @@ static style_t* psr_style(json_t *json)
|
|
197
201
|
}
|
198
202
|
}
|
199
203
|
|
200
|
-
|
204
|
+
postscript_style_t *style;
|
201
205
|
|
202
|
-
if ((style = malloc(sizeof(
|
206
|
+
if ((style = malloc(sizeof(postscript_style_t))) != NULL)
|
203
207
|
{
|
204
208
|
style->n = n;
|
205
209
|
style->array = array;
|
@@ -212,14 +216,14 @@ static style_t* psr_style(json_t *json)
|
|
212
216
|
return NULL;
|
213
217
|
}
|
214
218
|
|
215
|
-
|
219
|
+
postscript_style_t* postscript_style_read(FILE *stream)
|
216
220
|
{
|
217
221
|
const size_t flags = JSON_REJECT_DUPLICATES;
|
218
222
|
json_t *json;
|
219
223
|
|
220
224
|
if ((json = json_loadf(stream, flags, NULL)) != NULL)
|
221
225
|
{
|
222
|
-
|
226
|
+
postscript_style_t *style = psr_style(json);
|
223
227
|
json_decref(json);
|
224
228
|
return style;
|
225
229
|
}
|
@@ -231,7 +235,7 @@ style_t* postscript_style_read(FILE *stream)
|
|
231
235
|
|
232
236
|
#pragma GCC diagnostic push
|
233
237
|
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
234
|
-
|
238
|
+
postscript_style_t* postscript_style_read(FILE *stream)
|
235
239
|
{
|
236
240
|
errno = ENOSYS;
|
237
241
|
return NULL;
|
@@ -240,7 +244,7 @@ style_t* postscript_style_read(FILE *stream)
|
|
240
244
|
|
241
245
|
#endif
|
242
246
|
|
243
|
-
void postscript_style_destroy(
|
247
|
+
void postscript_style_destroy(postscript_style_t *style)
|
244
248
|
{
|
245
249
|
if (style != NULL)
|
246
250
|
free(style->array);
|
@@ -473,7 +477,7 @@ int postscript_write(const state_t *state,
|
|
473
477
|
if (i >= ps.style->n)
|
474
478
|
break;
|
475
479
|
|
476
|
-
|
480
|
+
postscript_style_level_t style_level = ps.style->array[i];
|
477
481
|
node_level_t level = max_level - i;
|
478
482
|
|
479
483
|
switch (style_level.fill.colour.model)
|
@@ -1,14 +1,10 @@
|
|
1
1
|
/*
|
2
|
-
bindex.h
|
2
|
+
private/bindex.h
|
3
3
|
Copyright (c) J.J. Green 2020
|
4
4
|
*/
|
5
5
|
|
6
|
-
#ifndef
|
7
|
-
#define
|
8
|
-
|
9
|
-
#ifdef HAVE_CONFIG_H
|
10
|
-
#include "config.h"
|
11
|
-
#endif
|
6
|
+
#ifndef PRIVATE_BINDEX_H
|
7
|
+
#define PRIVATE_BINDEX_H
|
12
8
|
|
13
9
|
#include <stddef.h>
|
14
10
|
|
@@ -27,5 +23,4 @@ int bindex_set(bindex_t*, size_t, size_t);
|
|
27
23
|
size_t bindex_first_unset(const bindex_t*);
|
28
24
|
size_t bindex_next_unset(const bindex_t*, size_t);
|
29
25
|
|
30
|
-
|
31
26
|
#endif
|
@@ -1,23 +1,20 @@
|
|
1
1
|
/*
|
2
|
-
|
3
|
-
Copyright (c) J.J. Green
|
2
|
+
private/branch.h
|
3
|
+
Copyright (c) J.J. Green 2023
|
4
4
|
*/
|
5
5
|
|
6
|
-
#ifndef
|
7
|
-
#define
|
8
|
-
|
9
|
-
#ifdef __cplusplus
|
10
|
-
extern "C" {
|
11
|
-
#endif
|
12
|
-
|
13
|
-
#include <stdlib.h>
|
6
|
+
#ifndef PRIVATE_BRANCH_H
|
7
|
+
#define PRIVATE_BRANCH_H
|
14
8
|
|
15
9
|
typedef struct branch_t branch_t;
|
16
10
|
|
11
|
+
#include <private/rect.h>
|
12
|
+
#include <private/node.h>
|
13
|
+
#include <private/state.h>
|
14
|
+
|
17
15
|
#include <rtree/types.h>
|
18
|
-
|
19
|
-
#include <
|
20
|
-
#include <rtree/rect.h>
|
16
|
+
|
17
|
+
#include <stddef.h>
|
21
18
|
|
22
19
|
/*
|
23
20
|
The union is either a pointer to the child-node in the tree, or
|
@@ -98,8 +95,4 @@ inline rtree_coord_t* branch_get_rect_mutable(branch_t *branch)
|
|
98
95
|
return branch->rect;
|
99
96
|
}
|
100
97
|
|
101
|
-
#ifdef __cplusplus
|
102
|
-
}
|
103
|
-
#endif
|
104
|
-
|
105
98
|
#endif
|
@@ -1,22 +1,20 @@
|
|
1
1
|
/*
|
2
|
-
|
2
|
+
private/branches.h
|
3
3
|
Copyright (c) J.J. Green 2020
|
4
4
|
*/
|
5
5
|
|
6
|
-
#ifndef
|
7
|
-
#define
|
6
|
+
#ifndef PRIVATE_BRANCHES_H
|
7
|
+
#define PRIVATE_BRANCHES_H
|
8
8
|
|
9
|
-
#
|
10
|
-
|
11
|
-
|
9
|
+
#include <private/state.h>
|
10
|
+
#include <private/branch.h>
|
11
|
+
|
12
|
+
#include <rtree/error.h>
|
12
13
|
|
13
|
-
#include <
|
14
|
+
#include <stddef.h>
|
14
15
|
#include <errno.h>
|
15
16
|
#include <string.h>
|
16
17
|
|
17
|
-
#include <rtree/state.h>
|
18
|
-
#include <rtree/branch.h>
|
19
|
-
#include <rtree/error.h>
|
20
18
|
|
21
19
|
inline branch_t* branches_get(const state_t *state, void *buffer, size_t i)
|
22
20
|
{
|
@@ -31,8 +29,4 @@ inline void branches_set(const state_t *state, void *buffer, size_t i,
|
|
31
29
|
memcpy(branches_get(state, buffer, i), src, state_branch_size(state));
|
32
30
|
}
|
33
31
|
|
34
|
-
#ifdef __cplusplus
|
35
|
-
}
|
36
|
-
#endif
|
37
|
-
|
38
32
|
#endif
|
@@ -1,14 +1,14 @@
|
|
1
1
|
/*
|
2
|
-
bsrt.h
|
2
|
+
private/bsrt.h
|
3
3
|
Copyright (c) J.J. Green 2019
|
4
4
|
*/
|
5
5
|
|
6
|
-
#ifndef
|
7
|
-
#define
|
6
|
+
#ifndef PRIVATE_BSRT_H
|
7
|
+
#define PRIVATE_BSRT_H
|
8
8
|
|
9
|
-
#include <
|
9
|
+
#include <private/rtree.h>
|
10
10
|
|
11
|
-
#include <
|
11
|
+
#include <stdio.h>
|
12
12
|
|
13
13
|
int bsrt_rtree_write(const rtree_t*, FILE*);
|
14
14
|
rtree_t* bsrt_rtree_read(FILE*);
|