Source: ./Movement/RobotMover.h


Annotated List
Files
Globals
Hierarchy
Index
#ifndef ROBOTMOVER_H
#define ROBOTMOVER_H

#include "Movement.h"
#include "Detector.h"
#include "../Nobel/SelfTestingObject.h"
#include "../Nobel/RobotAcceleration.h"
#include "../Nobel/RobotVelocity.h"

namespace Movement {
    
    class RobotMoverRep;
    
    /** Martin liikuttaja. Luokka, joka on toteutettu Martin liikutteluun. */
    class RobotMover : public Movement, public Nobel::SelfTestingObject {
    public:
	
	/** Liikkumismetodi. Liikuta Marttia määrätty matka. Jos este tulee
	 * eteen, heitä poikkeus. Kääntyminen on optimoitu: jos on
	 * nopeampaa kääntyä vasemmalle ja liikkua takaperin kuin kääntyä
	 * oikealle ja liikkua eteenpäin, valitaan vasemmalle kääntyminen ja
	 * takaperin liikkuminen. Tapauksella on symmetrinen vastakohta.
	 * 
	 * @param target suhteellinen vektori, joka liikutaan
	 * @exception Nobel::BlockException
	 */
	virtual void move(const Nobel::Vector& target) const
	    throw (Nobel::BlockException);
	
	/** Invariantin tarkistus.
	 * @return true, jos olio on eheä, false muuten
	 */
	virtual bool invariant() const;
	
	/** Konstruktori.
	 * @param d havaitsija, jota käytetään esteiden havaitsemiseen
	 * @param rv robotin nopeus
	 * @param ra robotin kiihtyvyys
	 */
	RobotMover(Detector& d, const Nobel::RobotVelocity& rv, 
		   const Nobel::RobotAcceleration& ra);
	
	/** Kopiokonstruktori.
	 * @param r kopioitava olio
	 */
	RobotMover(const RobotMover& r);
	
	/** Vaihto-operaatio.
	 * @param r olio, jonka kanssa vaihdetaan
	 */
	virtual void swap(RobotMover& r);
	
	/** Sijoitusoperaattori.
	 * @param r sijoitettava olio
	 * @return viite muutettuun olioon
	 */
	RobotMover& operator=(const RobotMover& r);
	
	/** Destruktori. */
	virtual ~RobotMover();

    private:
	/** Osoitin luokan sisäiseen esitykseen. */
	RobotMoverRep* rep;
    };
}

#endif

Generated by: hoppq@ilenkone on Thu Mar 1 15:43:18 2001, using kdoc 2.0a50.