This file is indexed.

/usr/include/gwyddion/libprocess/datafield.h is in libgwyddion20-dev 2.50-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
/*
 *  $Id: datafield.h 20678 2017-12-18 18:26:55Z yeti-dn $
 *  Copyright (C) 2003-2017 David Necas (Yeti), Petr Klapetek.
 *  E-mail: yeti@gwyddion.net, klapetek@gwyddion.net.
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor,
 *  Boston, MA 02110-1301, USA.
 */

#ifndef __GWY_DATAFIELD_H__
#define __GWY_DATAFIELD_H__

#include <libgwyddion/gwymath.h>
#include <libprocess/dataline.h>

G_BEGIN_DECLS

#define GWY_TYPE_DATA_FIELD            (gwy_data_field_get_type())
#define GWY_DATA_FIELD(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), GWY_TYPE_DATA_FIELD, GwyDataField))
#define GWY_DATA_FIELD_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass), GWY_TYPE_DATA_FIELD, GwyDataFieldClass))
#define GWY_IS_DATA_FIELD(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), GWY_TYPE_DATA_FIELD))
#define GWY_IS_DATA_FIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GWY_TYPE_DATA_FIELD))
#define GWY_DATA_FIELD_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), GWY_TYPE_DATA_FIELD, GwyDataFieldClass))

typedef struct _GwyDataField      GwyDataField;
typedef struct _GwyDataFieldClass GwyDataFieldClass;

struct _GwyDataField {
    GObject parent_instance;

    gint xres;
    gint yres;
    gdouble xreal;
    gdouble yreal;
    gdouble xoff;
    gdouble yoff;
    gdouble double1;
    gdouble double2;
    gdouble *data;

    GwySIUnit *si_unit_xy;
    GwySIUnit *si_unit_z;

    guint32 cached;
    gdouble cache[GWY_DATA_FIELD_CACHE_SIZE];

    gpointer reserved1;
    gpointer reserved2;
    gint int1;
};

struct _GwyDataFieldClass {
    GObjectClass parent_class;

    void (*data_changed)(GwyDataField *data_field);
    /*< private >*/
    void (*reserved1)(void);
};

void gwy_data_field_invalidate(GwyDataField *data_field);

#define gwy_data_field_invalidate(data_field) (data_field)->cached = 0

#define gwy_data_field_duplicate(data_field) \
        (GWY_DATA_FIELD(gwy_serializable_duplicate(G_OBJECT(data_field))))

GType             gwy_data_field_get_type  (void) G_GNUC_CONST;

/* Do not remove.  It used to be here and code may depend on getting the
 * GwyTriangulation data types defined via here. */
#include <libprocess/triangulation.h>

GwyDataField*     gwy_data_field_new                 (gint xres,
                                                      gint yres,
                                                      gdouble xreal,
                                                      gdouble yreal,
                                                      gboolean nullme);
GwyDataField*     gwy_data_field_new_alike           (GwyDataField *model,
                                                      gboolean nullme);
void              gwy_data_field_data_changed        (GwyDataField *data_field);
GwyDataField*  gwy_data_field_new_resampled(GwyDataField *data_field,
                                            gint xres, gint yres,
                                            GwyInterpolationType interpolation);
void              gwy_data_field_resample  (GwyDataField *data_field,
                                            gint xres,
                                            gint yres,
                                            GwyInterpolationType interpolation);
GwyDataField*  gwy_data_field_new_binned   (GwyDataField *data_field,
                                            gint binw,
                                            gint binh,
                                            gint xoff,
                                            gint yoff,
                                            gint trimlowest,
                                            gint trimhighest);
void              gwy_data_field_resize              (GwyDataField *data_field,
                                                      gint ulcol,
                                                      gint ulrow,
                                                      gint brcol,
                                                      gint brrow);
GwyDataField*     gwy_data_field_area_extract        (GwyDataField *data_field,
                                                      gint col,
                                                      gint row,
                                                      gint width,
                                                      gint height);
void              gwy_data_field_copy                (GwyDataField *src,
                                                      GwyDataField *dest,
                                                      gboolean nondata_too);
