40 sal_uInt16 nPoints = rPoly.
GetSize();
78 css::drawing::LineCap_BUTT,
113 if ( rLineInfo.IsDefault() )
125 static_cast< double >(rLineInfo.GetWidth()),
126 rLineInfo.GetLineJoin(),
127 rLineInfo.GetLineCap(),
141 css::drawing::LineCap eLineCap,
142 double fMiterMinimumAngle)
149 if( fLineWidth != 0.0 )
150 aLineInfo.SetWidth( static_cast<tools::Long>(fLineWidth+0.5) );
192 if(fLineWidth >= 2.5 &&
193 rB2DPolygon.
count() &&
194 rB2DPolygon.
count() <= 1000)
196 const double fHalfLineWidth((fLineWidth * 0.5) + 0.5);
202 fMiterMinimumAngle));
212 for(
auto const& rPolygon : aAreaPolyPolygon)
225 for(
auto const& rPolygon : aAreaPolyPolygon)
237 if( fLineWidth != 0.0 )
238 aLineInfo.SetWidth( static_cast<tools::Long>(fLineWidth+0.5) );
246 sal_uInt16 nPoints(rPoly.
GetSize());
269 const bool bLineWidthUsed(aInfo.GetWidth() > 1);
271 if(bDashUsed || bLineWidthUsed)
297 double fTransparency,
298 const std::vector< double >* pStroke,
300 css::drawing::LineCap eLineCap,
301 double fMiterMinimumAngle)
304 pStroke, eLineJoin, eLineCap, fMiterMinimumAngle))
312 if( fLineWidth != 0.0 )
313 aLineInfo.SetWidth( static_cast<tools::Long>(fLineWidth+0.5) );
315 aLineInfo.SetLineJoin(eLineJoin);
316 aLineInfo.SetLineCap(eLineCap);
330 double fTransparency,
331 const std::vector< double >* pStroke,
333 css::drawing::LineCap eLineCap,
334 double fMiterMinimumAngle)
339 if(!rB2DPolygon.
count())
366 const double fAdjustedTransparency =
mpAlphaVDev ? 0 : fTransparency;
371 fAdjustedTransparency,
384 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