// Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma
// de Barcelona (UAB).
//
// This work is licensed under the terms of the MIT license.
// For a copy, see <https://opensource.org/licenses/MIT>.

#pragma once

class UAgentComponent;
class UTrafficSignAgentComponent;
class UVehicleAgentComponent;
class UWalkerAgentComponent;

class IAgentComponentVisitor
{
public:

  virtual void Visit(const UTrafficSignAgentComponent &) = 0;

  virtual void Visit(const UVehicleAgentComponent &) = 0;

  virtual void Visit(const UWalkerAgentComponent &) = 0;
};
