Path: blob/master/thirdparty/graphite/src/inc/GlyphFace.h
9906 views
// SPDX-License-Identifier: MIT OR MPL-2.0 OR LGPL-2.1-or-later OR GPL-2.0-or-later1// Copyright 2010, SIL International, All rights reserved.23#pragma once45#include "inc/Main.h"6#include "inc/Position.h"7#include "inc/Sparse.h"89namespace graphite2 {1011enum metrics {12kgmetLsb = 0, kgmetRsb,13kgmetBbTop, kgmetBbBottom, kgmetBbLeft, kgmetBbRight,14kgmetBbHeight, kgmetBbWidth,15kgmetAdvWidth, kgmetAdvHeight,16kgmetAscent, kgmetDescent17};181920class GlyphFace21{22public:23GlyphFace();24template<typename I>25GlyphFace(const Rect & bbox, const Position & adv, I first, const I last);2627const Position & theAdvance() const;28const Rect & theBBox() const { return m_bbox; }29const sparse & attrs() const { return m_attrs; }30int32 getMetric(uint8 metric) const;3132CLASS_NEW_DELETE;33private:34Rect m_bbox; // bounding box metrics in design units35Position m_advance; // Advance width and height in design units36sparse m_attrs;37};383940// Inlines: class GlyphFace41//42inline43GlyphFace::GlyphFace()44{}4546template<typename I>47GlyphFace::GlyphFace(const Rect & bbox, const Position & adv, I first, const I last)48: m_bbox(bbox),49m_advance(adv),50m_attrs(first, last)51{52}5354inline55const Position & GlyphFace::theAdvance() const {56return m_advance;57}5859} // namespace graphite2606162