static void tilt_save_args(GwyContainer *container, TiltArgs *args) { gwy_container_set_double_by_name(container, dx_key, args->dx); gwy_container_set_double_by_name(container, dy_key, args->dy); }
static void deposit_save_args(GwyContainer *container, DepositArgs *args) { gwy_container_set_double_by_name(container, size_key, args->size); // gwy_container_set_double_by_name(container, width_key, args->width); gwy_container_set_double_by_name(container, coverage_key, args->coverage); gwy_container_set_double_by_name(container, revise_key, args->revise); }
static void scale_save_args(GwyContainer *container, ScaleArgs *args) { gwy_container_set_enum_by_name(container, proportional_key, args->proportional); gwy_container_set_double_by_name(container, ratio_key, args->ratio); gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_double_by_name(container, aspectratio_key, args->aspectratio); }
static void tip_model_save_args(GwyContainer *container, TipModelArgs *args) { gwy_container_set_int32_by_name(container, nsides_key, args->nsides); gwy_container_set_double_by_name(container, angle_key, args->angle); gwy_container_set_double_by_name(container, radius_key, args->radius); gwy_container_set_double_by_name(container, theta_key, args->theta); gwy_container_set_enum_by_name(container, type_key, args->type); }
static void immerse_save_args(GwyContainer *settings, ImmerseArgs *args) { detail_id = args->detail; gwy_container_set_enum_by_name(settings, sampling_key, args->sampling); gwy_container_set_enum_by_name(settings, leveling_key, args->leveling); gwy_container_set_boolean_by_name(settings, draw_frame_key, args->draw_frame); gwy_container_set_double_by_name(settings, xpos_key, args->xpos); gwy_container_set_double_by_name(settings, ypos_key, args->ypos); }
static void wshed_save_args(GwyContainer *container, WshedArgs *args) { gwy_container_set_boolean_by_name(container, inverted_key, args->inverted); gwy_container_set_double_by_name(container, wshed_dropsize_key, args->wshed_dropsize); gwy_container_set_double_by_name(container, locate_dropsize_key, args->locate_dropsize); gwy_container_set_int32_by_name(container, locate_steps_key, args->locate_steps); gwy_container_set_int32_by_name(container, wshed_steps_key, args->wshed_steps); gwy_container_set_int32_by_name(container, locate_thresh_key, args->locate_thresh); }
static void psdflp_save_args(GwyContainer *container, PSDFLPArgs *args) { gwy_container_set_enum_by_name(container, window_key, args->window); gwy_container_set_double_by_name(container, sigma_key, args->sigma); }
static void median_save_args(GwyContainer *container, MedianBgArgs *args) { gwy_container_set_double_by_name(container, radius_key, args->size); gwy_container_set_boolean_by_name(container, do_extract_key, args->do_extract); }
static void rotate_save_args(GwyContainer *container, RotateArgs *args) { gwy_container_set_double_by_name(container, angle_key, args->angle); gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_boolean_by_name(container, expand_key, args->expand); }
static void cwt_save_args(GwyContainer *container, CWTArgs *args) { gwy_container_set_boolean_by_name(container, preserve_key, args->preserve); gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_enum_by_name(container, wavelet_key, args->wavelet); gwy_container_set_double_by_name(container, scale_key, args->scale); }
static void dwt_anisotropy_save_args(GwyContainer *container, DWTAnisotropyArgs *args) { gwy_container_set_enum_by_name(container, interp_key, args->interp); gwy_container_set_enum_by_name(container, wavelet_key, args->wavelet); gwy_container_set_double_by_name(container, ratio_key, args->ratio); gwy_container_set_int32_by_name(container, lowlimit_key, args->lowlimit); }
static void sphrev_save_args(GwyContainer *container, Sphrev1DArgs *args) { gwy_container_set_double_by_name(container, radius_key, args->size); gwy_container_set_enum_by_name(container, direction_key, args->direction); gwy_container_set_boolean_by_name(container, do_extract_key, args->do_extract); }
static void maskcor_save_args(GwyContainer *settings, MaskcorArgs *args) { kernel_id = args->kernel; gwy_container_set_enum_by_name(settings, result_key, args->result); gwy_container_set_enum_by_name(settings, method_key, args->method); gwy_container_set_double_by_name(settings, threshold_key, args->threshold); }
static void facets_save_args(GwyContainer *container, FacetsArgs *args) { gwy_container_set_double_by_name(container, tolerance_key, args->tolerance); gwy_container_set_int32_by_name(container, kernel_size_key, args->kernel_size); }
static void gedge_save_args(GwyContainer *container, GEdgeArgs *args) { gwy_container_set_double_by_name(container, threshold_laplasian_key, args->threshold_laplasian); gwy_container_set_boolean_by_name(container, update_key, args->update); }
static void cnew_save_args(GwyContainer *container, CNewArgs *args) { gwy_container_set_double_by_name(container, xrange_from_key, args->xrange_from); gwy_container_set_double_by_name(container, xrange_to_key, args->xrange_to); gwy_container_set_double_by_name(container, yrange_from_key, args->yrange_from); gwy_container_set_double_by_name(container, yrange_to_key, args->yrange_to); gwy_container_set_double_by_name(container, zrange_from_key, args->zrange_from); gwy_container_set_double_by_name(container, zrange_to_key, args->zrange_to); }
static void noise_synth_save_args(GwyContainer *container, const NoiseSynthArgs *args, const GwyDimensionArgs *dimsargs) { gwy_container_set_int32_by_name(container, active_page_key, args->active_page); gwy_container_set_boolean_by_name(container, update_key, args->update); gwy_container_set_int32_by_name(container, seed_key, args->seed); gwy_container_set_boolean_by_name(container, randomize_key, args->randomize); gwy_container_set_enum_by_name(container, distribution_key, args->distribution); gwy_container_set_enum_by_name(container, direction_key, args->direction); gwy_container_set_double_by_name(container, sigma_key, args->sigma); gwy_dimensions_save_args(dimsargs, container, prefix); }
static void gwy_data_field_facet_distribution(GwyDataField *dfield, gint kernel_size, GwyContainer *container) { GwyDataField *dtheta, *dphi, *dist; GwySIUnit *siunit; gdouble *xd, *yd, *data; const gdouble *xdc, *ydc; gdouble q, max; gint res, hres, i, j, mi, mj, xres, yres; if (gwy_container_gis_object_by_name(container, "/theta", &dtheta)) g_object_ref(dtheta); else dtheta = gwy_data_field_new_alike(dfield, FALSE); if (gwy_container_gis_object_by_name(container, "/phi", &dphi)) g_object_ref(dphi); else dphi = gwy_data_field_new_alike(dfield, FALSE); compute_slopes(dfield, kernel_size, dtheta, dphi); xres = gwy_data_field_get_xres(dfield); yres = gwy_data_field_get_yres(dfield); xd = gwy_data_field_get_data(dtheta); yd = gwy_data_field_get_data(dphi); for (i = xres*yres; i; i--, xd++, yd++) { gdouble theta, phi; slopes_to_angles(*xd, *yd, &theta, &phi); *xd = theta; *yd = phi; } q = gwy_data_field_get_max(dtheta); q = MIN(q*1.05, G_PI/2.0); q = G_SQRT2/(2.0*sin(q/2.0)); if (gwy_container_gis_object_by_name(container, "/0/data", &dist)) { g_object_ref(dist); gwy_data_field_clear(dist); gwy_data_field_set_xreal(dist, 2.0*G_SQRT2/q); gwy_data_field_set_yreal(dist, 2.0*G_SQRT2/q); } else { dist = gwy_data_field_new(FDATA_RES, FDATA_RES, 2.0*G_SQRT2/q, 2.0*G_SQRT2/q, TRUE); siunit = gwy_si_unit_new(""); gwy_data_field_set_si_unit_z(dist, siunit); g_object_unref(siunit); /* FIXME */ siunit = gwy_si_unit_new(""); gwy_data_field_set_si_unit_xy(dist, siunit); g_object_unref(siunit); } res = FDATA_RES; hres = (res - 1)/2; data = gwy_data_field_get_data(dist); xdc = gwy_data_field_get_data_const(dtheta); ydc = gwy_data_field_get_data_const(dphi); for (i = xres*yres; i; i--, xdc++, ydc++) { gdouble x, y; gint xx, yy; angles_to_xy(*xdc, *ydc, &x, &y); xx = GWY_ROUND(q*x/G_SQRT2*hres) + hres; yy = GWY_ROUND(q*y/G_SQRT2*hres) + hres; data[yy*res + xx] += 1.0; } /* Find maxima */ mi = mj = hres; max = 0; for (i = 1; i+1 < res; i++) { for (j = 1; j+1 < res; j++) { gdouble z; z = data[i*res + j] + 0.3*(data[i*res + j - 1] + data[i*res + j + 1] + data[i*res - res + j] + data[i*res + res + j]) + 0.1*(data[i*res - res + j - 1] + data[i*res - res + j + 1] + data[i*res + res + j - 1] + data[i*res + res + j + 1]); if (G_UNLIKELY(z > max)) { max = z; mi = i; mj = j; } } } for (i = res*res; i; i--, data++) *data = pow(*data, 0.35); gwy_container_set_double_by_name(container, "/q", q); { gdouble x, y, theta, phi; x = (mj - hres)*G_SQRT2/(q*hres); y = (mi - hres)*G_SQRT2/(q*hres); xy_to_angles(x, y, &theta, &phi); gwy_container_set_double_by_name(container, "/theta0", theta); gwy_container_set_double_by_name(container, "/phi0", phi); } gwy_container_set_object_by_name(container, "/0/data", dist); g_object_unref(dist); gwy_container_set_object_by_name(container, "/theta", dtheta); g_object_unref(dtheta); gwy_container_set_object_by_name(container, "/phi", dphi); g_object_unref(dphi); gwy_container_set_string_by_name(container, "/0/base/palette", g_strdup(FVIEW_GRADIENT)); gwy_data_field_data_changed(dist); }