SVGFEGaussianBlurElement.h [plain text]
#pragma once
#include "FEGaussianBlur.h"
#include "SVGAnimatedEnumeration.h"
#include "SVGAnimatedNumber.h"
#include "SVGFEConvolveMatrixElement.h"
#include "SVGFilterPrimitiveStandardAttributes.h"
namespace WebCore {
class SVGFEGaussianBlurElement final : public SVGFilterPrimitiveStandardAttributes {
WTF_MAKE_ISO_ALLOCATED(SVGFEGaussianBlurElement);
public:
static Ref<SVGFEGaussianBlurElement> create(const QualifiedName&, Document&);
void setStdDeviation(float stdDeviationX, float stdDeviationY);
String in1() const { return m_in1.currentValue(attributeOwnerProxy()); }
float stdDeviationX() const { return m_stdDeviationX.currentValue(attributeOwnerProxy()); }
float stdDeviationY() const { return m_stdDeviationY.currentValue(attributeOwnerProxy()); }
EdgeModeType edgeMode() const { return m_edgeMode.currentValue(attributeOwnerProxy()); }
RefPtr<SVGAnimatedString> in1Animated() { return m_in1.animatedProperty(attributeOwnerProxy()); }
RefPtr<SVGAnimatedNumber> stdDeviationXAnimated() { return m_stdDeviationX.animatedProperty(attributeOwnerProxy()); }
RefPtr<SVGAnimatedNumber> stdDeviationYAnimated() { return m_stdDeviationY.animatedProperty(attributeOwnerProxy()); }
RefPtr<SVGAnimatedEnumeration> edgeModeAnimated() { return m_edgeMode.animatedProperty(attributeOwnerProxy()); }
private:
SVGFEGaussianBlurElement(const QualifiedName&, Document&);
using AttributeOwnerProxy = SVGAttributeOwnerProxyImpl<SVGFEGaussianBlurElement, SVGFilterPrimitiveStandardAttributes>;
static AttributeOwnerProxy::AttributeRegistry& attributeRegistry() { return AttributeOwnerProxy::attributeRegistry(); }
static bool isKnownAttribute(const QualifiedName& attributeName) { return AttributeOwnerProxy::isKnownAttribute(attributeName); }
static void registerAttributes();
const SVGAttributeOwnerProxy& attributeOwnerProxy() const final { return m_attributeOwnerProxy; }
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
RefPtr<FilterEffect> build(SVGFilterBuilder*, Filter&) override;
static const AtomicString& stdDeviationXIdentifier();
static const AtomicString& stdDeviationYIdentifier();
AttributeOwnerProxy m_attributeOwnerProxy { *this };
SVGAnimatedStringAttribute m_in1;
SVGAnimatedNumberAttribute m_stdDeviationX;
SVGAnimatedNumberAttribute m_stdDeviationY;
SVGAnimatedEnumerationAttribute<EdgeModeType> m_edgeMode { EDGEMODE_NONE };
};
}