Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / rendering / svg / RenderSVGPath.h
index 4448cbb..43aa53a 100644 (file)
 
 namespace blink {
 
-class RenderSVGPath FINAL : public RenderSVGShape {
+class RenderSVGPath final : public RenderSVGShape {
 public:
     explicit RenderSVGPath(SVGGraphicsElement*);
     virtual ~RenderSVGPath();
 
+    virtual const Vector<MarkerPosition>* markerPositions() const override { return &m_markerPositions; }
+
+    virtual const Vector<FloatPoint>* zeroLengthLineCaps() const override { return &m_zeroLengthLinecapLocations; }
+    static FloatRect zeroLengthSubpathRect(const FloatPoint&, float);
+
 private:
-    virtual const char* renderName() const OVERRIDE { return "RenderSVGPath"; }
+    virtual const char* renderName() const override { return "RenderSVGPath"; }
 
-    virtual void updateShapeFromElement() OVERRIDE;
+    virtual void updateShapeFromElement() override;
     FloatRect calculateUpdatedStrokeBoundingBox() const;
 
-    virtual void strokeShape(GraphicsContext*) const OVERRIDE;
-    virtual bool shapeDependentStrokeContains(const FloatPoint&) OVERRIDE;
+    virtual bool shapeDependentStrokeContains(const FloatPoint&) override;
+
+    FloatRect markerRect(float strokeWidth) const;
+    bool shouldGenerateMarkerPositions() const;
+    virtual void processMarkerPositions() override;
 
     bool shouldStrokeZeroLengthSubpath() const;
-    Path* zeroLengthLinecapPath(const FloatPoint&) const;
-    FloatRect zeroLengthSubpathRect(const FloatPoint&, float) const;
     void updateZeroLengthSubpaths();
 
+    Vector<MarkerPosition> m_markerPositions;
     Vector<FloatPoint> m_zeroLengthLinecapLocations;
 };