LibreOffice Module drawinglayer (master) 1
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
drawinglayer::primitive3d::BufferedDecompositionPrimitive3D Class Reference

BufferedDecompositionPrimitive3D class. More...

#include <baseprimitive3d.hxx>

Inheritance diagram for drawinglayer::primitive3d::BufferedDecompositionPrimitive3D:
[legend]
Collaboration diagram for drawinglayer::primitive3d::BufferedDecompositionPrimitive3D:
[legend]

Public Member Functions

 BufferedDecompositionPrimitive3D ()
 
virtual Primitive3DContainer get3DDecomposition (const geometry::ViewInformation3D &rViewInformation) const override
 The getDecomposition default implementation will on demand use create3DDecomposition() if maBuffered3DDecomposition is empty. More...
 
- Public Member Functions inherited from drawinglayer::primitive3d::BasePrimitive3D
 BasePrimitive3D ()
 
virtual ~BasePrimitive3D () override
 
virtual bool operator== (const BasePrimitive3D &rPrimitive) const
 the ==operator is mainly needed to allow testing newly-created high level primitives against their last incarnation which buffers/holds the decompositions. More...
 
bool operator!= (const BasePrimitive3D &rPrimitive) const
 
virtual basegfx::B3DRange getB3DRange (const geometry::ViewInformation3D &rViewInformation) const
 This method is for places where using the C++ implementation directly is possible. More...
 
virtual sal_uInt32 getPrimitive3DID () const =0
 provide unique ID for fast identifying of known primitive implementations in renderers. More...
 
virtual Primitive3DContainer get3DDecomposition (const geometry::ViewInformation3D &rViewInformation) const
 The default implementation returns an empty sequence. More...
 
virtual css::uno::Sequence< ::css::uno::Reference< ::css::graphic::XPrimitive3D > > SAL_CALL getDecomposition (const css::uno::Sequence< css::beans::PropertyValue > &rViewParameters) override
 The getDecomposition implementation for UNO API will use getDecomposition from this implementation. More...
 
virtual css::geometry::RealRectangle3D SAL_CALL getRange (const css::uno::Sequence< css::beans::PropertyValue > &rViewParameters) override
 the getRange default implementation will use getDecomposition to create the range information from merging getRange results from the single local decomposition primitives. More...
 
- Public Member Functions inherited from comphelper::WeakComponentImplHelper< typename... Ifc >
virtual void SAL_CALL acquire () noexcept override
 
virtual void SAL_CALL release () noexcept override
 
virtual void SAL_CALL dispose () noexcept final override
 
virtual void SAL_CALL addEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) final override
 
virtual void SAL_CALL removeEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) final override
 
virtual css::uno::Any SAL_CALL queryInterface (css::uno::Type const &rType) override
 
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes () override
 
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId () override
 
- Public Member Functions inherited from comphelper::WeakComponentImplHelperBase
virtual ~WeakComponentImplHelperBase () override
 
virtual void SAL_CALL dispose () override
 
virtual void SAL_CALL addEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) override
 
virtual void SAL_CALL removeEventListener (css::uno::Reference< css::lang::XEventListener > const &rxListener) override
 
virtual css::uno::Any SAL_CALL queryInterface (css::uno::Type const &rType) override
 
virtual void disposing (std::unique_lock< std::mutex > &)
 
- Public Member Functions inherited from comphelper::UnoImplBase
virtual ~UnoImplBase ()
 

Protected Member Functions

const Primitive3DContainergetBuffered3DDecomposition () const
 access methods to maBuffered3DDecomposition. More...
 
void setBuffered3DDecomposition (const Primitive3DContainer &rNew)
 
virtual Primitive3DContainer create3DDecomposition (const geometry::ViewInformation3D &rViewInformation) const
 method which is to be used to implement the local decomposition of a 2D primitive. More...
 
- Protected Member Functions inherited from comphelper::WeakComponentImplHelperBase
void throwIfDisposed (std::unique_lock< std::mutex > &)
 

Private Attributes

Primitive3DContainer maBuffered3DDecomposition
 a sequence used for buffering the last create3DDecomposition() result More...
 

Additional Inherited Members

