EHS/include/io/Glyph.h

59 lines
914 B
C
Raw Normal View History

2023-12-17 03:29:08 -08:00
#pragma once
2023-12-17 15:00:08 -08:00
#include "EHS.h"
#include "Vec2.h"
#include "Rect.h"
#include "Serializer.h"
2023-12-17 03:29:08 -08:00
2023-12-17 15:56:13 -08:00
namespace ehs
2023-12-17 03:29:08 -08:00
{
class 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;
};
}