Commit f7fb346c authored by zimmermann@webkit.org's avatar zimmermann@webkit.org
Browse files

2010-01-06 Nikolas Zimmermann <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Marker code is buggy: referencePoint translation is off
        https://bugs.webkit.org/show_bug.cgi?id=33012

        Rewrite marker code, as it had many issues:
        - Correct refX/refY handling (covered by new marker-referencePoint.svg test)
        - Calculate marker bounds on layout time, instead of paint time, to deliver correct repaint rects
        - Cleanup RenderPath code, which was cluttered by marker stuff (outlay in SVGMarkerLayoutInfo)
        - Fix SVGResource assuming that there is only one resource per resource type per element. Markers
          can have three different resources of the same type (three markers, start/mid/end markers)

        Filed bug 33115 (PathElementAddQuadCurveToPoint not handled for <marker>), which was just a TODO in the code before.

        Fixes all svg/custom/marker*.svg tests, that use dynamic updates (propagation failed before).
        Test: svg/custom/marker-referencePoint.svg
              svg/custom/marker-opacity.svg
              svg/custom/marker-strokeWidth-changes.svg

        * Android.mk: Add SVGMarkerData.h / SVGMarkerLayoutInfo.(cpp,h) to build.
        * GNUmakefile.am: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.pro: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * page/FrameView.cpp: Notify RenderSVGRoot children about viewport size changes, just like it's handled for <body> in HTML.
        (WebCore::FrameView::layout): This is important, as marker bounding boxes may depend on the current viewport size through relative coordinates used in <svg>.
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::markerBoundingBox): Calculates and caches marker boundaries in the layout() phase.
        (WebCore::RenderPath::repaintRectInLocalCoordinates): Use the cached marker bounding box during paint() time.
        (WebCore::RenderPath::setPath): Clear marker boundaries upon path changes.
        (WebCore::RenderPath::paint): Use SVGMarkerLayoutInfo::drawMarkers() instead of the local drawMarkersIfNeeded() function, which is gone now.
        (WebCore::RenderPath::calculateMarkerBoundsIfNeeded): Utilized by markerBoundingBox() to request SVGResourceMarker objects and calculate their boundaries.
        * rendering/RenderPath.h: Store SVGMarkerLayoutInfo objects, and rename m_markerBounds to m_cachedLocalMarkerBBox for consistency.
        (WebCore::RenderPath::path): Inline this accessor.
        * rendering/RenderSVGContainer.h: Make paint() public (to be used from SVGResourceMarker), all other methods protected (to be used from RenderSVGViewportContainer).
        * rendering/RenderSVGViewportContainer.cpp: Remove useless paint() override, as the comment in the code indicated.
        (WebCore::RenderSVGViewportContainer::markerBoundaries): Maps the marker contents repaintRectInLocalCoordinates() into the final coordinate system (see code).
        (WebCore::RenderSVGViewportContainer::markerContentTransformation): Add marker-specific helper method, allowing to make viewportTransform() private again.
        * rendering/RenderSVGViewportContainer.h: Marking viewportTransform() private, it's never meant to be used outside this renderer.
        * rendering/SVGMarkerData.h: Added. Refactored from existing RenderPath code, preserving original copyrights.
        (WebCore::SVGMarkerData::): Helper struct for SVGMarkerLayoutInfo.
        (WebCore::SVGMarkerData::origin): Holds the final computed destination of a marker.
        (WebCore::SVGMarkerData::marker): Holds a pointer to the associated SVGResourceMarker object, which we're aiming to layout.
        (WebCore::SVGMarkerData::currentAngle): Calculates the current angle for a certain marker type (start/mid/end) based upon the computed inslope/outslope values.
        (WebCore::SVGMarkerData::updateTypeAndMarker): Helper method.
        (WebCore::SVGMarkerData::updateOutslope): Ditto.
        (WebCore::SVGMarkerData::updateMarkerDataForPathElement): Does the actual inslope/outslope calculation.
        (WebCore::SVGMarkerData::updateInslope): Helper method.
        * rendering/SVGMarkerLayoutInfo.cpp: Added. New approach to build marker layout info, this time correct during layout() time instead of paint() time.
        (WebCore::SVGMarkerLayoutInfo::SVGMarkerLayoutInfo):
        (WebCore::SVGMarkerLayoutInfo::~SVGMarkerLayoutInfo):
        (WebCore::processStartAndMidMarkers): Static helper method used to visit each path element in order to calculate inslopes/outslopes (-> orientation angles)
        (WebCore::SVGMarkerLayoutInfo::calculateBoundaries): Build list of MarkerLayout objects, used to query boundaries, and to paint markers during drawMarkers().
        (WebCore::SVGMarkerLayoutInfo::drawMarkers): Cheap method walking existing MarkerLayout vector, drawing the individual RenderSVGViewportContainer of the markers.
        (WebCore::SVGMarkerLayoutInfo::addLayoutedMarker): Helper method.
        * rendering/SVGMarkerLayoutInfo.h: Added.
        (WebCore::MarkerLayout::MarkerLayout): Helper struct storing a pair of SVGResourceMarker* and a TranformationMatrix.
        (WebCore::SVGMarkerLayoutInfo::markerData): Public helper methods returning references to private member variables, used from processStartAndMidMarkers.
        (WebCore::SVGMarkerLayoutInfo::midMarker): Ditto.
        (WebCore::SVGMarkerLayoutInfo::elementIndex): Ditto.
        * svg/SVGMarkerElement.cpp: Adopt to name change: setRef() -> setReferencePoint(). setMarker() -> setRenderer()
        (WebCore::SVGMarkerElement::~SVGMarkerElement): Remove obsolete detach() hack, fixed by SVGUseElement changes.
        (WebCore::SVGMarkerElement::canvasResource): Add ASSERT(renderer()) to clarify that canvasResource() is only meant to used after renderer creation.
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::~SVGSVGElement): Remove obsolete detach() hack, fixed by SVGUseElement changes.
        * svg/SVGUseElement.cpp: Rework buildPendingResource() to remove SVGSVGElement/SVGMarkerElement detach() hacks (called manually from destructors), see below.
        (WebCore::SVGUseElement::buildPendingResource): Always detach() the shadow tree root element, before destructing it - this caused the regression with this patch before.
        * svg/graphics/SVGResource.cpp: Instead of maintaining a global hashmap between SVGStyledElements and an array of possible SVGResources, use a HashSet of SVGResources
                                        and directly scan the already existing list of clients for a certain SVGResource. This wrong approach has been introduced over two years
                                        ago, making the assumption that there's only one resource type per element. Though markers can provide three resources of the same type
                                        per element (all SVGResourceMarker objects, but in different rules: start/mid/end marker). That information is only available while painting.
        (WebCore::resourceSet): Add global static HashSet<SVGResource*>.
        (WebCore::SVGResource::SVGResource): Add us to the resourceSet.
        (WebCore::SVGResource::~SVGResource): Remove us from resourceSet.
        (WebCore::SVGResource::removeClient): Traverse all SVGResource clients and remove the passed SVGStyledElement from the client list (invoked by SVGStyledElement destructor).
        (WebCore::SVGResource::addClient): Remove the offending part of the old approach, making the wrong assumption regarding resource types.
        * svg/graphics/SVGResourceMarker.cpp:
        (WebCore::SVGResourceMarker::SVGResourceMarker):
        (WebCore::SVGResourceMarker::markerTransformation): Create TransformationMatrix in the local marker content (RenderSVGViewportContainer) coordinate system, to position a marker.
        (WebCore::SVGResourceMarker::draw): Simplify marker drawing a lot: used the passing TransformationMatrix (cached in SVGMarkerLayoutInfo) to draw the marker content renderer.
        (WebCore::SVGResourceMarker::externalRepresentation): Adopt to refX/refY -> referencePoint changes.
        * svg/graphics/SVGResourceMarker.h: Store a FloatPoint m_referecePoint instead of two refX/refY float values.
        (WebCore::SVGResourceMarker::setRenderer): Renamed from setMarker().
        (WebCore::SVGResourceMarker::setReferencePoint): Renamed from setRef().
        (WebCore::SVGResourceMarker::referencePoint): New accessor replacing refX() / refY().


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52866 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent aaef148b
2010-01-06 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Marker code is buggy: referencePoint translation is off
https://bugs.webkit.org/show_bug.cgi?id=33012
Update SVG test baseline, after rewriting marker support.
* platform/mac/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
* platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
* platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
* platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
* platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
* platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
* platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt:
* platform/mac/svg/custom/js-late-marker-creation-expected.txt:
* platform/mac/svg/custom/marker-changes-expected.checksum:
* platform/mac/svg/custom/marker-changes-expected.png:
* platform/mac/svg/custom/marker-changes-expected.txt:
* platform/mac/svg/custom/marker-child-changes-expected.checksum:
* platform/mac/svg/custom/marker-child-changes-expected.png:
* platform/mac/svg/custom/marker-child-changes-expected.txt:
* platform/mac/svg/custom/marker-default-width-height-expected.txt:
* platform/mac/svg/custom/marker-opacity-expected.checksum: Added.
* platform/mac/svg/custom/marker-opacity-expected.png: Added.
* platform/mac/svg/custom/marker-opacity-expected.txt: Added.
* platform/mac/svg/custom/marker-referencePoint-expected.checksum: Added.
* platform/mac/svg/custom/marker-referencePoint-expected.png: Added.
* platform/mac/svg/custom/marker-referencePoint-expected.txt: Added.
* platform/mac/svg/custom/marker-strokeWidth-changes-expected.checksum: Added.
* platform/mac/svg/custom/marker-strokeWidth-changes-expected.png: Added.
* platform/mac/svg/custom/marker-strokeWidth-changes-expected.txt: Added.
* platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
* platform/mac/svg/custom/marker-viewBox-changes-expected.png:
* platform/mac/svg/custom/marker-viewBox-changes-expected.txt:
* platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
* platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
* svg/custom/marker-opacity.svg: Added.
* svg/custom/marker-referencePoint.svg: Added.
* svg/custom/marker-strokeWidth-changes.svg: Added.
2010-01-06 Dirk Schulze <krit@webkit.org>
 
