b49816
#pragma once
b49816
b49816
#ifndef MODIFIERSMOOTH_INCLUDED
b49816
#define MODIFIERSMOOTH_INCLUDED
b49816
b49816
// TnzTools includes
b49816
#include <tools inputmanager.h=""></tools>
b49816
b49816
b49816
#undef DVAPI
b49816
#undef DVVAR
b49816
#ifdef TNZTOOLS_EXPORTS
b49816
#define DVAPI DV_EXPORT_API
b49816
#define DVVAR DV_EXPORT_VAR
b49816
#else
b49816
#define DVAPI DV_IMPORT_API
b49816
#define DVVAR DV_IMPORT_VAR
b49816
#endif
b49816
b49816
b49816
//===================================================================
b49816
b49816
//*****************************************************************************************
b49816
//    TModifierSmooth definition
b49816
//*****************************************************************************************
b49816
b49816
class DVAPI TModifierSmooth: public TInputModifier {
b49816
public:
b49816
  class DVAPI Modifier: public TTrackModifier {
b49816
  public:
b49816
    const int radius;
b49816
    TTrack *smoothedTrack;
b49816
b49816
    Modifier(TTrackHandler &handler, int radius);
b49816
    TTrackPoint calcPoint(double originalIndex) override;
b49816
  };
b49816
b49816
private:
b49816
  int m_radius;
b49816
  
b49816
public:
b49816
  TModifierSmooth(int radius = 10);
b49816
b49816
  void setRadius(int radius);
b49816
  int getRadius() const { return m_radius; }
b49816
  
b49816
  void modifyTrack(
b49816
    const TTrack &track,
b49816
    TTrackList &outTracks ) override;
b49816
};
b49816
b49816
b49816
#endif
b49816