This file is indexed.

/usr/include/hkl/hkl-geometry.h is in libhkl-dev 4.0.3-4.

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
/* This file is part of the hkl library.
 *
 * The hkl library 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 3 of the License, or
 * (at your option) any later version.
 *
 * The hkl library 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 the hkl library.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Copyright (C) 2003-2010 Synchrotron SOLEIL
 *                         L'Orme des Merisiers Saint-Aubin
 *                         BP 48 91192 GIF-sur-YVETTE CEDEX
 *
 * Authors: Picca Frédéric-Emmanuel <picca@synchrotron-soleil.fr>
 */
#ifndef __HKL_GEOMETRY_H__
#define __HKL_GEOMETRY_H__

#include <hkl/hkl-source.h>
#include <hkl/hkl-list.h>
#include <hkl/hkl-quaternion.h>
#include <hkl/hkl-axis.h>

HKL_BEGIN_DECLS

typedef struct _HklHolder HklHolder;
typedef struct _HklGeometryConfig HklGeometryConfig;
typedef struct _HklGeometry HklGeometry;
typedef struct _HklGeometryList HklGeometryList;
typedef struct _HklGeometryListItem HklGeometryListItem;
typedef void (* HklGeometryListMultiplyFunction) (HklGeometryList *self,
						  size_t idx);
enum _HklGeometryType
{
	HKL_GEOMETRY_TYPE_TWOC_VERTICAL,
	HKL_GEOMETRY_TYPE_EULERIAN4C_VERTICAL,
	HKL_GEOMETRY_TYPE_KAPPA4C_VERTICAL,
	HKL_GEOMETRY_TYPE_EULERIAN6C,
	HKL_GEOMETRY_TYPE_KAPPA6C,
	HKL_GEOMETRY_TYPE_ZAXIS
};

typedef enum _HklGeometryType HklGeometryType;


struct _HklHolder {
	HklGeometry *geometry;
	HKL_LIST(size_t, idx);
	HklQuaternion q;
};

struct _HklGeometryConfig {
	const char *name;
	HklGeometryType type;
};

struct _HklGeometry
{
	const HklGeometryConfig *config;
	HklSource source;
	HKL_LIST(HklAxis, axes);
	HKL_LIST(HklHolder, holders);
};

struct _HklGeometryList
{
	HKL_LIST(HklGeometryListItem *, items);
	HklGeometryListMultiplyFunction multiply;
};

struct _HklGeometryListItem
{
	HklGeometry *geometry;
};

/*************/
/* HklHolder */
/*************/

extern HklAxis *hkl_holder_add_rotation_axis(HklHolder *self,
					     char const *name, double x, double y, double z);

/***************/
/* HklGeometry */
/***************/

extern HklGeometry *hkl_geometry_new(void);
extern HklGeometry *hkl_geometry_new_copy(HklGeometry const *self);

extern void hkl_geometry_free(HklGeometry *self);

extern void hkl_geometry_init_geometry(HklGeometry *self,
				       HklGeometry const *src);

extern HklHolder *hkl_geometry_add_holder(HklGeometry *self);

extern void hkl_geometry_update(HklGeometry *self);

extern HklAxis *hkl_geometry_get_axis_by_name(HklGeometry *self,
					      char const *name);

extern void hkl_geometry_randomize(HklGeometry *self);

extern int hkl_geometry_set_values_v(HklGeometry *self,
				     size_t len, ...);

extern double hkl_geometry_distance(HklGeometry *self, HklGeometry *geom);

extern double hkl_geometry_distance_orthodromic(HklGeometry *self, HklGeometry *geom);

extern int hkl_geometry_closest_from_geometry_with_range(HklGeometry *self, HklGeometry *ref);

extern int hkl_geometry_is_valid(HklGeometry const *self);

extern void hkl_geometry_fprintf(FILE *file, HklGeometry const *self);

/*******************/
/* HklGeometryList */
/*******************/

extern HklGeometryList *hkl_geometry_list_new(void);

extern void hkl_geometry_list_free(HklGeometryList *self);

extern void hkl_geometry_list_add(HklGeometryList *self, HklGeometry *geometry);

extern void hkl_geometry_list_reset(HklGeometryList *self);

extern void hkl_geometry_list_sort(HklGeometryList *self, HklGeometry *ref);

extern void hkl_geometry_list_fprintf(FILE *f, HklGeometryList const *self);

extern void hkl_geometry_list_multiply(HklGeometryList *self);

extern void hkl_geometry_list_multiply_from_range(HklGeometryList *self);

extern void hkl_geometry_list_remove_invalid(HklGeometryList *self);

extern int hkl_geometry_list_len(HklGeometryList *self);

extern int hkl_geometry_list_is_empty(HklGeometryList *self);

/***********************/
/* HklGeometryListItem */
/***********************/

extern HklGeometryListItem *hkl_geometry_list_item_new(HklGeometry *geometry);

extern void hkl_geometry_list_item_free(HklGeometryListItem *self);

HKL_END_DECLS

#endif /* __HKL_GEOMETRY_H__ */