add dv::to_value for std::vector
This commit is contained in:
parent
3498af6be9
commit
1bdb5c3145
@ -6,7 +6,7 @@
|
||||
|
||||
namespace dv {
|
||||
template <int n, typename T>
|
||||
inline dv::value to_value(glm::vec<n, T> vec) {
|
||||
dv::value to_value(const glm::vec<n, T>& vec) {
|
||||
auto list = dv::list();
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
list.add(vec[i]);
|
||||
@ -15,7 +15,7 @@ namespace dv {
|
||||
}
|
||||
|
||||
template <int n, int m, typename T>
|
||||
inline dv::value to_value(glm::mat<n, m, T> mat) {
|
||||
dv::value to_value(const glm::mat<n, m, T>& mat) {
|
||||
auto list = dv::list();
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
for (size_t j = 0; j < m; j++) {
|
||||
@ -25,6 +25,15 @@ namespace dv {
|
||||
return list;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
dv::value to_value(const std::vector<T>& vec) {
|
||||
auto values = dv::list();
|
||||
for (const auto& value : vec) {
|
||||
values.add(value);
|
||||
}
|
||||
return values;
|
||||
}
|
||||
|
||||
template <int n>
|
||||
void get_vec(const dv::value& list, glm::vec<n, float>& vec) {
|
||||
for (size_t i = 0; i < n; i++) {
|
||||
@ -68,11 +77,24 @@ namespace dv {
|
||||
if (!map.has(key)) {
|
||||
return;
|
||||
}
|
||||
auto& list = map[key];
|
||||
auto& arr = map[key];
|
||||
for (size_t y = 0; y < n; y++) {
|
||||
for (size_t x = 0; x < m; x++) {
|
||||
mat[y][x] = list[y * m + x].asNumber();
|
||||
mat[y][x] = arr[y * m + x].asNumber();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void get(const dv::value& map, const std::string& key, std::vector<T>& vec) {
|
||||
if (!map.has(key)) {
|
||||
return;
|
||||
}
|
||||
const auto& arr = map[key];
|
||||
for (size_t i = 0; i < arr.size(); i++) {
|
||||
T value;
|
||||
arr.at(i).get(value);
|
||||
vec.emplace_back(std::move(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user