40 sal_uInt16 nPoints = rPoly.
GetSize();
77 css::drawing::LineCap_BUTT,
112 if ( rLineInfo.IsDefault() )
124 static_cast< double >(rLineInfo.GetWidth()),
125 rLineInfo.GetLineJoin(),
126 rLineInfo.GetLineCap(),
140 css::drawing::LineCap eLineCap,
141 double fMiterMinimumAngle)
148 if( fLineWidth != 0.0 )
149 aLineInfo.SetWidth( static_cast<tools::Long>(fLineWidth+0.5) );
190 if(fLineWidth >= 2.5 &&
191 rB2DPolygon.
count() &&
192 rB2DPolygon.
count() <= 1000)
194 const double fHalfLineWidth((fLineWidth * 0.5) + 0.5);
200 fMiterMinimumAngle));
210 for(
auto const& rPolygon : aAreaPolyPolygon)
223 for(
auto const& rPolygon : aAreaPolyPolygon)
235 if( fLineWidth != 0.0 )
236 aLineInfo.SetWidth( static_cast<tools::Long>(fLineWidth+0.5) );
244 sal_uInt16 nPoints(rPoly.
GetSize());
266 const bool bLineWidthUsed(aInfo.GetWidth() > 1);
268 if(bDashUsed || bLineWidthUsed)
294 double fTransparency,
295 const std::vector< double >* pStroke,
297 css::drawing::LineCap eLineCap,
298 double fMiterMinimumAngle)
301 pStroke, eLineJoin, eLineCap, fMiterMinimumAngle))
309 if( fLineWidth != 0.0 )
310 aLineInfo.SetWidth( static_cast<tools::Long>(fLineWidth+0.5) );
312 aLineInfo.SetLineJoin(eLineJoin);
313 aLineInfo.SetLineCap(eLineCap);
327 double fTransparency,
328 const std::vector< double >* pStroke,
330 css::drawing::LineCap eLineCap,
331 double fMiterMinimumAngle)
336 if(!rB2DPolygon.
count())
362 const double fAdjustedTransparency =
mpAlphaVDev ? 0 : fTransparency;
367 fAdjustedTransparency,
380 fTransparency, pStroke, eLineJoin, eLineCap,
SAL_DLLPRIVATE bool ImplIsRecordLayout() const
virtual bool supportsOperation(OutDevSupportType) const =0
void DrawPolyLine(const tools::Polygon &rPoly)
Render the given polygon as a line stroke.
SAL_DLLPRIVATE bool is_double_buffered_window() const
B2DPolyPolygon createAreaGeometry(const B2DPolygon &rCandidate, double fHalfLineWidth, B2DLineJoin eJoin, css::drawing::LineCap eCap, double fMaxAllowedAngle=basegfx::deg2rad(12.5), double fMaxPartOfEdge=0.4, double fMiterMinimumAngle=basegfx::deg2rad(15.0), basegfx::triangulator::B2DTriangleVector *pTriangles=nullptr)
SAL_DLLPRIVATE void InitLineColor()
bool DrawPolyLineDirectInternal(const basegfx::B2DHomMatrix &rObjectTransform, const basegfx::B2DPolygon &rB2DPolygon, double fLineWidth=0.0, double fTransparency=0.0, const std::vector< double > *=nullptr, basegfx::B2DLineJoin eLineJoin=basegfx::B2DLineJoin::NONE, css::drawing::LineCap eLineCap=css::drawing::LineCap_BUTT, double fMiterMinimumAngle=basegfx::deg2rad(15.0))
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
AntialiasingFlags mnAntialiasing
SalGraphics * mpGraphics
Graphics context to draw on.
SAL_DLLPRIVATE basegfx::B2DHomMatrix ImplGetDeviceTransformation() const
Get device transformation.
bool DrawPolyLineDirect(const basegfx::B2DHomMatrix &rObjectTransform, const basegfx::B2DPolygon &rB2DPolygon, double fLineWidth=0.0, double fTransparency=0.0, const std::vector< double > *=nullptr, basegfx::B2DLineJoin eLineJoin=basegfx::B2DLineJoin::NONE, css::drawing::LineCap eLineCap=css::drawing::LineCap_BUTT, double fMiterMinimumAngle=basegfx::deg2rad(15.0))
SAL_DLLPRIVATE void InitFillColor()
virtual bool AcquireGraphics() const =0
Acquire a graphics device that the output device uses to draw on.
void DrawPolyLine(sal_uInt32 nPoints, Point const *pPtAry, const OutputDevice &rOutDev)
constexpr double deg2rad(double v)
bool DrawPolyLineBezier(sal_uInt32 nPoints, const Point *pPtAry, const PolyFlags *pFlgAry, const OutputDevice &rOutDev)
SAL_DLLPRIVATE void drawLine(basegfx::B2DPolyPolygon aLinePolyPolygon, const LineInfo &rInfo)
Helper for line geometry paint with support for graphic expansion (pattern and fat_to_area) ...
SAL_DLLPRIVATE void ImplDrawPolyPolygonWithB2DPolyPolygon(const basegfx::B2DPolyPolygon &rB2DPolyPoly)
VclPtr< VirtualDevice > mpAlphaVDev
virtual void InitClipRegion()
RasterOp GetRasterOp() const
SAL_DLLPRIVATE void drawPolyLine(const tools::Polygon &rPoly, const LineInfo &rLineInfo)
SAL_DLLPRIVATE tools::Rectangle ImplLogicToDevicePixel(const tools::Rectangle &rLogicRect) const
Convert a logical rectangle to a rectangle in physical device pixel units.
bool IsDeviceOutputNecessary() const