LibreOffice Module drawinglayer (master) 1
|
ShadowPrimitive2D class. More...
#include <shadowprimitive2d.hxx>
Public Member Functions | |
ShadowPrimitive2D (basegfx::B2DHomMatrix aShadowTransform, const basegfx::BColor &rShadowColor, double fShadowBlur, Primitive2DContainer &&aChildren) | |
constructor More... | |
const basegfx::B2DHomMatrix & | getShadowTransform () const |
data read access More... | |
const basegfx::BColor & | getShadowColor () const |
double | getShadowBlur () 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 | get2DDecomposition (Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const override |
create decomposition More... | |
virtual sal_uInt32 | getPrimitive2DID () const override |
provide unique ID More... | |
Public Member Functions inherited from drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D | |
BufferedDecompositionGroupPrimitive2D (Primitive2DContainer &&aChildren) | |
constructor/destructor. For GroupPrimitive2D we need the child parameter, too. More... | |
virtual void | get2DDecomposition (Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const override |
identical to BufferedDecompositionPrimitive2D, see there please More... | |
Public Member Functions inherited from drawinglayer::primitive2d::GroupPrimitive2D | |
GroupPrimitive2D (Primitive2DContainer &&aChildren) | |
constructor More... | |
const Primitive2DContainer & | getChildren () const |
data read access More... | |
void | getChildren (Primitive2DDecompositionVisitor &rVisitor) const |
virtual bool | operator== (const BasePrimitive2D &rPrimitive) const override |
compare operator More... | |
virtual void | get2DDecomposition (Primitive2DDecompositionVisitor &rVisitor, const geometry::ViewInformation2D &rViewInformation) const override |
local decomposition. Implementation will just return children More... | |
virtual sal_uInt32 | getPrimitive2DID () const override |
provide unique ID More... | |
virtual sal_Int64 | estimateUsage () override |
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 () |
Protected Member Functions | |
virtual void | create2DDecomposition (Primitive2DContainer &rContainer, const geometry::ViewInformation2D &rViewInformation) const override |
method which is to be used to implement the local decomposition of a 2D primitive. More... | |
Protected Member Functions inherited from drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D | |
const Primitive2DContainer & | getBuffered2DDecomposition () const |
identical to BufferedDecompositionPrimitive2D, see there please 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 group primitive. More... | |
Protected Member Functions inherited from salhelper::SimpleReferenceObject | |
virtual | ~SimpleReferenceObject () COVERITY_NOEXCEPT_FALSE |
Private Member Functions | |
void | getFullyEmbeddedShadowPrimitives (Primitive2DContainer &rContainer) const |
helpers More... | |
bool | prepareValuesAndcheckValidity (basegfx::B2DRange &rRange, basegfx::B2DRange &rClippedRange, basegfx::B2DVector &rDiscreteSize, double &rfDiscreteBlurRadius, const geometry::ViewInformation2D &rViewInformation) const |
Private Attributes | |
basegfx::B2DHomMatrix | maShadowTransform |
the shadow transformation, normally just an offset More... | |
basegfx::BColor | maShadowColor |
the shadow color to which all geometry is to be forced More... | |
double | mfShadowBlur |
the blur radius of the shadow More... | |
double | mfLastDiscreteBlurRadius |
last used DiscreteBlurRadius and ClippedRange More... | |
basegfx::B2DRange | maLastClippedRange |
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 Attributes inherited from salhelper::SimpleReferenceObject | |
oslInterlockedCount | m_nCount |
ShadowPrimitive2D class.
This primitive defines a generic shadow geometry construction for 2D objects. It decomposes to a TransformPrimitive2D embedded into a ModifiedColorPrimitive2D. It's for primitive usage convenience, so that not everyone has to implement the generic shadow construction by himself. The same geometry as sequence of primitives is used as geometry and as shadow. Since these are RefCounted Uno-Api objects, no extra objects are needed for the shadow itself; all the local decompositions of the original geometry can be reused from the renderer for shadow visualisation.
Definition at line 43 of file shadowprimitive2d.hxx.
drawinglayer::primitive2d::ShadowPrimitive2D::ShadowPrimitive2D | ( | basegfx::B2DHomMatrix | aShadowTransform, |
const basegfx::BColor & | rShadowColor, | ||
double | fShadowBlur, | ||
Primitive2DContainer && | aChildren | ||
) |
|
overrideprotectedvirtual |
method which is to be used to implement the local decomposition of a 2D primitive.
Implements drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D.
Definition at line 155 of file shadowprimitive2d.cxx.
References drawinglayer::createAlphaMask(), basegfx::utils::createScaleTranslateB2DHomMatrix(), basegfx::utils::createTranslateB2DHomMatrix(), Bitmap::Erase(), getFullyEmbeddedShadowPrimitives(), basegfx::Range2D< typename TYPE, typename TRAITS >::getHeight(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMinX(), basegfx::Range2D< typename TYPE, typename TRAITS >::getMinY(), drawinglayer::geometry::ViewInformation2D::getObjectToViewTransformation(), basegfx::B2DRange::getRange(), getShadowBlur(), getShadowColor(), Bitmap::GetSizePixel(), basegfx::Range2D< typename TYPE, typename TRAITS >::getWidth(), basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), Size::Height(), AlphaMask::IsEmpty(), vcl::N24_BPP, prepareValuesAndcheckValidity(), drawinglayer::primitive2d::ProcessAndBlurAlphaMask(), result, basegfx::B2DHomMatrix::scale(), Size::Width(), and vcl::PngImageWriter::write().
|
overridevirtual |
create decomposition
Reimplemented from drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D.
Definition at line 283 of file shadowprimitive2d.cxx.
References drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D::get2DDecomposition(), drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D::getBuffered2DDecomposition(), drawinglayer::primitive2d::GroupPrimitive2D::getChildren(), getFullyEmbeddedShadowPrimitives(), drawinglayer::geometry::ViewInformation2D::getInverseObjectToViewTransformation(), drawinglayer::geometry::ViewInformation2D::getObjectToViewTransformation(), getShadowBlur(), basegfx::Range2D< typename TYPE, typename TRAITS >::grow(), basegfx::Range2D< typename TYPE, typename TRAITS >::isEmpty(), basegfx::B2DHomMatrix::isIdentity(), basegfx::Range2D< typename TYPE, typename TRAITS >::isInside(), maLastClippedRange, mfLastDiscreteBlurRadius, prepareValuesAndcheckValidity(), drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D::setBuffered2DDecomposition(), and drawinglayer::primitive2d::Primitive2DDecompositionVisitor::visit().
|
overridevirtual |
get range
Reimplemented from drawinglayer::primitive2d::BasePrimitive2D.
Definition at line 379 of file shadowprimitive2d.cxx.
References getB2DRange(), drawinglayer::primitive2d::GroupPrimitive2D::getChildren(), getShadowBlur(), getShadowTransform(), basegfx::Range2D< typename TYPE, typename TRAITS >::grow(), and basegfx::B2DRange::transform().
Referenced by getB2DRange().
|
private |
helpers
Definition at line 73 of file shadowprimitive2d.cxx.
References drawinglayer::primitive2d::GroupPrimitive2D::getChildren(), getShadowColor(), getShadowTransform(), and drawinglayer::primitive2d::Primitive2DContainer::visit().
Referenced by create2DDecomposition(), get2DDecomposition(), and prepareValuesAndcheckValidity().
|
overridevirtual |
provide unique ID
Reimplemented from drawinglayer::primitive2d::GroupPrimitive2D.
Definition at line 398 of file shadowprimitive2d.cxx.
References PRIMITIVE2D_ID_SHADOWPRIMITIVE2D.
|
inline |
Definition at line 80 of file shadowprimitive2d.hxx.
Referenced by create2DDecomposition(), drawinglayer::Primitive2dXmlDump::decomposeAndWrite(), get2DDecomposition(), getB2DRange(), operator==(), and prepareValuesAndcheckValidity().
|
inline |
Definition at line 79 of file shadowprimitive2d.hxx.
References maShadowColor.
Referenced by create2DDecomposition(), drawinglayer::Primitive2dXmlDump::decomposeAndWrite(), getFullyEmbeddedShadowPrimitives(), and operator==().
|
inline |
data read access
Definition at line 78 of file shadowprimitive2d.hxx.
Referenced by drawinglayer::Primitive2dXmlDump::decomposeAndWrite(), getB2DRange(), getFullyEmbeddedShadowPrimitives(), and operator==().
|
overridevirtual |
compare operator
Reimplemented from drawinglayer::primitive2d::GroupPrimitive2D.
Definition at line 55 of file shadowprimitive2d.cxx.
References getShadowBlur(), getShadowColor(), and getShadowTransform().
|
private |
Definition at line 89 of file shadowprimitive2d.cxx.
References drawinglayer::primitive2d::Primitive2DContainer::getB2DRange(), drawinglayer::primitive2d::GroupPrimitive2D::getChildren(), getFullyEmbeddedShadowPrimitives(), getLength(), drawinglayer::geometry::ViewInformation2D::getObjectToViewTransformation(), basegfx::B2DRange::getRange(), getShadowBlur(), drawinglayer::geometry::ViewInformation2D::getViewport(), basegfx::Tuple2D< typename TYPE >::getX(), basegfx::Tuple2D< typename TYPE >::getY(), basegfx::Range2D< typename TYPE, typename TRAITS >::grow(), basegfx::Range2D< typename TYPE, typename TRAITS >::intersect(), basegfx::Range2D< typename TYPE, typename TRAITS >::isEmpty(), and basegfx::B2DHomMatrix::isIdentity().
Referenced by create2DDecomposition(), and get2DDecomposition().
|
private |
Definition at line 57 of file shadowprimitive2d.hxx.
Referenced by get2DDecomposition().
|
private |
the shadow color to which all geometry is to be forced
Definition at line 50 of file shadowprimitive2d.hxx.
|
private |
the shadow transformation, normally just an offset
Definition at line 47 of file shadowprimitive2d.hxx.
|
private |
last used DiscreteBlurRadius and ClippedRange
Definition at line 56 of file shadowprimitive2d.hxx.
Referenced by get2DDecomposition().
|
private |
the blur radius of the shadow
Definition at line 53 of file shadowprimitive2d.hxx.