Example #1
0
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);
}
Example #2
0
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);
}
Example #3
0
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);
}
Example #4
0
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);
}
Example #5
0
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);
}
Example #6
0
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);
}
Example #7
0
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);
}
Example #8
0
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);
}
Example #9
0
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);
}
Example #10
0
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);
}
Example #11
0
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);
}
Example #12
0
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);
}
Example #13
0
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);
}
Example #14
0
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);
}
Example #15
0
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);
}
Example #16
0
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);

}
Example #17
0
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);
}
Example #18
0
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);
}