#pragma once #include "ehs/EHS.h" #include "ehs/Vec2.h" #include "ehs/Rect.h" #include "ehs/Serializer.h" namespace ehs { class EHS_LIB_IO Glyph { private: Char_32 code; Vec2_u64 pos; Vec2_u64 scale; Rect_f uv; Vec2_64 bearing; Vec2_64 advance; public: Glyph(); Glyph(Serializer& ser); Glyph(const Char_32 code); Glyph(const Glyph& glyph); Glyph& operator=(const Glyph& glyph); bool operator==(const Glyph& glyph) const; bool operator!=(const Glyph& glyph) const; Char_32 GetCode() const; void SetPos(const Vec2_u64& newPos); Vec2_u64 GetPos() const; void SetScale(const Vec2_u64& newScale); Vec2_u64 GetScale() const; void SetUV(const Rect_f& newUV); Rect_f GetUV() const; void SetBearing(const Vec2_64& newBearing); Vec2_32 GetBearing() const; void SetAdvance(const Vec2_64& newAdvance); Vec2_32 GetAdvance() const; void Serialize(Serializer<>& ser) const; }; }