diff options
-rw-r--r-- | include/drawinglayer/primitive2d/animatedprimitive2d.hxx | 259 | ||||
-rw-r--r-- | solenv/clang-format/blacklist | 1 |
2 files changed, 132 insertions, 128 deletions
diff --git a/include/drawinglayer/primitive2d/animatedprimitive2d.hxx b/include/drawinglayer/primitive2d/animatedprimitive2d.hxx index c03ac0f220dc..cfd64f5c90f0 100644 --- a/include/drawinglayer/primitive2d/animatedprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/animatedprimitive2d.hxx @@ -26,145 +26,150 @@ #include <memory> // predefines -namespace drawinglayer { namespace animation { - class AnimationEntry; -}} - -namespace basegfx { class B2DHomMatrix; } +namespace drawinglayer +{ +namespace animation +{ +class AnimationEntry; +} +} +namespace basegfx +{ +class B2DHomMatrix; +} namespace drawinglayer { - namespace primitive2d - { - /** AnimatedSwitchPrimitive2D class - - This is the basic class for simple, animated primitives. The basic idea - is to have an animation definition (AnimationEntry) who's basic - functionality is to return a state value for any given animation time in - the range of [0.0 .. 1.0]. Depending on the state, the decomposition - calculates an index, which of the members of the child vector is to - be visualized. - - An example: For blinking, the Child vector should exist of two entries; - for values of [0.0 .. 0.5] the first, else the last entry will be used. - This mechanism is not limited to two entries, though. - */ - class DRAWINGLAYER_DLLPUBLIC AnimatedSwitchPrimitive2D : public GroupPrimitive2D - { - private: - /** - The animation definition which allows translation of a point in time - to an animation state [0.0 .. 1.0]. This member contains a cloned - definition and is owned by this implementation. - */ - std::unique_ptr<animation::AnimationEntry> mpAnimationEntry; - - /** flag if this is a text or graphic animation. Necessary since SdrViews need to differentiate - between both types if they are on/off - */ - bool mbIsTextAnimation : 1; - - protected: - /** write access right for classes deriving from this who want to do special - things (e.g. optimization, buffering). - Caution: This is an exception from the read-only, non-modifiable paradigm - for primitives, so special preparations may be needed. Usually should - only be used for initialization (e.g. in a derived constructor) - */ - void setAnimationEntry(const animation::AnimationEntry& rNew); - - public: - /// constructor - AnimatedSwitchPrimitive2D( - const animation::AnimationEntry& rAnimationEntry, - const Primitive2DContainer& rChildren, - bool bIsTextAnimation); - - /// destructor - needed due to mpAnimationEntry - virtual ~AnimatedSwitchPrimitive2D() override; - - /// data read access - const animation::AnimationEntry& getAnimationEntry() const { return *mpAnimationEntry; } - bool isTextAnimation() const { return mbIsTextAnimation; } - bool isGraphicAnimation() const { return !isTextAnimation(); } - - /// compare operator - virtual bool operator==(const BasePrimitive2D& rPrimitive) const override; - - /// provide unique ID - virtual sal_uInt32 getPrimitive2DID() const override; - - /** Override getDecomposition() here since the decompose - depends on the point in time, so the default implementation is - not useful here, it needs to be handled locally - */ - virtual void get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const override; - }; - } // end of namespace primitive2d +namespace primitive2d +{ +/** AnimatedSwitchPrimitive2D class + + This is the basic class for simple, animated primitives. The basic idea + is to have an animation definition (AnimationEntry) who's basic + functionality is to return a state value for any given animation time in + the range of [0.0 .. 1.0]. Depending on the state, the decomposition + calculates an index, which of the members of the child vector is to + be visualized. + + An example: For blinking, the Child vector should exist of two entries; + for values of [0.0 .. 0.5] the first, else the last entry will be used. + This mechanism is not limited to two entries, though. + */ +class DRAWINGLAYER_DLLPUBLIC AnimatedSwitchPrimitive2D : public GroupPrimitive2D +{ +private: + /** + The animation definition which allows translation of a point in time + to an animation state [0.0 .. 1.0]. This member contains a cloned + definition and is owned by this implementation. + */ + std::unique_ptr<animation::AnimationEntry> mpAnimationEntry; + + /** flag if this is a text or graphic animation. Necessary since SdrViews need to differentiate + between both types if they are on/off + */ + bool mbIsTextAnimation : 1; + +protected: + /** write access right for classes deriving from this who want to do special + things (e.g. optimization, buffering). + Caution: This is an exception from the read-only, non-modifiable paradigm + for primitives, so special preparations may be needed. Usually should + only be used for initialization (e.g. in a derived constructor) + */ + void setAnimationEntry(const animation::AnimationEntry& rNew); + +public: + /// constructor + AnimatedSwitchPrimitive2D(const animation::AnimationEntry& rAnimationEntry, + const Primitive2DContainer& rChildren, bool bIsTextAnimation); + + /// destructor - needed due to mpAnimationEntry + virtual ~AnimatedSwitchPrimitive2D() override; + + /// data read access + const animation::AnimationEntry& getAnimationEntry() const { return *mpAnimationEntry; } + bool isTextAnimation() const { return mbIsTextAnimation; } + bool isGraphicAnimation() const { return !isTextAnimation(); } + + /// compare operator + virtual bool operator==(const BasePrimitive2D& rPrimitive) const override; + + /// provide unique ID + virtual sal_uInt32 getPrimitive2DID() const override; + + /** Override getDecomposition() here since the decompose + depends on the point in time, so the default implementation is + not useful here, it needs to be handled locally + */ + virtual void + get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, + const geometry::ViewInformation2D& rViewInformation) const override; +}; +} // end of namespace primitive2d } // end of namespace drawinglayer - namespace drawinglayer { - namespace primitive2d - { - /** AnimatedBlinkPrimitive2D class - - Basically the same mechanism as in AnimatedSwitchPrimitive2D, but the - decomposition is specialized in delivering the children in the - range [0.0.. 0.5] and an empty sequence else - */ - class DRAWINGLAYER_DLLPUBLIC AnimatedBlinkPrimitive2D final : public AnimatedSwitchPrimitive2D - { - public: - /// constructor - AnimatedBlinkPrimitive2D( - const animation::AnimationEntry& rAnimationEntry, - const Primitive2DContainer& rChildren); - - /// create local decomposition - virtual void get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const override; - - /// provide unique ID - virtual sal_uInt32 getPrimitive2DID() const override; - }; - } // end of namespace primitive2d -} // end of namespace drawinglayer +namespace primitive2d +{ +/** AnimatedBlinkPrimitive2D class + Basically the same mechanism as in AnimatedSwitchPrimitive2D, but the + decomposition is specialized in delivering the children in the + range [0.0.. 0.5] and an empty sequence else + */ +class DRAWINGLAYER_DLLPUBLIC AnimatedBlinkPrimitive2D final : public AnimatedSwitchPrimitive2D +{ +public: + /// constructor + AnimatedBlinkPrimitive2D(const animation::AnimationEntry& rAnimationEntry, + const Primitive2DContainer& rChildren); + + /// create local decomposition + virtual void + get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, + const geometry::ViewInformation2D& rViewInformation) const override; + + /// provide unique ID + virtual sal_uInt32 getPrimitive2DID() const override; +}; +} // end of namespace primitive2d +} // end of namespace drawinglayer namespace drawinglayer { - namespace primitive2d - { - /** AnimatedInterpolatePrimitive2D class - - Specialized on multi-step animations based on matrix transformations. The - Child sequence will be embedded in a matrix transformation. That transformation - will be linearly combined from the decomposed values and the animation value - to allow a smooth animation. - */ - class DRAWINGLAYER_DLLPUBLIC AnimatedInterpolatePrimitive2D final : public AnimatedSwitchPrimitive2D - { - private: - /// the transformations - std::vector< basegfx::utils::B2DHomMatrixBufferedDecompose > maMatrixStack; - - public: - /// constructor - AnimatedInterpolatePrimitive2D( - const std::vector< basegfx::B2DHomMatrix >& rmMatrixStack, - const animation::AnimationEntry& rAnimationEntry, - const Primitive2DContainer& rChildren); - - /// create local decomposition - virtual void get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, const geometry::ViewInformation2D& rViewInformation) const override; - - /// provide unique ID - virtual sal_uInt32 getPrimitive2DID() const override; - }; - } // end of namespace primitive2d -} // end of namespace drawinglayer +namespace primitive2d +{ +/** AnimatedInterpolatePrimitive2D class + Specialized on multi-step animations based on matrix transformations. The + Child sequence will be embedded in a matrix transformation. That transformation + will be linearly combined from the decomposed values and the animation value + to allow a smooth animation. + */ +class DRAWINGLAYER_DLLPUBLIC AnimatedInterpolatePrimitive2D final : public AnimatedSwitchPrimitive2D +{ +private: + /// the transformations + std::vector<basegfx::utils::B2DHomMatrixBufferedDecompose> maMatrixStack; + +public: + /// constructor + AnimatedInterpolatePrimitive2D(const std::vector<basegfx::B2DHomMatrix>& rmMatrixStack, + const animation::AnimationEntry& rAnimationEntry, + const Primitive2DContainer& rChildren); + + /// create local decomposition + virtual void + get2DDecomposition(Primitive2DDecompositionVisitor& rVisitor, + const geometry::ViewInformation2D& rViewInformation) const override; + + /// provide unique ID + virtual sal_uInt32 getPrimitive2DID() const override; +}; +} // end of namespace primitive2d +} // end of namespace drawinglayer /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/clang-format/blacklist b/solenv/clang-format/blacklist index 7f1758c40b50..8fe9cb97ea2e 100644 --- a/solenv/clang-format/blacklist +++ b/solenv/clang-format/blacklist @@ -6049,7 +6049,6 @@ include/drawinglayer/attribute/strokeattribute.hxx include/drawinglayer/drawinglayerdllapi.h include/drawinglayer/geometry/viewinformation2d.hxx include/drawinglayer/geometry/viewinformation3d.hxx -include/drawinglayer/primitive2d/animatedprimitive2d.hxx include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx include/drawinglayer/primitive2d/borderlineprimitive2d.hxx include/drawinglayer/primitive2d/controlprimitive2d.hxx |