61 static bool ReadParamsFile(
const char *
file,
76 static T *
FindParam(
const char *name,
const std::vector<T *> &global_vec,
77 const std::vector<T *> &member_vec) {
78 for (
auto *param : global_vec) {
79 if (strcmp(param->name_str(), name) == 0) {
83 for (
auto *param : member_vec) {
84 if (strcmp(param->name_str(), name) == 0) {
92 static void RemoveParam(T *param_ptr, std::vector<T *> *vec) {
93 for (
auto it = vec->begin(); it != vec->end(); ++it) {
94 if (*it == param_ptr) {
102 static bool GetParamAsString(
const char *name,
const ParamsVectors *member_params,
106 static void PrintParams(FILE *fp,
const ParamsVectors *member_params);
137 Param(
const char *name,
const char *comment,
bool init)
139 debug_ = (strstr(name,
"debug") !=
nullptr) || (strstr(name,
"display"));
151 :
Param(name, comment, init) {
158 ParamUtils::RemoveParam<IntParam>(
this, params_vec_);
160 operator int32_t()
const {
174 if (strcmp(param->name_str(),
name_) == 0) {
187 std::vector<IntParam *> *params_vec_;
193 :
Param(name, comment, init) {
200 ParamUtils::RemoveParam<BoolParam>(
this, params_vec_);
202 operator bool()
const {
216 if (strcmp(param->name_str(),
name_) == 0) {
229 std::vector<BoolParam *> *params_vec_;
236 :
Param(name, comment, init) {
243 ParamUtils::RemoveParam<StringParam>(
this, params_vec_);
245 operator std::string &() {
249 return value_.c_str();
252 return value_.find(c) != std::string::npos;
255 return value_.empty();
258 return value_ == other;
271 if (strcmp(param->name_str(),
name_) == 0) {
282 std::string default_;
284 std::vector<StringParam *> *params_vec_;
290 :
Param(name, comment, init) {
297 ParamUtils::RemoveParam<DoubleParam>(
this, params_vec_);
299 operator double()
const {
313 if (strcmp(param->name_str(),
name_) == 0) {
326 std::vector<DoubleParam *> *params_vec_;
349#define INT_VAR_H(name) ::tesseract::IntParam name
351#define BOOL_VAR_H(name) ::tesseract::BoolParam name
353#define STRING_VAR_H(name) ::tesseract::StringParam name
355#define double_VAR_H(name) ::tesseract::DoubleParam name
357#define INT_VAR(name, val, comment) \
358 ::tesseract::IntParam name(val, #name, comment, false, ::tesseract::GlobalParams())
360#define BOOL_VAR(name, val, comment) \
361 ::tesseract::BoolParam name(val, #name, comment, false, ::tesseract::GlobalParams())
363#define STRING_VAR(name, val, comment) \
364 ::tesseract::StringParam name(val, #name, comment, false, ::tesseract::GlobalParams())
366#define double_VAR(name, val, comment) \
367 ::tesseract::DoubleParam name(val, #name, comment, false, ::tesseract::GlobalParams())
369#define INT_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
371#define BOOL_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
373#define STRING_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
375#define double_MEMBER(name, val, comment, vec) name(val, #name, comment, false, vec)
377#define INT_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
379#define BOOL_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
381#define STRING_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
383#define double_INIT_MEMBER(name, val, comment, vec) name(val, #name, comment, true, vec)
@ SET_PARAM_CONSTRAINT_NON_DEBUG_ONLY
@ SET_PARAM_CONSTRAINT_NONE
@ SET_PARAM_CONSTRAINT_NON_INIT_ONLY
@ SET_PARAM_CONSTRAINT_DEBUG_ONLY
tesseract::ParamsVectors * GlobalParams()
std::vector< BoolParam * > bool_params
std::vector< StringParam * > string_params
std::vector< IntParam * > int_params
std::vector< DoubleParam * > double_params
static void RemoveParam(T *param_ptr, std::vector< T * > *vec)
static T * FindParam(const char *name, const std::vector< T * > &global_vec, const std::vector< T * > &member_vec)
const char * name_str() const
Param(const char *name, const char *comment, bool init)
bool constraint_ok(SetParamConstraint constraint) const
const char * info_str() const
void ResetFrom(const ParamsVectors *vec)
void operator=(int32_t value)
IntParam(int32_t value, const char *name, const char *comment, bool init, ParamsVectors *vec)
void set_value(int32_t value)
void set_value(bool value)
void ResetFrom(const ParamsVectors *vec)
void operator=(bool value)
BoolParam(bool value, const char *name, const char *comment, bool init, ParamsVectors *vec)
bool operator==(const std::string &other) const
StringParam(const char *value, const char *name, const char *comment, bool init, ParamsVectors *vec)
void set_value(const std::string &value)
void operator=(const std::string &value)
const char * c_str() const
bool contains(char c) const
void ResetFrom(const ParamsVectors *vec)
void operator=(double value)
void ResetFrom(const ParamsVectors *vec)
void set_value(double value)
DoubleParam(double value, const char *name, const char *comment, bool init, ParamsVectors *vec)