#ifndef POSE_H
#define POSE_H
#include <string>
#include "SelfTestingObject.h"
#include "Vector.h"
#include "Angle.h"
namespace Nobel {
class PoseRep;
/** Sijainti+suunta. Luokka, joka ilmaisee (robotin) sijainnin sekä
* suunnan.
*/
class Pose : public SelfTestingObject {
public:
/** Hae sijainti.
* @return sijainti
*/
Vector getPosition() const;
/** Hae suunta.
* @return suunta
*/
Angle getAngle() const;
/** Invariantin tarkistus.
* @return invariantin paikkaansapitävyys
*/
virtual bool invariant() const;
/** Hae sijainti ja suunta tekstimuodossa.
* @return location: X, Y orientation: alpha
*/
virtual std::string asString() const;
/** Aseta sijainti.
* @param p uusi sijainti
* @return viite muutettuuun oliooon
*/
Pose& setPosition(const Vector& p);
/** Aseta suunta.
* @param a uusi suunta
* @return viite muutettuun olioon
*/
Pose& setAngle(const Angle& a);
/** Aseta sijainti ja suunta.
* @param p uusi sijainti
* @param a uusi suunta
* @return viite muutettuun olioon
*/
Pose& setPose(const Vector& p, const Angle& a);
/** Konstruktori.
* @param p sijainti
* @param a suunta
*/
Pose(const Vector& p, const Angle& a);
/** Kopiokonstruktori.
* @param p kopioitava
*/
Pose(const Pose& p);
/** Vaihto-operaatio.
* @param p vaihdettava
*/
virtual void swap(Pose& p);
/** Sijoitusoperaattori.
* @param p sijoitettava
* @return viite sijoituksen kohteeseen
*/
Pose& operator=(const Pose& p);
/** Destruktori. */
virtual ~Pose();
private:
/** Osoitin sisäiseen esitykseen. */
PoseRep* rep;
};
}
#endif
| Generated by: hoppq@ilenkone on Thu Mar 1 15:43:18 2001, using kdoc 2.0a50. |