1 /*
2 * defvelaccel.cc
3 * DIN Is Noise is copyright (c) 2006-2021 Jagannathan Sampath
4 * DIN Is Noise is released under GNU Public License 2.0
5 * For more information, please visit https://dinisnoise.org/
6 */
7 
8 #include "defvelaccel.h"
9 
defvelaccel(const std::string & n)10 defvelaccel::defvelaccel (const std::string& n) : name (n) {
11   dir = VERTICAL;
12   neg = 0;
13   rndrot = 0;
14   clock = anticlock = 0.0f;
15   sync = 1;
16 }
17 
setrotrd()18 void defvelaccel::setrotrd () {
19   rotrd.set (-clock.rad, anticlock.rad);
20 }
21 
operator >>(std::istream & f,defvelaccel & dva)22 std::istream& operator>> (std::istream& f, defvelaccel& dva) {
23   f >> dva.mag >> dva.dir >> dva.neg >> dva.rndrot >> dva.clock >> dva.anticlock >> dva.sync;
24   f >> dva.autos.rot.yes >> dva.autos.rot.dir >> dva.autos.rot.mov >> dva.autos.rot.rpm >> dva.autos.rot.dps >> dva.autos.rot.tps;
25   f >> dva.autos.flip.yes >> dva.autos.flip.deg;
26   dva.rotrd.set (-dva.clock.rad, dva.anticlock.rad);
27   return f;
28 }
29 
30 extern const char spc;
31 
operator <<(std::ostream & f,defvelaccel & dva)32 std::ostream& operator<< (std::ostream& f, defvelaccel& dva) {
33   f << dva.mag << spc << dva.dir << spc << dva.neg << spc << dva.rndrot << spc << dva.clock << spc << dva.anticlock << spc << dva.sync << spc;
34   f << dva.autos.rot.yes << spc << dva.autos.rot.dir << spc << dva.autos.rot.mov << spc << dva.autos.rot.rpm << spc << dva.autos.rot.dps << spc << dva.autos.rot.tps << spc;
35   f << dva.autos.flip.yes << spc << dva.autos.flip.deg;
36   return f;
37 }
38 
operator >>(std::istream & f,valt & mag)39 std::istream& operator>> (std::istream& f, valt& mag) {
40   f >> mag.val >> mag.rndrd >> mag.rd;
41   return f;
42 }
43 
operator <<(std::ostream & f,valt & mag)44 std::ostream& operator<< (std::ostream& f, valt& mag) {
45   f << mag.val << spc << mag.rndrd << spc << mag.rd;
46   return f;
47 }
48