![]() |
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"
Functions | |
static void | _ellipse_point_transform (const float xref, const float yref, const float x, const float y, const float sinr, const float cosr, float *xnew, float *ynew) |
static int | _ellipse_cross_test (float x, float y, float *point_1, float *point_2) |
static int | _ellipse_point_in_polygon (float x, float y, float *points, int points_count) |
static int | _ellipse_point_close_to_path (float x, float y, float as, float *points, int points_count) |
static void | _ellipse_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 | _ellipse_draw_shape (cairo_t *cr, double *dashed, const int selected, const float zoom_scale, const float xref, const float yref, float *points, const int points_count) |
static void | _ellipse_draw_border (cairo_t *cr, double *dashed, const float len, const int selected, const float zoom_scale, const float xref, const float yref, float *border, const int border_count) |
static float * | _points_to_transform (float xx, float yy, float radius_a, float radius_b, float rotation, float wd, float ht, int *points_count) |
static int | _ellipse_get_points_source (dt_develop_t *dev, float xx, float yy, float xs, float ys, float radius_a, float radius_b, float rotation, float **points, int *points_count, const dt_iop_module_t *module) |
static int | _ellipse_get_points (dt_develop_t *dev, float xx, float yy, float radius_a, float radius_b, float rotation, float **points, int *points_count) |
static int | _ellipse_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 | _ellipse_events_mouse_scrolled (struct dt_iop_module_t *module, float pzx, float pzy, int up, 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 | _ellipse_events_button_pressed (struct dt_iop_module_t *module, float pzx, float pzy, 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 | _ellipse_events_button_released (struct dt_iop_module_t *module, float pzx, float pzy, int which, uint32_t state, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index) |
static int | _ellipse_events_mouse_moved (struct dt_iop_module_t *module, float pzx, float pzy, double pressure, int which, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index) |
static void | _ellipse_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 void | _fill_mask (const size_t numpoints, float *const bufptr, const float *const points, const float *const center, const float a, const float b, const float ta, const float tb, const float alpha, const size_t out_scale) |
static float *const | _ellipse_points_to_transform (const float center_x, const float center_y, const float dim1, const float dim2, const float rotation, const float wd, const float ht, size_t *point_count) |
static int | _ellipse_get_source_area (dt_iop_module_t *module, dt_dev_pixelpipe_iop_t *piece, dt_masks_form_t *form, int *width, int *height, int *posx, int *posy) |
static int | _ellipse_get_area (const dt_iop_module_t *const module, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, int *width, int *height, int *posx, int *posy) |
static int | _ellipse_get_mask (const dt_iop_module_t *const module, 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 | _ellipse_get_mask_roi (const dt_iop_module_t *const module, const dt_dev_pixelpipe_iop_t *const piece, dt_masks_form_t *const form, const dt_iop_roi_t *roi, float *buffer) |
static void | _ellipse_set_form_name (struct dt_masks_form_t *const form, const size_t nb) |
static void | _ellipse_duplicate_points (dt_develop_t *const dev, dt_masks_form_t *const base, dt_masks_form_t *const dest) |
static void | _ellipse_initial_source_pos (const float iwd, const float iht, float *x, float *y) |
static void | _ellipse_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 | _ellipse_sanitize_config (dt_masks_type_t type) |
Variables | |
const dt_masks_functions_t | dt_masks_functions_ellipse |
|
static |
Referenced by _ellipse_get_area(), and _ellipse_get_source_area().
|
static |
Referenced by _ellipse_point_in_polygon().
|
static |
References _ellipse_point_transform(), dt_draw_set_color_overlay(), FALSE, and TRUE.
Referenced by _ellipse_events_post_expose().
|
static |
References _ellipse_point_transform(), dt_draw_set_color_overlay(), FALSE, and TRUE.
Referenced by _ellipse_events_post_expose().
|
static |
References dt_masks_form_t::points, and void().
|
static |
References dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_width, dt_masks_point_ellipse_t::border, dt_masks_form_gui_t::border_toggling, dt_masks_point_ellipse_t::center, dt_masks_form_gui_t::creation, dt_masks_form_gui_t::creation_module, darktable, darktable_t::develop, dt_conf_get_float(), dt_conf_get_int(), dt_dev_distort_backtransform(), dt_dev_masks_selection_change(), DT_MASKS_CLONE, DT_MASKS_EDIT_FULL, DT_MASKS_ELLIPSE, dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_gui_form_save_creation(), dt_masks_iop_update(), DT_MASKS_NON_CLONE, dt_masks_select_form(), dt_masks_set_edit_mode(), dt_masks_set_source_pos_initial_state(), dt_masks_set_source_pos_initial_value(), dt_modifier_is(), dt_masks_form_gui_t::dx, dt_masks_form_gui_t::dy, dt_masks_form_gui_t::edit_mode, dt_masks_point_ellipse_t::flags, dt_masks_form_gui_t::form_dragging, dt_develop_t::form_gui, dt_masks_form_gui_t::form_rotating, dt_masks_form_gui_t::form_selected, dt_develop_t::form_visible, dt_masks_point_group_t::formid, dt_masks_form_t::formid, dt_masks_form_gui_t::group_selected, dt_dev_pixelpipe_t::iheight, dt_dev_pixelpipe_t::iwidth, dt_masks_form_gui_t::point_dragging, dt_masks_form_gui_t::point_selected, dt_masks_form_t::points, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_t::posx, dt_masks_form_gui_t::posy, dt_develop_t::preview_pipe, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, dt_masks_form_gui_t::scrollx, dt_masks_form_gui_t::scrolly, dt_masks_form_t::source, dt_masks_form_gui_points_t::source, dt_masks_form_gui_t::source_dragging, dt_masks_form_gui_t::source_selected, TRUE, and dt_masks_form_t::type.
|
static |
References dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_width, dt_masks_point_ellipse_t::border, dt_masks_form_gui_t::border_selected, dt_masks_form_gui_t::border_toggling, dt_masks_point_ellipse_t::center, darktable, darktable_t::develop, dt_conf_set_float(), dt_conf_set_int(), dt_dev_distort_backtransform(), dt_masks_change_form_gui(), dt_masks_clear_form_gui(), DT_MASKS_CLONE, DT_MASKS_EDIT_FULL, DT_MASKS_ELLIPSE_PROPORTIONAL, dt_masks_form_remove(), dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_gui_form_create(), dt_masks_gui_form_remove(), DT_MASKS_NON_CLONE, dt_masks_form_gui_t::dx, dt_masks_form_gui_t::dy, dt_masks_form_gui_t::edit_mode, FALSE, dt_masks_point_ellipse_t::flags, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_rotating, dt_masks_form_gui_t::form_selected, dt_develop_t::form_visible, dt_masks_point_group_t::formid, dt_masks_form_t::formid, g_list_shorter_than(), dt_dev_pixelpipe_t::iheight, dt_dev_pixelpipe_t::iwidth, M_PI, MAX, dt_masks_form_gui_t::point_dragging, dt_masks_form_t::points, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_t::posx, dt_masks_form_gui_t::posy, dt_develop_t::preview_pipe, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, dt_masks_form_gui_t::scrollx, dt_masks_form_gui_t::scrolly, dt_masks_form_t::source, dt_masks_form_gui_t::source_dragging, dt_masks_form_gui_t::source_selected, TRUE, and dt_masks_form_t::type.
|
static |
References _ellipse_get_distance(), dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_width, dt_masks_form_gui_t::border_selected, dt_masks_point_ellipse_t::center, dt_masks_form_gui_t::creation, darktable, darktable_t::develop, dist(), dt_conf_set_float(), dt_control_get_dev_closeup(), dt_control_get_dev_zoom(), dt_dev_distort_backtransform(), dt_dev_get_zoom_scale(), DT_MASKS_CLONE, DT_MASKS_EDIT_FULL, dt_masks_gui_form_create(), dt_masks_gui_form_remove(), DT_MASKS_NON_CLONE, DT_PIXEL_APPLY_DPI, dt_masks_form_gui_t::dx, dt_masks_form_gui_t::dy, 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::form_selected, dt_dev_pixelpipe_t::iheight, dt_dev_pixelpipe_t::iwidth, M_PI, MAX, dt_masks_form_gui_t::point_dragging, dt_masks_form_gui_t::point_selected, dt_masks_form_t::points, dt_masks_form_gui_points_t::points, dt_masks_form_gui_t::points, dt_masks_form_gui_t::posx, dt_masks_form_gui_t::posy, dt_develop_t::preview_pipe, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, dt_masks_form_t::source, dt_masks_form_gui_t::source_dragging, dt_masks_form_gui_t::source_selected, TRUE, and dt_masks_form_t::type.
|
static |
References dt_masks_point_ellipse_t::border, dt_masks_form_gui_t::creation, dt_conf_get_float(), dt_conf_get_int(), dt_conf_set_float(), DT_MASKS_CLONE, DT_MASKS_EDIT_FULL, DT_MASKS_ELLIPSE_PROPORTIONAL, dt_masks_form_change_opacity(), dt_masks_gui_form_create(), dt_masks_gui_form_remove(), DT_MASKS_NON_CLONE, dt_modifier_is(), dt_toast_log(), dt_masks_form_gui_t::edit_mode, factor, flags, dt_masks_point_ellipse_t::flags, dt_masks_form_gui_t::form_selected, dt_masks_form_t::points, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, dt_masks_form_gui_t::scrollx, dt_masks_form_gui_t::scrolly, and dt_masks_form_t::type.
|
static |
References _ellipse_draw_border(), _ellipse_draw_shape(), _ellipse_get_points(), _ellipse_point_transform(), dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_width, dt_masks_form_gui_points_t::border, dt_masks_form_gui_points_t::border_count, dt_masks_form_gui_t::creation, darktable, darktable_t::develop, dist(), draw(), dt_conf_get_float(), dt_conf_get_int(), dt_control_get_dev_zoom_x(), dt_control_get_dev_zoom_y(), dt_dev_distort_backtransform(), dt_draw_set_color_overlay(), dt_free_align, dt_masks_calculate_source_pos_value(), DT_MASKS_CLONE, dt_masks_draw_clone_source_pos(), DT_MASKS_ELLIPSE, DT_MASKS_ELLIPSE_PROPORTIONAL, DT_MASKS_NON_CLONE, FALSE, flags, dt_masks_form_gui_t::form_dragging, dt_masks_form_gui_t::form_selected, dt_develop_t::form_visible, dt_masks_form_gui_t::group_selected, dt_masks_form_gui_t::guipoints_count, dt_dev_pixelpipe_t::iheight, dt_dev_pixelpipe_t::iwidth, M_PI, MAX, dt_masks_form_gui_t::mouse_leaved_center, dt_masks_form_gui_t::point_dragging, dt_masks_form_gui_t::point_selected, 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_t::posx, dt_masks_form_gui_t::posy, dt_develop_t::preview_pipe, dt_masks_form_gui_points_t::source, dt_masks_form_gui_points_t::source_count, sqf(), TRUE, dt_masks_form_t::type, and void().
|
static |
References _bounding_box(), _ellipse_points_to_transform(), dt_masks_point_ellipse_t::border, dt_masks_point_ellipse_t::center, dt_iop_module_t::dev, dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_free_align, DT_MASKS_ELLIPSE_PROPORTIONAL, dt_masks_point_ellipse_t::flags, height, dt_iop_module_t::iop_order, MIN, dt_dev_pixelpipe_iop_t::pipe, dt_masks_form_t::points, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, and width.
Referenced by _ellipse_get_mask().
|
static |
References _ellipse_point_close_to_path(), _ellipse_point_in_polygon(), dt_masks_form_gui_points_t::border, dt_masks_form_gui_points_t::border_count, dist(), 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 void().
Referenced by _ellipse_events_mouse_moved().
|
static |
References _ellipse_get_area(), _fill_mask(), dt_masks_point_ellipse_t::border, dt_masks_point_ellipse_t::center, darktable, dt_iop_module_t::dev, dt_alloc_align_float(), DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_dev_distort_backtransform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_free_align, dt_get_wtime(), DT_MASKS_ELLIPSE_PROPORTIONAL, dt_print(), dt_masks_point_ellipse_t::flags, height, dt_iop_module_t::iop_order, M_PI, MIN, dt_masks_form_t::name, dt_dev_pixelpipe_iop_t::pipe, dt_masks_form_t::points, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, darktable_t::unmuted, and width.
|
static |
References _fill_mask(), dt_masks_point_ellipse_t::border, dt_masks_point_ellipse_t::center, darktable, dt_iop_module_t::dev, dt_alloc_align_float(), DT_DEBUG_MASKS, DT_DEBUG_PERF, dt_dev_distort_backtransform_plus(), dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_free_align, dt_get_wtime(), DT_MASKS_ELLIPSE_PROPORTIONAL, dt_print(), dt_masks_point_ellipse_t::flags, gh(), dt_iop_roi_t::height, dt_iop_module_t::iop_order, iscale, M_PI, MAX, MIN, dt_masks_form_t::name, dt_dev_pixelpipe_iop_t::pipe, dt_masks_form_t::points, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, dt_iop_roi_t::scale, darktable_t::unmuted, dt_iop_roi_t::width, dt_iop_roi_t::x, and dt_iop_roi_t::y.
|
static |
|
static |
References _ellipse_get_points(), _ellipse_get_points_source(), dt_masks_point_ellipse_t::border, dt_masks_point_ellipse_t::center, DT_MASKS_ELLIPSE_PROPORTIONAL, dt_masks_point_ellipse_t::flags, dt_masks_form_t::points, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, and dt_masks_form_t::source.
|
static |
References _points_to_transform(), dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_EXCL, DT_DEV_TRANSFORM_DIR_FORW_INCL, dt_free_align, dt_dev_pixelpipe_t::iheight, dt_iop_module_t::iop_order, dt_dev_pixelpipe_t::iwidth, and dt_develop_t::preview_pipe.
Referenced by _ellipse_get_points_border().
|
static |
References _bounding_box(), _ellipse_points_to_transform(), dt_masks_point_ellipse_t::border, darktable, darktable_t::develop, dt_dev_distort_transform_plus(), DT_DEV_TRANSFORM_DIR_BACK_INCL, dt_free_align, DT_MASKS_ELLIPSE_PROPORTIONAL, dt_masks_point_ellipse_t::flags, height, dt_iop_module_t::iop_order, MIN, dt_dev_pixelpipe_iop_t::pipe, dt_masks_form_t::points, dt_masks_point_ellipse_t::radius, dt_masks_point_ellipse_t::rotation, dt_masks_form_t::source, and width.
|
static |
References dt_conf_get_float().
|
static |
References sqf().
Referenced by _ellipse_get_distance().
|
static |
References _ellipse_cross_test().
Referenced by _ellipse_get_distance().
|
inlinestatic |
Referenced by _ellipse_draw_border(), _ellipse_draw_shape(), and _ellipse_events_post_expose().
|
static |
References dt_alloc_align_float(), and M_PI.
Referenced by _ellipse_get_area(), and _ellipse_get_source_area().
|
static |
|
static |
References dt_masks_form_t::name.
|
static |
|
static |
Referenced by _ellipse_get_mask(), and _ellipse_get_mask_roi().
|
static |
References dt_alloc_align_float(), M_PI, MAX, and MIN.
Referenced by _ellipse_get_points(), and _ellipse_get_points_source().
const dt_masks_functions_t dt_masks_functions_ellipse |
Referenced by dt_masks_calculate_source_pos_value(), and dt_masks_create().