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