Switch to side-by-side view

--- a
+++ b/Tools/ModelUtilities/EMGProcessing/CreateEMGEnvelope.any
@@ -0,0 +1,75 @@
+#ifndef _CREATE_EMG_ENVELOPE_ANY_
+#define _CREATE_EMG_ENVELOPE_ANY_
+
+
+#class_template CreateEmgEnvelope (BandPassLowFreq, BandPassHighFreq, LowPassFreq, NormFactor, C3DFolder, Label, t) {
+      
+      AnyFloat Norm = iffun(eqfun(1.0*NormFactor,0),1.0,1.0*NormFactor);
+      
+  
+      AnyInt   EndFrame =C3DFolder.Header.FirstFrameNo-1+(C3DFolder.Header.LastFrameNo-C3DFolder.Header.FirstFrameNo+1)* C3DFolder.Header.NoAnalogSamplesPer3DFrame;
+      AnyFloatVar  tStart = C3DFolder.Header.FirstFrameNo/C3DFolder.Header.VideoFrameRate;
+      AnyFloatVar   tEnd =  C3DFolder.Header.LastFrameNo/C3DFolder.Header.VideoFrameRate;
+      
+      AnyInt AnalogData=EndFrame-C3DFolder.Header.FirstFrameNo;
+      AnyFloat Time=tStart+(iarr(0,AnalogData)*(tEnd-tStart)/AnalogData);
+       AnyVar SampleFreq= (AnalogData)/(tEnd-tStart);
+ 
+      AnyFunButterworthFilter BandPassFilter = 
+	{
+		//z0 = ;
+		AutomaticInitialConditionOnOff = On;
+		FilterForwardBackwardOnOff = On;
+		N = 2;
+             Fs = .SampleFreq;
+             Fc = {BandPassLowFreq,BandPassHighFreq};
+		//W = {1/(0.5*SampleFreq)*BandPassLowFreq, 1/(0.5*SampleFreq)*BandPassHighFreq};
+		//W = {1/(0.5*.SampleFreq)*.BandPassLowFreq};
+		Type = BandPass;
+	};
+	AnyFunButterworthFilter LowPassFilter = 
+	{
+		//z0 = ;
+		AutomaticInitialConditionOnOff = On;
+		FilterForwardBackwardOnOff = On;
+		N = 2;
+             Fs = .SampleFreq;
+             Fc = {LowPassFreq};
+		//W = {1/(0.5*SampleFreq)*LowPassFreq};
+		Type = LowPass;
+	};
+	AnyFloat BandPassFiltered = BandPassFilter(C3DFolder.Analog.Data.Label);
+
+	AnyFloat Flipped = abs(BandPassFiltered);
+
+	AnyFloat EMGEnvelope = LowPassFilter(Flipped)/Norm;
+ 
+ 
+
+	AnyFunInterpol Interpol = 
+	{
+		Type = PiecewiseLinear;
+		T = .Time;
+		Data = {.EMGEnvelope};
+		//FileName = "";
+		//FileErrorContinueOnOff = Off;
+	};
+	
+	AnyVar mEMG = Interpol(t)[0];
+ 
+	AnyFunInterpol InterpolRaw = 
+	{
+		Type = PiecewiseLinear;
+		T = .Time;
+		Data = {.C3DFolder.Analog.Data.Label};
+		//FileName = "";
+		//FileErrorContinueOnOff = Off;
+	};
+	
+	AnyVar mEMGRaw = InterpolRaw(t)[0]; 
+      
+
+
+};
+
+#endif
\ No newline at end of file