typeset 0.1.0
縦書き・横書きの日本語組版ライブラリ(JLReq 水準、ラスタ / PDF / SVG)
読み取り中…
検索中…
一致する文字列を見つけられません
typeset::inl::LineItem 構造体

#include <typeset/inl/line_item.hpp>

公開メンバ関数

bool isBox () const
 
bool isGlue () const
 
bool isPenalty () const
 
bool isForcedBreak () const
 

静的公開メンバ関数

static LineItem box (Pt w, uint32_t cluster, size_t charIndex)
 
static LineItem glue (const text::GlueSpec &spec, Pt em, size_t charIndex)
 
static LineItem gluePt (Pt natural, Pt stretch, Pt shrink, size_t charIndex)
 
static LineItem penaltyItem (float cost, Pt width, size_t charIndex)
 

公開変数類

ItemType type = ItemType::Box
 
Pt width = 0.0f
 Box: ボディ幅/Penalty: ブレークしたときにその位置に現れる幅(ぶら下げは負)
 
Pt natural = 0.0f
 Glue の伸縮
 
Pt stretch = 0.0f
 
Pt shrink = 0.0f
 
float penalty = 0.0f
 
Pt glyphOffset = 0.0f
 Box: 仮想ボディを詰めたときのグリフの描画オフセット(始め括弧で負)
 
uint32_t clusterIndex = kNoCluster
 Box が指すクラスタ(Box 以外では kNoCluster)
 
size_t charIndex = 0
 元テキストでの位置(UTF-16)
 
int level = -1
 UAX #9 の埋め込みレベル(欧文間隔のグルーに付ける。-1 なら未設定で、行の並べ替えでは直前の箱に従う)
 
std::vector< PlacedGlyphglyphs
 Box に紐づくグリフ列。inline_ は Box の先頭からの相対、block は中心線から。
 
bool ownGlyphs = false
 
Pt extentMin = 0.0f
 この Box が要求するブロック軸の張り出し(既定の ±0.5em を超える分だけ)
 
Pt extentMax = 0.0f
 
std::vector< PlacedGlyphbreakGlyphs
 Penalty: そこで行が終わったときに行末へ足すグリフ(ハイフネーションのハイフン)。inline_ は行末からの相対
 

静的公開変数類

static constexpr uint32_t kNoCluster = std::numeric_limits<uint32_t>::max()
 

詳解

line_item.hpp31 行目に定義があります。

関数詳解

◆ box()

static LineItem typeset::inl::LineItem::box ( Pt  w,
uint32_t  cluster,
size_t  charIndex 
)
inlinestatic

line_item.hpp75 行目に定義があります。

参照先 typeset::inl::Box, charIndex, clusterIndex, type, width.

◆ glue()

static LineItem typeset::inl::LineItem::glue ( const text::GlueSpec spec,
Pt  em,
size_t  charIndex 
)
inlinestatic

◆ gluePt()

static LineItem typeset::inl::LineItem::gluePt ( Pt  natural,
Pt  stretch,
Pt  shrink,
size_t  charIndex 
)
inlinestatic

line_item.hpp86 行目に定義があります。

参照先 charIndex, typeset::inl::Glue, natural, shrink, stretch, type.

参照元 glue().

◆ penaltyItem()

static LineItem typeset::inl::LineItem::penaltyItem ( float  cost,
Pt  width,
size_t  charIndex 
)
inlinestatic

line_item.hpp95 行目に定義があります。

参照先 charIndex, typeset::inl::Penalty, penalty, type, width.

◆ isBox()

bool typeset::inl::LineItem::isBox ( ) const
inline

line_item.hpp104 行目に定義があります。

参照先 typeset::inl::Box, type.

◆ isGlue()

bool typeset::inl::LineItem::isGlue ( ) const
inline

line_item.hpp105 行目に定義があります。

参照先 typeset::inl::Glue, type.

◆ isPenalty()

bool typeset::inl::LineItem::isPenalty ( ) const
inline

