mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-12 17:10:54 +01:00
35 lines
1 KiB
C
35 lines
1 KiB
C
#pragma once
|
|
|
|
using TiltedPhoques::Buffer;
|
|
|
|
//! Network optimized 3d vector
|
|
struct Vector3_NetQuantize : glm::vec3
|
|
{
|
|
Vector3_NetQuantize() = default;
|
|
~Vector3_NetQuantize() = default;
|
|
|
|
bool operator==(const Vector3_NetQuantize& acRhs) const noexcept;
|
|
bool operator!=(const Vector3_NetQuantize& acRhs) const noexcept;
|
|
|
|
Vector3_NetQuantize& operator=(const glm::vec3& acRhs) noexcept;
|
|
|
|
/**
|
|
* Serialize to a buffer.
|
|
* @param aWriter Writer wrapping the buffer.
|
|
*/
|
|
void Serialize(Buffer::Writer& aWriter) const noexcept;
|
|
/**
|
|
* Deserialize from a buffer.
|
|
* @param aReader Reader wrapping the buffer.
|
|
*/
|
|
void Deserialize(Buffer::Reader& aReader) noexcept;
|
|
/**
|
|
* Packs the vector into a 64 bits representation of the network vector
|
|
*/
|
|
[[nodiscard]] uint64_t Pack() const noexcept;
|
|
/**
|
|
* Unpack a 64 bits representation of a network vector
|
|
* @param aValue The 64bits representation of a vector.
|
|
*/
|
|
void Unpack(uint64_t aValue) noexcept;
|
|
};
|