Top | ![]() |
![]() |
![]() |
![]() |
void | (*HklGeometryListMultiplyFunction) () |
return | g_quark_from_static_string () |
HklParameter * | hkl_holder_add_rotation_axis () |
HklGeometry * | hkl_geometry_new () |
int | hkl_geometry_init_geometry () |
HklHolder * | hkl_geometry_add_holder () |
void | hkl_geometry_update () |
int | hkl_geometry_get_axis_idx_by_name () |
HklParameter * | hkl_geometry_get_axis_by_name () |
double | hkl_geometry_distance () |
double | hkl_geometry_distance_orthodromic () |
int | hkl_geometry_closest_from_geometry_with_range () |
int | hkl_geometry_is_valid () |
HklGeometryList * | hkl_geometry_list_new () |
HklGeometryList * | hkl_geometry_list_new_copy () |
void | hkl_geometry_list_add () |
void | hkl_geometry_list_reset () |
void | hkl_geometry_list_sort () |
void | hkl_geometry_list_fprintf () |
void | hkl_geometry_list_multiply () |
void | hkl_geometry_list_multiply_from_range () |
void | hkl_geometry_list_remove_invalid () |
HklGeometryListItem * | hkl_geometry_list_item_new () |
HklGeometryListItem * | hkl_geometry_list_item_new_copy () |
void | hkl_geometry_list_item_free () |
typedef | darray_holder |
struct | HklHolderConfig |
struct | HklHolder |
HklGeometry | |
#define | HKL_GEOMETRY_ERROR |
enum | HklGeometryError |
HklGeometryList | |
HklGeometryListItem |
void (*HklGeometryListMultiplyFunction) (HklGeometryList *self
,HklGeometryListItem *item
);
HklParameter * hkl_holder_add_rotation_axis (HklHolder *self
,char const *name
,double x
,double y
,double z
);
int hkl_geometry_init_geometry (HklGeometry *self
,const HklGeometry *src
);
initilize an HklGeometry
[skip]
HklHolder *
hkl_geometry_add_holder (HklGeometry *self
);
add an Holder to the HklGeometry
[skip]
void
hkl_geometry_update (HklGeometry *self
);
update the geometry internal once an Axis values changed
[skip]
int hkl_geometry_get_axis_idx_by_name (const HklGeometry *self
,const char *name
);
get the index of the axes named name
in the geometry
[skip]
HklParameter * hkl_geometry_get_axis_by_name (HklGeometry *self
,const char *name
);
get an HklAxis using its name
double hkl_geometry_distance (const HklGeometry *self
,const HklGeometry *ref
);
compute the distance between two HklGeometries
double hkl_geometry_distance_orthodromic (const HklGeometry *self
,const HklGeometry *ref
);
[skip]
int hkl_geometry_closest_from_geometry_with_range (HklGeometry *self
,const HklGeometry *ref
);
get the closest axes values in the HklInterval compatible with the current axes values
[skip]
int
hkl_geometry_is_valid (const HklGeometry *self
);
check if all axes of the HklGeometry are valid.
[skip]
HklGeometryList *
hkl_geometry_list_new_copy (const HklGeometryList *self
);
copy constructor
[skip]
void hkl_geometry_list_add (HklGeometryList *self
,HklGeometry *geometry
);
this method Add a geometry to the geometries
This method try to be clever by allocating memory only if the current length of the geometries is not large enought. Then it just set the geometry axes and copy it to the right geometries. We do not gives the x len as it is equal to the self->axes_len.
[skip]
void
hkl_geometry_list_reset (HklGeometryList *self
);
reset the HklGeometry, in fact it is a sort of clean method remove all the items of the list.
[skip]
void hkl_geometry_list_sort (HklGeometryList *self
,HklGeometry *ref
);
sort the HklGeometryList compare to the distance of the given HklGeometry
[skip]
void hkl_geometry_list_fprintf (FILE *f
,const HklGeometryList *self
);
print to a file the HklGeometryList
[skip]
void
hkl_geometry_list_multiply (HklGeometryList *self
);
apply the multiply lenthod to the HklGeometry
[skip]
void
hkl_geometry_list_multiply_from_range (HklGeometryList *self
);
void
hkl_geometry_list_remove_invalid (HklGeometryList *self
);
remove all invalid HklGeometry from the HklGeometryList
[skip]
HklGeometryListItem *
hkl_geometry_list_item_new (const HklGeometry *geometry
);
constructor
[skip]
HklGeometryListItem *
hkl_geometry_list_item_new_copy (const HklGeometryListItem *self
);
copy constructor
[skip]
void
hkl_geometry_list_item_free (HklGeometryListItem *self
);
destructor
[skip]
struct HklHolder { struct HklHolderConfig *config; HklGeometry *geometry; HklQuaternion q; };
typedef struct { const HklFactory *factory; HklSource source; darray_parameter axes; darray_holder holders; } HklGeometry;
typedef struct { HklGeometryListMultiplyFunction multiply; struct list_head items; size_t n_items; } HklGeometryList;