![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "bauhaus/bauhaus.h"#include "common/debug.h"#include "common/undo.h"#include "control/conf.h"#include "develop/blend.h"#include "develop/imageop.h"#include "develop/masks.h"#include "develop/openmp_maths.h"
Include dependency graph for gradient.c:Data Structures | |
| struct | dt_masks_gradient_creation_values_t |
Macros | |
| #define | extent_MIN 0.0005f |
| #define | extent_MAX 1.0f |
| #define | CURVATURE_MIN -2.0f |
| #define | CURVATURE_MAX 2.0f |
| #define | BORDER_MIN 0.00005f |
| #define | BORDER_MAX 0.5f |
Typedefs | |
| typedef struct dt_masks_gradient_creation_values_t | dt_masks_gradient_creation_values_t |
Functions | |
| static int | _find_border_separator (const float *border, int count) |
| static void | _closest_point_on_segment (float px, float py, float x1, float y1, float x2, float y2, float *closest_x, float *closest_y, float *distance_sq) |
| static void | _closest_point_on_line (float px, float py, const float *border, int start_idx, int end_idx, float *closest_x, float *closest_y, float *min_distance_sq) |
| static float | _gradient_get_border_len_sq (const dt_masks_form_gui_points_t *gpt) |
| static void | _gradient_get_creation_values (dt_masks_gradient_creation_values_t *values) |
| static void | _gradient_init_new (dt_masks_form_gui_t *gui, dt_masks_anchor_gradient_t *gradient) |
| static int | _gradient_get_points (dt_develop_t *dev, float x, float y, float rotation, float curvature, float **points, int *points_count) |
| static int | _gradient_get_pts_border (dt_develop_t *dev, float x, float y, float rotation, float distance, float curvature, float **points, int *points_count) |
| static int | _gradient_get_creation_preview (dt_masks_form_gui_t *gui, dt_masks_preview_buffers_t *preview) |
| static void | _gradient_get_distance (float x, float y, float dist_mouse, dt_masks_form_gui_t *gui, int index, int num_points, int *inside, int *inside_border, int *near, int *inside_source, float *dist) |
| static void | _gradient_node_position_cb (const dt_masks_form_gui_points_t *gui_points, int node_index, float *node_x, float *node_y, void *user_data) |
| static void | _gradient_distance_cb (float pointer_x, float pointer_y, float cursor_radius, dt_masks_form_gui_t *mask_gui, int form_index, int node_count, int *inside, int *inside_border, int *near, int *inside_source, float *dist, void *user_data) |
| static void | _gradient_post_select_cb (dt_masks_form_gui_t *mask_gui, int inside, int inside_border, int inside_source, void *user_data) |
| static int | _find_closest_handle (dt_masks_form_t *mask_form, dt_masks_form_gui_t *mask_gui, int index) |
| static int | _init_extent (dt_masks_form_t *form, const float amount, const dt_masks_increment_t increment, const int flow) |
| static int | _init_curvature (dt_masks_form_t *form, const float amount, const dt_masks_increment_t increment, const int flow) |
| static int | _init_opacity (dt_masks_form_t *form, const float amount, const dt_masks_increment_t increment, const int flow) |
| static int | _init_rotation (dt_masks_form_t *form, const float amount, const dt_masks_increment_t increment, const int flow) |
| static float | _gradient_get_interaction_value (const dt_masks_form_t *form, dt_masks_interaction_t interaction) |
| static gboolean | _gradient_get_gravity_center (const dt_masks_form_t *form, float center[2], float *area) |
| static int | _change_extent (dt_masks_form_t *form, dt_masks_form_gui_t *gui, struct dt_iop_module_t *module, int index, const float amount, const dt_masks_increment_t increment, const int flow) |
| static int | _change_curvature (dt_masks_form_t *form, dt_masks_form_gui_t *gui, struct dt_iop_module_t *module, int index, const float amount, const dt_masks_increment_t increment, const int flow) |
| static float | _gradient_set_interaction_value (dt_masks_form_t *form, dt_masks_interaction_t interaction, float value, dt_masks_increment_t increment, int flow, dt_masks_form_gui_t *gui, struct dt_iop_module_t *module) |
| static int | _change_rotation (dt_masks_form_t *form, dt_masks_form_gui_t *gui, struct dt_iop_module_t *module, int index, const float amount, const dt_masks_increment_t increment, const int flow) |
| static int | _gradient_events_mouse_scrolled (struct dt_iop_module_t *module, double x, double y, int up, const int flow, uint32_t state, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index, dt_masks_interaction_t interaction) |
| static int | _gradient_events_button_pressed (struct dt_iop_module_t *module, double x, double y, double pressure, int which, int type, uint32_t state, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index) |
| static int | _gradient_events_button_released (struct dt_iop_module_t *module, double x, double y, int which, uint32_t state, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index) |
| static int | _gradient_events_key_pressed (struct dt_iop_module_t *module, GdkEventKey *event, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index) |
| static int | _gradient_events_mouse_moved (struct dt_iop_module_t *module, double x, double y, double pressure, int which, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index) |
| static gboolean | _gradient_is_canonical (const float x, const float y, const float wd, const float ht) |
| static void | _copy_points (float *dest, const float *src, int count, int *k) |
| static void | _gradient_draw_shape (cairo_t *cr, const float *pts_line, const int pts_line_count, const int nb, const gboolean border, const gboolean source) |
| static void | _gradient_draw_arrow (cairo_t *cr, const gboolean selected, const gboolean pivot_selected, const gboolean is_rotating, const float zoom_scale, float *pts, int pts_count) |
| static void | _gradient_events_post_expose (cairo_t *cr, float zoom_scale, dt_masks_form_gui_t *gui, int index, int nb) |
| static int | _gradient_get_points_border (dt_develop_t *dev, dt_masks_form_t *form, float **points, int *points_count, float **border, int *border_count, int source, const dt_iop_module_t *module) |
| static int | _gradient_get_area (const dt_iop_module_t *const module, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, int *width, int *height, int *posx, int *posy) |
| static float | dt_gradient_lookup (const float *lut, const float i) |
| static int | _gradient_get_mask (const dt_iop_module_t *const module, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, float **buffer, int *width, int *height, int *posx, int *posy) |
| static int | _gradient_get_mask_roi (const dt_iop_module_t *const module, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, const dt_iop_roi_t *roi, float *buffer) |
| static void | _gradient_sanitize_config (dt_masks_type_t type) |
| static void | _gradient_set_form_name (struct dt_masks_form_t *const form, const size_t nb) |
| static void | _gradient_set_hint_message (const dt_masks_form_gui_t *const gui, const dt_masks_form_t *const form, const int opacity, char *const restrict msgbuf, const size_t msgbuf_len) |
| static void | _gradient_duplicate_points (dt_develop_t *dev, dt_masks_form_t *const base, dt_masks_form_t *const dest) |
Variables | |
| const dt_masks_functions_t | dt_masks_functions_gradient |
| #define BORDER_MAX 0.5f |
| #define BORDER_MIN 0.00005f |
| #define CURVATURE_MAX 2.0f |
| #define CURVATURE_MIN -2.0f |
| #define extent_MAX 1.0f |
| #define extent_MIN 0.0005f |
|
static |
References _init_curvature(), dt_masks_anchor_gradient_t::curvature, dt_masks_apply_increment(), dt_masks_gui_form_create(), DT_MASKS_INCREMENT_SCALE, dt_masks_form_gui_t::node_hovered, and dt_masks_form_t::points.
Referenced by _gradient_events_button_pressed(), _gradient_events_mouse_scrolled(), and _gradient_set_interaction_value().
|
static |
|
static |
|
static |
References _closest_point_on_segment(), and i.
Referenced by _gradient_get_distance().
|
static |
References t.
Referenced by _closest_point_on_line().
|
static |
References i.
Referenced by _gradient_get_pts_border().
|
static |
References i.
Referenced by _gradient_get_distance().
|
static |
|
static |
References _gradient_get_distance(), and dist().
Referenced by _find_closest_handle().
|
static |
References dt_draw_node(), DT_DRAW_SCALE_ARROW, dt_draw_set_color_overlay(), DT_DRAW_SIZE_LINE, DT_DRAW_SIZE_LINE_SELECTED, dt_draw_stroke_line(), DT_MASKS_DASH_ROUND, FALSE, and TRUE.
Referenced by _gradient_events_post_expose().
|
static |
|
static |
References dt_masks_duplicate_points().
|
static |
References _change_curvature(), _gradient_init_new(), dt_masks_form_gui_t::border_toggling, dt_masks_form_gui_t::creation, dt_masks_form_gui_t::creation_module, darktable, dt_masks_form_gui_t::delta, darktable_t::develop, DT_MASKS_EDIT_FULL, dt_masks_gui_form_create(), dt_masks_gui_form_save_creation(), DT_MASKS_INCREMENT_ABSOLUTE, dt_modifier_is(), dt_masks_form_gui_t::edit_mode, dt_masks_form_gui_t::form_rotating, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::gradient_toggling, dt_masks_form_gui_t::pivot_selected, dt_masks_form_t::points, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_t::pos, dt_masks_form_gui_t::seg_hovered, dt_masks_form_gui_t::seg_selected, TRUE, and type.
|
static |
References dt_conf_set_int(), DT_MASKS_EDIT_FULL, DT_MASKS_GRADIENT_STATE_LINEAR, DT_MASKS_GRADIENT_STATE_SIGMOIDAL, dt_masks_gui_form_create(), dt_masks_form_gui_t::edit_mode, FALSE, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_rotating, dt_masks_form_gui_t::gradient_toggling, dt_masks_form_t::points, and dt_masks_anchor_gradient_t::state.
|
static |
|
static |
References _change_rotation(), dt_masks_anchor_gradient_t::center, dt_masks_form_gui_t::creation, darktable, darktable_t::develop, dt_masks_gui_delta_to_raw_norm(), dt_masks_gui_form_create(), DT_MASKS_INCREMENT_OFFSET, dt_masks_rotate_with_anchor(), dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_rotating, dt_masks_form_t::points, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, and dt_masks_form_gui_t::pos.
|
static |
References _change_curvature(), _change_extent(), _change_rotation(), _init_curvature(), _init_extent(), _init_opacity(), _init_rotation(), dt_masks_form_gui_t::creation, dt_masks_form_change_opacity(), DT_MASKS_INCREMENT_OFFSET, DT_MASKS_INCREMENT_SCALE, dt_modifier_is(), dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::pivot_selected, and dt_masks_form_gui_t::seg_selected.
|
static |
References _gradient_draw_arrow(), _gradient_get_creation_preview(), dt_masks_form_gui_points_t::border, dt_masks_preview_buffers_t::border, dt_masks_form_gui_points_t::border_count, dt_masks_preview_buffers_t::border_count, dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::creation, dt_masks_functions_t::draw_shape, dt_draw_shape_lines(), DT_MASKS_DASH_STICK, dt_masks_draw_preview_shape(), dt_masks_functions_gradient, DT_MASKS_NO_DASH, dt_masks_preview_buffers_cleanup(), FALSE, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_rotating, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::group_selected, dt_masks_form_gui_t::pivot_selected, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_preview_buffers_t::points, dt_masks_form_gui_points_t::points_count, dt_masks_preview_buffers_t::points_count, and dt_masks_form_gui_t::seg_selected.
|
static |
References dt_iop_module_t::dev, dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, height, i, dt_dev_pixelpipe_t::iheight, dt_iop_module_t::iop_order, dt_dev_pixelpipe_t::iwidth, and width.
Referenced by _gradient_get_mask().
|
static |
References dt_masks_form_gui_points_t::points.
Referenced by _gradient_get_distance().
|
static |
References _gradient_get_creation_values(), _gradient_get_points(), _gradient_get_pts_border(), dt_masks_preview_buffers_t::border, dt_masks_preview_buffers_t::border_count, darktable, darktable_t::develop, dt_masks_gui_cursor_to_raw_norm(), dt_masks_preview_buffers_t::points, and dt_masks_preview_buffers_t::points_count.
Referenced by _gradient_events_post_expose().
|
static |
References dt_conf_get_float().
Referenced by _gradient_get_creation_preview(), and _gradient_init_new().
|
static |
References _closest_point_on_line(), _find_border_separator(), _gradient_get_border_len_sq(), dt_masks_form_gui_points_t::border, dt_masks_form_gui_points_t::border_count, CLAMPF, dist(), dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_rotating, i, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_points_t::points_count, sqf(), and x.
Referenced by _gradient_distance_cb().
|
static |
|
static |
|
static |
References _gradient_get_area(), dt_masks_anchor_gradient_t::center, dt_masks_anchor_gradient_t::curvature, darktable, dt_iop_module_t::dev, DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_dev_distort_backtransform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_get_wtime(), dt_gradient_lookup(), DT_MASKS_GRADIENT_STATE_LINEAR, dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, dt_print(), dt_masks_anchor_gradient_t::extent, gh(), h, height, i, dt_dev_pixelpipe_t::iheight, dt_iop_module_t::iop_order, dt_dev_pixelpipe_t::iwidth, lut, lutsize, M_PI, n, dt_masks_form_t::name, dt_masks_form_t::points, dt_masks_anchor_gradient_t::rotation, row, dt_masks_anchor_gradient_t::state, darktable_t::unmuted, v, value, w1, width, and x.
|
static |
References dt_masks_anchor_gradient_t::center, dt_masks_anchor_gradient_t::curvature, darktable, dt_iop_module_t::dev, DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_dev_distort_backtransform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_get_wtime(), dt_gradient_lookup(), DT_MASKS_GRADIENT_STATE_LINEAR, dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, dt_print(), dt_masks_anchor_gradient_t::extent, gh(), h, dt_iop_roi_t::height, i, dt_dev_pixelpipe_t::iheight, dt_iop_module_t::iop_order, iscale, dt_dev_pixelpipe_t::iwidth, lut, lutsize, M_PI, n, dt_masks_form_t::name, dt_masks_form_t::points, dt_masks_anchor_gradient_t::rotation, row, dt_iop_roi_t::scale, dt_masks_anchor_gradient_t::state, darktable_t::unmuted, v, value, w1, dt_iop_roi_t::width, x, dt_iop_roi_t::x, and dt_iop_roi_t::y.
|
static |
References dt_dev_coordinates_raw_abs_to_image_abs(), dt_dev_coordinates_raw_norm_to_raw_abs(), dt_get_bythread, dt_get_perthread, dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_calloc_perthread, dt_pixelpipe_cache_free_align, i, M_PI, omp_get_max_threads, omp_get_thread_num, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, v, and x.
Referenced by _gradient_get_creation_preview(), _gradient_get_points_border(), and _gradient_get_pts_border().
|
static |
|
static |
References _copy_points(), _gradient_get_points(), cleanup(), dt_dev_coordinates_raw_abs_to_raw_norm(), dt_dev_coordinates_raw_norm_to_raw_abs(), dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, M_PI, offsets, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, and x.
Referenced by _gradient_get_creation_preview(), and _gradient_get_points_border().
|
static |
References _gradient_get_creation_values(), dt_masks_anchor_gradient_t::center, dt_masks_anchor_gradient_t::curvature, darktable, darktable_t::develop, dt_masks_gui_cursor_to_raw_norm(), dt_masks_anchor_gradient_t::extent, and dt_masks_anchor_gradient_t::rotation.
Referenced by _gradient_events_button_pressed().
|
inlinestatic |
References FALSE, TRUE, and x.
Referenced by _gradient_draw_shape().
|
static |
Referenced by _find_closest_handle().
|
static |
References dt_masks_form_gui_t::border_selected, FALSE, dt_masks_form_gui_t::pivot_selected, and TRUE.
Referenced by _find_closest_handle().
|
static |
References dt_conf_set_float().
|
static |
References dt_masks_form_t::name.
|
static |
|
static |
|
static |
References CURVATURE_MAX, CURVATURE_MIN, and dt_masks_get_set_conf_value_with_toast().
Referenced by _change_curvature(), and _gradient_events_mouse_scrolled().
|
static |
References dt_masks_get_set_conf_value_with_toast(), extent_MAX, and extent_MIN.
Referenced by _change_extent(), and _gradient_events_mouse_scrolled().
|
static |
References dt_masks_get_set_conf_value_with_toast().
Referenced by _gradient_events_mouse_scrolled().
|
static |
References dt_masks_get_set_conf_value_with_toast().
Referenced by _change_rotation(), and _gradient_events_mouse_scrolled().
|
inlinestatic |
Referenced by _gradient_get_mask(), and _gradient_get_mask_roi().
| const dt_masks_functions_t dt_masks_functions_gradient |
Referenced by _gradient_events_post_expose(), and dt_masks_create().