303 {
304 if (!j.is_array()) {
305 throw nlohmann::json::type_error::create(302, "expected array for glm type", &j);
306 }
307 constexpr auto n = glm_component_count<T>();
308 if (j.size() != n) {
309 throw nlohmann::json::other_error::create(
310 501, "glm component count mismatch", &j);
311 }
312 using Comp = glm_component_type<T>;
313 Comp* ptr = &out[0];
314 for (size_t i = 0; i < n; ++i) {
315 ptr[i] = j[i].get<Comp>();
316 }
317 }