
template <typename X>
class Attribute {
	public:
		X& getValue();
};

template <typename X>
class Animated {
	public:
		Attribute<X>& getAnimatedVal();
};

class SVGFilterElement {
	public:
		Attribute< Animated<int> >& dom_getFilterUnits();

	protected:
		float _x,_y,_width,_height;
	public:
		virtual void glPreTraverse();
		virtual void glPostTraverse();
};

void SVGFilterElement::glPreTraverse()
{
	float &x=_x;
	dom_getFilterUnits().getValue().getAnimatedVal().getValue();
}

void SVGFilterElement::glPostTraverse()
{
	float &x=_x,&y=_y,&width=_width,&height=_height;
}

