40#ifndef DT_DEVELOP_GEOMETRY_GEOMETRY_H
41#define DT_DEVELOP_GEOMETRY_GEOMETRY_H
191 size_t points_count);
195 size_t points_count);
212 float *points,
size_t points_count);
228 size_t points_count);
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
const dt_colormatrix_t dt_aligned_pixel_t out
void dt_geometry_self_check(struct dt_develop_t *dev, double chain_ms)
Check the chain against itself, and report what the rebuild cost.
dt_geometry_chain_t * dt_geometry_chain_new(void)
const dt_geometry_record_t * dt_geometry_chain_find(const dt_geometry_chain_t *chain, const char *op, int instance)
One module instance's record, or NULL. Use it for that module's own in/out dims.
void dt_geometry_chain_rebuild(struct dt_develop_t *dev)
Rebuild the chain from the dev's current modules and history. GUI thread only.
gboolean dt_geometry_chain_authoritative(const dt_geometry_chain_t *chain)
Can this chain answer questions yet?
int dt_geometry_backtransform(struct dt_develop_t *dev, double iop_order, int direction, float *points, size_t points_count)
Compose backward over the chain, in place.
uint64_t dt_geometry_chain_generation(const dt_geometry_chain_t *chain)
How many times this chain has been rebuilt. A GUI cache key for anything derived from the composed ge...
int dt_geometry_chain_compose(dt_geometry_chain_t *chain, double iop_order, int direction, float *points, size_t points_count)
Compose the chain over points, for a record evaluator that needs the transform stack around its own m...
gboolean dt_geometry_chain_processed_size(const dt_geometry_chain_t *chain, int *width, int *height)
The developed image's full-resolution size, from the chain's own fold.
void dt_geometry_chain_free(dt_geometry_chain_t *chain)
int dt_geometry_module_transform(struct dt_develop_t *dev, const struct dt_iop_module_t *module, float *points, size_t points_count)
Apply ONE module's own transform, and nothing else.
int dt_geometry_transform(struct dt_develop_t *dev, double iop_order, int direction, float *points, size_t points_count)
Compose forward over the chain, in place. direction is a DT_DEV_TRANSFORM_DIR_*.
unsigned __int64 uint64_t
One module instance's contribution, as data.
const dt_geometry_vtable_t * vtable
void(* free_data)(void *data)
A module's geometry, evaluated. Pure functions of the record's own data.
int(* backtransform)(const void *data, const struct dt_geometry_record_t *const record, struct dt_geometry_chain_t *chain, float *points, size_t points_count)
The inverse of transform.
void(* map_size)(const void *data, const dt_iop_roi_t *const in, dt_iop_roi_t *out)
Full-resolution input rect -> output rect. Mirrors modify_roi_out() at scale 1.
int(* transform)(const void *data, const struct dt_geometry_record_t *const record, struct dt_geometry_chain_t *chain, float *points, size_t points_count)
Image coordinates in -> image coordinates out, in place, points_count pairs. ctx composes the sub-cha...
Region of interest passed through the pixelpipe.