hkl-geometry

hkl-geometry

Synopsis

                    HklHolder;
                    HklGeometryConfig;
                    HklGeometry;
                    HklGeometryList;
                    HklGeometryListItem;
void                (*HklGeometryListMultiplyFunction)  (HklGeometryList *self,
                                                         size_t idx);
HklAxis *           hkl_holder_add_rotation_axis        (HklHolder *self,
                                                         char const *name,
                                                         double x,
                                                         double y,
                                                         double z);
HklGeometry *       hkl_geometry_new                    (void);
HklGeometry *       hkl_geometry_new_copy               (HklGeometry const *self);
void                hkl_geometry_free                   (HklGeometry *self);
void                hkl_geometry_init_geometry          (HklGeometry *self,
                                                         HklGeometry const *src);
HklHolder *         hkl_geometry_add_holder             (HklGeometry *self);
void                hkl_geometry_update                 (HklGeometry *self);
HklAxis *           hkl_geometry_get_axis_by_name       (HklGeometry *self,
                                                         char const *name);
void                hkl_geometry_randomize              (HklGeometry *self);
int                 hkl_geometry_set_values_v           (HklGeometry *self,
                                                         size_t len,
                                                         ...);
double              hkl_geometry_distance               (HklGeometry *self,
                                                         HklGeometry *geom);
double              hkl_geometry_distance_orthodromic   (HklGeometry *self,
                                                         HklGeometry *geom);
int                 hkl_geometry_closest_from_geometry_with_range
                                                        (HklGeometry *self,
                                                         HklGeometry *ref);
int                 hkl_geometry_is_valid               (HklGeometry const *self);
void                hkl_geometry_fprintf                (FILE *file,
                                                         HklGeometry const *self);
HklGeometryList *   hkl_geometry_list_new               (void);
void                hkl_geometry_list_free              (HklGeometryList *self);
void                hkl_geometry_list_add               (HklGeometryList *self,
                                                         HklGeometry *geometry);
void                hkl_geometry_list_reset             (HklGeometryList *self);
void                hkl_geometry_list_sort              (HklGeometryList *self,
                                                         HklGeometry *ref);
void                hkl_geometry_list_fprintf           (FILE *f,
                                                         HklGeometryList const *self);
void                hkl_geometry_list_multiply          (HklGeometryList *self);
void                hkl_geometry_list_multiply_from_range
                                                        (HklGeometryList *self);
void                hkl_geometry_list_remove_invalid    (HklGeometryList *self);
int                 hkl_geometry_list_len               (HklGeometryList *self);
int                 hkl_geometry_list_is_empty          (HklGeometryList *self);
HklGeometryListItem * hkl_geometry_list_item_new        (HklGeometry *geometry);
void                hkl_geometry_list_item_free         (HklGeometryListItem *self);

Description

Details

HklHolder

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


HklGeometryConfig

typedef struct {
	const char *name;
	HklGeometryType type;
} HklGeometryConfig;


HklGeometry

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


HklGeometryList

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


HklGeometryListItem

typedef struct {
	HklGeometry *geometry;
} HklGeometryListItem;


HklGeometryListMultiplyFunction ()

void                (*HklGeometryListMultiplyFunction)  (HklGeometryList *self,
                                                         size_t idx);

self :

idx :


hkl_holder_add_rotation_axis ()

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

self :

name :

x :

y :

z :

Returns :


hkl_geometry_new ()

HklGeometry *       hkl_geometry_new                    (void);

Returns :


hkl_geometry_new_copy ()

HklGeometry *       hkl_geometry_new_copy               (HklGeometry const *self);

self :

Returns :


hkl_geometry_free ()

void                hkl_geometry_free                   (HklGeometry *self);

self :


hkl_geometry_init_geometry ()

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

self :

src :


hkl_geometry_add_holder ()

HklHolder *         hkl_geometry_add_holder             (HklGeometry *self);

self :

Returns :


hkl_geometry_update ()

void                hkl_geometry_update                 (HklGeometry *self);

self :


hkl_geometry_get_axis_by_name ()

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

self :

name :

Returns :


hkl_geometry_randomize ()

void                hkl_geometry_randomize              (HklGeometry *self);

self :


hkl_geometry_set_values_v ()

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

self :

len :

... :

Returns :


hkl_geometry_distance ()

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

self :

geom :

Returns :


hkl_geometry_distance_orthodromic ()

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

self :

geom :

Returns :


hkl_geometry_closest_from_geometry_with_range ()

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

self :

ref :

Returns :


hkl_geometry_is_valid ()

int                 hkl_geometry_is_valid               (HklGeometry const *self);

self :

Returns :


hkl_geometry_fprintf ()

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

file :

self :


hkl_geometry_list_new ()

HklGeometryList *   hkl_geometry_list_new               (void);

Returns :


hkl_geometry_list_free ()

void                hkl_geometry_list_free              (HklGeometryList *self);

self :


hkl_geometry_list_add ()

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

self :

geometry :


hkl_geometry_list_reset ()

void                hkl_geometry_list_reset             (HklGeometryList *self);

self :


hkl_geometry_list_sort ()

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

self :

ref :


hkl_geometry_list_fprintf ()

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

f :

self :


hkl_geometry_list_multiply ()

void                hkl_geometry_list_multiply          (HklGeometryList *self);

self :


hkl_geometry_list_multiply_from_range ()

void                hkl_geometry_list_multiply_from_range
                                                        (HklGeometryList *self);

self :


hkl_geometry_list_remove_invalid ()

void                hkl_geometry_list_remove_invalid    (HklGeometryList *self);

self :


hkl_geometry_list_len ()

int                 hkl_geometry_list_len               (HklGeometryList *self);

self :

Returns :


hkl_geometry_list_is_empty ()

int                 hkl_geometry_list_is_empty          (HklGeometryList *self);

self :

Returns :


hkl_geometry_list_item_new ()

HklGeometryListItem * hkl_geometry_list_item_new        (HklGeometry *geometry);

geometry :

Returns :


hkl_geometry_list_item_free ()

void                hkl_geometry_list_item_free         (HklGeometryListItem *self);

self :