1#ifndef TYPESET_INL_LINE_ITEM_HPP
2#define TYPESET_INL_LINE_ITEM_HPP
73 static constexpr uint32_t
kNoCluster = std::numeric_limits<uint32_t>::max();
inl/annotation — 行内に組み込む注記
constexpr float kForcedBreakPenalty
constexpr float kInfinitePenalty
static LineItem gluePt(Pt natural, Pt stretch, Pt shrink, size_t charIndex)
std::vector< PlacedGlyph > breakGlyphs
Penalty: そこで行が終わったときに行末へ足すグリフ(ハイフネーションのハイフン)。inline_ は行末からの相対
static constexpr uint32_t kNoCluster
uint32_t clusterIndex
Box が指すクラスタ(Box 以外では kNoCluster)
bool isForcedBreak() const
static LineItem penaltyItem(float cost, Pt width, size_t charIndex)
static LineItem box(Pt w, uint32_t cluster, size_t charIndex)
Pt width
Box: ボディ幅/Penalty: ブレークしたときにその位置に現れる幅(ぶら下げは負)
Pt extentMin
この Box が要求するブロック軸の張り出し(既定の ±0.5em を超える分だけ)
std::vector< PlacedGlyph > glyphs
Box に紐づくグリフ列。inline_ は Box の先頭からの相対、block は中心線から。
static LineItem glue(const text::GlueSpec &spec, Pt em, size_t charIndex)
int level
UAX #9 の埋め込みレベル(欧文間隔のグルーに付ける。-1 なら未設定で、行の並べ替えでは直前の箱に従う)
Pt glyphOffset
Box: 仮想ボディを詰めたときのグリフの描画オフセット(始め括弧で負)
size_t charIndex
元テキストでの位置(UTF-16)