Source: Pose.h


Annotated List
Files
Globals
Hierarchy
Index
#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.