line_item.hpp106 行目に定義があります。

参照先 typeset::inl::Penalty, type.

◆ isForcedBreak()

bool typeset::inl::LineItem::isForcedBreak ( ) const
inline

line_item.hpp107 行目に定義があります。

参照先 typeset::inl::kForcedBreakPenalty, typeset::inl::Penalty, penalty, type.

メンバ詳解

◆ type

ItemType typeset::inl::LineItem::type = ItemType::Box

line_item.hpp32 行目に定義があります。

参照元 box(), gluePt(), isBox(), isForcedBreak(), isGlue(), isPenalty(), penaltyItem().

◆ width

Pt typeset::inl::LineItem::width = 0.0f

Box: ボディ幅/Penalty: ブレークしたときにその位置に現れる幅(ぶら下げは負)

line_item.hpp35 行目に定義があります。

参照元 box(), penaltyItem().

◆ natural

Pt typeset::inl::LineItem::natural = 0.0f

Glue の伸縮

line_item.hpp38 行目に定義があります。

参照元 gluePt().

◆ stretch

Pt typeset::inl::LineItem::stretch = 0.0f

line_item.hpp39 行目に定義があります。

参照元 gluePt().

◆ shrink

Pt typeset::inl::LineItem::shrink = 0.0f

line_item.hpp40 行目に定義があります。

参照元 gluePt().

◆ penalty

float typeset::inl::LineItem::penalty = 0.0f

line_item.hpp42 行目に定義があります。

参照元 isForcedBreak(), penaltyItem().

◆ glyphOffset

Pt typeset::inl::LineItem::glyphOffset = 0.0f

Box: 仮想ボディを詰めたときのグリフの描画オフセット(始め括弧で負)

line_item.hpp45 行目に定義があります。

◆ clusterIndex

uint32_t typeset::inl::LineItem::clusterIndex = kNoCluster

Box が指すクラスタ(Box 以外では kNoCluster)

line_item.hpp48 行目に定義があります。

参照元 box().

◆ charIndex

size_t typeset::inl::LineItem::charIndex = 0

元テキストでの位置(UTF-16)

line_item.hpp51 行目に定義があります。

参照元 box(), glue(), gluePt(), penaltyItem().

◆ level

int typeset::inl::LineItem::level = -1

UAX #9 の埋め込みレベル(欧文間隔のグルーに付ける。-1 なら未設定で、行の並べ替えでは直前の箱に従う)

line_item.hpp54 行目に定義があります。

◆ glyphs

std::vector<PlacedGlyph> typeset::inl::LineItem::glyphs

Box に紐づくグリフ列。inline_ は Box の先頭からの相対、block は中心線から。

  • ownGlyphs が true … この列が Box の本体(縦中横・割注)。clusterIndex のグリフは描かない
  • false … クラスタのグリフに加えて描く付随グリフ(ルビ・圏点)

line_item.hpp63 行目に定義があります。

◆ ownGlyphs

bool typeset::inl::LineItem::ownGlyphs = false

line_item.hpp64 行目に定義があります。

◆ extentMin

Pt typeset::inl::LineItem::extentMin = 0.0f

この Box が要求するブロック軸の張り出し(既定の ±0.5em を超える分だけ)

line_item.hpp67 行目に定義があります。

◆ extentMax

Pt typeset::inl::LineItem::extentMax = 0.0f

line_item.hpp68 行目に定義があります。

◆ breakGlyphs

std::vector<PlacedGlyph> typeset::inl::LineItem::breakGlyphs

Penalty: そこで行が終わったときに行末へ足すグリフ(ハイフネーションのハイフン)。inline_ は行末からの相対

line_item.hpp71 行目に定義があります。

◆ kNoCluster

constexpr uint32_t typeset::inl::LineItem::kNoCluster = std::numeric_limits<uint32_t>::max()
staticconstexpr

line_item.hpp73 行目に定義があります。


この構造体詳解は次のファイルから抽出されました: