hkl-geometry-private

hkl-geometry-private

Functions

Types and Values

Description

Functions

HklGeometryListMultiplyFunction ()

void
(*HklGeometryListMultiplyFunction) (HklGeometryList *self,
                                    HklGeometryListItem *item);

g_quark_from_static_string ()

return
g_quark_from_static_string ();

hkl_holder_add_rotation_axis ()

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

hkl_holder_add_rotation_axis_with_punit ()

HklParameter *
hkl_holder_add_rotation_axis_with_punit
                               (HklHolder *self,
                                char const *name,
                                double x,
                                double y,
                                double z,
                                const HklUnit *punit);

hkl_geometry_new ()

HklGeometry *
hkl_geometry_new (const HklFactory *factory);

constructor

[skip]


hkl_geometry_init_geometry ()

int
hkl_geometry_init_geometry (HklGeometry *self,
                            const HklGeometry *src);

initilize an HklGeometry

[skip]

Parameters

self

the this ptr

 

src

the HklGeometry to set from

 

Returns

TRUE on success, FALSE if an error occurred


hkl_geometry_add_holder ()

HklHolder *
hkl_geometry_add_holder (HklGeometry *self);

add an Holder to the HklGeometry

[skip]


hkl_geometry_update ()

void
hkl_geometry_update (HklGeometry *self);

update the geometry internal once an Axis values changed

[skip]


hkl_geometry_get_axis_idx_by_name ()

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]

Returns

-1 if the axis was not found


hkl_geometry_get_axis_by_name ()

HklParameter *
hkl_geometry_get_axis_by_name (HklGeometry *self,
                               const char *name);

get an HklAxis using its name

Returns

.

[transfer none]


hkl_geometry_distance ()

double
hkl_geometry_distance (const HklGeometry *self,
                       const HklGeometry *ref);

compute the distance between two HklGeometries

Parameters

self

the this ptr

 

ref

the HklGeometry to compare with

 

Returns

the distance between the two geometries


hkl_geometry_distance_orthodromic ()

double
hkl_geometry_distance_orthodromic (const HklGeometry *self,
                                   const HklGeometry *ref);

[skip]

Parameters

self

the this ptr

 

ref

the reference HklGeometry to compare with.

 

Returns

the orthodromique distance


hkl_geometry_closest_from_geometry_with_range ()

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]


hkl_geometry_is_valid ()

int
hkl_geometry_is_valid (const HklGeometry *self);

check if all axes of the HklGeometry are valid.

[skip]


hkl_geometry_is_valid_range ()

int
hkl_geometry_is_valid_range (const HklGeometry *self);

check if all axes of the HklGeometry are valid. (there is a difference for axis)

[skip]


hkl_geometry_list_new ()

HklGeometryList *
hkl_geometry_list_new (void);

constructor

[skip]


hkl_geometry_list_new_copy ()

HklGeometryList *
hkl_geometry_list_new_copy (const HklGeometryList *self);

copy constructor

[skip]


hkl_geometry_list_add ()

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]

Parameters

self

The current HklGeometryList

 

geometry

the HklGeometry to add

 

hkl_geometry_list_reset ()

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]

Parameters

self

the this ptr

 

hkl_geometry_list_sort ()

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

sort the HklGeometryList compare to the distance of the given HklGeometry

[skip]


hkl_geometry_list_fprintf ()

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

print to a file the HklGeometryList

[skip]


hkl_geometry_list_multiply ()

void
hkl_geometry_list_multiply (HklGeometryList *self);

apply the multiply lenthod to the HklGeometry

[skip]


hkl_geometry_list_multiply_from_range ()

void
hkl_geometry_list_multiply_from_range (HklGeometryList *self);

hkl_geometry_list_remove_invalid ()

void
hkl_geometry_list_remove_invalid (HklGeometryList *self);

remove all invalid HklGeometry from the HklGeometryList

[skip]


hkl_geometry_list_item_new ()

HklGeometryListItem *
hkl_geometry_list_item_new (const HklGeometry *geometry);

constructor

[skip]


hkl_geometry_list_item_new_copy ()

HklGeometryListItem *
hkl_geometry_list_item_new_copy (const HklGeometryListItem *self);

copy constructor

[skip]


hkl_geometry_list_item_free ()

void
hkl_geometry_list_item_free (HklGeometryListItem *self);

destructor

[skip]

Types and Values

darray_holder

typedef darray(HklHolder *) darray_holder;

struct HklHolderConfig

struct HklHolderConfig {
	int gc;
	size_t *idx;
	size_t len;
};

struct HklHolder

struct HklHolder {
	struct HklHolderConfig *config;
	HklGeometry *geometry;
	HklQuaternion q;
};

HklGeometry

typedef struct {
	const HklFactory *factory;
	HklSource source;
	darray_parameter axes;
	darray_holder holders;
} HklGeometry;

HKL_GEOMETRY_ERROR

#define HKL_GEOMETRY_ERROR hkl_geometry_error_quark ()

enum HklGeometryError

Members

HKL_GEOMETRY_ERROR_AXIS_GET

   

HKL_GEOMETRY_ERROR_AXIS_SET

   

HklGeometryList

typedef struct {
	HklGeometryListMultiplyFunction multiply;
	struct list_head items;
	size_t n_items;
} HklGeometryList;

HklGeometryListItem

typedef struct {
	struct list_node list;
	HklGeometry *geometry;
} HklGeometryListItem;