| 154 | using namespace ParameterManagerHelper; |
| 155 | |
| 156 | ParameterManager::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 | |
| 195 | ParameterManager::Ptr ParameterManager::create_isotropic( |
| 196 | WireNetwork::Ptr wire_network, |
nothing calls this directly
no test coverage detected