| 17 | #include "VectorProgramOptions.h" |
| 18 | |
| 19 | cxxopts::Options BuildCmdOptions() |
| 20 | { |
| 21 | cxxopts::Options cmdOptions("Spatiotemporal Blue Noise", "Generates spatiotemporal blue noise images"); |
| 22 | |
| 23 | cmdOptions.add_options() |
| 24 | ("o,output", "Output directory", cxxopts::value<std::string>()->default_value("out")) |
| 25 | ("x,dimsX", "Width in pixels to Generate.", cxxopts::value<int>()->default_value("128")) |
| 26 | ("y,dimsY", "Height in pixels to Generate.", cxxopts::value<int>()->default_value("128")) |
| 27 | ("z,dimsZ", "Depth in xy slices to Generate.", cxxopts::value<int>()->default_value("64")) |
| 28 | ("energySigma", "Energy sigma", cxxopts::value<float>()->default_value("1.9")) |
| 29 | ("valueSigma", "Value sigma", cxxopts::value<float>()->default_value("1.0")) |
| 30 | ("swapCountFactor", "Swap count factor", cxxopts::value<float>()->default_value("0.001")) |
| 31 | ("coolingFactor", "Cooling factor", cxxopts::value<float>()->default_value("0.00001")) |
| 32 | ("t,type", "Type of mask to Make. Options are Float, Float2, or Float3", cxxopts::value<std::string>()->default_value("Float2")) |
| 33 | ("g,generator", "Generator to use for initial random values. Options are Uniform or Unit. CosineWeightdHemisphere is available for Float3", cxxopts::value<std::string>()->default_value("Uniform")) |
| 34 | ("d,valueDistance", "ValueDistance function to use in simulated annealing for Float2 and Float3. Options are L1, L2, or LInfinity. Float3 may also specify NegativeDot as well. Float always uses absolute value. ", cxxopts::value<std::string>()->default_value("L1")) |
| 35 | ("h,help", "Print help") |
| 36 | ; |
| 37 | cmdOptions.allow_unrecognised_options(); |
| 38 | |
| 39 | return cmdOptions; |
| 40 | } |
| 41 | |
| 42 | void HandleHelpOption(const cxxopts::Options& cmdOptions, const cxxopts::ParseResult& parsedOptions) |
| 43 | { |