|
|
#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. |