/*
 * DirectionChangeMessage.h
 *
 *  Created on: Oct 20, 2018
 *      Author: fredrick
 */

#ifndef DIRECTIONCHANGEMESSAGE_H_
#define DIRECTIONCHANGEMESSAGE_H_

#include <glm/glm.hpp>

#include <ecos/core/IDCache.h>
#include <ecos/core/Message.h>

namespace JamSpook {
namespace messages {

using glm::vec3;
using ecos::core::IDCache;
using ecos::core::Message;

// DirectionChangeMessage
class DirectionChangeMessage : 
        public Message
{
private:
    vec3 mPosition;     ///< Where the direction change occured
    vec3 mOldDirection;
    vec3 mNewDirection;
    
public:
    DirectionChangeMessage(const vec3 position,
                           const vec3 oldDirection,
                           const vec3 newDirection);
    virtual ~DirectionChangeMessage();
    
    const vec3 getPosition() const;
    const vec3 getOldDirection() const;
    const vec3 getNewDirection() const;
};

} // namespace messages
} // namespace JamSpook

#endif // DIRECTIONCHANGEMESSAGE_H_
