/*------------------------------------------------------------------------------ * Copyright (c) 2023 by Bai Bing (seread@163.com) * See COPYING file for copying and redistribution conditions. * * Alians IT Studio. *----------------------------------------------------------------------------*/ #pragma once #include #include #include #include #include namespace ais { // parameters for example application running. struct Settings { // real sample points std::string randomsFilename; std::string concernPointsFilename; std::string breaklinesFilename; std::string faultsFilename; std::string outputFilename{"output.grd"}; // mock random points bool useMockRandoms = false; size_t mockRandomCount = 200; size_t xCount = 101; size_t yCount = 101; double targetXGridSize = std::nan("1"); double targetYGridSize = std::nan("1"); int estimateFactor = 0; int16_t cornerWeight = 64; size_t maxIteration{20000}; double residual{0.0001}; double fillValue{0.0}; bool useMultiThread{true}; int8_t faultEdgeLevel{-1}; std::map params(); }; #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct option { const char *name; int has_arg; int *flag; int val; }; // default options definition extern const char *shortopts; extern char *optarg2; extern const option longopts[]; void usage(const char *app); int getopt_long_2(int argc, char **argv, const char *shortopts, const option *longopts, int *longind, char **optarg); } // namespace ais