1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_CONTINUOUSKEYTIMEACTIVITYBASE_HXX
21 #define INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_CONTINUOUSKEYTIMEACTIVITYBASE_HXX
23 #include "simplecontinuousactivitybase.hxx"
25 #include <basegfx/utils/keystoplerp.hxx>
28 namespace slideshow::internal
30 /** Interpolated, key-times animation.
32 This class implements an interpolated key-times
33 animation, with continuous time.
35 class ContinuousKeyTimeActivityBase
: public SimpleContinuousActivityBase
38 explicit ContinuousKeyTimeActivityBase( const ActivityParameters
& rParms
);
40 using SimpleContinuousActivityBase::perform
;
42 /** Hook for derived classes
44 This method will be called from perform(), already
45 equipped with the modified time (nMinNumberOfFrames, repeat,
46 acceleration and deceleration taken into account).
49 Current index of the key times/key values.
51 @param nFractionalIndex
52 Fractional value from the [0,1] range, specifying
53 the position between nIndex and nIndex+1.
56 Number of full repeats already performed
58 virtual void perform( sal_uInt32 nIndex
,
59 double nFractionalIndex
,
60 sal_uInt32 nRepeatCount
) const = 0;
62 /// From SimpleContinuousActivityBase class
63 virtual void simplePerform( double nSimpleTime
,
64 sal_uInt32 nRepeatCount
) const override
;
67 const ::basegfx::utils::KeyStopLerp maLerper
;
72 #endif // INCLUDED_SLIDESHOW_SOURCE_ENGINE_ACTIVITIES_CONTINUOUSKEYTIMEACTIVITYBASE_HXX
74 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */