段の排除領域を避ける行の形(回り込み)。行 i は startBlock + i × pitch の帯
RegionLineShape(const Region ®ion, Pt startBlock, Pt pitch, Pt baseIndent=0.0f)
inl::LineShape at(int lineIndex) const override
lineIndex 行目の形(段落の先頭を 0 とは限らない。呼び出し側が firstLineIndex を渡す)
inl::LineShape at(int lineIndex, Pt extraBlock) const override
行送りが広がった行の後ろでの形。extraBlock は「行番号 × 行送り」に対して実際の行位置が ずれている量(前の行までの追加の送り)。排除領域を見る実装だけが使う。既定は at(lineInde...
page/flow_layouter — Flow をページ列へ流し込む
std::optional< RunningText > footer
std::optional< RunningText > header
std::vector< Rect > columnRects(const Rect &body, int cols, Pt gap) const
版面を段に分ける(縦組みは上下、横組みは左右)
Rect bodyRect(int pageNumber) const
版面(pageNumber は 1 始まり。duplex のとき偶奇で inner/outer が入れ替わる)
Pt reserved
段末に確保した量(脚注)と、段末に置く脚注(FlowLayouter がページを閉じるときに描く)
std::vector< inl::Paragraph > footnotes
Rect toRect(Pt inline0, Pt inline1, Pt block0, Pt block1) const
論理矩形 → 物理矩形
Point lineOrigin(Pt blockOffset, Pt pitch, Pt inlineOffset=0.0f) const
used + offset の位置に始まる、行送り pitch の 1 行目の行頭(中心線上の点)
void freeInlineRange(Pt block0, Pt block1, Pt &start, Pt &end) const
行送り方向 [block0, block1) の帯で、排除領域を避けて使える行の方向の最大区間
std::vector< Rect > exclusions
回り込みの排除領域(ページ座標)。段が変わると消える
柱・ノンブル(横組みで版面の上/下に置く。縦組みの本でも横に置くのが慣例)
bool mirrorOnEven
見開き(duplex)で偶数ページの揃えを左右反転する(柱・ノンブルを小口側に置く)
Pt offset
版面の端から行の中心線までの距離(上の柱は版面上端から上へ、下は下端から下へ)