Donner
C++20 SVG rendering library
Loading...
Searching...
No Matches
donner::svg::SVGFilterElement Class Reference

DOM object for a "<filter>" element. More...

#include "donner/svg/SVGFilterElement.h"

Inheritance diagram for donner::svg::SVGFilterElement:
[legend]
Collaboration diagram for donner::svg::SVGFilterElement:
[legend]

Public Member Functions

Lengthd x () const
 Get the top-left X coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
Lengthd y () const
 Get the top-left Y coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
Lengthd width () const
 Get the width of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
Lengthd height () const
 Get the height of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
void setX (const Lengthd &value)
 Set the top-left X coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
void setY (const Lengthd &value)
 Set the top-left Y coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
void setWidth (const Lengthd &value)
 Set the width of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
void setHeight (const Lengthd &value)
 Set the height of the filter region, which defines a rectangular region on the canvas to which this filter applies.
 
FilterUnits filterUnits () const
 Get the filterUnits attribute which defines the coordinate system for attributes x, y, width, height.
 
void setFilterUnits (FilterUnits value)
 Set the filterUnits attribute which defines the coordinate system for attributes x, y, width, height.
 
PrimitiveUnits primitiveUnits () const
 Get the primitiveUnits attribute which defines the coordinate system for the various length values within the filter primitives and for the attributes that define the filter primitive subregion.
 
void setPrimitiveUnits (PrimitiveUnits value)
 Set the primitiveUnits attribute which defines the coordinate system for the various length values within the filter primitives and for the attributes that define the filter primitive subregion.
 
- Public Member Functions inherited from donner::svg::SVGElement
 SVGElement (const SVGElement &other)
 Create another reference to the same SVGElement.
 
 SVGElement (SVGElement &&other) noexcept
 Move constructor.
 
 ~SVGElement () noexcept=default
 Destructor.
 
SVGElementoperator= (const SVGElement &other)
 Create another reference to the same SVGElement.
 
SVGElementoperator= (SVGElement &&other) noexcept
 Move assignment operator.
 
ElementType type () const
 Get the ElementType for known XML element types.
 
xml::XMLQualifiedNameRef tagName () const
 Get the XML tag name string for this element.
 
bool isKnownType () const
 Returns true if this is a known element type, returns false if this is an SVGUnknownElement.
 
EntityHandle entityHandle () const
 Get the underlying EntityHandle, for advanced use-cases that require direct access to the ECS.
 
RcString id () const
 Get the element id, the value of the "id" attribute.
 
void setId (std::string_view id)
 Set the element id, the value of the "id" attribute.
 
RcString className () const
 Get the element class name, the value of the "class" attribute.
 
void setClassName (std::string_view name)
 Set the element class name, the value of the "class" attribute.
 
void setStyle (std::string_view style)
 Set the element style, the value of the "style" attribute.
 
base::parser::ParseResult< bool > trySetPresentationAttribute (std::string_view name, std::string_view value)
 Set the value of a presentation attribute, such as "fill" or "stroke".
 
bool hasAttribute (const xml::XMLQualifiedNameRef &name) const
 Returns true if the element has an attribute with the given name.
 
std::optional< RcStringgetAttribute (const xml::XMLQualifiedNameRef &name) const
 Get the value of an attribute, if it exists.
 
SmallVector< xml::XMLQualifiedNameRef, 1 > findMatchingAttributes (const xml::XMLQualifiedNameRef &matcher) const
 Find attributes matching the given name matcher.
 
void setAttribute (const xml::XMLQualifiedNameRef &name, std::string_view value)
 Set the value of a generic XML attribute, which may be either a presentation attribute or custom user-provided attribute.
 
void removeAttribute (const xml::XMLQualifiedNameRef &name)
 Remove an attribute, which may be either a presentation attribute or custom user-provided attribute.
 
SVGDocument ownerDocument ()
 Get an owning reference to the SVGDocument containing this element.
 
std::optional< SVGElementparentElement () const
 Get this element's parent, if it exists.
 
std::optional< SVGElementfirstChild () const
 Get the first child of this element, if it exists.
 
std::optional< SVGElementlastChild () const
 Get the last child of this element, if it exists.
 
std::optional< SVGElementpreviousSibling () const
 Get the previous sibling of this element, if it exists.
 
std::optional< SVGElementnextSibling () const
 Get the next sibling of this element, if it exists.
 
void insertBefore (const SVGElement &newNode, std::optional< SVGElement > referenceNode)
 Insert newNode as a child, before referenceNode.
 
void appendChild (const SVGElement &child)
 Append child as a child of the current node.
 
void replaceChild (const SVGElement &newChild, const SVGElement &oldChild)
 Replace oldChild with newChild in the tree, removing oldChild and inserting newChild in its place.
 
void removeChild (const SVGElement &child)
 Remove child from this node.
 
void remove ()
 Remove this node from its parent, if it has one.
 
bool operator== (const SVGElement &other) const
 Returns true if the two SVGElement handles reference the same underlying document.
 
bool operator!= (const SVGElement &other) const
 Returns true if the two SVGElement handles reference the same underlying document.
 
template<typename Derived >
bool isa () const
 Return true if this element "is a" instance of type, if it be cast to a specific type with cast.
 
template<typename Derived >
Derived cast ()
 Cast this element to its derived type.
 
template<typename Derived >
Derived cast () const
 Cast this element to its derived type (const version).
 
