summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/cairo-renderer.cpp
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2008-07-07 12:29:23 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2008-07-07 12:29:23 +0000
commite2a4ff772b2ac0a00018b6d405a717e6f08a7ea1 (patch)
tree8f260938ca9ed2eac4d8ce6a23b1052b579b1e2c /src/extension/internal/cairo-renderer.cpp
parentchange part of calligraphic/eraser code to 2geom. (diff)
downloadinkscape-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.cpp13
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;