24#include <com/sun/star/rendering/XCanvas.hpp>
44 class LineAction :
public Action
47 LineAction( const ::basegfx::B2DPoint&,
48 const ::basegfx::B2DPoint&,
52 LineAction(
const LineAction&) =
delete;
53 const LineAction& operator=(
const LineAction&) =
delete;
55 virtual bool render( const ::basegfx::B2DHomMatrix& rTransformation )
const override;
56 virtual bool renderSubset( const ::basegfx::B2DHomMatrix& rTransformation,
57 const Subset& rSubset )
const override;
59 virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation )
const override;
60 virtual ::basegfx::B2DRange getBounds( const ::basegfx::B2DHomMatrix& rTransformation,
61 const Subset& rSubset )
const override;
63 virtual sal_Int32 getActionCount()
const override;
72 LineAction::LineAction( const ::basegfx::B2DPoint& rStartPoint,
73 const ::basegfx::B2DPoint& rEndPoint,
75 const OutDevState& rState ) :
81 maState.DeviceColor = rState.lineColor;
84 bool LineAction::render( const ::basegfx::B2DHomMatrix& rTransformation )
const
86 SAL_INFO(
"cppcanvas.emf",
"::cppcanvas::internal::LineAction::render()" );
87 SAL_INFO(
"cppcanvas.emf",
"::cppcanvas::internal::LineAction: 0x" << std::hex <<
this );
89 rendering::RenderState aLocalState(
maState );
90 ::canvas::tools::prependToRenderState(aLocalState, rTransformation);
93 ::basegfx::unotools::point2DFromB2DPoint(
maEndPoint),
100 bool LineAction::renderSubset( const ::basegfx::B2DHomMatrix& rTransformation,
101 const Subset& rSubset )
const
105 if( rSubset.mnSubsetBegin != 0 ||
106 rSubset.mnSubsetEnd != 1 )
109 return render( rTransformation );
112 ::basegfx::B2DRange LineAction::getBounds( const ::basegfx::B2DHomMatrix& rTransformation )
const
114 rendering::RenderState aLocalState(
maState );
115 ::canvas::tools::prependToRenderState(aLocalState, rTransformation);
124 const Subset& rSubset )
const
128 if( rSubset.mnSubsetBegin != 0 ||
129 rSubset.mnSubsetEnd != 1 )
130 return ::basegfx::B2DRange();
132 return getBounds( rTransformation );
135 sal_Int32 LineAction::getActionCount()
const
142 const ::basegfx::B2DPoint& rEndPoint,
146 return std::make_shared<LineAction>( rStartPoint,
rendering::RenderState maState
::basegfx::B2DPoint maStartPoint
::basegfx::B2DPoint maEndPoint
#define SAL_INFO(area, stream)
std::shared_ptr< Action > createLineAction(const ::basegfx::B2DPoint &, const ::basegfx::B2DPoint &, const CanvasSharedPtr &, const OutDevState &)
Plain hair line from point 1 to point 2.
std::shared_ptr< Canvas > CanvasSharedPtr