![]() |
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 circle.c:Macros | |
| #define | HARDNESS_MIN 0.0005f |
| #define | HARDNESS_MAX 1.0f |
| #define | BORDER_MIN 0.00005f |
| #define | BORDER_MAX 0.5f |
Functions | |
| static void | _circle_get_distance (float x, float y, float as, 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 | _circle_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) |
| Circle-specific inside/border hit testing adapter. | |
| static int | _find_closest_handle (dt_masks_form_t *mask_form, dt_masks_form_gui_t *mask_gui, int form_index) |
| static void | _circle_get_creation_values (const dt_masks_form_t *form, float *radius, float *border) |
| static void | _circle_init_new (dt_masks_form_t *form, dt_masks_form_gui_t *gui, dt_masks_node_circle_t *circle) |
| static int | _circle_get_points (dt_develop_t *dev, float x, float y, float radius, float radius2, float rotation, float **points, int *points_count) |
| static int | _circle_get_creation_preview (dt_masks_form_t *form, dt_masks_form_gui_t *gui, dt_masks_preview_buffers_t *preview) |
| static int | _init_hardness (dt_masks_form_t *form, const float amount, const dt_masks_increment_t increment, const int flow) |
| static int | _init_size (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 float | _circle_get_interaction_value (const dt_masks_form_t *form, dt_masks_interaction_t interaction) |
| static gboolean | _circle_get_gravity_center (const dt_masks_form_t *form, float center[2], float *area) |
| static int | _change_hardness (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_size (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 | _circle_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 | _circle_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 | _circle_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 | _circle_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 | _circle_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 | _circle_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 void | _circle_draw_shape (cairo_t *cr, const float *points, const int points_count, const int coord_nb, const gboolean border, const gboolean source) |
| static float * | _points_to_transform (float x, float y, float radius, float wd, float ht, int *points_count) |
| static int | _circle_get_points_source (dt_develop_t *dev, float x, float y, float xs, float ys, float radius, float radius2, float rotation, float **points, int *points_count, const dt_iop_module_t *module) |
| static void | _circle_events_post_expose (cairo_t *cr, float zoom_scale, dt_masks_form_gui_t *gui, int index, int num_points) |
| static void | _bounding_box (const float *const points, int num_points, int *width, int *height, int *posx, int *posy) |
| static int | _circle_get_points_border (dt_develop_t *dev, struct 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 | _circle_get_source_area (dt_iop_module_t *module, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece, dt_masks_form_t *form, int *width, int *height, int *posx, int *posy) |
| static int | _circle_get_area (const dt_iop_module_t *const restrict module, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *const restrict piece, dt_masks_form_t *const restrict form, int *width, int *height, int *posx, int *posy) |
| static int | _circle_get_mask (const dt_iop_module_t *const restrict module, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *const restrict piece, dt_masks_form_t *const restrict form, float **buffer, int *width, int *height, int *posx, int *posy) |
| static int | _circle_get_mask_roi (const dt_iop_module_t *const restrict module, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *const restrict piece, dt_masks_form_t *const form, const dt_iop_roi_t *const roi, float *const restrict buffer) |
| static void | _circle_sanitize_config (dt_masks_type_t type) |
| static void | _circle_set_form_name (struct dt_masks_form_t *const form, const size_t nb) |
| static void | _circle_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 | _circle_duplicate_points (dt_develop_t *dev, dt_masks_form_t *const base, dt_masks_form_t *const dest) |
| static void | _circle_initial_source_pos (const float iwd, const float iht, float *x, float *y) |
Variables | |
| const dt_masks_functions_t | dt_masks_functions_circle |
| #define BORDER_MAX 0.5f |
| #define BORDER_MIN 0.00005f |
| #define HARDNESS_MAX 1.0f |
| #define HARDNESS_MIN 0.0005f |
|
static |
References height, i, and width.
Referenced by _circle_get_area(), and _circle_get_source_area().
|
static |
|
static |
|
static |
Circle-specific inside/border hit testing adapter.
References _circle_get_distance(), and dist().
Referenced by _find_closest_handle().
|
static |
References i.
|
static |
References dt_masks_duplicate_points().
|
static |
References _circle_init_new(), 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_CLONE, DT_MASKS_EDIT_FULL, dt_masks_gui_form_save_creation(), dt_masks_set_source_pos_initial_state(), dt_modifier_is(), dt_masks_form_gui_t::edit_mode, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::handle_hovered, 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_points_t::source, dt_masks_form_gui_t::source_selected, and dt_masks_form_t::type.
|
static |
References dt_masks_form_gui_t::form_dragging, and dt_masks_form_gui_t::source_dragging.
|
static |
|
static |
|
static |
|
static |
References _circle_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, darktable, darktable_t::develop, dt_masks_functions_t::draw_shape, dt_draw_shape_lines(), DT_MASKS_DASH_STICK, dt_masks_draw_preview_shape(), dt_masks_draw_source(), dt_masks_draw_source_preview(), dt_masks_form_is_clone(), dt_masks_functions_circle, dt_masks_get_visible_form(), DT_MASKS_NO_DASH, dt_masks_preview_buffers_cleanup(), FALSE, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::group_selected, dt_masks_gui_center_point_t::main, 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, dt_masks_form_gui_t::pos, dt_masks_form_gui_points_t::source, and dt_masks_form_gui_points_t::source_count.
|
static |
References _bounding_box(), _points_to_transform(), dt_masks_node_circle_t::border, dt_masks_node_circle_t::center, dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_pixelpipe_cache_free_align, height, dt_dev_pixelpipe_t::iheight, dt_dev_pixelpipe_t::iwidth, dt_masks_node_circle_t::radius, and width.
Referenced by _circle_get_mask().
|
static |
References _circle_get_creation_values(), _circle_get_points(), 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 _circle_events_post_expose().
|
static |
References dt_conf_get_float(), and dt_masks_form_uses_spot_defaults().
Referenced by _circle_get_creation_preview(), and _circle_init_new().
|
static |
References dt_masks_form_gui_points_t::border, dt_masks_form_gui_points_t::border_count, dist(), dt_masks_point_in_form_exact(), dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_points_t::points_count, dt_masks_form_gui_points_t::source, dt_masks_form_gui_points_t::source_count, sqf(), and x.
Referenced by _circle_distance_cb().
|
static |
References dt_masks_node_circle_t::center, FALSE, M_PI_F, dt_masks_form_t::points, dt_masks_node_circle_t::radius, sqf(), and TRUE.
|
static |
|
static |
References _circle_get_area(), CLIP, darktable, DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_dev_distort_backtransform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_get_wtime(), dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, dt_print(), f, h, height, i, dt_dev_pixelpipe_t::iheight, dt_dev_pixelpipe_t::iwidth, l2, MIN, p, sqf(), darktable_t::unmuted, and width.
|
static |
References dt_masks_node_circle_t::border, dt_masks_node_circle_t::center, darktable, DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_dev_distort_backtransform_plus(), dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_get_wtime(), dt_masks_roundup(), dt_pixelpipe_cache_alloc_align_float_cache, dt_pixelpipe_cache_free_align, dt_print(), f, gh(), h, height, dt_iop_roi_t::height, i, dt_dev_pixelpipe_t::iheight, iscale, dt_dev_pixelpipe_t::iwidth, l2, M_PI, MAX, MIN, n, dt_masks_form_t::name, dt_masks_form_t::points, dt_masks_node_circle_t::radius, row, dt_iop_roi_t::scale, sqf(), darktable_t::unmuted, w1, width, dt_iop_roi_t::width, x, dt_iop_roi_t::x, and dt_iop_roi_t::y.
|
static |
|
static |
|
static |
References _points_to_transform(), dt_dev_coordinates_raw_norm_to_raw_abs(), dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_EXCL, DT_DEV_TRANSFORM_DIR_FORW_INCL, dt_pixelpipe_cache_free_align, error(), i, dt_iop_module_t::iop_order, dt_develop_t::raw_height, dt_develop_t::raw_width, dt_develop_t::roi, dt_develop_t::virtual_pipe, and x.
Referenced by _circle_get_points_border().
|
static |
References _bounding_box(), _points_to_transform(), dt_masks_node_circle_t::border, darktable, darktable_t::develop, dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_pixelpipe_cache_free_align, height, dt_dev_pixelpipe_t::iheight, dt_iop_module_t::iop_order, dt_dev_pixelpipe_t::iwidth, dt_masks_form_t::points, dt_masks_node_circle_t::radius, dt_masks_form_t::source, and width.
|
static |
References _circle_get_creation_values(), dt_masks_node_circle_t::border, dt_masks_node_circle_t::center, darktable, darktable_t::develop, dt_masks_form_is_clone(), dt_masks_gui_cursor_to_raw_norm(), dt_masks_reset_source(), dt_masks_set_source_pos_initial_value(), and dt_masks_node_circle_t::radius.
Referenced by _circle_events_button_pressed().
|
static |
References darktable, darktable_t::develop, dt_conf_get_float(), dt_dev_coordinates_raw_norm_to_raw_abs(), MIN, and x.
|
static |
References dt_conf_get_and_sanitize_float(), DT_MASKS_CLONE, DT_MASKS_NON_CLONE, and type.
|
static |
References dt_masks_form_t::name.
|
static |
|
static |
|
static |
References _circle_distance_cb(), and dt_masks_find_closest_handle_common().
|
static |
References dt_masks_get_set_conf_value_with_toast(), HARDNESS_MAX, and HARDNESS_MIN.
Referenced by _change_hardness(), and _circle_events_mouse_scrolled().
|
static |
References dt_masks_get_set_conf_value_with_toast().
Referenced by _circle_events_mouse_scrolled().
|
static |
References dt_masks_get_set_conf_value_with_toast(), HARDNESS_MAX, and HARDNESS_MIN.
Referenced by _change_size(), and _circle_events_mouse_scrolled().
|
static |
References darktable, darktable_t::develop, dt_dev_coordinates_raw_norm_to_raw_abs(), dt_pixelpipe_cache_alloc_align_float_cache, i, M_PI, MIN, r, and x.
Referenced by _circle_get_area(), _circle_get_points(), _circle_get_points_source(), and _circle_get_source_area().
| const dt_masks_functions_t dt_masks_functions_circle |
the shape-specific function tables
Referenced by _circle_events_post_expose(), and dt_masks_create().