Reviewed by Nikolas Zimmermann.
......@@ -21,7 +21,7 @@ layer at (0,0) size 480x360
RenderSVGText {text} at (170,30) size 90x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 90x16
chunk 1 text run 1 at (170.00,30.00) startOffset 0 endOffset 13 width 90.00: "Basic Markers"
RenderPath {path} at (130,36) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M130.00,40.00 L180.00,40.00 L180.00,90.00"]
RenderPath {path} at (122,32) size 66x66 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M130.00,40.00 L180.00,40.00 L180.00,90.00"]
RenderSVGContainer {g} at (242,32) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
RenderPath {path} at (250,36) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [data="M130.00,40.00 L180.00,40.00 L180.00,90.00"]
RenderSVGContainer {g} at (242,32) size 16x16 [transform={m=((1.60,0.00)(0.00,1.60)) t=(122.00,32.00)}]
......@@ -33,7 +33,7 @@ layer at (0,0) size 480x360
RenderSVGText {text} at (145,125) size 137x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 137x16
chunk 1 text run 1 at (145.00,125.00) startOffset 0 endOffset 21 width 137.00: "Start, Middle and End"
RenderPath {path} at (130,131) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
RenderPath {path} at (122,127) size 66x66 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
RenderSVGContainer {g} at (242,127) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
RenderPath {path} at (250,131) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
RenderSVGContainer {g} at (242,127) size 16x16 [transform={m=((1.60,0.00)(0.00,1.60)) t=(122.00,127.00)}]
......@@ -45,7 +45,7 @@ layer at (0,0) size 480x360
RenderSVGText {text} at (145,220) size 137x16 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-13) size 137x16
chunk 1 text run 1 at (145.00,220.00) startOffset 0 endOffset 21 width 137.00: "Automatic Orientation"
RenderPath {path} at (130,226) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=marker2] [middle marker=marker2] [end marker=marker2] [data="M130.00,230.00 L180.00,230.00 L180.00,280.00"]
RenderPath {path} at (122,218.69) size 69.31x69.31 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=marker2] [middle marker=marker2] [end marker=marker2] [data="M130.00,230.00 L180.00,230.00 L180.00,280.00"]
RenderSVGContainer {g} at (242,218.69) size 69.31x69.31 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
RenderPath {path} at (250,226) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [data="M130.00,230.00 L180.00,230.00 L180.00,280.00"]
RenderSVGContainer {g} at (242,222) size 16x16 [transform={m=((1.60,0.00)(0.00,1.60)) t=(122.00,222.00)}]
......
......@@ -19,7 +19,7 @@ layer at (0,0) size 480x360
RenderSVGText {text} at (100,140) size 54x11 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-9) size 54x11
chunk 1 text run 1 at (100.00,140.00) startOffset 0 endOffset 13 width 54.00: "Fill Property"
RenderPath {path} at (30,60) size 50x50 [fill={[type=SOLID] [color=#000000]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M30.00,60.00 L80.00,60.00 L80.00,110.00 Z"]
RenderPath {path} at (22,52) size 66x66 [fill={[type=SOLID] [color=#000000]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M30.00,60.00 L80.00,60.00 L80.00,110.00 Z"]
RenderSVGContainer {g} at (142,52) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
RenderPath {path} at (150,60) size 50x50 [fill={[type=SOLID] [color=#000000]}] [data="M30.00,60.00 L80.00,60.00 L80.00,110.00 Z"]
RenderSVGContainer {g} at (142,52) size 16x16 [transform={m=((8.00,0.00)(0.00,8.00)) t=(22.00,52.00)}]
......@@ -40,7 +40,7 @@ layer at (0,0) size 480x360
RenderSVGText {text} at (340,140) size 72x11 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-9) size 72x11
chunk 1 text run 1 at (340.00,140.00) startOffset 0 endOffset 15 width 72.00: "Stroke Property"
RenderPath {path} at (265.17,58) size 56.83x56.83 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [start marker=marker2] [middle marker=marker2] [end marker=marker2] [data="M270.00,60.00 L320.00,60.00 L320.00,110.00 Z"]
RenderPath {path} at (260.40,50.40) size 69.20x69.20 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [start marker=marker2] [middle marker=marker2] [end marker=marker2] [data="M270.00,60.00 L320.00,60.00 L320.00,110.00 Z"]
RenderSVGContainer {g} at (382,52) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
RenderPath {path} at (385.17,58) size 56.83x56.83 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [data="M270.00,60.00 L320.00,60.00 L320.00,110.00 Z"]
RenderSVGContainer {g} at (382,52) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(262.00,52.00)}]
......@@ -60,11 +60,11 @@ layer at (0,0) size 480x360
RenderPath {rect} at (-0.80,-0.80) size 5.60x5.60 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
RenderSVGViewportContainer {marker} at (-0.80,-0.80) size 5.60x5.60
RenderPath {rect} at (-0.80,-0.80) size 5.60x5.60 [stroke={[type=SOLID] [color=#0000FF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
RenderSVGContainer {g} at (25.17,182) size 182.83x90
RenderSVGContainer {g} at (18.80,178.80) size 189.20x93.20
RenderSVGText {text} at (90,270) size 77x11 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-9) size 77x11
chunk 1 text run 1 at (90.00,270.00) startOffset 0 endOffset 16 width 77.00: "Mixed Properties"
RenderPath {path} at (25.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker3] [middle marker=marker3] [end marker=marker3] [data="M30.00,190.00 L80.00,190.00 L80.00,240.00 Z"]
RenderPath {path} at (18.80,178.80) size 72.40x72.40 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker3] [middle marker=marker3] [end marker=marker3] [data="M30.00,190.00 L80.00,190.00 L80.00,240.00 Z"]
RenderSVGContainer {g} at (142,182) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
RenderPath {path} at (145.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M30.00,190.00 L80.00,190.00 L80.00,240.00 Z"]
RenderSVGContainer {g} at (142,182) size 66x66
......@@ -80,11 +80,11 @@ layer at (0,0) size 480x360
RenderSVGContainer {g} at (192,232) size 16x16 [clip path="overflowHiddenClip"]
RenderSVGContainer {g} at (188.80,228.80) size 22.40x22.40 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
RenderPath {rect} at (188.80,228.80) size 22.40x22.40 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
RenderSVGContainer {g} at (265.17,182) size 182.83x90
RenderSVGContainer {g} at (258.80,178.80) size 189.20x93.20
RenderSVGText {text} at (340,270) size 77x11 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-9) size 77x11
chunk 1 text run 1 at (340.00,270.00) startOffset 0 endOffset 16 width 77.00: "Mixed Properties"
RenderPath {path} at (265.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker4] [middle marker=marker4] [end marker=marker4] [data="M270.00,190.00 L320.00,190.00 L320.00,240.00 Z"]
RenderPath {path} at (258.80,178.80) size 72.40x72.40 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [start marker=marker4] [middle marker=marker4] [end marker=marker4] [data="M270.00,190.00 L320.00,190.00 L320.00,240.00 Z"]
RenderSVGContainer {g} at (382,182) size 66x66 [transform={m=((1.00,0.00)(0.00,1.00)) t=(120.00,0.00)}]
RenderPath {path} at (385.17,188) size 56.83x56.83 [stroke={[type=SOLID] [color=#800080] [stroke width=4.00]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M270.00,190.00 L320.00,190.00 L320.00,240.00 Z"]
RenderSVGContainer {g} at (382,182) size 66x66
......
......@@ -15,21 +15,21 @@ layer at (0,0) size 480x360
RenderSVGText {text} at (170,70) size 140x23 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-18) size 140x23
chunk 1 (middle anchor) text run 1 at (170.00,70.00) startOffset 0 endOffset 17 width 140.00: "'marker' property"
RenderSVGContainer {g} at (59.50,79.50) size 360.83x81 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,20.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1]
RenderPath {path} at (59.50,79.50) size 81x81 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"]
RenderPath {polygon} at (149.50,79.88) size 81x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"]
RenderPath {polyline} at (239.51,79.88) size 80.99x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"]
RenderPath {line} at (329.67,79.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"]
RenderPath {line} at (329.67,79.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"]
RenderSVGContainer {g} at (57.50,77.50) size 365x85 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,20.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1]
RenderPath {path} at (57.50,77.50) size 85x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"]
RenderPath {polygon} at (147.50,77.50) size 85x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"]
RenderPath {polyline} at (237.50,77.50) size 85x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"]
RenderPath {line} at (327.50,77.50) size 95x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"]
RenderPath {line} at (327.50,77.50) size 95x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"]
RenderSVGText {text} at (27,200) size 426x23 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-18) size 426x23
chunk 1 (middle anchor) text run 1 at (27.00,200.00) startOffset 0 endOffset 53 width 426.00: "'marker-start', 'marker-mid' & 'marker-end' attribute"
RenderSVGContainer {g} at (59.50,209.50) size 360.83x81 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,150.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1]
RenderPath {path} at (59.50,209.50) size 81x81 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"]
RenderPath {polygon} at (149.50,209.88) size 81x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"]
RenderPath {polyline} at (239.51,209.88) size 80.99x80.24 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"]
RenderPath {line} at (329.67,209.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"]
RenderPath {line} at (329.67,209.63) size 90.66x80.75 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"]
RenderSVGContainer {g} at (57.50,207.50) size 365x85 [transform={m=((1.00,0.00)(0.00,1.00)) t=(50.00,150.00)}] [start marker=marker1] [middle marker=marker1] [end marker=marker1]
RenderPath {path} at (57.50,207.50) size 85x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M10.00,60.00 C63.33,60.00,90.00,86.67,90.00,140.00 C36.67,140.00,10.00,113.33,10.00,60.00 Z M10.00,140.00 C10.00,86.67,36.67,60.00,90.00,60.00 C90.00,113.33,63.33,140.00,10.00,140.00 Z M50.00,70.00 L80.00,100.00 L50.00,130.00 L20.00,100.00 Z"]
RenderPath {polygon} at (147.50,207.50) size 85x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M100.00,60.00 L120.00,140.00 L140.00,60.00 L160.00,140.00 L180.00,60.00 L180.00,100.00 L100.00,100.00 Z"]
RenderPath {polyline} at (237.50,207.50) size 85x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M190.00,60.00 L210.00,140.00 L230.00,60.00 L250.00,140.00 L270.00,60.00 L270.00,100.00 L190.00,100.00"]
RenderPath {line} at (327.50,207.50) size 95x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M280.00,60.00 L370.00,140.00"]
RenderPath {line} at (327.50,207.50) size 95x85 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#FFD700] [fill rule=EVEN-ODD]}] [start marker=marker1] [middle marker=marker1] [end marker=marker1] [data="M370.00,60.00 L280.00,140.00"]
RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-36) size 264x46
chunk 1 text run 1 at (10.00,340.00) startOffset 0 endOffset 16 width 264.00: "$Revision: 1.9 $"
......
......@@ -2,8 +2,8 @@ KCanvasResource {id="mark" [type=MARKER] [angle=0.00] [ref x=4.00 y=4.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (235,345) size 330x30
RenderSVGRoot {svg} at (108.67,265.08) size 458.91x109.92
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGViewportContainer {marker} at (-2.06,-0.94) size 4.12x0.38
RenderPath {path} at (-2.06,-0.94) size 4.12x0.38 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
RenderSVGViewportContainer {marker} at (-3.21,-1.66) size 5.30x1.10
RenderPath {path} at (-3.21,-1.66) size 5.30x1.10 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderPath {path} at (108.67,265.08) size 458.91x109.92 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
......@@ -2,9 +2,9 @@ KCanvasResource {id="mark" [type=MARKER] [angle=0.00] [ref x=4.00 y=4.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (235,225) size 330x150 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderSVGRoot {svg} at (210.63,200.63) size 378.74x198.74 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderSVGHiddenContainer {defs} at (0,0) size 0x0 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderSVGViewportContainer {marker} at (0.19,0.19) size 2.62x2.62 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderPath {circle} at (0.19,0.19) size 2.62x2.62 [stroke={[type=SOLID] [color=#FF0000] [line cap=ROUND]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M7.00,4.00 L6.99,4.19 L6.98,4.38 L6.95,4.56 L6.91,4.75 L6.85,4.93 L6.79,5.10 L6.71,5.28 L6.63,5.45 L6.53,5.61 L6.43,5.76 L6.31,5.91 L6.19,6.05 L6.05,6.19 L5.91,6.31 L5.76,6.43 L5.61,6.53 L5.45,6.63 L5.28,6.71 L5.10,6.79 L4.93,6.85 L4.75,6.91 L4.56,6.95 L4.38,6.98 L4.19,6.99 L4.00,7.00 L3.81,6.99 L3.62,6.98 L3.44,6.95 L3.25,6.91 L3.07,6.85 L2.90,6.79 L2.72,6.71 L2.55,6.63 L2.39,6.53 L2.24,6.43 L2.09,6.31 L1.95,6.19 L1.81,6.05 L1.69,5.91 L1.57,5.76 L1.47,5.61 L1.37,5.45 L1.29,5.28 L1.21,5.10 L1.15,4.93 L1.09,4.75 L1.05,4.56 L1.02,4.38 L1.01,4.19 L1.00,4.00 L1.01,3.81 L1.02,3.62 L1.05,3.44 L1.09,3.25 L1.15,3.07 L1.21,2.90 L1.29,2.72 L1.37,2.55 L1.47,2.39 L1.57,2.24 L1.69,2.09 L1.81,1.95 L1.95,1.81 L2.09,1.69 L2.24,1.57 L2.39,1.47 L2.55,1.37 L2.72,1.29 L2.90,1.21 L3.07,1.15 L3.25,1.09 L3.44,1.05 L3.62,1.02 L3.81,1.01 L4.00,1.00 L4.19,1.01 L4.38,1.02 L4.56,1.05 L4.75,1.09 L4.93,1.15 L5.10,1.21 L5.28,1.29 L5.45,1.37 L5.61,1.47 L5.76,1.57 L5.91,1.69 L6.05,1.81 L6.19,1.95 L6.31,2.09 L6.43,2.24 L6.53,2.39 L6.63,2.55 L6.71,2.72 L6.79,2.90 L6.85,3.07 L6.91,3.25 L6.95,3.44 L6.98,3.62 L6.99,3.81 Z"]
RenderPath {path} at (235,225) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
RenderPath {path} at (210.63,200.63) size 378.74x78.74 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderPath {path} at (210.63,320.63) size 378.74x78.74 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
......@@ -2,8 +2,8 @@ KCanvasResource {id="mark" [type=MARKER] [angle=0.00] [ref x=4.00 y=4.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (235,345) size 330x30 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderSVGRoot {svg} at (108.67,265.08) size 458.91x109.92 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderSVGHiddenContainer {defs} at (0,0) size 0x0 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderSVGViewportContainer {marker} at (-2.06,-0.94) size 4.12x0.38 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderPath {path} at (-2.06,-0.94) size 4.12x0.38 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
RenderSVGViewportContainer {marker} at (-3.21,-1.66) size 5.30x1.10 [start marker=mark] [middle marker=mark] [end marker=mark]
RenderPath {path} at (-3.21,-1.66) size 5.30x1.10 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderPath {path} at (108.67,265.08) size 458.91x109.92 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark] [middle marker=mark] [end marker=mark] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
......@@ -3,9 +3,9 @@ KCanvasResource {id="mark2" [type=MARKER] [angle=0.00] [ref x=4.00 y=4.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (235,271.88) size 330x103.12
RenderSVGViewportContainer {marker} at (338.12,271.88) size 123.75x11.25
RenderPath {path} at (338.12,271.88) size 123.75x11.25 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark2] [middle marker=mark2] [end marker=mark2] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderSVGViewportContainer {marker} at (338.12,316.88) size 123.75x11.25
RenderPath {path} at (338.12,316.88) size 123.75x11.25 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
RenderPath {path} at (235,345) size 330x30 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
RenderSVGRoot {svg} at (95.75,258.78) size 472.09x116.22
RenderSVGViewportContainer {marker} at (290.75,258.78) size 172.09x24.35
RenderPath {path} at (290.75,258.78) size 172.09x24.35 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark2] [middle marker=mark2] [end marker=mark2] [data="M-5.00,-2.00 L0.00,-2.00 L5.00,-2.00"]
RenderSVGViewportContainer {marker} at (303.67,295.08) size 158.91x33.05
RenderPath {path} at (303.67,295.08) size 158.91x33.05 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
RenderPath {path} at (95.75,273.78) size 472.09x101.22 [stroke={[type=SOLID] [color=#000000] [line cap=ROUND]}] [fill={[type=SOLID] [color=#000000]}] [start marker=mark1] [middle marker=mark1] [end marker=mark1] [data="M-5.00,2.00 L0.00,2.00 L5.00,2.00"]
......@@ -4,7 +4,7 @@ KCanvasResource {id="markerMiddle" [type=MARKER] [angle=0.00] [ref x=5.00 y=5.00
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (216.67,218.33) size 90.00x90
RenderSVGRoot {svg} at (203.33,211.67) size 110x110.00
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {rect} at (0,0) size 2x2 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
......@@ -12,5 +12,5 @@ layer at (0,0) size 800x600
RenderPath {path} at (0,0) size 2x2 [fill={[type=SOLID] [color=#0000FF]}] [data="M5.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {circle} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,5.00 L9.99,5.31 L9.96,5.63 L9.91,5.94 L9.84,6.24 L9.76,6.55 L9.65,6.84 L9.52,7.13 L9.38,7.41 L9.22,7.68 L9.05,7.94 L8.85,8.19 L8.64,8.42 L8.42,8.64 L8.19,8.85 L7.94,9.05 L7.68,9.22 L7.41,9.38 L7.13,9.52 L6.84,9.65 L6.55,9.76 L6.24,9.84 L5.94,9.91 L5.63,9.96 L5.31,9.99 L5.00,10.00 L4.69,9.99 L4.37,9.96 L4.06,9.91 L3.76,9.84 L3.45,9.76 L3.16,9.65 L2.87,9.52 L2.59,9.38 L2.32,9.22 L2.06,9.05 L1.81,8.85 L1.58,8.64 L1.36,8.42 L1.15,8.19 L0.95,7.94 L0.78,7.68 L0.62,7.41 L0.48,7.13 L0.35,6.84 L0.24,6.55 L0.16,6.24 L0.09,5.94 L0.04,5.63 L0.01,5.31 L0.00,5.00 L0.01,4.69 L0.04,4.37 L0.09,4.06 L0.16,3.76 L0.24,3.45 L0.35,3.16 L0.48,2.87 L0.62,2.59 L0.78,2.32 L0.95,2.06 L1.15,1.81 L1.36,1.58 L1.58,1.36 L1.81,1.15 L2.06,0.95 L2.32,0.78 L2.59,0.62 L2.87,0.48 L3.16,0.35 L3.45,0.24 L3.76,0.16 L4.06,0.09 L4.37,0.04 L4.69,0.01 L5.00,0.00 L5.31,0.01 L5.63,0.04 L5.94,0.09 L6.24,0.16 L6.55,0.24 L6.84,0.35 L7.13,0.48 L7.41,0.62 L7.68,0.78 L7.94,0.95 L8.19,1.15 L8.42,1.36 L8.64,1.58 L8.85,1.81 L9.05,2.06 L9.22,2.32 L9.38,2.59 L9.52,2.87 L9.65,3.16 L9.76,3.45 L9.84,3.76 L9.91,4.06 L9.96,4.37 L9.99,4.69 Z"]
RenderSVGContainer {g} at (216.67,218.33) size 90.00x90
RenderPath {path} at (216.67,218.33) size 90.00x90 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
RenderSVGContainer {g} at (203.33,211.67) size 110x110.00
RenderPath {path} at (203.33,211.67) size 110x110.00 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
......@@ -4,7 +4,7 @@ KCanvasResource {id="markerMiddle" [type=MARKER] [angle=0.00] [ref x=5.00 y=5.00
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (216.67,218.33) size 90.00x90
RenderSVGRoot {svg} at (203.33,211.67) size 110x110.00
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {rect} at (0,0) size 2x2 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
......@@ -12,5 +12,5 @@ layer at (0,0) size 800x600
RenderPath {path} at (0,0) size 2x2 [fill={[type=SOLID] [color=#0000FF]}] [data="M5.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {circle} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,5.00 L9.99,5.31 L9.96,5.63 L9.91,5.94 L9.84,6.24 L9.76,6.55 L9.65,6.84 L9.52,7.13 L9.38,7.41 L9.22,7.68 L9.05,7.94 L8.85,8.19 L8.64,8.42 L8.42,8.64 L8.19,8.85 L7.94,9.05 L7.68,9.22 L7.41,9.38 L7.13,9.52 L6.84,9.65 L6.55,9.76 L6.24,9.84 L5.94,9.91 L5.63,9.96 L5.31,9.99 L5.00,10.00 L4.69,9.99 L4.37,9.96 L4.06,9.91 L3.76,9.84 L3.45,9.76 L3.16,9.65 L2.87,9.52 L2.59,9.38 L2.32,9.22 L2.06,9.05 L1.81,8.85 L1.58,8.64 L1.36,8.42 L1.15,8.19 L0.95,7.94 L0.78,7.68 L0.62,7.41 L0.48,7.13 L0.35,6.84 L0.24,6.55 L0.16,6.24 L0.09,5.94 L0.04,5.63 L0.01,5.31 L0.00,5.00 L0.01,4.69 L0.04,4.37 L0.09,4.06 L0.16,3.76 L0.24,3.45 L0.35,3.16 L0.48,2.87 L0.62,2.59 L0.78,2.32 L0.95,2.06 L1.15,1.81 L1.36,1.58 L1.58,1.36 L1.81,1.15 L2.06,0.95 L2.32,0.78 L2.59,0.62 L2.87,0.48 L3.16,0.35 L3.45,0.24 L3.76,0.16 L4.06,0.09 L4.37,0.04 L4.69,0.01 L5.00,0.00 L5.31,0.01 L5.63,0.04 L5.94,0.09 L6.24,0.16 L6.55,0.24 L6.84,0.35 L7.13,0.48 L7.41,0.62 L7.68,0.78 L7.94,0.95 L8.19,1.15 L8.42,1.36 L8.64,1.58 L8.85,1.81 L9.05,2.06 L9.22,2.32 L9.38,2.59 L9.52,2.87 L9.65,3.16 L9.76,3.45 L9.84,3.76 L9.91,4.06 L9.96,4.37 L9.99,4.69 Z"]
RenderSVGContainer {g} at (216.67,218.33) size 90.00x90
RenderPath {path} at (216.67,218.33) size 90.00x90 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
RenderSVGContainer {g} at (203.33,211.67) size 110x110.00
RenderPath {path} at (203.33,211.67) size 110x110.00 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
cb9c6ae0d0cd0a862ab1a47be6272684
\ No newline at end of file
fbb0a4464cb404cec2fa22a55477ff2e
\ No newline at end of file
......@@ -4,7 +4,7 @@ KCanvasResource {id="markerEnd" [type=MARKER] [angle=0.00] [ref x=5.00 y=5.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (130,131) size 54x54
RenderSVGRoot {svg} at (122,127) size 66x66
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {rect} at (0,0) size 2x2 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
......@@ -12,5 +12,5 @@ layer at (0,0) size 800x600
RenderPath {circle} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,5.00 L9.99,5.31 L9.96,5.63 L9.91,5.94 L9.84,6.24 L9.76,6.55 L9.65,6.84 L9.52,7.13 L9.38,7.41 L9.22,7.68 L9.05,7.94 L8.85,8.19 L8.64,8.42 L8.42,8.64 L8.19,8.85 L7.94,9.05 L7.68,9.22 L7.41,9.38 L7.13,9.52 L6.84,9.65 L6.55,9.76 L6.24,9.84 L5.94,9.91 L5.63,9.96 L5.31,9.99 L5.00,10.00 L4.69,9.99 L4.37,9.96 L4.06,9.91 L3.76,9.84 L3.45,9.76 L3.16,9.65 L2.87,9.52 L2.59,9.38 L2.32,9.22 L2.06,9.05 L1.81,8.85 L1.58,8.64 L1.36,8.42 L1.15,8.19 L0.95,7.94 L0.78,7.68 L0.62,7.41 L0.48,7.13 L0.35,6.84 L0.24,6.55 L0.16,6.24 L0.09,5.94 L0.04,5.63 L0.01,5.31 L0.00,5.00 L0.01,4.69 L0.04,4.37 L0.09,4.06 L0.16,3.76 L0.24,3.45 L0.35,3.16 L0.48,2.87 L0.62,2.59 L0.78,2.32 L0.95,2.06 L1.15,1.81 L1.36,1.58 L1.58,1.36 L1.81,1.15 L2.06,0.95 L2.32,0.78 L2.59,0.62 L2.87,0.48 L3.16,0.35 L3.45,0.24 L3.76,0.16 L4.06,0.09 L4.37,0.04 L4.69,0.01 L5.00,0.00 L5.31,0.01 L5.63,0.04 L5.94,0.09 L6.24,0.16 L6.55,0.24 L6.84,0.35 L7.13,0.48 L7.41,0.62 L7.68,0.78 L7.94,0.95 L8.19,1.15 L8.42,1.36 L8.64,1.58 L8.85,1.81 L9.05,2.06 L9.22,2.32 L9.38,2.59 L9.52,2.87 L9.65,3.16 L9.76,3.45 L9.84,3.76 L9.91,4.06 L9.96,4.37 L9.99,4.69 Z"]
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {path} at (0,0) size 2x2 [fill={[type=SOLID] [color=#0000FF]}] [data="M5.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
RenderSVGContainer {g} at (130,131) size 54x54
RenderPath {path} at (130,131) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
RenderSVGContainer {g} at (122,127) size 66x66
RenderPath {path} at (122,127) size 66x66 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
f99aed7b122ebf0155573231013d80d7
\ No newline at end of file
fbb0a4464cb404cec2fa22a55477ff2e
\ No newline at end of file
......@@ -4,7 +4,7 @@ KCanvasResource {id="markerEnd" [type=MARKER] [angle=0.00] [ref x=5.00 y=5.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (130,131) size 54x54
RenderSVGRoot {svg} at (122,127) size 66x66
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {rect} at (0,0) size 2x2 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
......@@ -12,5 +12,5 @@ layer at (0,0) size 800x600
RenderPath {circle} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,5.00 L9.99,5.31 L9.96,5.63 L9.91,5.94 L9.84,6.24 L9.76,6.55 L9.65,6.84 L9.52,7.13 L9.38,7.41 L9.22,7.68 L9.05,7.94 L8.85,8.19 L8.64,8.42 L8.42,8.64 L8.19,8.85 L7.94,9.05 L7.68,9.22 L7.41,9.38 L7.13,9.52 L6.84,9.65 L6.55,9.76 L6.24,9.84 L5.94,9.91 L5.63,9.96 L5.31,9.99 L5.00,10.00 L4.69,9.99 L4.37,9.96 L4.06,9.91 L3.76,9.84 L3.45,9.76 L3.16,9.65 L2.87,9.52 L2.59,9.38 L2.32,9.22 L2.06,9.05 L1.81,8.85 L1.58,8.64 L1.36,8.42 L1.15,8.19 L0.95,7.94 L0.78,7.68 L0.62,7.41 L0.48,7.13 L0.35,6.84 L0.24,6.55 L0.16,6.24 L0.09,5.94 L0.04,5.63 L0.01,5.31 L0.00,5.00 L0.01,4.69 L0.04,4.37 L0.09,4.06 L0.16,3.76 L0.24,3.45 L0.35,3.16 L0.48,2.87 L0.62,2.59 L0.78,2.32 L0.95,2.06 L1.15,1.81 L1.36,1.58 L1.58,1.36 L1.81,1.15 L2.06,0.95 L2.32,0.78 L2.59,0.62 L2.87,0.48 L3.16,0.35 L3.45,0.24 L3.76,0.16 L4.06,0.09 L4.37,0.04 L4.69,0.01 L5.00,0.00 L5.31,0.01 L5.63,0.04 L5.94,0.09 L6.24,0.16 L6.55,0.24 L6.84,0.35 L7.13,0.48 L7.41,0.62 L7.68,0.78 L7.94,0.95 L8.19,1.15 L8.42,1.36 L8.64,1.58 L8.85,1.81 L9.05,2.06 L9.22,2.32 L9.38,2.59 L9.52,2.87 L9.65,3.16 L9.76,3.45 L9.84,3.76 L9.91,4.06 L9.96,4.37 L9.99,4.69 Z"]
RenderSVGViewportContainer {marker} at (0,0) size 2x2
RenderPath {path} at (0,0) size 2x2 [fill={[type=SOLID] [color=#0000FF]}] [data="M5.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
RenderSVGContainer {g} at (130,131) size 54x54
RenderPath {path} at (130,131) size 54x54 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
RenderSVGContainer {g} at (122,127) size 66x66
RenderPath {path} at (122,127) size 66x66 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [start marker=markerStart] [middle marker=markerMiddle] [end marker=markerEnd] [data="M130.00,135.00 L180.00,135.00 L180.00,185.00"]
......@@ -4,8 +4,8 @@ KCanvasResource {id="marker3" [type=MARKER] [angle=0.00] [ref x=5.00 y=5.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (0,0) size 643.33x283.33
RenderSVGContainer {g} at (0,0) size 643.33x283.33
RenderSVGRoot {svg} at (0,0) size 643.33x303.33
RenderSVGContainer {g} at (0,0) size 643.33x303.33
RenderSVGText {text} at (0,20) size 386x18 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,-14) size 386x18
chunk 1 text run 1 at (0.00,20.00) startOffset 0 endOffset 61 width 386.00: "This should show three markers on the path for start/mid/end."
......@@ -24,4 +24,4 @@ layer at (0,0) size 800x600
RenderPath {rect} at (0,0) size 5x5 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
RenderSVGViewportContainer {marker} at (0,0) size 5x5
RenderPath {rect} at (0,0) size 5x5 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
RenderPath {path} at (216.67,200) size 83.33x83.33 [start marker=marker1] [middle marker=marker2] [end marker=marker3] [data="M130.00,120.00 L180.00,120.00 L180.00,170.00"]
RenderPath {path} at (196.67,180) size 123.33x123.33 [start marker=marker1] [middle marker=marker2] [end marker=marker3] [data="M130.00,120.00 L180.00,120.00 L180.00,170.00"]
8ab6ae697714c4e19416ea307d94b401
\ No newline at end of file
KCanvasResource {id="arrow" [type=MARKER] [angle=auto] [ref x=4.00 y=2.00]}
KCanvasResource {id="circle" [type=MARKER] [angle=auto] [ref x=5.00 y=5.00]}
KCanvasResource {id="arrow2" [type=MARKER] [angle=auto] [ref x=4.00 y=2.00]}
KCanvasResource {id="circle2" [type=MARKER] [angle=auto] [ref x=5.00 y=5.00]}
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderSVGRoot {svg} at (88.48,63.32) size 304.96x298.12
RenderSVGHiddenContainer {defs} at (0,0) size 0x0
RenderSVGViewportContainer {marker} at (1.43,-0.07) size 5.17x4.13
RenderPath {path} at (1.43,-0.07) size 5.17x4.13 [stroke={[type=SOLID] [color=#5555FF] [line cap=ROUND] [line join=ROUND]}] [data="M2.00,0.50 L6.00,2.00 L2.00,3.50"]
RenderSVGViewportContainer {marker} at (0.80,0.80) size 2.40x2.40
RenderPath {circle} at (0.80,0.80) size 2.40x2.40 [fill={[type=SOLID] [color=#5555FF]}] [data="M8.00,5.00 L7.99,5.19 L7.98,5.38 L7.95,5.56 L7.91,5.75 L7.85,5.93 L7.79,6.10 L7.71,6.28 L7.63,6.45 L7.53,6.61 L7.43,6.76 L7.31,6.91 L7.19,7.05 L7.05,7.19 L6.91,7.31 L6.76,7.43 L6.61,7.53 L6.45,7.63 L6.28,7.71 L6.10,7.79 L5.93,7.85 L5.75,7.91 L5.56,7.95 L5.38,7.98 L5.19,7.99 L5.00,8.00 L4.81,7.99 L4.62,7.98 L4.44,7.95 L4.25,7.91 L4.07,7.85 L3.90,7.79 L3.72,7.71 L3.55,7.63 L3.39,7.53 L3.24,7.43 L3.09,7.31 L2.95,7.19 L2.81,7.05 L2.69,6.91 L2.57,6.76 L2.47,6.61 L2.37,6.45 L2.29,6.28 L2.21,6.10 L2.15,5.93 L2.09,5.75 L2.05,5.56 L2.02,5.38 L2.01,5.19 L2.00,5.00 L2.01,4.81 L2.02,4.62 L2.05,4.44 L2.09,4.25 L2.15,4.07 L2.21,3.90 L2.29,3.72 L2.37,3.55 L2.47,3.39 L2.57,3.24 L2.69,3.09 L2.81,2.95 L2.95,2.81 L3.09,2.69 L3.24,2.57 L3.39,2.47 L3.55,2.37 L3.72,2.29 L3.90,2.21 L4.07,2.15 L4.25,2.09 L4.44,2.05 L4.62,2.02 L4.81,2.01 L5.00,2.00 L5.19,2.01 L5.38,2.02 L5.56,2.05 L5.75,2.09 L5.93,2.15 L6.10,2.21 L6.28,2.29 L6.45,2.37 L6.61,2.47 L6.76,2.57 L6.91,2.69 L7.05,2.81 L7.19,2.95 L7.31,3.09 L7.43,3.24 L7.53,3.39 L7.63,3.55 L7.71,3.72 L7.79,3.90 L7.85,4.07 L7.91,4.25 L7.95,4.44 L7.98,4.62 L7.99,4.81 Z"]
RenderSVGViewportContainer {marker} at (1.43,-0.07) size 5.17x4.13
RenderPath {path} at (1.43,-0.07) size 5.17x4.13 [stroke={[type=SOLID] [color=#5555FF] [opacity=0.25] [line cap=ROUND] [line join=ROUND]}] [data="M2.00,0.50 L6.00,2.00 L2.00,3.50"]
RenderSVGViewportContainer {marker} at (0.80,0.80) size 2.40x2.40
RenderPath {circle} at (0.80,0.80) size 2.40x2.40 [fill={[type=SOLID] [color=#5555FF] [opacity=0.25]}] [data="M8.00,5.00 L7.99,5.19 L7.98,5.38 L7.95,5.56 L7.91,5.75 L7.85,5.93 L7.79,6.10 L7.71,6.28 L7.63,6.45 L7.53,6.61 L7.43,6.76 L7.31,6.91 L7.19,7.05 L7.05,7.19 L6.91,7.31 L6.76,7.43 L6.61,7.53 L6.45,7.63 L6.28,7.71 L6.10,7.79 L5.93,7.85 L5.75,7.91 L5.56,7.95 L5.38,7.98 L5.19,7.99 L5.00,8.00 L4.81,7.99 L4.62,7.98 L4.44,7.95 L4.25,7.91 L4.07,7.85 L3.90,7.79 L3.72,7.71 L3.55,7.63 L3.39,7.53 L3.24,7.43 L3.09,7.31 L2.95,7.19 L2.81,7.05 L2.69,6.91 L2.57,6.76 L2.47,6.61 L2.37,6.45 L2.29,6.28 L2.21,6.10 L2.15,5.93 L2.09,5.75 L2.05,5.56 L2.02,5.38 L2.01,5.19 L2.00,5.00 L2.01,4.81 L2.02,4.62 L2.05,4.44 L2.09,4.25 L2.15,4.07 L2.21,3.90 L2.29,3.72 L2.37,3.55 L2.47,3.39 L2.57,3.24 L2.69,3.09 L2.81,2.95 L2.95,2.81 L3.09,2.69 L3.24,2.57 L3.39,2.47 L3.55,2.37 L3.72,2.29 L3.90,2.21 L4.07,2.15 L4.25,2.09 L4.44,2.05 L4.62,2.02 L4.81,2.01 L5.00,2.00 L5.19,2.01 L5.38,2.02 L5.56,2.05 L5.75,2.09 L5.93,2.15 L6.10,2.21 L6.28,2.29 L6.45,2.37 L6.61,2.47 L6.76,2.57 L6.91,2.69 L7.05,2.81 L7.19,2.95 L7.31,3.09 L7.43,3.24 L7.53,3.39 L7.63,3.55 L7.71,3.72 L7.79,3.90 L7.85,4.07 L7.91,4.25 L7.95,4.44 L7.98,4.62 L7.99,4.81 Z"]
RenderSVGContainer {g} at (88.48,63.32) size 304.96x98.12 [opacity=0.25]
RenderPath {path} at (88.48,63.32) size 304.96x98.12 [stroke={[type=SOLID] [color=#5555FF] [stroke width=4.00] [line cap=ROUND]}] [start marker=circle] [end marker=arrow] [data="M388.00,156.00 C244.00,135.00,244.00,94.00,100.00,73.00"]
RenderSVGContainer {g} at (88.48,163.32) size 304.96x98.12
RenderPath {path} at (88.48,163.32) size 304.96x98.12 [stroke={[type=SOLID] [color=#5555FF] [stroke width=4.00] [line cap=ROUND]}] [start marker=circle] [end marker=arrow] [data="M388.00,256.00 C244.00,235.00,244.00,194.00,100.00,173.00"]
RenderSVGContainer {g} at (88.48,263.32) size 304.96x98.12
RenderPath {path} at (88.48,263.32) size 304.96x98.12 [stroke={[type=SOLID] [color=#5555FF] [opacity=0.25] [stroke width=4.00] [line cap=ROUND]}] [start marker=circle2] [end marker=arrow2] [data="M388.00,356.00 C244.00,335.00,244.00,294.00,100.00,273.00"]
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment