diff options
| author | Andreas Grois <andreas.grois@jku.at> | 2015-11-03 17:08:17 +0100 |
|---|---|---|
| committer | Andreas Grois <andreas.grois@jku.at> | 2015-11-03 17:08:17 +0100 |
| commit | d1d98f27fd45d044b3a5d8d44ff3c7b9750e5887 (patch) | |
| tree | 06ca674f92638fe6b509ffdc9938e018d9ce7525 /angleclass.cpp | |
| parent | 2fbb42870e240bcb1268ddf1a1c7a7d0dd33babd (diff) | |
Github... I'm not yet used to it.
Diffstat (limited to 'angleclass.cpp')
| -rw-r--r-- | angleclass.cpp | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/angleclass.cpp b/angleclass.cpp index 591f810..12588b5 100644 --- a/angleclass.cpp +++ b/angleclass.cpp @@ -1,5 +1,109 @@ +/* + * LatticeMatch calculator - class used for angles + * Copyright (C) 2012 Andreas Grois + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * + * This is a small class that doesn't do much more than keep its contents in the range between + * [0:2*pi[. It is a part of the LatticeMatch program. + * + * To contact the author either use electronic mail: Andreas Grois <andreas.grois@jku.at> + * or write to: + * Andreas Grois, Institute for Semiconductor and SolidState physics, Johannes Kepler University, + * Altenbergerstraße 69, 4040 Linz, AUSTRIA + */ + #include "angleclass.h" +#include <cmath> + + +double angleclass::shiftinrange(const double number) +{ + //Shifts number back in the range between zero and 2 pi + return(number-2.0*M_PI*floor(number/(2.0*M_PI))); +} angleclass::angleclass() { + //Default constructor. Sets value to zero - what else? + value=0.0; +} + +angleclass::angleclass(const double setme) +{ + value=shiftinrange(setme); +} + +void angleclass::setval(const double setme) +{ + value=shiftinrange(setme); +} + +double angleclass::getval() +{ + return(value); +} + +angleclass angleclass::operator *(angleclass other) +{ + return(angleclass(value*other.getval())); +} + + +angleclass angleclass::operator-(angleclass other) +{ + return(angleclass(value-other.getval())); +} + +angleclass angleclass::operator+(angleclass other) +{ + return(angleclass(value+other.getval())); +} + +angleclass angleclass::operator/(angleclass other) +{ + return(angleclass(value/other.getval())); +} + +bool angleclass::operator<(angleclass other) +{ + return(value<other.getval()); +} + +bool angleclass::operator>(angleclass other) +{ + return(value>other.getval()); +} + +bool angleclass::operator<=(angleclass other) +{ + return(value<=other.getval()); +} + +bool angleclass::operator>=(angleclass other) +{ + return(value>=other.getval()); +} + +bool angleclass::operator==(angleclass other) +{ + return(value==other.getval()); +} + +bool angleclass::operator!=(angleclass other) +{ + return(value!=other.getval()); } |
