| 191 | } |
| 192 | |
| 193 | VectorF AttributeUtils::convert_to_face_attribute(Mesh& mesh, const VectorF& attribute) { |
| 194 | const size_t dim = mesh.get_dim(); |
| 195 | const size_t num_vertices = mesh.get_num_vertices(); |
| 196 | const size_t num_faces = mesh.get_num_faces(); |
| 197 | const size_t num_voxels = mesh.get_num_voxels(); |
| 198 | |
| 199 | size_t attr_size = attribute.size(); |
| 200 | |
| 201 | if (attr_size == num_vertices || attr_size == dim*num_vertices) { |
| 202 | return convert_vertex_attribute_to_face_attribute(mesh, attribute); |
| 203 | } else if (attr_size == num_faces || attr_size == dim*num_faces) { |
| 204 | return attribute; |
| 205 | } else if (attr_size == num_voxels || attr_size == dim*num_voxels) { |
| 206 | return convert_voxel_attribute_to_face_attribute(mesh, attribute); |
| 207 | } else { |
| 208 | throw RuntimeError("Unknow attribute type."); |
| 209 | } |
| 210 | } |
| 211 | |
| 212 | VectorF AttributeUtils::convert_to_face_attribute_from_name(Mesh& mesh, |
| 213 | const std::string& attribute_name) { |
no test coverage detected