Source: AngleRep.h


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

#include "SelfTestingObject.h"

namespace NobelNS {

    /** Normalisoi niin, että alue on [0, 360[
     * @param a normalisoitava
     * @return normalisoitu
     */
    double normalize360(double a) {
	if( a < 0 ) {
	    return fmod(a, -360) + 360;
	}
	else {
	    return fmod(a, 360);
	}
    }

    /** Normalisoi niin, että alue on ]-180, 180].
     * @param a normalisoitava
     * @return normalisoitu
     */
    double normalize180(double a) {
	double t = normalize360(a);
	if(t > 180)
	    t -= 360;
	return t;
    }

    /** Kulman sisäinen esitysmuoto. */
    class AngleRep : public SelfTestingObject {
    public:
	/** Kulma asteissa. */
	double angleDeg;	

	/** Invariantin tarkistus.
	 * @return true, jos angleDeg kuuluu alueelle ]-180, 180]
	 */
	virtual bool invariant() const { 
	    return (-180 < angleDeg) && (angleDeg <= 180); 
	}
	
	/** Normalisoi kulma, niin että se on välillä ]-180, 180] astetta. */
	void normalize() {
	    angleDeg = normalize180(angleDeg);
	}

	/** Destruktori. */
	virtual ~AngleRep() { }
    };
    


}

#endif

Generated by: hoppq@ilenkone on Tue Mar 20 23:14:05 2001, using kdoc 2.0a53.