F4MP/codigos originales/tiltedcode/Code/encoding/Structs/Vector3_NetQuantize.h
2026-01-06 18:53:59 +01:00

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;
};