#ifndef POSE_H
#define POSE_H
#include <string>
#include "SelfTestingObject.h"
#include "Vector.h"
#include "Angle.h"
namespace NobelNS {
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;
/** Suhteellisen vektorin laskenta.
* @param v paikkavektori, johon nähden lasketaan
* @return suhteellinen vektori v:hen nähden
* @author Maarit
*/
Vector getProportionalTo(const Vector& v) 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);
/** Päivitä pose uuden suhteellisen posen mukaan (suhteellinen pose on
* pose, johon robotti on siirtynyt päivitettävästä posesta se
* origona).
* @param relPose suhteellinen pose
* @return päivitetty pose
*/
Pose& updatePose(const Pose& relPose);
/** 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=Vector(), const Angle& a=Angle());
/** 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 Tue Mar 20 23:14:05 2001, using kdoc 2.0a53. |