void json_set_value(const jsonvalue& json, vector<vec3f>& value) { value.resize(json.array_size()/3); json_set_values(json, &value[0].x, value.size()*3); }
void json_set_value(const jsonvalue& json, vector<float>& value) { value.resize(json.array_size()); json_set_values(json, &value[0], value.size()); }
void json_set_value(const jsonvalue& json, vector<bool>& value) { value.resize(json.array_size()); for(auto i : range(value.size())) value[i] = json.array_element(i).as_bool(); }
void json_set_values(const jsonvalue& json, int* value, int n) { error_if_not(n == json.array_size(), "incorrect array size"); for(auto i : range(n)) value[i] = json.array_element(i).as_int(); }
void json_set_value(const jsonvalue& json, vector<vector<mat4f>>& value) { value.resize(json.array_size()); for(auto i : range(value.size())) json_set_value(json.array_element(i), value[i]); }
void json_set_value(const jsonvalue& json, vector<mat4f>& value) { value.resize(json.array_size()/16); json_set_values(json, &value[0].x.x, value.size()*16); }