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