모델 업로드 구조 완성
This commit is contained in:
@@ -18,35 +18,16 @@ void Append(std::vector<char>& buffer, const T& value) {
|
||||
buffer.insert(buffer.end(), data, data + sizeof(T));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void AppendVector(std::vector<char>& buffer, const std::vector<T>& vec) {
|
||||
std::uint32_t size = static_cast<std::uint32_t>(vec.size());
|
||||
Append(buffer, size);
|
||||
buffer.insert(buffer.end(), reinterpret_cast<const char*>(vec.data()),
|
||||
reinterpret_cast<const char*>(vec.data() + size));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void Read(const std::vector<char>& buffer, size_t& offset, T& out) {
|
||||
std::memcpy(&out, buffer.data() + offset, sizeof(T));
|
||||
offset += sizeof(T);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void ReadVector(const std::vector<char>& buffer, size_t& offset,
|
||||
std::vector<T>& out) {
|
||||
std::uint32_t size = 0;
|
||||
Read(buffer, offset, size);
|
||||
out.resize(size);
|
||||
std::memcpy(out.data(), buffer.data() + offset, sizeof(T) * size);
|
||||
offset += sizeof(T) * size;
|
||||
}
|
||||
|
||||
std::vector<char> Model::Serialize() {
|
||||
std::vector<char> buffer;
|
||||
|
||||
AppendVector(buffer, vertices);
|
||||
AppendVector(buffer, indices);
|
||||
Append(buffer, ID);
|
||||
|
||||
Append(buffer, position);
|
||||
Append(buffer, linear_velocity);
|
||||
@@ -72,8 +53,7 @@ std::vector<char> Model::Serialize() {
|
||||
void Model::Deserialize(std::vector<char> data) {
|
||||
size_t offset = 0;
|
||||
|
||||
ReadVector(data, offset, vertices);
|
||||
ReadVector(data, offset, indices);
|
||||
Read(data, offset, ID);
|
||||
|
||||
Read(data, offset, position);
|
||||
Read(data, offset, linear_velocity);
|
||||
|
||||
Reference in New Issue
Block a user