92 {
93 for (
unsigned i = 0;
i < length_; ++
i) {
95
96 box =
97 TBOX(box.left() - 1, box.bottom() - 1, box.right() + 1, box.top() + 1);
98
100 C_BLOB_IT b_it(original_word->cblob_list());
101 for (b_it.mark_cycle_pt(); !b_it.cycled_list(); b_it.forward()) {
102 TBOX blob_box = b_it.data()->bounding_box();
103 if (block != nullptr) {
104 blob_box.rotate(block->re_rotation());
105 }
106 if (blob_box.major_overlap(box)) {
107 original_box += blob_box;
108 }
109 }
110 if (!original_box.null_box()) {
111 if (NearlyEqual<int>(original_box.left(), box.left(),
113 box.set_left(original_box.left());
114 }
115 if (NearlyEqual<int>(original_box.right(), box.right(),
117 box.set_right(original_box.right());
118 }
120 box.set_top(original_box.top());
121 }
122 if (NearlyEqual<int>(original_box.bottom(), box.bottom(),
124 box.set_bottom(original_box.bottom());
125 }
126 }
127 original_box = original_word->bounding_box();
128 if (block != nullptr) {
129 original_box.rotate(block->re_rotation());
130 }
131 boxes_[
i] = box.intersection(original_box);
132 }
133 ComputeBoundingBox();
134}
const int kBoxClipTolerance