Source: ./Movement/Sonar.h
|
|
|
|
#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. |