void              gwy_data_field_area_copy           (GwyDataField *src,
                                                      GwyDataField *dest,
                                                      gint col,
                                                      gint row,
                                                      gint width,
                                                      gint height,
                                                      gint destcol,
                                                      gint destrow);
gdouble*          gwy_data_field_get_data            (GwyDataField *data_field);
const gdouble*    gwy_data_field_get_data_const      (GwyDataField *data_field);
gint              gwy_data_field_get_xres            (GwyDataField *data_field);
gint              gwy_data_field_get_yres            (GwyDataField *data_field);
gdouble           gwy_data_field_get_xreal           (GwyDataField *data_field);
gdouble           gwy_data_field_get_yreal           (GwyDataField *data_field);
void              gwy_data_field_set_xreal           (GwyDataField *data_field,
                                                      gdouble xreal);
void              gwy_data_field_set_yreal           (GwyDataField *data_field,
                                                      gdouble yreal);
#define gwy_data_field_get_xmeasure(data_field) \
    (gwy_data_field_get_xreal(data_field)/gwy_data_field_get_xres(data_field))
#define gwy_data_field_get_ymeasure(data_field) \
    (gwy_data_field_get_yreal(data_field)/gwy_data_field_get_yres(data_field))
gdouble           gwy_data_field_get_xoffset         (GwyDataField *data_field);
gdouble           gwy_data_field_get_yoffset         (GwyDataField *data_field);
void              gwy_data_field_set_xoffset         (GwyDataField *data_field,
                                                      gdouble xoff);
void              gwy_data_field_set_yoffset         (GwyDataField *data_field,
                                                      gdouble yoff);
GwySIUnit*        gwy_data_field_get_si_unit_xy      (GwyDataField *data_field);
GwySIUnit*        gwy_data_field_get_si_unit_z       (GwyDataField *data_field);
void              gwy_data_field_set_si_unit_xy      (GwyDataField *data_field,
                                                      GwySIUnit *si_unit);
void              gwy_data_field_set_si_unit_z       (GwyDataField *data_field,
                                                      GwySIUnit *si_unit);
GwySIValueFormat* gwy_data_field_get_value_format_xy(GwyDataField *data_field,
                                                     GwySIUnitFormatStyle style,
                                                     GwySIValueFormat *format);
GwySIValueFormat* gwy_data_field_get_value_format_z (GwyDataField *data_field,
                                                     GwySIUnitFormatStyle style,
                                                     GwySIValueFormat *format);
void          gwy_data_field_copy_units             (GwyDataField *data_field,
                                                     GwyDataField *target);
void          gwy_data_field_copy_units_to_data_line(GwyDataField *data_field,
                                                     GwyDataLine *data_line);
void          gwy_data_line_copy_units_to_data_field(GwyDataLine *data_line,
                                                     GwyDataField *data_field);

gdouble           gwy_data_field_itor                (GwyDataField *data_field,
                                                      gdouble row);
gdouble           gwy_data_field_jtor                (GwyDataField *data_field,
                                                      gdouble col);
gdouble           gwy_data_field_rtoi                (GwyDataField *data_field,
                                                      gdouble realy);
gdouble           gwy_data_field_rtoj                (GwyDataField *data_field,
                                                      gdouble realx);


gdouble       gwy_data_field_get_val         (GwyDataField *data_field,
                                              gint col,
                                              gint row);
void          gwy_data_field_set_val         (GwyDataField *data_field,
                                              gint col,
                                              gint row,
                                              gdouble value);
gdouble       gwy_data_field_get_dval        (GwyDataField *data_field,
                                              gdouble x,
                                              gdouble y,
                                              GwyInterpolationType interpolation);
gdouble       gwy_data_field_get_dval_real   (GwyDataField *data_field,
                                              gdouble x,
                                              gdouble y,
                                              GwyInterpolationType interpolation);
void          gwy_data_field_rotate          (GwyDataField *data_field,
                                              gdouble angle,
                                              GwyInterpolationType interpolation);
GwyDataField* gwy_data_field_new_rotated     (GwyDataField *dfield,
                                              GwyDataField *exterior_mask,
                                              gdouble angle,
                                              GwyInterpolationType interp,
                                              GwyRotateResizeType resize);
