LibreOffice Module drawinglayer (master) 1
|
MetafilePrimitive2D class. More...
#include <metafileprimitive2d.hxx>
Public Member Functions | |
MetafilePrimitive2D (basegfx::B2DHomMatrix aMetaFileTransform, const GDIMetaFile &rMetaFile) | |
constructor More... | |
const basegfx::B2DHomMatrix & | getTransform () const |
data read access More... | |
const GDIMetaFile & | getMetaFile () const |
virtual bool | operator== (const BasePrimitive2D &rPrimitive) const override |
compare operator More... | |
virtual basegfx::B2DRange | getB2DRange (const geometry::ViewInformation2D &rViewInformation) const override |
get range More... | |
virtual void | accessMetafile (GDIMetaFile &rTargetMetafile) const override |
from MetafileAccessor More... | |
virtual sal_uInt32 | getPrimitive2DID () const override |
provide unique ID More... | |
Public Member Functions inherited from drawinglayer::primitive2d::BufferedDecompositionPrimitive2D | |
BufferedDecompositionPrimitive2D () | |
virtual void | get2DDecomposition (Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const override |
The getDecomposition default implementation will on demand use create2DDecomposition() if maBuffered2DDecomposition is empty. More... | |
void | setTransparenceForShadow (sal_uInt16 nTransparenceForShadow) |
sal_uInt16 | getTransparenceForShadow () const |
Public Member Functions inherited from drawinglayer::primitive2d::BasePrimitive2D | |
BasePrimitive2D () | |
virtual | ~BasePrimitive2D () override |
virtual bool | operator== (const BasePrimitive2D &rPrimitive) const |
the ==operator is mainly needed to allow testing newly-created primitives against their last incarnation which buffers/holds the made decompositions. More... | |
bool | operator!= (const BasePrimitive2D &rPrimitive) const |
virtual basegfx::B2DRange | getB2DRange (const geometry::ViewInformation2D &rViewInformation) const |
The default implementation will use getDecomposition results to create the range. More... | |
virtual sal_uInt32 | getPrimitive2DID () const =0 |
provide unique ID for fast identifying of known primitive implementations in renderers. More... | |
virtual void | get2DDecomposition (Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const |
The default implementation will return an empty sequence. More... | |
Primitive2DContainer | getDecomposition (const css::uno::Sequence< css::beans::PropertyValue > &rViewParameters) |
The getDecomposition implementation for UNO API will use getDecomposition from this implementation. More... | |
css::geometry::RealRectangle2D | getRange (const css::uno::Sequence< css::beans::PropertyValue > &rViewParameters) |
The getRange implementation for UNO API will use getRange from this implementation. More... | |
virtual sal_Int64 | estimateUsage () |
Public Member Functions inherited from salhelper::SimpleReferenceObject | |
SimpleReferenceObject () | |
void | acquire () |
void | release () |
Private Member Functions | |
virtual void | create2DDecomposition (Primitive2DContainer &rContainer, const geometry::ViewInformation2D &rViewInformation) const override |
local decomposition. More... | |
Private Attributes | |
basegfx::B2DHomMatrix | maMetaFileTransform |
the geometry definition More... | |
GDIMetaFile | maMetaFile |
the content definition More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from salhelper::SimpleReferenceObject | |
static void * | operator new (std::size_t nSize) |
static void * | operator new (std::size_t nSize, std::nothrow_t const &rNothrow) |
static void | operator delete (void *pPtr) |
static void | operator delete (void *pPtr, std::nothrow_t const &rNothrow) |
Protected Member Functions inherited from drawinglayer::primitive2d::BufferedDecompositionPrimitive2D | |
const Primitive2DContainer & | getBuffered2DDecomposition () const |
access methods to maBuffered2DDecomposition. More... | |
void | setBuffered2DDecomposition (Primitive2DContainer &&rNew) |
virtual void | create2DDecomposition (Primitive2DContainer &rContainer, const geometry::ViewInformation2D &rViewInformation) const =0 |
method which is to be used to implement the local decomposition of a 2D primitive. More... | |
Protected Member Functions inherited from salhelper::SimpleReferenceObject | |
virtual | ~SimpleReferenceObject () COVERITY_NOEXCEPT_FALSE |
Protected Attributes inherited from salhelper::SimpleReferenceObject | |
oslInterlockedCount | m_nCount |
MetafilePrimitive2D class.
This is the MetaFile representing primitive. It's geometry is defined by MetaFileTransform. The content (defined by MetaFile) will be scaled to the geometric definition by using PrefMapMode and PrefSize of the Metafile.
It has shown that this not always guarantees that all Metafile content is inside the geometric definition, but this primitive defines that this is the case to allow a getB2DRange implementation. If it cannot be guaranteed that the Metafile is inside the geometric definition, it should be embedded to a MaskPrimitive2D.
This primitive has no decomposition yet, so when not supported by a renderer, it will not be visualized.
In the future, a decomposition implementation would be appreciated and would have many advantages; Metafile would no longer have to be rendered by sub-systems and a standard way for converting Metafiles would exist.
Definition at line 54 of file metafileprimitive2d.hxx.
drawinglayer::primitive2d::MetafilePrimitive2D::MetafilePrimitive2D | ( | basegfx::B2DHomMatrix | aMetaFileTransform, |
const GDIMetaFile & | rMetaFile | ||
) |
constructor
Definition at line 89 of file metafileprimitive2d.cxx.
|
overridevirtual |
from MetafileAccessor
Definition at line 123 of file metafileprimitive2d.cxx.
References maMetaFile.
|
overrideprivatevirtual |
local decomposition.
Implements drawinglayer::primitive2d::BufferedDecompositionPrimitive2D.
Definition at line 34 of file metafileprimitive2d.cxx.
References drawinglayer::primitive2d::Primitive2DContainer::append(), vcl::unotools::b2DRectangleFromRectangle(), basegfx::utils::createPolygonFromRect(), basegfx::Range2D< typename TYPE, typename TRAITS >::equal(), drawinglayer::primitive2d::Primitive2DContainer::getB2DRange(), getMetaFile(), getTransform(), wmfemfhelper::interpretMetafile(), basegfx::Range2D< typename TYPE, typename TRAITS >::isEmpty(), basegfx::Range2D< typename TYPE, typename TRAITS >::isInside(), basegfx::B2DHomMatrix::scale(), and basegfx::B2DHomMatrix::translate().
|
overridevirtual |
get range
Reimplemented from drawinglayer::primitive2d::BasePrimitive2D.
Definition at line 110 of file metafileprimitive2d.cxx.
References getTransform(), and basegfx::B2DRange::transform().
|
inline |
Definition at line 73 of file metafileprimitive2d.hxx.
Referenced by create2DDecomposition(), and operator==().
|
overridevirtual |
provide unique ID
Implements drawinglayer::primitive2d::BasePrimitive2D.
Definition at line 129 of file metafileprimitive2d.cxx.
References PRIMITIVE2D_ID_METAFILEPRIMITIVE2D.
|
inline |
data read access
Definition at line 72 of file metafileprimitive2d.hxx.
Referenced by create2DDecomposition(), getB2DRange(), operator==(), and drawinglayer::processor2d::ContourExtractor2D::processBasePrimitive2D().
|
overridevirtual |
compare operator
Reimplemented from drawinglayer::primitive2d::BasePrimitive2D.
Definition at line 97 of file metafileprimitive2d.cxx.
References getMetaFile(), and getTransform().
|
private |
the content definition
Definition at line 61 of file metafileprimitive2d.hxx.
Referenced by accessMetafile().
|
private |
the geometry definition
Definition at line 58 of file metafileprimitive2d.hxx.