/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
***************************************************************************/

#pragma once

#include "glmAbstractPathFollower.h"

namespace glm
{
/** 
* \brief Concrete path follower taking path vertices on after another.
*
* \ingroup PathFollower
*
* \author Golaem <dev@golaem.com>
*/
class GLM_SDK_API NaivePathFollower : public AbstractPathFollower
{

  public:
    GLM_CLASS_STAT_ID( glm::MemoryStatIds::Simulation)

    NaivePathFollower(const PathFollowerConfiguration& configuration = PathFollowerConfiguration::defaultConfiguration());
    ~NaivePathFollower();

  protected:
    bool updateLocalTarget(PathContext* pathContext, const NavigationData& navigationData, float radius) override;
    bool initLocalTarget(PathContext* pathContext, const NavigationData& navigationData, float radius) override;

  private:
    /**
	* \brief Forbidden copy constructor.
	*/
    NaivePathFollower(const NaivePathFollower&);

    /**
	* \brief Forbidden assignement.
	*/
    NaivePathFollower& operator=(const NaivePathFollower&);
};
} // namespace glm
