#ifndef SCENARIOPARAMS_H
#define SCENARIOPARAMS_H

#include <QObject>

template<typename T>
struct field_t
{
	T value;
	bool isUpdated;
};

typedef struct ScenGenOutput_t
{
	field_t<bool> linear;
	field_t<bool> virtualConvex;
	field_t<float> depth;
	field_t<float> probeRadius;
    field_t<float> fieldOfView;
    field_t<float> probeGeometry;
	field_t<float> probeFieldOfView;
	field_t<float> startDepth;
	field_t<int> rxLineNo;
	field_t<int> rxFocusPointNo;
	field_t<float> rxLineDaz;
	field_t<float> rxPointDax;
	field_t<float> vcMaxTheta;
	field_t<float> angle;
	field_t<float> steering;
	field_t<float> minScanAx;
	field_t<float> minScanAz;
	field_t<float> maxScanAx;
	field_t<float> virtualOriginalZ;
	field_t<uint> outputWidth;
	field_t<uint> outputHeight;
	field_t<int> compressionType;
	field_t<int> dynContSelector;
	field_t<int> dynContGain;
	field_t<int> grayMapSelector;
	field_t<int> tintMapSelector;
	field_t<int> sri;
	field_t<int> rejectThreshold;
	field_t<int> enhance;
	field_t<int> enhanceAlgorithm;
	field_t<int> persist;
}ScenGenOutput_t;

template<typename T>
void update_field(field_t<T> *t, T value)
{
	t->value = value;
	t->isUpdated = true;
}


#endif // SCENARIOPARAMS_H