| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef GUI_NAVIGATIONANIMATION_H |
| | #define GUI_NAVIGATIONANIMATION_H |
| |
|
| | #include "Navigation/NavigationStyle.h" |
| | #include <Inventor/SbRotation.h> |
| | #include <Inventor/SbVec3f.h> |
| | #include <QVariantAnimation> |
| |
|
| | namespace Gui |
| | { |
| |
|
| | class GuiExport NavigationAnimation: protected QVariantAnimation |
| | { |
| | Q_OBJECT |
| | public: |
| | explicit NavigationAnimation(NavigationStyle* navigation); |
| | using QVariantAnimation::state; |
| |
|
| | Q_SIGNALS: |
| | void interrupted(); |
| |
|
| | protected: |
| | NavigationStyle* navigation; |
| |
|
| | virtual void initialize() = 0; |
| | virtual void update(const QVariant& value) = 0; |
| | virtual void onStop(bool finished); |
| |
|
| | private: |
| | void updateCurrentValue(const QVariant& value) override; |
| |
|
| | friend class NavigationAnimator; |
| | friend class QObject; |
| | }; |
| |
|
| | class GuiExport FixedTimeAnimation: public NavigationAnimation |
| | { |
| | public: |
| | explicit FixedTimeAnimation( |
| | NavigationStyle* navigation, |
| | const SbRotation& orientation, |
| | const SbVec3f& rotationCenter, |
| | const SbVec3f& translation, |
| | int duration, |
| | const QEasingCurve::Type easingCurve |
| | ); |
| |
|
| | private: |
| | float angularVelocity; |
| | SbVec3f linearVelocity; |
| |
|
| | SbRotation targetOrientation; |
| | SbVec3f targetTranslation; |
| |
|
| | float prevAngle; |
| | SbVec3f prevTranslation; |
| |
|
| | SbVec3f rotationCenter; |
| | SbVec3f rotationAxis; |
| |
|
| | void initialize() override; |
| | void update(const QVariant& value) override; |
| | void onStop(bool finished) override; |
| | }; |
| |
|
| | class GuiExport SpinningAnimation: public NavigationAnimation |
| | { |
| | public: |
| | explicit SpinningAnimation(NavigationStyle* navigation, const SbVec3f& axis, float velocity); |
| |
|
| | private: |
| | SbVec3f rotationAxis; |
| | float prevAngle; |
| |
|
| | void initialize() override; |
| | void update(const QVariant& value) override; |
| | void onStop(bool finished) override; |
| | }; |
| |
|
| | } |
| |
|
| | #endif |
| |
|