Source: ./Nobel/RobotAcceleration.h
|
|
|
|
#ifndef ROBOTACCELERATION_H
#define ROBOTACCELERATION_H
#include <stdexcept>
#include <string>
#include "SelfTestingObject.h"
namespace Nobel {
class RobotAccelerationRep;
/** Käytetyt kiihtyvyyden mittayksiköt */
enum AccelerationUnit { Ms2, CMs2, IN10THs2 };
/** Itsekonvertoiva kiihtyvyysluokka. Luokan ilmentymiä luotaessa ja
* muutettaessa tarkistetaan, että kiihtyvyys on sallituissa rajoissa.
* Robotin kiihtyvyyden rajat ovat [0, 800[ tuuman kymmenesosaa/s**2
* (800 tuuman kymmenesosaa = 203.2 senttimetriä)
*/
class RobotAcceleration : public SelfTestingObject {
public:
/** Hae kiihtyvyys.
* @param haluttu mittayksikkö
* @return kiihtyvyys
*/
double getAccel(AccelerationUnit unit) const;
/** Muodosta merkkijonoesitys.
* @return kiihtyvyys (cm/s**2)
*/
virtual std::string asString() const;
/** Tarkista invariantti.
* @return invariantin eheys
*/
virtual bool invariant() const;
/** Aseta kiihtyvyys.
* @param newAccel uusi kiihtyvyys
* @param unit kiihtyvyyden mittayksikkö
* @return viite muutettuun olioon
* @exception std::range_error
*/
RobotAcceleration& setAccel(double newAccel, AccelerationUnit unit)
throw (std::range_error);
/** Konstruktori.
* @param acc kiihtyvyys
* @param unit mittayksikkö
* @exception std::range_error
*/
RobotAcceleration(double acc, AccelerationUnit unit)
throw (std::range_error);
/** Kopiokonstruktori.
* @param r kopioitava olio
*/
RobotAcceleration(const RobotAcceleration& r);
/** Vaihto-operaatio.
* @param r olio, jonka kanssa vaihdetaan
*/
virtual void swap(RobotAcceleration& r);
/** Sijoitusoperaattori.
* @param r sijoitettava olio
* @return viite muutettuun olioon
*/
RobotAcceleration& operator=(const RobotAcceleration& r);
/** Destruktori. */
virtual ~RobotAcceleration();
private:
/** Viite sisäiseen esitykseen. */
RobotAccelerationRep* rep;
};
}
#endif
Generated by: hoppq@ilenkone on Thu Mar 1 15:43:18 2001, using kdoc 2.0a50. |