JD2022-TU1/main/extern/MoveSpace/Includes/Signals.h

80 lines
1.9 KiB
C++

#ifndef SIGNALS_V2_H
#define SIGNALS_V2_H
#include "AbstractSignal.h"
#include "MoveSpace.h"
#include "SignalsId.cs"
namespace MSP_LIB
{
enum eSignalCalcIds
{
eSignalCalcId_None,
eSignalCalcId_Derivative,
eSignalCalcId_Norm3D,
eSignalCalcId_Average,
};
//----------------------------------------------------------------------------------------
// Signal_Derivative
//----------------------------------------------------------------------------------------
class Signal_Derivative : public AbstractSignal
{
public:
Signal_Derivative (AbstractSignal* _p_SourceSignal, AbstractSignal* _p_ProgressRatioSignal);
void ResetParams ();
void UpdateSpeciallyForFirstTime ();
void Update ();
private:
AbstractSignal* mp_SourceSignal;
AbstractSignal* mp_ProgressRatioSignal;
float mf_PrevSourceSignalValue;
float mf_PrevProgressRatio;
};
//----------------------------------------------------------------------------------------
// Signal_Norm3D
//----------------------------------------------------------------------------------------
class Signal_Norm3D : public AbstractSignal
{
public:
Signal_Norm3D (AbstractSignal* _p_SourceSignalX, AbstractSignal* _p_SourceSignalY, AbstractSignal* _p_SourceSignalZ);
void Update ();
private:
AbstractSignal* mp_SourceSignalX;
AbstractSignal* mp_SourceSignalY;
AbstractSignal* mp_SourceSignalZ;
};
//----------------------------------------------------------------------------------------
// Signal_Average
//----------------------------------------------------------------------------------------
class Signal_Average : public AbstractSignal
{
public:
Signal_Average (AbstractSignal* _p_SourceSignal);
void ResetParams ();
void Update ();
private:
AbstractSignal* mp_SourceSignal;
float mf_SourceSignalValuesSum;
int mi_SourceSignalValuesCount;
};
}
#endif //SIGNALS_V2_H