Source: ./Movement/Sonar.h


Annotated List
Files
Globals
Hierarchy
Index
#ifndef SONAR_H
#define SONAR_H

#include <vector>
#include "Detector.h"
#include "../Nobel/SelfTestingObject.h"
#include "../Nobel/Length.h"

namespace Movement {

    class SonarRep;
    
    /** Havaitsijaluokan toteutus sonareilla. */
    class Sonar : public Detector, public Nobel::SelfTestingObject {
    public:
	/** Tarkista invariantti.
	 * @return invariantin eheys
	 */
	virtual bool invariant() const;
	
	/** Hae viimeksi havaitun esteen suhteellinen sijainti.
	 * @return viimeksi havaitun esteen suhteellinen sijainti
	 */
	virtual Nobel::Vector getBlockPos() const;
	
	/** Käännä sonareiden pysäytysetäisyydet päinvastaisiksi 
	 * (takaperin/etuperin liikkumista varten).
	 * @return viite muutettuun olioon
	 */
	virtual Sonar& reverse();
	
	/** Havaitse hälytysrajan sisällä olevat esteet.
	 * @return true, jos löytyi este liian läheltä, false muuten
	 */
	virtual bool detect();
	
	/** Konstruktori.
	 * @param distances pysäytysetäisyyksien taulukko. vektorissa tulee
	 * olla tasan SONARS määrä alkioita. Alkiot ovat pysäytysetäisyyksiä
	 * (1 per sonari, sonarit numeroitu edestäpäin vastapäivään). Martin
	 * tapauksessa SONARS on 16 (määritelty Nclients.h tiedostossa).
	 */
	Sonar(const std::vector<Nobel::Length>& distances);
	
	/** Kopiokonstruktori.
	 * @param s kopioitava olio
	 */
	Sonar(const Sonar& s);
	
	/** Vaihto-operaatio.
	 * @param s vaihdettava olio
	 */
	virtual void swap(Sonar& s);
	
	/** Sijoitusoperaattori.
	 * @param s sijoitettava olio
	 */
	Sonar& operator=(const Sonar& s);
	
	/** Destruktori. */
	virtual ~Sonar();
    private:
	/** Osoitin luokan sisäiseen toteutukseen. */
	SonarRep* rep;
    };

}

#endif

Generated by: hoppq@ilenkone on Thu Mar 1 15:43:18 2001, using kdoc 2.0a50.