MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / parse_thickness_parameters

Function parse_thickness_parameters

tools/Wires/Parameters/ParameterManager.cpp:87–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

85 }
86
87 void parse_thickness_parameters(ParameterManager::Ptr manager,
88 PTree& config, SymmetryOrbits& orbits) {
89 std::string type = config.get<std::string>("type");
90 Float default_thickness = config.get<Float>("default");
91 manager->set_default_thickness(default_thickness);
92 if (type == "vertex_orbit") {
93 manager->set_thickness_type(ParameterCommon::VERTEX);
94 } else if (type == "edge_orbit") {
95 manager->set_thickness_type(ParameterCommon::EDGE);
96 } else {
97 std::stringstream err_msg;
98 err_msg << "Invalid thickness type: " << type;
99 throw NotImplementedError(err_msg.str());
100 }
101
102 PTree& effective_orbits = config.get_child("effective_orbits");
103 PTree& thicknesses = config.get_child("thickness");
104 auto orbit_itr = effective_orbits.begin();
105 auto thickness_itr = thicknesses.begin();
106 while (orbit_itr != effective_orbits.end()) {
107 assert(thickness_itr != thicknesses.end());
108
109 size_t orbit_index = orbit_itr->second.get_value<int>();
110 VectorI roi;
111 if (type == "vertex_orbit") {
112 roi = orbits.get_vertex_orbit(orbit_index);
113 } else {
114 roi = orbits.get_edge_orbit(orbit_index);
115 }
116
117 std::string thickness =
118 thickness_itr->second.get_value<std::string>();
119 Float val = parse_value(thickness);
120 std::string formula = parse_formula(thickness);
121 manager->add_thickness_parameter(roi, formula, val);
122
123 orbit_itr++;
124 thickness_itr++;
125 }
126 }
127
128 std::list<VectorI> group_by_label(const MatrixFr& labels) {
129 std::map<int, std::vector<size_t> > groups;

Callers 1

Calls 9

NotImplementedErrorClass · 0.85
parse_valueFunction · 0.85
parse_formulaFunction · 0.85
set_default_thicknessMethod · 0.80
set_thickness_typeMethod · 0.45
strMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected