1#![no_std]
4#![allow(non_camel_case_types)]
5
6pub const SEP_TBYTE: ::core::ffi::c_int = 11;
7pub const SEP_TINT: ::core::ffi::c_int = 31;
8pub const SEP_TFLOAT: ::core::ffi::c_int = 42;
9pub const SEP_TDOUBLE: ::core::ffi::c_int = 82;
10pub const SEP_OBJ_MERGED: ::core::ffi::c_short = 1;
11pub const SEP_OBJ_TRUNC: ::core::ffi::c_short = 2;
12pub const SEP_OBJ_DOVERFLOW: ::core::ffi::c_short = 4;
13pub const SEP_OBJ_SINGU: ::core::ffi::c_short = 8;
14pub const SEP_APER_TRUNC: ::core::ffi::c_short = 16;
15pub const SEP_APER_HASMASKED: ::core::ffi::c_short = 32;
16pub const SEP_APER_ALLMASKED: ::core::ffi::c_short = 64;
17pub const SEP_APER_NONPOSITIVE: ::core::ffi::c_short = 128;
18pub const SEP_NOISE_NONE: ::core::ffi::c_short = 0;
19pub const SEP_NOISE_STDDEV: ::core::ffi::c_short = 1;
20pub const SEP_NOISE_VAR: ::core::ffi::c_short = 2;
21pub const SEP_MASK_IGNORE: ::core::ffi::c_short = 4;
22pub const SEP_THRESH_REL: ::core::ffi::c_int = 0;
23pub const SEP_THRESH_ABS: ::core::ffi::c_int = 1;
24pub const SEP_FILTER_CONV: ::core::ffi::c_int = 0;
25pub const SEP_FILTER_MATCHED: ::core::ffi::c_int = 1;
26#[repr(C)]
27#[derive(Debug, Copy, Clone)]
28pub struct sep_image {
29 pub data: *const ::core::ffi::c_void,
30 pub noise: *const ::core::ffi::c_void,
31 pub mask: *const ::core::ffi::c_void,
32 pub segmap: *const ::core::ffi::c_void,
33 pub dtype: ::core::ffi::c_int,
34 pub ndtype: ::core::ffi::c_int,
35 pub mdtype: ::core::ffi::c_int,
36 pub sdtype: ::core::ffi::c_int,
37 pub segids: *mut i64,
38 pub idcounts: *mut i64,
39 pub numids: i64,
40 pub w: i64,
41 pub h: i64,
42 pub noiseval: f64,
43 pub noise_type: ::core::ffi::c_short,
44 pub gain: f64,
45 pub maskthresh: f64,
46}
47impl Default for sep_image {
48 fn default() -> Self {
49 let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
50 unsafe {
51 ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
52 s.assume_init()
53 }
54 }
55}
56#[repr(C)]
57#[derive(Debug, Copy, Clone)]
58pub struct sep_bkg {
59 pub w: i64,
60 pub h: i64,
61 pub bw: i64,
62 pub bh: i64,
63 pub nx: i64,
64 pub ny: i64,
65 pub n: i64,
66 pub global: f32,
67 pub globalrms: f32,
68 pub back: *mut f32,
69 pub dback: *mut f32,
70 pub sigma: *mut f32,
71 pub dsigma: *mut f32,
72}
73impl Default for sep_bkg {
74 fn default() -> Self {
75 let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
76 unsafe {
77 ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
78 s.assume_init()
79 }
80 }
81}
82#[repr(C)]
83#[derive(Debug, Copy, Clone)]
84pub struct sep_catalog {
85 pub nobj: ::core::ffi::c_int,
86 pub thresh: *mut f32,
87 pub npix: *mut i64,
88 pub tnpix: *mut i64,
89 pub xmin: *mut i64,
90 pub xmax: *mut i64,
91 pub ymin: *mut i64,
92 pub ymax: *mut i64,
93 pub x: *mut f64,
94 pub y: *mut f64,
95 pub x2: *mut f64,
96 pub y2: *mut f64,
97 pub xy: *mut f64,
98 pub errx2: *mut f64,
99 pub erry2: *mut f64,
100 pub errxy: *mut f64,
101 pub a: *mut f32,
102 pub b: *mut f32,
103 pub theta: *mut f32,
104 pub cxx: *mut f32,
105 pub cyy: *mut f32,
106 pub cxy: *mut f32,
107 pub cflux: *mut f32,
108 pub flux: *mut f32,
109 pub cpeak: *mut f32,
110 pub peak: *mut f32,
111 pub xcpeak: *mut i64,
112 pub ycpeak: *mut i64,
113 pub xpeak: *mut i64,
114 pub ypeak: *mut i64,
115 pub flag: *mut ::core::ffi::c_short,
116 pub pix: *mut *mut i64,
117 pub objectspix: *mut i64,
118}
119impl Default for sep_catalog {
120 fn default() -> Self {
121 let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
122 unsafe {
123 ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
124 s.assume_init()
125 }
126 }
127}
128unsafe extern "C" {
129 pub fn sep_background(
130 image: *const sep_image,
131 bw: i64,
132 bh: i64,
133 fw: i64,
134 fh: i64,
135 fthresh: f64,
136 bkg: *mut *mut sep_bkg,
137 ) -> ::core::ffi::c_int;
138 pub fn sep_bkg_global(bkg: *const sep_bkg) -> f32;
139 pub fn sep_bkg_globalrms(bkg: *const sep_bkg) -> f32;
140 pub fn sep_bkg_pix(bkg: *const sep_bkg, x: i64, y: i64) -> f32;
141 pub fn sep_bkg_line(
142 bkg: *const sep_bkg,
143 y: i64,
144 line: *mut ::core::ffi::c_void,
145 dtype: ::core::ffi::c_int,
146 ) -> ::core::ffi::c_int;
147 pub fn sep_bkg_subline(
148 bkg: *const sep_bkg,
149 y: i64,
150 line: *mut ::core::ffi::c_void,
151 dtype: ::core::ffi::c_int,
152 ) -> ::core::ffi::c_int;
153 pub fn sep_bkg_rmsline(
154 bkg: *const sep_bkg,
155 y: i64,
156 line: *mut ::core::ffi::c_void,
157 dtype: ::core::ffi::c_int,
158 ) -> ::core::ffi::c_int;
159 pub fn sep_bkg_array(
160 bkg: *const sep_bkg,
161 arr: *mut ::core::ffi::c_void,
162 dtype: ::core::ffi::c_int,
163 ) -> ::core::ffi::c_int;
164 pub fn sep_bkg_subarray(
165 bkg: *const sep_bkg,
166 arr: *mut ::core::ffi::c_void,
167 dtype: ::core::ffi::c_int,
168 ) -> ::core::ffi::c_int;
169 pub fn sep_bkg_rmsarray(
170 bkg: *const sep_bkg,
171 arr: *mut ::core::ffi::c_void,
172 dtype: ::core::ffi::c_int,
173 ) -> ::core::ffi::c_int;
174 pub fn sep_bkg_free(bkg: *mut sep_bkg);
175 pub fn sep_extract(
176 image: *const sep_image,
177 thresh: f32,
178 thresh_type: ::core::ffi::c_int,
179 minarea: ::core::ffi::c_int,
180 conv: *const f32,
181 convw: i64,
182 convh: i64,
183 filter_type: ::core::ffi::c_int,
184 deblend_nthresh: ::core::ffi::c_int,
185 deblend_cont: f64,
186 clean_flag: ::core::ffi::c_int,
187 clean_param: f64,
188 catalog: *mut *mut sep_catalog,
189 ) -> ::core::ffi::c_int;
190 pub fn sep_set_extract_pixstack(val: usize);
191 pub fn sep_get_extract_pixstack() -> usize;
192 pub fn sep_set_sub_object_limit(val: ::core::ffi::c_int);
193 pub fn sep_get_sub_object_limit() -> ::core::ffi::c_int;
194 pub fn sep_catalog_free(catalog: *mut sep_catalog);
195 pub fn sep_sum_circle(
196 image: *const sep_image,
197 x: f64,
198 y: f64,
199 r: f64,
200 id: ::core::ffi::c_int,
201 subpix: ::core::ffi::c_int,
202 inflags: ::core::ffi::c_short,
203 sum: *mut f64,
204 sumerr: *mut f64,
205 area: *mut f64,
206 flag: *mut ::core::ffi::c_short,
207 ) -> ::core::ffi::c_int;
208 pub fn sep_sum_circann(
209 image: *const sep_image,
210 x: f64,
211 y: f64,
212 rin: f64,
213 rout: f64,
214 id: ::core::ffi::c_int,
215 subpix: ::core::ffi::c_int,
216 inflags: ::core::ffi::c_short,
217 sum: *mut f64,
218 sumerr: *mut f64,
219 area: *mut f64,
220 flag: *mut ::core::ffi::c_short,
221 ) -> ::core::ffi::c_int;
222 pub fn sep_sum_ellipse(
223 image: *const sep_image,
224 x: f64,
225 y: f64,
226 a: f64,
227 b: f64,
228 theta: f64,
229 r: f64,
230 id: ::core::ffi::c_int,
231 subpix: ::core::ffi::c_int,
232 inflags: ::core::ffi::c_short,
233 sum: *mut f64,
234 sumerr: *mut f64,
235 area: *mut f64,
236 flag: *mut ::core::ffi::c_short,
237 ) -> ::core::ffi::c_int;
238 pub fn sep_sum_ellipann(
239 image: *const sep_image,
240 x: f64,
241 y: f64,
242 a: f64,
243 b: f64,
244 theta: f64,
245 rin: f64,
246 rout: f64,
247 id: ::core::ffi::c_int,
248 subpix: ::core::ffi::c_int,
249 inflags: ::core::ffi::c_short,
250 sum: *mut f64,
251 sumerr: *mut f64,
252 area: *mut f64,
253 flag: *mut ::core::ffi::c_short,
254 ) -> ::core::ffi::c_int;
255 pub fn sep_sum_circann_multi(
256 im: *const sep_image,
257 x: f64,
258 y: f64,
259 rmax: f64,
260 n: i64,
261 id: ::core::ffi::c_int,
262 subpix: ::core::ffi::c_int,
263 inflag: ::core::ffi::c_short,
264 sum: *mut f64,
265 sumvar: *mut f64,
266 area: *mut f64,
267 maskarea: *mut f64,
268 flag: *mut ::core::ffi::c_short,
269 ) -> ::core::ffi::c_int;
270 pub fn sep_flux_radius(
271 im: *const sep_image,
272 x: f64,
273 y: f64,
274 rmax: f64,
275 id: ::core::ffi::c_int,
276 subpix: ::core::ffi::c_int,
277 inflag: ::core::ffi::c_short,
278 fluxtot: *const f64,
279 fluxfrac: *const f64,
280 n: i64,
281 r: *mut f64,
282 flag: *mut ::core::ffi::c_short,
283 ) -> ::core::ffi::c_int;
284 pub fn sep_kron_radius(
285 im: *const sep_image,
286 x: f64,
287 y: f64,
288 cxx: f64,
289 cyy: f64,
290 cxy: f64,
291 r: f64,
292 id: ::core::ffi::c_int,
293 kronrad: *mut f64,
294 flag: *mut ::core::ffi::c_short,
295 ) -> ::core::ffi::c_int;
296 pub fn sep_windowed(
297 im: *const sep_image,
298 x: f64,
299 y: f64,
300 sig: f64,
301 subpix: ::core::ffi::c_int,
302 inflag: ::core::ffi::c_short,
303 xout: *mut f64,
304 yout: *mut f64,
305 niter: *mut ::core::ffi::c_int,
306 flag: *mut ::core::ffi::c_short,
307 ) -> ::core::ffi::c_int;
308 pub fn sep_set_ellipse(
309 arr: *mut ::core::ffi::c_uchar,
310 w: i64,
311 h: i64,
312 x: f64,
313 y: f64,
314 cxx: f64,
315 cyy: f64,
316 cxy: f64,
317 r: f64,
318 val: ::core::ffi::c_uchar,
319 );
320 pub fn sep_ellipse_axes(
321 cxx: f64,
322 cyy: f64,
323 cxy: f64,
324 a: *mut f64,
325 b: *mut f64,
326 theta: *mut f64,
327 ) -> ::core::ffi::c_int;
328 pub fn sep_ellipse_coeffs(
329 a: f64,
330 b: f64,
331 theta: f64,
332 cxx: *mut f64,
333 cyy: *mut f64,
334 cxy: *mut f64,
335 );
336 pub static sep_version_string: *const ::core::ffi::c_char;
337 pub fn sep_get_errmsg(status: ::core::ffi::c_int, errtext: *mut ::core::ffi::c_char);
338 pub fn sep_get_errdetail(errtext: *mut ::core::ffi::c_char);
339}