Source: ./Nobel/RobotAcceleration.h


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