GwyDataField* gwy_data_field_new_rotated_90  (GwyDataField *data_field,
                                              gboolean clockwise);
void          gwy_data_field_invert          (GwyDataField *data_field,
                                              gboolean x,
                                              gboolean y,
                                              gboolean z);
void          gwy_data_field_flip_xy         (GwyDataField *src,
                                              GwyDataField *dest,
                                              gboolean minor);
void          gwy_data_field_area_flip_xy    (GwyDataField *src,
                                              gint col,
                                              gint row,
                                              gint width,
                                              gint height,
                                              GwyDataField *dest,
                                              gboolean minor);
void          gwy_data_field_fill            (GwyDataField *data_field,
                                              gdouble value);
void          gwy_data_field_clear           (GwyDataField *data_field);
void          gwy_data_field_multiply        (GwyDataField *data_field,
                                              gdouble value);
void          gwy_data_field_add             (GwyDataField *data_field,
                                              gdouble value);
void          gwy_data_field_area_fill       (GwyDataField *data_field,
                                              gint col,
                                              gint row,
                                              gint width,
                                              gint height,
                                              gdouble value);
void          gwy_data_field_area_fill_mask  (GwyDataField *data_field,
                                              GwyDataField *mask,
                                              GwyMaskingType mode,
                                              gint col,
                                              gint row,
                                              gint width,
                                              gint height,
                                              gdouble value);
void          gwy_data_field_area_clear      (GwyDataField *data_field,
                                              gint col,
                                              gint row,
                                              gint width,
                                              gint height);
void          gwy_data_field_area_multiply   (GwyDataField *data_field,
                                              gint col,
                                              gint row,
                                              gint width,
                                              gint height,
                                              gdouble value);
void          gwy_data_field_area_add        (GwyDataField *data_field,
                                              gint col,
                                              gint row,
                                              gint width,
                                              gint height,
                                              gdouble value);
GwyDataLine*  gwy_data_field_get_profile     (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint scol,
                                              gint srow,
                                              gint ecol,
                                              gint erow,
                                              gint res,
                                              gint thickness,
                                              GwyInterpolationType interpolation);
GwyXY*        gwy_data_field_get_profile_mask(GwyDataField *data_field,
                                              gint *ndata,
                                              GwyDataField *mask,
                                              GwyMaskingType masking,
                                              gdouble xfrom,
                                              gdouble yfrom,
                                              gdouble xto,
                                              gdouble yto,
                                              gint res,
                                              gint thickness,
                                              GwyInterpolationType interpolation);
void          gwy_data_field_get_row         (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint row);
void          gwy_data_field_get_column      (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint col);
void          gwy_data_field_set_row         (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint row);
void          gwy_data_field_set_column      (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint col);
void          gwy_data_field_get_row_part    (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint row,
                                              gint from,
                                              gint to);
void          gwy_data_field_get_column_part (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint col,
                                              gint from,
                                              gint to);
void          gwy_data_field_set_row_part    (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint row,
                                              gint from,
                                              gint to);
void          gwy_data_field_set_column_part (GwyDataField *data_field,
                                              GwyDataLine* data_line,
                                              gint col,
                                              gint from,
                                              gint to);
gdouble       gwy_data_field_get_xder        (GwyDataField *data_field,
                                              gint col,
                                              gint row);
gdouble       gwy_data_field_get_yder        (GwyDataField *data_field,
                                              gint col,
                                              gint row);
gdouble       gwy_data_field_get_angder      (GwyDataField *data_field,
                                              gint col,
                                              gint row,
                                              gdouble theta);
void          gwy_data_field_average_xyz     (GwyDataField *data_field,
                                              GwyDataField *density_map,
                                              const GwyXYZ *points,
                                              gint npoints);

G_END_DECLS

#endif /* __GWY_DATAFIELD_H__ */

/* vim: set cin et ts=4 sw=4 cino=>1s,e0,n0,f0,{0,}0,^0,\:1s,=0,g1s,h0,t0,+1s,c3,(0,u0 : */