| 166 | using namespace AttributeUtilsHelper; |
| 167 | |
| 168 | VectorF AttributeUtils::convert_to_vertex_attribute(Mesh& mesh, const VectorF& attribute) { |
| 169 | const size_t dim = mesh.get_dim(); |
| 170 | const size_t num_vertices = mesh.get_num_vertices(); |
| 171 | const size_t num_faces = mesh.get_num_faces(); |
| 172 | const size_t num_voxels = mesh.get_num_voxels(); |
| 173 | |
| 174 | size_t attr_size = attribute.size(); |
| 175 | |
| 176 | if (attr_size == num_vertices || attr_size == dim*num_vertices) { |
| 177 | return attribute; |
| 178 | } else if (attr_size == num_faces || attr_size == dim*num_faces) { |
| 179 | return convert_face_attribute_to_vertex_attribute(mesh, attribute); |
| 180 | } else if (attr_size == num_voxels || attr_size == dim*num_voxels) { |
| 181 | return convert_voxel_attribute_to_vertex_attribute(mesh, attribute); |
| 182 | } else { |
| 183 | throw RuntimeError("Unknow attribute type."); |
| 184 | } |
| 185 | } |
| 186 | |
| 187 | VectorF AttributeUtils::convert_to_vertex_attribute_from_name(Mesh& mesh, |
| 188 | const std::string& attribute_name) { |
no test coverage detected