summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/canvas/DOMPath.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/canvas/DOMPath.h')
-rw-r--r--Source/WebCore/html/canvas/DOMPath.h47
1 files changed, 25 insertions, 22 deletions
diff --git a/Source/WebCore/html/canvas/DOMPath.h b/Source/WebCore/html/canvas/DOMPath.h
index 6358e4602..0bbff134f 100644
--- a/Source/WebCore/html/canvas/DOMPath.h
+++ b/Source/WebCore/html/canvas/DOMPath.h
@@ -25,46 +25,49 @@
* SUCH DAMAGE.
*/
-#ifndef DOMPath_h
-#define DOMPath_h
+#pragma once
-#if ENABLE(CANVAS_PATH)
-
-#include "CanvasPathMethods.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefCounted.h>
-
-#if ENABLE(SVG)
+#include "CanvasPath.h"
+#include "SVGMatrix.h"
#include "SVGPathUtilities.h"
-#endif
+#include <wtf/RefCounted.h>
namespace WebCore {
-class DOMPath : public RefCounted<DOMPath>, public CanvasPathMethods {
+class WEBCORE_EXPORT DOMPath final : public RefCounted<DOMPath>, public CanvasPath {
WTF_MAKE_FAST_ALLOCATED;
public:
- static PassRefPtr<DOMPath> create() { return adoptRef(new DOMPath); }
- static PassRefPtr<DOMPath> create(const Path& path) { return adoptRef(new DOMPath(path)); }
- static PassRefPtr<DOMPath> create(const DOMPath* path) { return create(path->path()); }
+ virtual ~DOMPath();
-#if ENABLE(SVG)
- static PassRefPtr<DOMPath> create(const String& pathData)
+ static Ref<DOMPath> create() { return adoptRef(*new DOMPath); }
+ static Ref<DOMPath> create(const Path& path) { return adoptRef(*new DOMPath(path)); }
+ static Ref<DOMPath> create(const DOMPath& path) { return create(path.path()); }
+
+ static Ref<DOMPath> create(const String& pathData)
{
Path path;
buildPathFromString(pathData, path);
return create(path);
}
+
+#if ENABLE(CANVAS_PATH)
+ void addPath(const DOMPath* path) { addPath(path, AffineTransform()); }
+ void addPath(const DOMPath* path, SVGMatrix& matrix) { addPath(path, matrix.propertyReference()); }
+ void addPath(const DOMPath* path, const AffineTransform& transform)
+ {
+ if (!path || !transform.isInvertible())
+ return;
+ m_path.addPath(path->path(), transform);
+ }
#endif
const Path& path() const { return m_path; }
private:
DOMPath() { }
- DOMPath(const Path& path) : CanvasPathMethods(path) { }
+ DOMPath(const Path& path)
+ : CanvasPath(path)
+ { }
};
-}
-
-#endif
-
-#endif
+} // namespace WebCore