template<typename Derived >
std::optional< Derived > tryCast ()
 Cast this element to its derived type, if possible.
 
template<typename Derived >
std::optional< const Derived > tryCast () const
 Cast this element to its derived type, if possible.
 
std::optional< SVGElementquerySelector (std::string_view selector)
 Find the first element in the tree that matches the given CSS selector.
 
const PropertyRegistrygetComputedStyle () const
 Get the computed CSS style of this element, after the CSS cascade.
 

Static Public Member Functions

static SVGFilterElement Create (SVGDocument &document)
 Create a new "<filter>" element.
 

Static Public Attributes

static constexpr ElementType Type = ElementType::Filter
 Element type.
 
static constexpr std::string_view Tag {"filter"}
 XML tag name, "<filter>".
 
static constexpr bool IsExperimental = true
 This is an experimental/incomplete feature.
 

Protected Member Functions

 SVGFilterElement (EntityHandle handle)
 Create an SVGFilterElement wrapper from an entity.
 
- Protected Member Functions inherited from donner::svg::SVGElement
 SVGElement (EntityHandle handle)
 Internal constructor to create an SVGElement from an EntityHandle.
 
Registryregistry () const
 Get the underlying ECS Registry, which holds all data for the document, for advanced use.
 
EntityHandle toHandle (Entity entity) const
 Convert an Entity to an EntityHandle, for advanced use.
 

Static Protected Member Functions

static SVGFilterElement CreateOn (EntityHandle handle)
 Internal constructor to create the element on an existing Entity.
 
- Static Protected Member Functions inherited from donner::svg::SVGElement
static EntityHandle CreateEntity (SVGDocument &document)
 Create a new Entity within the document ECS, and return a handle to it.
 
static void CreateEntityOn (EntityHandle handle, const xml::XMLQualifiedNameRef &tagName, ElementType Type)
 Create a new SVG element instance on a given Entity.
 

Friends

class parser::SVGParserImpl
 

Additional Inherited Members

- Protected Attributes inherited from donner::svg::SVGElement
EntityHandle handle_
 The underlying ECS Entity for this element, which holds all data.
 

Detailed Description

DOM object for a "<filter>" element.

<filter id="MyFilter">
<feGaussianBlur in="SourceGraphic" stdDeviation="5" />
</filter>

To reference it with a filter:

<rect filter="url(#MyFilter)" width="300" height="300" />

Member Function Documentation

◆ Create()

static SVGFilterElement donner::svg::SVGFilterElement::Create ( SVGDocument & document)
inlinestatic

Create a new "<filter>" element.

Parameters
documentContaining document.

◆ CreateOn()

SVGFilterElement donner::svg::SVGFilterElement::CreateOn ( EntityHandle handle)
staticprotected

Internal constructor to create the element on an existing Entity.

Parameters
handleEntity handle.

◆ filterUnits()

FilterUnits donner::svg::SVGFilterElement::filterUnits ( ) const

Get the filterUnits attribute which defines the coordinate system for attributes x, y, width, height.

The default is FilterUnits::ObjectBoundingBox, where (0, 0) is the top-left corner of the element that references the filter, and (1, 1) is the bottom-right corner.

◆ height()

Lengthd donner::svg::SVGFilterElement::height ( ) const

Get the height of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '120'.

◆ primitiveUnits()

PrimitiveUnits donner::svg::SVGFilterElement::primitiveUnits ( ) const

Get the primitiveUnits attribute which defines the coordinate system for the various length values within the filter primitives and for the attributes that define the filter primitive subregion.

The default is FilterUnits::UserSpaceOnUse, where the user coordinate system in place at the time when the filter element is referenced is used.

◆ setFilterUnits()

void donner::svg::SVGFilterElement::setFilterUnits ( FilterUnits value)

Set the filterUnits attribute which defines the coordinate system for attributes x, y, width, height.

See also
filterUnits()
Parameters
valueThe coordinate system for attributes x, y, width, height.

◆ setHeight()

void donner::svg::SVGFilterElement::setHeight ( const Lengthd & value)

Set the height of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '120'.

Parameters
valueDimension value.

◆ setPrimitiveUnits()

void donner::svg::SVGFilterElement::setPrimitiveUnits ( PrimitiveUnits value)

Set the primitiveUnits attribute which defines the coordinate system for the various length values within the filter primitives and for the attributes that define the filter primitive subregion.

See also
primitiveUnits()
Parameters
valueThe coordinate system for the various length values within the filter primitives.

◆ setWidth()

void donner::svg::SVGFilterElement::setWidth ( const Lengthd & value)

Set the width of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '120'.

Parameters
valueDimension value.

◆ setX()

void donner::svg::SVGFilterElement::setX ( const Lengthd & value)

Set the top-left X coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '-10'.

Parameters
valueCoordinate value.

◆ setY()

void donner::svg::SVGFilterElement::setY ( const Lengthd & value)

Set the top-left Y coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '-10'.

Parameters
valueCoordinate value.

◆ width()

Lengthd donner::svg::SVGFilterElement::width ( ) const

Get the width of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '120'.

◆ x()

Lengthd donner::svg::SVGFilterElement::x ( ) const

Get the top-left X coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '-10'.

◆ y()

Lengthd donner::svg::SVGFilterElement::y ( ) const

Get the top-left Y coordinate of the filter region, which defines a rectangular region on the canvas to which this filter applies.

The initial value is '-10'.


The documentation for this class was generated from the following files: