14#include <lagrange/Logger.h>
15#include <lagrange/SurfaceMesh.h>
16#include <lagrange/utils/Error.h>
36template <
typename Scalar,
typename Index>
39 if (!mesh.has_attribute(name)) {
40 return std::string(name);
43 for (
int cnt = 0; cnt < 1000; ++cnt) {
44 new_name = fmt::format(
"{}.{}", name, cnt);
45 if (!mesh.has_attribute(new_name)) {
46 logger().warn(
"Attribute '{}' already exists. Using '{}' instead.", name, new_name);
50 throw Error(fmt::format(
"Could not assign a unique attribute name for: {}", name));
A general purpose polygonal mesh class.
Definition SurfaceMesh.h:66
LA_CORE_API spdlog::logger & logger()
Retrieves the current logger.
Definition Logger.cpp:40
nullptr_t, size_t, ptrdiff_t basic_ostream bad_weak_ptr extent, remove_extent, is_array,...
Definition attribute_string_utils.h:21
std::string get_unique_attribute_name(const SurfaceMesh< Scalar, Index > &mesh, std::string_view name)
Returns a unique attribute name by appending a suffix if necessary.
Definition get_unique_attribute_name.h:37
@ Error
Throw an error if collision is detected.
Definition MappingPolicy.h:24