1#![allow(non_camel_case_types, non_snake_case)]
4
5pub const SPIRO_CORNER: u8 = 118u8;
6pub const SPIRO_G4: u8 = 111u8;
7pub const SPIRO_G2: u8 = 99u8;
8pub const SPIRO_LEFT: u8 = 91u8;
9pub const SPIRO_RIGHT: u8 = 93u8;
10pub const SPIRO_END: u8 = 122u8;
11pub const SPIRO_OPEN_CONTOUR: u8 = 123u8;
12pub const SPIRO_END_OPEN_CONTOUR: u8 = 125u8;
13pub const SPIRO_ANCHOR: u8 = 97u8;
14pub const SPIRO_HANDLE: u8 = 104u8;
15pub const SPIRO_INCLUDE_LAST_KNOT: u32 = 256;
16pub const SPIRO_RETRO_VER1: u32 = 1024;
17pub const SPIRO_REVERSE_SRC: u32 = 2048;
18pub const SPIRO_ARC_CUB_QUAD_CLR: u32 = 32767;
19pub const SPIRO_ARC_CUB_QUAD_MASK: u32 = 28672;
20pub const SPIRO_CUBIC_TO_BEZIER: u32 = 0;
21pub const SPIRO_CUBIC_MIN_MAYBE: u32 = 4096;
22pub const SPIRO_ARC_MAYBE: u32 = 8192;
23pub const SPIRO_ARC_MIN_MAYBE: u32 = 12288;
24pub const SPIRO_QUAD0_TO_BEZIER: u32 = 16384;
25pub type bezctx = _bezctx;
26extern "C" {
27 pub fn bezctx_moveto(bc: *mut bezctx, x: f64, y: f64, is_open: ::std::os::raw::c_int);
28}
29extern "C" {
30 pub fn bezctx_lineto(bc: *mut bezctx, x: f64, y: f64);
31}
32extern "C" {
33 pub fn bezctx_quadto(bc: *mut bezctx, x1: f64, y1: f64, x2: f64, y2: f64);
34}
35extern "C" {
36 pub fn bezctx_curveto(bc: *mut bezctx, x1: f64, y1: f64, x2: f64, y2: f64, x3: f64, y3: f64);
37}
38extern "C" {
39 pub fn bezctx_mark_knot(bc: *mut bezctx, knot_idx: ::std::os::raw::c_int);
40}
41#[repr(C)]
42#[derive(Debug, Default, Copy, Clone, PartialEq)]
43pub struct _bezctx {
44 pub moveto: ::std::option::Option<
45 unsafe extern "C" fn(bc: *mut bezctx, x: f64, y: f64, is_open: ::std::os::raw::c_int),
46 >,
47 pub lineto: ::std::option::Option<unsafe extern "C" fn(bc: *mut bezctx, x: f64, y: f64)>,
48 pub quadto: ::std::option::Option<
49 unsafe extern "C" fn(bc: *mut bezctx, x1: f64, y1: f64, x2: f64, y2: f64),
50 >,
51 pub curveto: ::std::option::Option<
52 unsafe extern "C" fn(bc: *mut bezctx, x1: f64, y1: f64, x2: f64, y2: f64, x3: f64, y3: f64),
53 >,
54 pub mark_knot: ::std::option::Option<
55 unsafe extern "C" fn(bc: *mut bezctx, knot_idx: ::std::os::raw::c_int),
56 >,
57}
58#[test]
59fn bindgen_test_layout__bezctx() {
60 assert_eq!(
61 ::std::mem::size_of::<_bezctx>(),
62 40usize,
63 concat!("Size of: ", stringify!(_bezctx))
64 );
65 assert_eq!(
66 ::std::mem::align_of::<_bezctx>(),
67 8usize,
68 concat!("Alignment of ", stringify!(_bezctx))
69 );
70 assert_eq!(
71 unsafe { &(*(::std::ptr::null::<_bezctx>())).moveto as *const _ as usize },
72 0usize,
73 concat!(
74 "Offset of field: ",
75 stringify!(_bezctx),
76 "::",
77 stringify!(moveto)
78 )
79 );
80 assert_eq!(
81 unsafe { &(*(::std::ptr::null::<_bezctx>())).lineto as *const _ as usize },
82 8usize,
83 concat!(
84 "Offset of field: ",
85 stringify!(_bezctx),
86 "::",
87 stringify!(lineto)
88 )
89 );
90 assert_eq!(
91 unsafe { &(*(::std::ptr::null::<_bezctx>())).quadto as *const _ as usize },
92 16usize,
93 concat!(
94 "Offset of field: ",
95 stringify!(_bezctx),
96 "::",
97 stringify!(quadto)
98 )
99 );
100 assert_eq!(
101 unsafe { &(*(::std::ptr::null::<_bezctx>())).curveto as *const _ as usize },
102 24usize,
103 concat!(
104 "Offset of field: ",
105 stringify!(_bezctx),
106 "::",
107 stringify!(curveto)
108 )
109 );
110 assert_eq!(
111 unsafe { &(*(::std::ptr::null::<_bezctx>())).mark_knot as *const _ as usize },
112 32usize,
113 concat!(
114 "Offset of field: ",
115 stringify!(_bezctx),
116 "::",
117 stringify!(mark_knot)
118 )
119 );
120}
121#[repr(C)]
122#[derive(Debug, Default, Copy, Clone, PartialEq)]
123pub struct spiro_cp {
124 pub x: f64,
125 pub y: f64,
126 pub ty: ::std::os::raw::c_char,
127}
128#[test]
129fn bindgen_test_layout_spiro_cp() {
130 assert_eq!(
131 ::std::mem::size_of::<spiro_cp>(),
132 24usize,
133 concat!("Size of: ", stringify!(spiro_cp))
134 );
135 assert_eq!(
136 ::std::mem::align_of::<spiro_cp>(),
137 8usize,
138 concat!("Alignment of ", stringify!(spiro_cp))
139 );
140 assert_eq!(
141 unsafe { &(*(::std::ptr::null::<spiro_cp>())).x as *const _ as usize },
142 0usize,
143 concat!(
144 "Offset of field: ",
145 stringify!(spiro_cp),
146 "::",
147 stringify!(x)
148 )
149 );
150 assert_eq!(
151 unsafe { &(*(::std::ptr::null::<spiro_cp>())).y as *const _ as usize },
152 8usize,
153 concat!(
154 "Offset of field: ",
155 stringify!(spiro_cp),
156 "::",
157 stringify!(y)
158 )
159 );
160 assert_eq!(
161 unsafe { &(*(::std::ptr::null::<spiro_cp>())).ty as *const _ as usize },
162 16usize,
163 concat!(
164 "Offset of field: ",
165 stringify!(spiro_cp),
166 "::",
167 stringify!(ty)
168 )
169 );
170}
171#[repr(C)]
172#[derive(Debug, Default, Copy, Clone, PartialEq)]
173pub struct spiro_seg_s {
174 pub x: f64,
175 pub y: f64,
176 pub ty: ::std::os::raw::c_char,
177 pub bend_th: f64,
178 pub ks: [f64; 4usize],
179 pub seg_ch: f64,
180 pub seg_th: f64,
181 pub l: f64,
182}
183#[test]
184fn bindgen_test_layout_spiro_seg_s() {
185 assert_eq!(
186 ::std::mem::size_of::<spiro_seg_s>(),
187 88usize,
188 concat!("Size of: ", stringify!(spiro_seg_s))
189 );
190 assert_eq!(
191 ::std::mem::align_of::<spiro_seg_s>(),
192 8usize,
193 concat!("Alignment of ", stringify!(spiro_seg_s))
194 );
195 assert_eq!(
196 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).x as *const _ as usize },
197 0usize,
198 concat!(
199 "Offset of field: ",
200 stringify!(spiro_seg_s),
201 "::",
202 stringify!(x)
203 )
204 );
205 assert_eq!(
206 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).y as *const _ as usize },
207 8usize,
208 concat!(
209 "Offset of field: ",
210 stringify!(spiro_seg_s),
211 "::",
212 stringify!(y)
213 )
214 );
215 assert_eq!(
216 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).ty as *const _ as usize },
217 16usize,
218 concat!(
219 "Offset of field: ",
220 stringify!(spiro_seg_s),
221 "::",
222 stringify!(ty)
223 )
224 );
225 assert_eq!(
226 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).bend_th as *const _ as usize },
227 24usize,
228 concat!(
229 "Offset of field: ",
230 stringify!(spiro_seg_s),
231 "::",
232 stringify!(bend_th)
233 )
234 );
235 assert_eq!(
236 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).ks as *const _ as usize },
237 32usize,
238 concat!(
239 "Offset of field: ",
240 stringify!(spiro_seg_s),
241 "::",
242 stringify!(ks)
243 )
244 );
245 assert_eq!(
246 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).seg_ch as *const _ as usize },
247 64usize,
248 concat!(
249 "Offset of field: ",
250 stringify!(spiro_seg_s),
251 "::",
252 stringify!(seg_ch)
253 )
254 );
255 assert_eq!(
256 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).seg_th as *const _ as usize },
257 72usize,
258 concat!(
259 "Offset of field: ",
260 stringify!(spiro_seg_s),
261 "::",
262 stringify!(seg_th)
263 )
264 );
265 assert_eq!(
266 unsafe { &(*(::std::ptr::null::<spiro_seg_s>())).l as *const _ as usize },
267 80usize,
268 concat!(
269 "Offset of field: ",
270 stringify!(spiro_seg_s),
271 "::",
272 stringify!(l)
273 )
274 );
275}
276pub type spiro_seg = spiro_seg_s;
277extern "C" {
278 pub fn run_spiro(src: *const spiro_cp, n: ::std::os::raw::c_int) -> *mut spiro_seg;
279}
280extern "C" {
281 pub fn free_spiro(s: *mut spiro_seg);
282}
283extern "C" {
284 pub fn spiro_to_bpath(s: *const spiro_seg, n: ::std::os::raw::c_int, bc: *mut bezctx);
285}
286extern "C" {
287 pub fn get_knot_th(s: *const spiro_seg, i: ::std::os::raw::c_int) -> f64;
288}
289extern "C" {
290 pub fn run_spiro0(
291 src: *const spiro_cp,
292 dm: *mut f64,
293 ncq: ::std::os::raw::c_int,
294 n: ::std::os::raw::c_int,
295 ) -> *mut spiro_seg;
296}
297extern "C" {
298 pub fn spiro_to_bpath0(
299 src: *const spiro_cp,
300 s: *const spiro_seg,
301 dm: *mut f64,
302 ncq: ::std::os::raw::c_int,
303 n: ::std::os::raw::c_int,
304 bc: *mut bezctx,
305 );
306}
307extern "C" {
308 pub fn spiroreverse(src: *mut spiro_cp, n: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
309}
310extern "C" {
311 pub fn LibSpiroVersion() -> *const ::std::os::raw::c_char;
312}
313extern "C" {
314 pub fn TaggedSpiroCPsToBezier(spiros: *mut spiro_cp, bc: *mut bezctx);
315}
316extern "C" {
317 pub fn SpiroCPsToBezier(
318 spiros: *mut spiro_cp,
319 n: ::std::os::raw::c_int,
320 isclosed: ::std::os::raw::c_int,
321 bc: *mut bezctx,
322 );
323}
324extern "C" {
325 pub fn TaggedSpiroCPsToBezier0(spiros: *mut spiro_cp, bc: *mut bezctx)
326 -> ::std::os::raw::c_int;
327}
328extern "C" {
329 pub fn SpiroCPsToBezier0(
330 spiros: *mut spiro_cp,
331 n: ::std::os::raw::c_int,
332 isclosed: ::std::os::raw::c_int,
333 bc: *mut bezctx,
334 ) -> ::std::os::raw::c_int;
335}
336extern "C" {
337 pub fn TaggedSpiroCPsToBezier1(
338 spiros: *mut spiro_cp,
339 bc: *mut bezctx,
340 done: *mut ::std::os::raw::c_int,
341 );
342}
343extern "C" {
344 pub fn SpiroCPsToBezier1(
345 spiros: *mut spiro_cp,
346 n: ::std::os::raw::c_int,
347 isclosed: ::std::os::raw::c_int,
348 bc: *mut bezctx,
349 done: *mut ::std::os::raw::c_int,
350 );
351}
352extern "C" {
353 pub fn TaggedSpiroCPsToBezier2(
354 spiros: *mut spiro_cp,
355 ncq: ::std::os::raw::c_int,
356 bc: *mut bezctx,
357 ) -> ::std::os::raw::c_int;
358}
359extern "C" {
360 pub fn SpiroCPsToBezier2(
361 spiros: *mut spiro_cp,
362 n: ::std::os::raw::c_int,
363 ncq: ::std::os::raw::c_int,
364 isclosed: ::std::os::raw::c_int,
365 bc: *mut bezctx,
366 ) -> ::std::os::raw::c_int;
367}