shun-iwasawa ec85ad
shun-iwasawa ec85ad
#ifndef NDEBUG
Ivan Mahonin 7e9eb1
#pragma once
Ivan Mahonin 7e9eb1
Ivan Mahonin 7e9eb1
#ifndef MODIFIERTEST_INCLUDED
Ivan Mahonin 7e9eb1
#define MODIFIERTEST_INCLUDED
Ivan Mahonin 7e9eb1
Ivan Mahonin 7e9eb1
// TnzTools includes
Ivan Mahonin 7e9eb1
#include <tools/inputmanager.h>
Ivan Mahonin 7e9eb1
Ivan Mahonin 7e9eb1
#undef DVAPI
Ivan Mahonin 7e9eb1
#undef DVVAR
Ivan Mahonin 7e9eb1
#ifdef TNZTOOLS_EXPORTS
Ivan Mahonin 7e9eb1
#define DVAPI DV_EXPORT_API
Ivan Mahonin 7e9eb1
#define DVVAR DV_EXPORT_VAR
Ivan Mahonin 7e9eb1
#else
Ivan Mahonin 7e9eb1
#define DVAPI DV_IMPORT_API
Ivan Mahonin 7e9eb1
#define DVVAR DV_IMPORT_VAR
Ivan Mahonin 7e9eb1
#endif
Ivan Mahonin 7e9eb1
Ivan Mahonin 7e9eb1
//===================================================================
Ivan Mahonin 7e9eb1
Ivan Mahonin 7e9eb1
//*****************************************************************************************
Ivan Mahonin 7e9eb1
//    TModifierTest definition
Ivan Mahonin 7e9eb1
//*****************************************************************************************
Ivan Mahonin 7e9eb1
shun-iwasawa ec85ad
class DVAPI TModifierTest : public TInputModifier {
Ivan Mahonin 7e9eb1
public:
shun-iwasawa ec85ad
  class DVAPI Handler : public TTrackHandler {
Ivan Mahonin 7e9eb1
  public:
Ivan Mahonin 7e9eb1
    std::vector<double> angles;
shun-iwasawa ec85ad
    Handler(const TTrack &original) : TTrackHandler(original) {}
Ivan Mahonin 7e9eb1
  };
Ivan Mahonin 7e9eb1
shun-iwasawa ec85ad
  class DVAPI Modifier : public TTrackModifier {
Ivan Mahonin 7e9eb1
  public:
Ivan Mahonin 7e9eb1
    double angle;
Ivan Mahonin 7e9eb1
    double radius;
Ivan Mahonin 7e9eb1
    double speed;
Ivan Mahonin 7e9eb1
shun-iwasawa ec85ad
    Modifier(TTrackHandler &handler, double angle, double radius,
shun-iwasawa ec85ad
             double speed = 0.25);
Ivan Mahonin d8eddc
    TTrackPoint calcPoint(double originalIndex) override;
Ivan Mahonin 7e9eb1
  };
Ivan Mahonin 7e9eb1
Ivan Mahonin 7e9eb1
public:
Ivan Mahonin d8eddc
  const int count;
Ivan Mahonin d8eddc
  const double radius;
Ivan Mahonin 7e9eb1
Ivan Mahonin 9f0c16
  TModifierTest(int count, double radius);
Ivan Mahonin 7e9eb1
shun-iwasawa ec85ad
  void modifyTrack(const TTrack &track,
shun-iwasawa ec85ad
                   TTrackList &outTracks) override;
Ivan Mahonin 7e9eb1
};
Ivan Mahonin 7e9eb1
shun-iwasawa ec85ad
#endif
Ivan Mahonin 7e9eb1
#endif