Blob Blame Raw
#ifndef NDEBUG
#pragma once
#ifndef MODIFIERTEST_INCLUDED
#define MODIFIERTEST_INCLUDED
// TnzTools includes
#include <tools/inputmanager.h>
#undef DVAPI
#undef DVVAR
#ifdef TNZTOOLS_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
//===================================================================
//*****************************************************************************************
// TModifierTest definition
//*****************************************************************************************
class DVAPI TModifierTest : public TInputModifier {
public:
class DVAPI Handler : public TMultiTrackHandler {
public:
const double radius;
std::vector<double> angles;
inline explicit Handler(double radius):
radius(std::max(TConsts::epsilon, radius)) { }
};
class DVAPI Interpolator : public TTrackInterpolator {
public:
const double angle;
const double radius;
const double speed;
inline Interpolator(TTrack &track, double angle, double radius, double speed):
TTrackInterpolator(track), angle(angle), radius(radius), speed(speed) { }
TTrackPoint interpolateFromOriginal(double originalIndex);
TTrackPoint interpolate(double index) override;
};
public:
int count;
double radius;
double speed;
TModifierTest(int count = 3, double radius = 40, double speed = 0.25);
void modifyTrack(const TTrack &track,
TTrackList &outTracks) override;
};
#endif
#endif