Create DataVariant from Eigen matrix/vector.
716 {
717 std::vector<double> flat_data;
718
719 if constexpr (EigenType::IsVectorAtCompileTime) {
720 flat_data.resize(eigen_data.size());
721 for (int i = 0; i < eigen_data.size(); ++i) {
722 flat_data[i] = static_cast<double>(eigen_data(i));
723 }
724 } else {
725 flat_data.resize(eigen_data.size());
726 int idx = 0;
727 for (int i = 0; i < eigen_data.rows(); ++i) {
728 for (int j = 0; j < eigen_data.cols(); ++j) {
729 flat_data[idx++] = static_cast<double>(eigen_data(i, j));
730 }
731 }
732 }
733
735 }
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.