66 case css::awt::GradientStyle_LINEAR:
78 case css::awt::GradientStyle_AXIAL:
90 case css::awt::GradientStyle_RADIAL:
102 case css::awt::GradientStyle_ELLIPTICAL:
115 case css::awt::GradientStyle_SQUARE:
128 case css::awt::GradientStyle_RECT:
149 rContainer.push_back(
156 auto aCallback([&rContainer,
this](
165 rContainer.push_back(
182 rContainer.push_back(
193 auto aCallback([&rContainer,&aCombinedPolyPoly,&aLastColor,
this](
197 if (rContainer.empty())
200 basegfx::B2DRange aOutmostRange(getOutputRange());
204 basegfx::B2DPolygon aFirstPoly(getUnitPolygon());
205 aFirstPoly.transform(rMatrix);
206 aOutmostRange.expand(aFirstPoly.getB2DRange());
210 aCombinedPolyPoly.append(basegfx::utils::createPolygonFromRect(aOutmostRange));
211 aCombinedPolyPoly.append(aFirstPoly);
214 rContainer.push_back(
215 new PolyPolygonColorPrimitive2D(
221 aCombinedPolyPoly.remove(0);
230 basegfx::B2DPolygon aNextPoly(getUnitPolygon());
231 aNextPoly.transform(rMatrix);
232 aCombinedPolyPoly.append(aNextPoly);
235 rContainer.push_back(
236 new PolyPolygonColorPrimitive2D(
241 aCombinedPolyPoly.remove(0);
250 rContainer.push_back(
276 : maOutputRange(rOutputRange),
277 maDefinitionRange(rOutputRange),
278 maFillGradient(
std::move(aFillGradient))
286 : maOutputRange(rOutputRange),
287 maDefinitionRange(rDefinitionRange),
288 maFillGradient(
std::move(aFillGradient))
294 if(BufferedDecompositionPrimitive2D::operator==(rPrimitive))
void transform(const basegfx::B2DHomMatrix &rMatrix)
const basegfx::BColorStops & getColorStops() const
FillGradientPrimitive2D class.
basegfx::B2DPolygon getUnitPolygon() const
helpers that support e.g. direct paint/geometry creation
void createFill(Primitive2DContainer &rContainer, bool bOverlapping) const
local helper
virtual void create2DDecomposition(Primitive2DContainer &rContainer, const geometry::ViewInformation2D &rViewInformation) const override
local decomposition.
const basegfx::B2DRange & getOutputRange() const
data read access
const attribute::FillGradientAttribute & getFillGradient() const
virtual bool operator==(const BasePrimitive2D &rPrimitive) const override
compare operator
virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D &rViewInformation) const override
get range
const basegfx::B2DRange & getDefinitionRange() const
basegfx::BColor getOuterColor() const
FillGradientPrimitive2D(const basegfx::B2DRange &rOutputRange, attribute::FillGradientAttribute aFillGradient)
constructors. The one without definition range will use output range as definition range
void generateMatricesAndColors(std::function< void(const basegfx::B2DHomMatrix &rMatrix, const basegfx::BColor &rColor)> aCallback) const
virtual sal_uInt32 getPrimitive2DID() const override
provide unique ID
PolyPolygonColorPrimitive2D class.
virtual void appendTransformationsAndColors(std::function< void(const basegfx::B2DHomMatrix &rMatrix, const basegfx::BColor &rColor)> aCallback) override
virtual void appendTransformationsAndColors(std::function< void(const basegfx::B2DHomMatrix &rMatrix, const basegfx::BColor &rColor)> aCallback) override
virtual void appendTransformationsAndColors(std::function< void(const basegfx::B2DHomMatrix &rMatrix, const basegfx::BColor &rColor)> aCallback) override
virtual void appendTransformationsAndColors(std::function< void(const basegfx::B2DHomMatrix &rMatrix, const basegfx::BColor &rColor)> aCallback) override
virtual void appendTransformationsAndColors(std::function< void(const basegfx::B2DHomMatrix &rMatrix, const basegfx::BColor &rColor)> aCallback) override
virtual void appendTransformationsAndColors(std::function< void(const basegfx::B2DHomMatrix &rMatrix, const basegfx::BColor &rColor)> aCallback) override
#define PRIMITIVE2D_ID_FILLGRADIENTPRIMITIVE2D
B2DPolygon createPolygonFromRect(const B2DRectangle &rRect, double fRadiusX, double fRadiusY)
B2DPolygon createPolygonFromCircle(const B2DPoint &rCenter, double fRadius)