Source: ./Movement/RobotMover.h
|
|
|
|
#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. |