24 , mpCurrent(mpDrawRoot)
45 double x = rRectNode.getX().getNumber();
46 double y = rRectNode.getY().getNumber();
47 double w = rRectNode.getWidth().getNumber();
48 double h = rRectNode.getHeight().getNumber();
52 pRectangle->mnRx = rRectNode.getRx().getNumber();
53 pRectangle->mnRy = rRectNode.getRy().getNumber();
55 pRectangle->mnStrokeWidth
56 = rRectNode.getSvgStyleAttributes()->getStrokeWidth().getNumber();
58 pRectangle->mnOpacity = rRectNode.getSvgStyleAttributes()->getOpacity().getNumber();
60 const basegfx::BColor* pFillColor = rRectNode.getSvgStyleAttributes()->getFill();
65 pRectangle->mpFillColor = std::make_shared<basegfx::BColor>(*pFillColor);
67 else if (pFillGradient)
71 if (!aSvgGradientEntryVector.empty())
73 auto aGradientInfo = std::make_shared<gfx::LinearGradientInfo>();
80 std::optional<basegfx::B2DHomMatrix> pGradientTransform
82 if (pGradientTransform)
84 aGradientInfo->maMatrix = *pGradientTransform;
87 pRectangle->mpFillGradient = aGradientInfo;
89 for (
auto const& rEntry : aSvgGradientEntryVector)
92 aStop.
maColor = rEntry.getColor();
95 pRectangle->mpFillGradient->maGradientStops.push_back(aStop);
100 const basegfx::BColor* pStrokeColor = rRectNode.getSvgStyleAttributes()->getStroke();
102 pRectangle->mpStrokeColor = std::make_shared<basegfx::BColor>(*pStrokeColor);
104 mpCurrent->maChildren.push_back(pRectangle);
111 auto pPath = rPathNode.
getPath();
114 auto pDrawPath = std::make_shared<gfx::DrawPath>(*pPath);
116 pDrawPath->mnStrokeWidth
117 = rPathNode.getSvgStyleAttributes()->getStrokeWidth().getNumber();
119 pDrawPath->mnOpacity = rPathNode.getSvgStyleAttributes()->getOpacity().getNumber();
121 const basegfx::BColor* pFillColor = rPathNode.getSvgStyleAttributes()->getFill();
123 pDrawPath->mpFillColor = std::make_shared<basegfx::BColor>(*pFillColor);
126 = rPathNode.getSvgStyleAttributes()->getStroke();
128 pDrawPath->mpStrokeColor = std::make_shared<basegfx::BColor>(*pStrokeColor);
130 mpCurrent->maChildren.push_back(pDrawPath);
145 rChild->accept(*
this);
void visit(svgio::svgreader::SvgNode const &rNode) override
void goToChildren(svgio::svgreader::SvgNode const &rNode)
std::shared_ptr< gfx::DrawBase > mpCurrent
SvgNumber getY2() const
y2 content
SvgNumber getX1() const
x1 content
void collectGradientEntries(drawinglayer::primitive2d::SvgGradientEntryVector &aVector) const
collect gradient stop entries
SvgNumber getX2() const
x2 content
SvgNumber getY1() const
y1 content
virtual const SvgStyleAttributes * getSvgStyleAttributes() const override
std::optional< basegfx::B2DHomMatrix > getGradientTransform() const
transform content, set if found in current context
const std::vector< std::unique_ptr< SvgNode > > & getChildren() const
SVGToken getType() const
basic data read access
const std::optional< basegfx::B2DPolyPolygon > & getPath() const
path content, set if found in current context
const SvgGradientNode * getSvgGradientNodeFill() const
access to evtl. set fill gradient
::std::vector< SvgGradientEntry > SvgGradientEntryVector
std::shared_ptr< T > make_shared(Args &&... args)