Blob Blame Raw
#pragma once
#ifndef MODIFIERJITTER_INCLUDED
#define MODIFIERJITTER_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
//===================================================================
//*****************************************************************************************
// TModifierJitter definition
//*****************************************************************************************
class DVAPI TModifierJitter : public TInputModifier {
public:
typedef TSubTrackHandler Handler;
class DVAPI Interpolator : public TTrackInterpolator {
public:
const unsigned int seedX;
const unsigned int seedY;
const double frequency;
const double amplitude;
Interpolator(TTrack &track, double period, double amplitude);
TTrackPoint interpolateFromOriginal(double originalIndex);
TTrackPoint interpolate(double index) override;
};
public:
double period;
double amplitude;
int skipFirst;
TModifierJitter(
double period = 30,
double amplitude = 10,
int skipFirst = 0 );
void modifyTrack(
const TTrack &track,
TTrackList &outTracks ) override;
void modifyTracks(
const TTrackList &tracks,
TTrackList &outTracks ) override;
static double func(unsigned int seed, double x);
};
#endif