コード例 #1
0
ファイル: adg-logo.c プロジェクト: ntd/adg
static void
_adg_render(AdgEntity *entity, cairo_t *cr)
{
    AdgLogoClassPrivate *data_class = ADG_LOGO_GET_CLASS(entity)->data_class;
    AdgLogoPrivate *data = adg_logo_get_instance_private((AdgLogo *) entity);
    const cairo_path_t *cairo_path;

    cairo_transform(cr, adg_entity_get_global_matrix(entity));
    cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND);

    cairo_path = adg_trail_get_cairo_path((AdgTrail *) data_class->symbol);
    if (cairo_path != NULL) {
        cairo_save(cr);
        cairo_transform(cr, adg_entity_get_local_matrix(entity));
        cairo_append_path(cr, cairo_path);
        cairo_restore(cr);

        cairo_set_line_width(cr, 3);
        adg_entity_apply_dress(entity, data->symbol_dress, cr);

        cairo_stroke(cr);
    }

    cairo_path = adg_trail_get_cairo_path((AdgTrail *) data_class->screen);
    if (cairo_path != NULL) {
        cairo_save(cr);
        cairo_transform(cr, adg_entity_get_local_matrix(entity));
        cairo_append_path(cr, cairo_path);
        cairo_restore(cr);

        cairo_set_line_width(cr, 2);
        adg_entity_apply_dress(entity, data->screen_dress, cr);

        cairo_stroke(cr);
    }

    cairo_path = adg_trail_get_cairo_path((AdgTrail *) data_class->frame);
    if (cairo_path != NULL) {
        cairo_save(cr);
        cairo_transform(cr, adg_entity_get_local_matrix(entity));
        cairo_append_path(cr, cairo_path);
        cairo_restore(cr);

        cairo_set_line_width(cr, 2);
        cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
        adg_entity_apply_dress(entity, data->frame_dress, cr);

        cairo_stroke(cr);
    }
}
コード例 #2
0
ファイル: adg-projection.c プロジェクト: ntd/adg
static void
_adg_render(AdgEntity *entity, cairo_t *cr)
{
    AdgProjectionPrivate *data = adg_projection_get_instance_private((AdgProjection *) entity);
    AdgProjectionClassPrivate *data_class = ADG_PROJECTION_GET_CLASS(entity)->data_class;
    const cairo_path_t *cairo_path;

    cairo_transform(cr, adg_entity_get_global_matrix(entity));

    if (data_class->symbol != NULL) {
        cairo_path = adg_trail_get_cairo_path((AdgTrail *) data_class->symbol);

        cairo_save(cr);
        cairo_transform(cr, adg_entity_get_local_matrix(entity));
        cairo_append_path(cr, cairo_path);
        cairo_restore(cr);

        cairo_set_line_width(cr, 2);
        adg_entity_apply_dress(entity, data->symbol_dress, cr);

        cairo_stroke(cr);
    }

    if (data_class->axis != NULL) {
        const gdouble dashes[] = { 5, 2, 1, 2 };

        cairo_path = adg_trail_get_cairo_path((AdgTrail *) data_class->axis);

        cairo_save(cr);
        cairo_transform(cr, adg_entity_get_local_matrix(entity));
        cairo_append_path(cr, cairo_path);
        cairo_restore(cr);

        cairo_set_line_width(cr, 1);
        cairo_set_dash(cr, dashes, G_N_ELEMENTS(dashes), -1.5);
        adg_entity_apply_dress(entity, data->axis_dress, cr);

        cairo_stroke(cr);
    }
}
コード例 #3
0
ファイル: adg-stroke.c プロジェクト: bert/adg
static void
_adg_render(AdgEntity *entity, cairo_t *cr)
{
    AdgStroke *stroke;
    AdgStrokePrivate *data;
    const cairo_path_t *cairo_path;

    stroke = (AdgStroke *) entity;
    data = stroke->data;
    cairo_path = adg_trail_get_cairo_path(data->trail);

    if (cairo_path != NULL) {
        cairo_transform(cr, adg_entity_get_global_matrix(entity));

        cairo_save(cr);
        cairo_transform(cr, adg_entity_get_local_matrix(entity));
        cairo_append_path(cr, cairo_path);
        cairo_restore(cr);

        adg_entity_apply_dress(entity, data->line_dress, cr);
        cairo_stroke(cr);
    }
}
コード例 #4
0
ファイル: adg-adim.c プロジェクト: bert/adg
static void
_adg_render(AdgEntity *entity, cairo_t *cr)
{
    AdgADim *adim;
    AdgDim *dim;
    AdgADimPrivate *data;
    AdgDimStyle *dim_style;
    AdgDress dress;
    const cairo_path_t *cairo_path;

    adim = (AdgADim *) entity;
    data = adim->data;

    if (!data->geometry_arranged) {
        /* Entity not arranged, probably due to undefined pair found */
        return;
    }

    dim = (AdgDim *) entity;
    dim_style = _ADG_GET_DIM_STYLE(dim);

    adg_style_apply((AdgStyle *) dim_style, entity, cr);
    adg_entity_render((AdgEntity *) adg_dim_get_quote(dim), cr);

    if (data->marker1 != NULL)
        adg_entity_render((AdgEntity *) data->marker1, cr);
    if (data->marker2 != NULL)
        adg_entity_render((AdgEntity *) data->marker2, cr);

    cairo_transform(cr, adg_entity_get_global_matrix(entity));
    dress = adg_dim_style_get_line_dress(dim_style);
    adg_entity_apply_dress(entity, dress, cr);

    cairo_path = adg_trail_get_cairo_path(data->trail);
    cairo_append_path(cr, cairo_path);
    cairo_stroke(cr);
}