spiro_sys/
lib.rs

1/* automatically generated by rust-bindgen 0.55.1 */
2
3#![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}