// Class automatically generated by Dev-C++ New Class wizard

#ifndef behaviours_GoToDisposal_H
#define behaviours_GoToDisposal_H

#include "AbstractBehaviour.h"
#include "WorldInfo.h"
#include <list>
#include <behaviours/UnloadGarbage.h>
#include <behaviours/FindLine.h>
#include <behaviours/PositionInLine.h>
#include <behaviours/GoToBase.h>


namespace behaviours {

/**
 * No description
 */
class GoToDisposal : public AbstractBehaviour {

	public:
		GoToDisposal(WorldInfo * wi, robotapi::IRobot * robot, robotapi::ITrashBin * tb, robotapi::IDifferentialWheels * wheels, std::vector<robotapi::IDistanceSensor*> & fss, robotapi::IServo * gate, robotapi::IServo * cont);

		~GoToDisposal();

    	void sense();

	    void action();

	private:
		bool onMark();

		bool inLine();

		bool inPosition();

		void correctOrientation();

	    behaviours::AbstractBehaviour * disposalBehaviours [4];
		robotapi::IDifferentialWheels * wheels;
		robotapi::IServo * cont;
		robotapi::IRobot * robot;
		robotapi::ITrashBin * trashbin;
		std::vector<robotapi::IDistanceSensor*> * fss;
		WorldInfo * wi;
};

}

#endif // GOTODISPOSAL_H