- Protected Attributes inherited from comphelper::WeakComponentImplHelperBase
comphelper::OInterfaceContainerHelper4< css::lang::XEventListener > maEventListeners
 
- Protected Attributes inherited from comphelper::UnoImplBase
std::mutex m_aMutex
 
bool m_bDisposed
 

Detailed Description

BufferedDecompositionPrimitive3D class.

Baseclass for all C++ implementations of css::graphic::XPrimitive2D

The description/functionality is identical with the 2D case in baseprimitive2d.hxx, please see there for detailed information

Definition at line 156 of file baseprimitive3d.hxx.

Constructor & Destructor Documentation

◆ BufferedDecompositionPrimitive3D()

drawinglayer::primitive3d::BufferedDecompositionPrimitive3D::BufferedDecompositionPrimitive3D ( )

Definition at line 72 of file baseprimitive3d.cxx.

Member Function Documentation

◆ create3DDecomposition()

Primitive3DContainer drawinglayer::primitive3d::BufferedDecompositionPrimitive3D::create3DDecomposition ( const geometry::ViewInformation3D rViewInformation) const
protectedvirtual

method which is to be used to implement the local decomposition of a 2D primitive.

The default implementation will just return an empty decomposition

Reimplemented in drawinglayer::primitive3d::PolygonStrokePrimitive3D, drawinglayer::primitive3d::SdrCubePrimitive3D, drawinglayer::primitive3d::SdrExtrudePrimitive3D, drawinglayer::primitive3d::SdrLathePrimitive3D, drawinglayer::primitive3d::SdrPolyPolygonPrimitive3D, and drawinglayer::primitive3d::SdrSpherePrimitive3D.

Definition at line 67 of file baseprimitive3d.cxx.

Referenced by get3DDecomposition().

◆ get3DDecomposition()

Primitive3DContainer drawinglayer::primitive3d::BufferedDecompositionPrimitive3D::get3DDecomposition ( const geometry::ViewInformation3D rViewInformation) const
overridevirtual

The getDecomposition default implementation will on demand use create3DDecomposition() if maBuffered3DDecomposition is empty.

It will set maBuffered3DDecomposition to this obtained decomposition to buffer it. If the decomposition is also ViewInformation-dependent, this method needs to be overridden and the ViewInformation for the last decomposition needs to be remembered, too, and be used in the next call to decide if the buffered decomposition may be reused or not.

Reimplemented from drawinglayer::primitive3d::BasePrimitive3D.

Reimplemented in drawinglayer::primitive3d::SdrExtrudePrimitive3D, and drawinglayer::primitive3d::SdrLathePrimitive3D.

Definition at line 76 of file baseprimitive3d.cxx.

References create3DDecomposition(), getBuffered3DDecomposition(), comphelper::UnoImplBase::m_aMutex, and setBuffered3DDecomposition().

Referenced by drawinglayer::primitive3d::SdrExtrudePrimitive3D::get3DDecomposition(), and drawinglayer::primitive3d::SdrLathePrimitive3D::get3DDecomposition().

◆ getBuffered3DDecomposition()

const Primitive3DContainer & drawinglayer::primitive3d::BufferedDecompositionPrimitive3D::getBuffered3DDecomposition ( ) const
inlineprotected

access methods to maBuffered3DDecomposition.

The usage of this methods may allow later thread-safe stuff to be added if needed. Only to be used by getDecomposition() implementations for buffering the last decomposition.

Definition at line 168 of file baseprimitive3d.hxx.

Referenced by get3DDecomposition(), drawinglayer::primitive3d::SdrExtrudePrimitive3D::get3DDecomposition(), and drawinglayer::primitive3d::SdrLathePrimitive3D::get3DDecomposition().

◆ setBuffered3DDecomposition()

void drawinglayer::primitive3d::BufferedDecompositionPrimitive3D::setBuffered3DDecomposition ( const Primitive3DContainer rNew)
inlineprotected

Member Data Documentation

◆ maBuffered3DDecomposition

Primitive3DContainer drawinglayer::primitive3d::BufferedDecompositionPrimitive3D::maBuffered3DDecomposition
private

a sequence used for buffering the last create3DDecomposition() result

Definition at line 161 of file baseprimitive3d.hxx.


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