2022-10-03 16:25:42 +00:00
|
|
|
#include "symbolelement.h"
|
|
|
|
#include "parser.h"
|
|
|
|
|
|
|
|
namespace lunasvg {
|
|
|
|
|
|
|
|
SymbolElement::SymbolElement()
|
2022-10-16 10:31:43 +00:00
|
|
|
: StyledElement(ElementID::Symbol)
|
2022-10-03 16:25:42 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
Length SymbolElement::x() const
|
|
|
|
{
|
2022-10-16 10:31:43 +00:00
|
|
|
auto& value = get(PropertyID::X);
|
2022-10-03 16:25:42 +00:00
|
|
|
return Parser::parseLength(value, AllowNegativeLengths, Length::Zero);
|
|
|
|
}
|
|
|
|
|
|
|
|
Length SymbolElement::y() const
|
|
|
|
{
|
2022-10-16 10:31:43 +00:00
|
|
|
auto& value = get(PropertyID::Y);
|
2022-10-03 16:25:42 +00:00
|
|
|
return Parser::parseLength(value, AllowNegativeLengths, Length::Zero);
|
|
|
|
}
|
|
|
|
|
|
|
|
Length SymbolElement::width() const
|
|
|
|
{
|
2022-10-16 10:31:43 +00:00
|
|
|
auto& value = get(PropertyID::Width);
|
2022-10-03 16:25:42 +00:00
|
|
|
return Parser::parseLength(value, ForbidNegativeLengths, Length::HundredPercent);
|
|
|
|
}
|
|
|
|
|
|
|
|
Length SymbolElement::height() const
|
|
|
|
{
|
2022-10-16 10:31:43 +00:00
|
|
|
auto& value = get(PropertyID::Height);
|
2022-10-03 16:25:42 +00:00
|
|
|
return Parser::parseLength(value, ForbidNegativeLengths, Length::HundredPercent);
|
|
|
|
}
|
|
|
|
|
|
|
|
Rect SymbolElement::viewBox() const
|
|
|
|
{
|
2022-10-16 10:31:43 +00:00
|
|
|
auto& value = get(PropertyID::ViewBox);
|
2022-10-03 16:25:42 +00:00
|
|
|
return Parser::parseViewBox(value);
|
|
|
|
}
|
|
|
|
|
|
|
|
PreserveAspectRatio SymbolElement::preserveAspectRatio() const
|
|
|
|
{
|
2022-10-16 10:31:43 +00:00
|
|
|
auto& value = get(PropertyID::PreserveAspectRatio);
|
2022-10-03 16:25:42 +00:00
|
|
|
return Parser::parsePreserveAspectRatio(value);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::unique_ptr<Node> SymbolElement::clone() const
|
|
|
|
{
|
|
|
|
return cloneElement<SymbolElement>();
|
|
|
|
}
|
|
|
|
|
|
|
|
} // namespace lunasvg
|