92 lines
1.8 KiB
C++
92 lines
1.8 KiB
C++
|
|
|
|
// Params.h: interface for the CParams class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_PARAMS_H__40D9A921_F329_11D5_B92E_0040F674BE6A__INCLUDED_)
|
|
#define AFX_PARAMS_H__40D9A921_F329_11D5_B92E_0040F674BE6A__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#ifdef _WIN32
|
|
#include "Windows.h"
|
|
#endif
|
|
#include <fstream>
|
|
#include <vector>
|
|
|
|
#include "InputParam.h"
|
|
|
|
#define P(d) tmsg_info(" - %d -\n", d)
|
|
|
|
template <class EParam>
|
|
class CParams
|
|
{
|
|
public:
|
|
std::vector<EParam> m_params;
|
|
double m_scale;
|
|
|
|
CParams() : m_params(0), m_scale(1.0){};
|
|
CParams(const CParams &cp) : m_params(cp.m_params),
|
|
m_scale(cp.m_scale){};
|
|
virtual ~CParams(){};
|
|
|
|
CParams(const CInputParam &ip) : m_scale(ip.m_scale)
|
|
{
|
|
if (ip.m_isEconf) {
|
|
//read(ip.m_econfFN);
|
|
} else {
|
|
m_params.resize(1);
|
|
m_params[0].read(ip);
|
|
}
|
|
}
|
|
/*
|
|
void print()
|
|
{ char s[1024];
|
|
int i;
|
|
|
|
OutputDebugString("===== PARAMS =====\n");
|
|
sprintf(s,"Scale=%f\n",m_scale);
|
|
OutputDebugString(s);
|
|
i=0;
|
|
for( vector<EParam>::iterator p=m_params.begin();
|
|
p!=m_params.end(); ++p,++i ){
|
|
sprintf(s,"--- %d. Param ---\n",i);
|
|
OutputDebugString(s);
|
|
p->print();
|
|
}
|
|
OutputDebugString("==================\n");
|
|
}
|
|
*/
|
|
/*
|
|
void read(const basic_string<char>& name)
|
|
{ basic_ifstream<char> in(name.c_str());
|
|
|
|
for( bool isOK=true; isOK; ) {
|
|
m_params.resize(m_params.size()+1);
|
|
vector<EParam>::iterator p=m_params.end();
|
|
p--;
|
|
isOK=p->read(in);
|
|
if ( !isOK )
|
|
m_params.resize(m_params.size()-1);
|
|
}
|
|
in.close();
|
|
}
|
|
*/
|
|
|
|
void scale(const double sc)
|
|
{
|
|
for (int i = 0; i < m_params.size(); ++i)
|
|
m_params[i]->scale(sc);
|
|
}
|
|
|
|
void scale()
|
|
{
|
|
for (int i = 0; i < m_params.size(); ++i)
|
|
m_params[i]->scale(m_scale);
|
|
}
|
|
};
|
|
|
|
#endif // !defined(AFX_PARAMS_H__40D9A921_F329_11D5_B92E_0040F674BE6A__INCLUDED_)
|