1358   CalculateOpenModels(row_start_, row_end_);
  1363   for (
int i = row_start_; i < row_end_; i++) {
  1364     RowScratchRegisters &row = (*rows_)[i];
  1365     if (row.ri_->num_words == 0)
  1372     bool left_align_open = 
false;
  1373     bool right_align_open = 
false;
  1374     for (
int m = 0; m < OpenModels(i).
size(); m++) {
  1375       switch (OpenModels(i)[m]->justification()) {
  1378         default: left_align_open = right_align_open = 
true;
  1386       likely_start = 
true;
  1388       if ((left_align_open && right_align_open) ||
  1389           (!left_align_open && !right_align_open)) {
  1394       } 
else if (left_align_open) {
  1409       for (
int m = 0; m < OpenModels(i).
size(); m++) {
  1411           row.AddStartLine(OpenModels(i)[m]);
  1418         (*rows_)[i - 1].StrongHypotheses(&last_line_models);
  1422       for (
int m = 0; m < last_line_models.size(); m++) {
  1425           row.AddBodyLine(model);
  1434         (row.GetLineType() == 
LT_START && !row.UniqueStartHypothesis())) {
  1437       for (
int m = 0; m < all_models.size(); m++) {
  1439           row.AddStartLine(all_models[m]);
  1447       CalculateOpenModels(i + 1, row_end_);
 bool ValidFirstLine(const GenericVector< RowScratchRegisters > *rows, int row, const ParagraphModel *model)
 
bool LikelyParagraphStart(const RowScratchRegisters &before, const RowScratchRegisters &after)
 
GenericVectorEqEq< const ParagraphModel * > SetOfModels
 
bool ValidBodyLine(const GenericVector< RowScratchRegisters > *rows, int row, const ParagraphModel *model)
 
void NonCenteredModels(SetOfModels *models)