00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "Cartesian2Polar.h"
00020
00021 using std::ostringstream;
00022 using namespace Marsyas;
00023
00024 Cartesian2Polar::Cartesian2Polar(mrs_string name):MarSystem("Cartesian2Polar", name)
00025 {
00026 }
00027
00028 Cartesian2Polar::Cartesian2Polar(const Cartesian2Polar& a) : MarSystem(a)
00029 {
00030 }
00031
00032 Cartesian2Polar::~Cartesian2Polar()
00033 {
00034 }
00035
00036 MarSystem*
00037 Cartesian2Polar::clone() const
00038 {
00039 return new Cartesian2Polar(*this);
00040 }
00041
00042 void
00043 Cartesian2Polar::addControls()
00044 {
00045 }
00046
00047 void
00048 Cartesian2Polar::myUpdate(MarControlPtr sender)
00049 {
00050 MarSystem::myUpdate(sender);
00051 }
00052
00053
00054 void
00055 Cartesian2Polar::myProcess(realvec& in, realvec& out)
00056 {
00057 mrs_natural o,t;
00058 mrs_natural N = inObservations_/2;
00059
00060 for (t = 0; t < inSamples_; t++)
00061 {
00062 for (o=0; o < N; o++)
00063 {
00064 out(o,t) = sqrt(in(2*o,t)*in(2*o,t)+in(2*o+1,t)*in(2*o+1,t));
00065 out(o+N,t) = atan2(in(2*o+1,t), in(2*o,t));
00066 }
00067 }
00068 }