diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2008-07-07 12:29:23 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2008-07-07 12:29:23 +0000 |
| commit | e2a4ff772b2ac0a00018b6d405a717e6f08a7ea1 (patch) | |
| tree | 8f260938ca9ed2eac4d8ce6a23b1052b579b1e2c /src/extension/internal/cairo-renderer.cpp | |
| parent | change part of calligraphic/eraser code to 2geom. (diff) | |
| download | inkscape-e2a4ff772b2ac0a00018b6d405a717e6f08a7ea1.tar.gz inkscape-e2a4ff772b2ac0a00018b6d405a717e6f08a7ea1.zip | |
fix orientation of markers
(bzr r6205)
Diffstat (limited to 'src/extension/internal/cairo-renderer.cpp')
| -rw-r--r-- | src/extension/internal/cairo-renderer.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 416bfcfb6..322efffbd 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -191,9 +191,7 @@ static void sp_shape_render (SPItem *item, CairoRenderContext *ctx) SPMarker* marker = SP_MARKER (shape->marker[SP_MARKER_LOC_START]); SPItem* marker_item = sp_item_first_item_child (SP_OBJECT (shape->marker[SP_MARKER_LOC_START])); - Geom::Point p = path_it->front().pointAt(0); - Geom::Point tang = path_it->front().unitTangentAt(0); - NR::Matrix tr(from_2geom(sp_shape_marker_get_transform(p, tang, tang))); + NR::Matrix tr(from_2geom(sp_shape_marker_get_transform_at_start(path_it->front()))); if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) { tr = NR::scale(style->stroke_width.computed) * tr; @@ -219,10 +217,7 @@ static void sp_shape_render (SPItem *item, CairoRenderContext *ctx) SPMarker* marker = SP_MARKER (shape->marker[SP_MARKER_LOC_MID]); SPItem* marker_item = sp_item_first_item_child (SP_OBJECT (shape->marker[SP_MARKER_LOC_MID])); - Geom::Point p = curve_it1->pointAt(1); - Geom::Point tang1 = curve_it1->unitTangentAt(1); - Geom::Point tang2 = curve_it2->unitTangentAt(0); - NR::Matrix tr(from_2geom(sp_shape_marker_get_transform(p, tang1, tang2))); + NR::Matrix tr(from_2geom(sp_shape_marker_get_transform(*curve_it1, *curve_it2))); if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) { tr = NR::scale(style->stroke_width.computed) * tr; @@ -244,9 +239,7 @@ static void sp_shape_render (SPItem *item, CairoRenderContext *ctx) SPMarker* marker = SP_MARKER (shape->marker[SP_MARKER_LOC_END]); SPItem* marker_item = sp_item_first_item_child (SP_OBJECT (shape->marker[SP_MARKER_LOC_END])); - Geom::Point p = path_it->back_default().pointAt(1); - Geom::Point tang = path_it->back_default().unitTangentAt(1); - NR::Matrix tr(from_2geom(sp_shape_marker_get_transform(p, tang, tang))); + NR::Matrix tr(from_2geom(sp_shape_marker_get_transform_at_end(path_it->back_default()))); if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) { tr = NR::scale(style->stroke_width.computed) * tr; |
