Source: ./Nobel/Vector.h


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

#include <string>
#include "SelfTestingObject.h"
#include "Length.h"
#include "Angle.h"

namespace Nobel {    

    class VectorRep;
    
    /** Vektori. */
    class Vector : public SelfTestingObject {
    public:
	/** Hae vektorin kulma suhteessa X-akseliin.
	 * @return vektorin kulma ( ]-180, 180] astetta )
	 */
	Angle getAngle() const;
	
	/** Hae vektorin pituus.
	 * @return vektorin pituus (aina ei-negatiivinen)
	 */
	Length getLength() const;
	
	/** Hae vektorin x-komponentin pituus.
	 * @return x-komponentin pituus
	 */
	Length getX() const;
	
	/** Hae vektorin y-komponentin pituus.
	 * @return y-komponentin pituus
	 */
	Length getY() const;
	
	/** Hae vektorin tekstimuotoesitys
	 * @return X, Y
	 */
        virtual std::string asString() const;
	
	/** Tarkista invariantti.
	 * @return invariantin paikkaansapitävyys
	 */
	virtual bool invariant() const;
	
	/** Aseta vektori uudelleen.
	 * @param a vektorin uusi kulma
	 * @param l vektorin uusi pituus
	 * @return viite muutettuun vektoriin
	 */
	Vector& setVector(const Angle& a, const Length& l);
	
	/** Aseta vektori uudelleen.
	 * @param x uusi x-komponentin pituus
	 * @param y uusi y-komponentin pituus
	 * @return viite muutettuun vektoriin
	 */
	Vector& setVector(const Length& x, const Length& y);
	
	/** Yhteenlaskuoperaattori sijoituksella.
	 * @param v yhteenlaskettava
	 * @return viite muutettuun olioon
	 */
	Vector& operator+=(const Vector& v);
	
	/** Vähennyslaskuoperaattori sijoituksella.
	 * @param v vähennettävä
	 * @return viite muutettuun olioon
	 */
	Vector& operator-=(const Vector& v);
	
	/** Konstruktori.
	 * @param x x-komponentin pituus
	 * @param y y-komponentin pituus
	 */
	Vector(const Length& x, const Length& y);
	
	/** Konstruktori.
	 * @param a vektorin kulma
	 * @param l vektorin pituus
	 */
	Vector(const Angle& a, const Length& l);
	
	/** Kopiokonstruktori.
	 * @param v kopioitava
	 */
	Vector(const Vector& v);
	
	/** Vaihto-operaatio.
	 * @param v vaihdettava
	 */
	virtual void swap(Vector& v);
	
	/** Sijoitusoperaattori.
	 * @param v sijoitettava.
	 */
	Vector& operator=(const Vector& v);
	
	/** Destruktori. */
	virtual ~Vector();
    private:
	/** Osoitin sisäiseen esitykseen. */
	VectorRep* rep;
    };
    
    /** Yhteenlaskuoperaattori vektoreille.
     * @param a summattava
     * @param b summattava
     * @return summa
     */
    Vector operator+(const Vector& a, const Vector& b);
    
    /** Vähennyslaskuoperaattori vektoreille.
     * @param a mistä vähennetään
     * @param b mikä vähennetään
     * @return erotus
     */
    Vector operator-(const Vector& a, const Vector& b);

}

#endif

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