#ifndef SVGLocatable_h
#define SVGLocatable_h
#if ENABLE(SVG)
#include "ExceptionCode.h"
namespace WebCore {
class AffineTransform;
class FloatRect;
class SVGElement;
class SVGStyledElement;
class SVGLocatable {
public:
SVGLocatable();
virtual ~SVGLocatable();
virtual SVGElement* nearestViewportElement() const = 0;
virtual SVGElement* farthestViewportElement() const = 0;
virtual FloatRect getBBox() const = 0;
virtual AffineTransform getCTM() const = 0;
virtual AffineTransform getScreenCTM() const = 0;
AffineTransform getTransformToElement(SVGElement*, ExceptionCode&) const;
protected:
static SVGElement* nearestViewportElement(const SVGStyledElement*);
static SVGElement* farthestViewportElement(const SVGStyledElement*);
static FloatRect getBBox(const SVGStyledElement*);
static AffineTransform getCTM(const SVGElement*);
static AffineTransform getScreenCTM(const SVGElement*);
};
}
#endif // ENABLE(SVG)
#endif // SVGLocatable_h