LibreOffice Module drawinglayer (master) 1
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
drawinglayer::primitive2d::ShadowPrimitive2D Class Referencefinal

ShadowPrimitive2D class. More...

#include <shadowprimitive2d.hxx>

Inheritance diagram for drawinglayer::primitive2d::ShadowPrimitive2D:
[legend]
Collaboration diagram for drawinglayer::primitive2d::ShadowPrimitive2D:
[legend]

Public Member Functions

 ShadowPrimitive2D (basegfx::B2DHomMatrix aShadowTransform, const basegfx::BColor &rShadowColor, double fShadowBlur, Primitive2DContainer &&aChildren)
 constructor More...
 
const basegfx::B2DHomMatrixgetShadowTransform () const
 data read access More...
 
const basegfx::BColorgetShadowColor () 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 Primitive2DContainergetChildren () 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 Primitive2DContainergetBuffered2DDecomposition () 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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ ShadowPrimitive2D()

drawinglayer::primitive2d::ShadowPrimitive2D::ShadowPrimitive2D ( basegfx::B2DHomMatrix  aShadowTransform,
const basegfx::BColor rShadowColor,
double  fShadowBlur,
Primitive2DContainer &&  aChildren 
)

constructor

Definition at line 43 of file shadowprimitive2d.cxx.

References maShadowColor.

Member Function Documentation

◆ create2DDecomposition()

void drawinglayer::primitive2d::ShadowPrimitive2D::create2DDecomposition ( Primitive2DContainer rContainer,
const geometry::ViewInformation2D rViewInformation 
) const
overrideprotectedvirtual

◆ get2DDecomposition()

void drawinglayer::primitive2d::ShadowPrimitive2D::get2DDecomposition ( Primitive2DDecompositionVisitor rVisitor,
const geometry::ViewInformation2D rViewInformation 
) const
overridevirtual

◆ getB2DRange()

basegfx::B2DRange drawinglayer::primitive2d::ShadowPrimitive2D::getB2DRange ( const geometry::ViewInformation2D rViewInformation) const
overridevirtual

◆ getFullyEmbeddedShadowPrimitives()

void drawinglayer::primitive2d::ShadowPrimitive2D::getFullyEmbeddedShadowPrimitives ( Primitive2DContainer rContainer) const
private

◆ getPrimitive2DID()

sal_uInt32 drawinglayer::primitive2d::ShadowPrimitive2D::getPrimitive2DID ( ) const
overridevirtual

provide unique ID

Reimplemented from drawinglayer::primitive2d::GroupPrimitive2D.

Definition at line 398 of file shadowprimitive2d.cxx.

References PRIMITIVE2D_ID_SHADOWPRIMITIVE2D.

◆ getShadowBlur()

double drawinglayer::primitive2d::ShadowPrimitive2D::getShadowBlur ( ) const
inline

◆ getShadowColor()

const basegfx::BColor & drawinglayer::primitive2d::ShadowPrimitive2D::getShadowColor ( ) const
inline

◆ getShadowTransform()

const basegfx::B2DHomMatrix & drawinglayer::primitive2d::ShadowPrimitive2D::getShadowTransform ( ) const
inline

◆ operator==()

bool drawinglayer::primitive2d::ShadowPrimitive2D::operator== ( const BasePrimitive2D rPrimitive) const
overridevirtual

compare operator

Reimplemented from drawinglayer::primitive2d::GroupPrimitive2D.

Definition at line 55 of file shadowprimitive2d.cxx.

References getShadowBlur(), getShadowColor(), and getShadowTransform().

◆ prepareValuesAndcheckValidity()

bool drawinglayer::primitive2d::ShadowPrimitive2D::prepareValuesAndcheckValidity ( basegfx::B2DRange rRange,
basegfx::B2DRange rClippedRange,
basegfx::B2DVector rDiscreteSize,
double &  rfDiscreteBlurRadius,
const geometry::ViewInformation2D rViewInformation 
) const
private

Member Data Documentation

◆ maLastClippedRange

basegfx::B2DRange drawinglayer::primitive2d::ShadowPrimitive2D::maLastClippedRange
private

Definition at line 57 of file shadowprimitive2d.hxx.

Referenced by get2DDecomposition().

◆ maShadowColor

basegfx::BColor drawinglayer::primitive2d::ShadowPrimitive2D::maShadowColor
private

the shadow color to which all geometry is to be forced

Definition at line 50 of file shadowprimitive2d.hxx.

◆ maShadowTransform

basegfx::B2DHomMatrix drawinglayer::primitive2d::ShadowPrimitive2D::maShadowTransform
private

the shadow transformation, normally just an offset

Definition at line 47 of file shadowprimitive2d.hxx.

◆ mfLastDiscreteBlurRadius

double drawinglayer::primitive2d::ShadowPrimitive2D::mfLastDiscreteBlurRadius
private

last used DiscreteBlurRadius and ClippedRange

Definition at line 56 of file shadowprimitive2d.hxx.

Referenced by get2DDecomposition().

◆ mfShadowBlur

double drawinglayer::primitive2d::ShadowPrimitive2D::mfShadowBlur
private

the blur radius of the shadow

Definition at line 53 of file shadowprimitive2d.hxx.


The documentation for this class was generated from the following files: