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

Method create

tools/Wires/Parameters/ParameterManager.cpp:156–193  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154using namespace ParameterManagerHelper;
155
156ParameterManager::Ptr ParameterManager::create(
157 WireNetwork::Ptr wire_network,
158 Float default_thickness,
159 ParameterManager::TargetType thickness_type) {
160 const size_t dim = wire_network->get_dim();
161 Ptr manager = create_empty_manager(wire_network, default_thickness);
162 if (!wire_network->has_attribute("vertex_symmetry_orbit")) {
163 wire_network->add_attribute("vertex_symmetry_orbit");
164 }
165 if (!wire_network->has_attribute("edge_symmetry_orbit")) {
166 wire_network->add_attribute("edge_symmetry_orbit");
167 }
168
169 std::list<VectorI> vertex_orbits = group_by_label(
170 wire_network->get_attribute("vertex_symmetry_orbit"));
171 std::list<VectorI> edge_orbits = group_by_label(
172 wire_network->get_attribute("edge_symmetry_orbit"));
173
174 manager->set_thickness_type(thickness_type);
175 if (thickness_type == ParameterCommon::VERTEX) {
176 for (const auto& roi : vertex_orbits) {
177 manager->add_thickness_parameter(roi, "", default_thickness);
178 }
179 } else {
180 for (const auto& roi : edge_orbits) {
181 manager->add_thickness_parameter(roi, "", default_thickness);
182 }
183 }
184
185 manager->set_offset_type(ParameterCommon::VERTEX);
186 for (const auto& roi : vertex_orbits) {
187 for (size_t i=0; i<dim; i++) {
188 manager->add_offset_parameter(roi, "", 0.0, i);
189 }
190 }
191 manager->m_dof_type = ORTHOTROPIC;
192 return manager;
193}
194
195ParameterManager::Ptr ParameterManager::create_isotropic(
196 WireNetwork::Ptr wire_network,

Callers

nothing calls this directly

Calls 9

group_by_labelFunction · 0.85
set_offset_typeMethod · 0.80
add_offset_parameterMethod · 0.80
get_dimMethod · 0.45
has_attributeMethod · 0.45
add_attributeMethod · 0.45
get_attributeMethod · 0.45
set_thickness_typeMethod · 0.45

Tested by

no test coverage detected