1 #pragma once
2 
3 #ifndef TINBETWEEN_H
4 #define TINBETWEEN_H
5 
6 #include <memory>
7 #include "tcommon.h"
8 
9 class TVectorImageP;
10 
11 #undef DVAPI
12 #undef DVVAR
13 
14 #ifdef TVRENDER_EXPORTS
15 #define DVAPI DV_EXPORT_API
16 #define DVVAR DV_EXPORT_VAR
17 #else
18 #define DVAPI DV_IMPORT_API
19 #define DVVAR DV_IMPORT_VAR
20 #endif
21 
22 class DVAPI TInbetween {
23   class Imp;
24   std::unique_ptr<Imp> m_imp;
25 
26 public:
27   enum TweenAlgorithm {
28     LinearInterpolation,
29     EaseInInterpolation,
30     EaseOutInterpolation,
31     EaseInOutInterpolation
32   };
33 
34   static double interpolation(double t, enum TweenAlgorithm);
35 
36   TInbetween(const TVectorImageP firstImage, const TVectorImageP lastImage);
37 
38   virtual ~TInbetween();
39 
40   TVectorImageP tween(double t) const;
41 };
42 
43 #endif
44