Преобразование glm ::Mat4 в строку

#string #glm

#строка #glm

Вопрос:

Есть ли какой-нибудь способ просто преобразовать glm:: mat4 в строку, а затем преобразовать ее обратно в исходную glm:: mat4?

Или мне нужно создать свой собственный конвертер?

Комментарии:

1. Зачем именно вам это нужно? матрицы 4×4 — это не совсем то, что удобно для чтения или отображения в виде текста

2. У меня есть много клиентов, которым необходимо отправить свою идентификационную матрицу на сервер (она содержит положение, поворот и масштабирование). И сервер отправляет всю матрицу всем клиентам. Я использую boost::asio

3. Для этой цели преобразование в строку было бы в корне неправильным, вы должны сериализовать данные, чтобы отправить их, а не превращать их в строку. На уровне разработки отправка всей матрицы на сервер кажется очень расточительной и потенциально подверженной мошенничеству

4. Отправка строки кажется самым простым способом с помощью boost::asio::buffer(). Любой другой массив или векторный тип выдавал мне ошибку static_cast в Podelements при получении данных с сервера. Как я должен сериализовать mat4 на сервере?

Ответ №1:

Попробуйте использовать это, предоставленное donaldmunro:

 #include <glm/gtx/string_cast.hpp>
..
..
glm::mat4 mat;
..
..
std::cout << glm::to_string(mat) << std::endl;
  

Посмотрите на эту суть.

У меня хорошо работает!