Wildmeshing Toolkit
Loading...
Searching...
No Matches
triwild_spec.hpp
1#pragma once
2#include <nlohmann/json.hpp>
3namespace {
4
5nlohmann::json triwild_spec = R"(
6[
7 {
8 "pointer": "/",
9 "type": "object",
10 "required": ["application", "input"],
11 "optional": [
12 "output",
13 "num_threads",
14 "max_iterations",
15 "eps_rel",
16 "length_rel",
17 "stop_energy",
18 "preserve_topology",
19 "throw_on_fail",
20 "log_file",
21 "report",
22 "DEBUG_output",
23 "DEBUG_sanity_checks"
24 ]
25 },
26 {
27 "pointer": "/application",
28 "type": "string",
29 "options": ["triwild"],
30 "doc": "Application name must be triwild."
31 },
32 {
33 "pointer": "/input",
34 "type": "list",
35 "doc": "List of triangular input meshes.",
36 "min": 1
37 },
38 {
39 "pointer": "/input/*",
40 "type": "string",
41 "doc": "Triangular input mesh."
42 },
43 {
44 "pointer": "/output",
45 "type": "string",
46 "default": "out",
47 "doc": "Output file name (without extension)."
48 },
49 {
50 "pointer": "/num_threads",
51 "type": "int",
52 "default": 0,
53 "doc": "Number of threads used by the application"
54 },
55 {
56 "pointer": "/max_iterations",
57 "type": "int",
58 "default": 80,
59 "doc": "Maximum iterations before stopping."
60 },
61 {
62 "pointer": "/eps_rel",
63 "type": "float",
64 "default": 2e-3,
65 "doc": "Envelope thickness relative to the bounding box"
66 },
67 {
68 "pointer": "/length_rel",
69 "type": "float",
70 "default": 5e-2,
71 "doc": "Target edge length relative to the bounding box"
72 },
73 {
74 "pointer": "/stop_energy",
75 "type": "float",
76 "default": 10,
77 "doc": "Target energy. If all tets have an energy below this, triwild will stop."
78 },
79 {
80 "pointer": "/preserve_topology",
81 "type": "bool",
82 "default": false,
83 "doc": "Preserve the topology of the input surface."
84 },
85 {
86 "pointer": "/throw_on_fail",
87 "type": "bool",
88 "default": false,
89 "doc": "Throw exception if the output does not fulfil the desired criteria. No output will be generated."
90 },
91 {
92 "pointer": "/log_file",
93 "type": "string",
94 "default": "",
95 "doc": "Logs are not just printed on the terminal but also saved in this file."
96 },
97 {
98 "pointer": "/report",
99 "type": "string",
100 "default": "",
101 "doc": "A JSON file that stores information about the result and the method execution, e.g., runtime."
102 },
103 {
104 "pointer": "/DEBUG_output",
105 "type": "bool",
106 "default": false,
107 "doc": "Write the mesh as debug_{}.vtu after every operation."
108 },
109 {
110 "pointer": "/DEBUG_sanity_checks",
111 "type": "bool",
112 "default": false,
113 "doc": "Perform sanity checks after every operation. This can be very slow and should only be used for debugging."
114 },
115 {
116 "pointer": "/DEBUG_hausdorff",
117 "type": "bool",
118 "default": false,
119 "doc": "Sanity Check: Compute and report the Hausdorff distance of the output to the input. Should be always smaller than eps."
120 }
121]
122)"_json;
123
124}