19#ifndef TESSERACT_TEXTORD_COLPARTITIONGRID_H_
20#define TESSERACT_TEXTORD_COLPARTITIONGRID_H_
33 :
public BBGrid<ColPartition, ColPartition_CLIST, ColPartition_C_IT> {
41 void HandleClick(
int x,
int y)
override;
72 void FindOverlappingPartitions(
const TBOX &box,
const ColPartition *not_this,
73 ColPartition_CLIST *parts);
82 const ColPartition *part, ColPartition_CLIST *candidates,
bool debug,
85 int *overlap_increase);
93 void SplitOverlappingPartitions(ColPartition_LIST *big_parts);
105 const TBOX &im_box,
const FCOORD &rerotation);
109 void ReflectInYAxis();
113 void Deskew(
const FCOORD &deskew);
119 void ExtractPartitionsAsBlocks(BLOCK_LIST *blocks, TO_BLOCK_LIST *to_blocks);
122 void SetTabStops(
TabFind *tabgrid);
143 void ReTypeBlobs(BLOBNBOX_LIST *im_blobs);
147 void RecomputeBounds(
int gridsize,
const ICOORD &bleft,
const ICOORD &tright,
157 ColPartition_LIST *parts);
164 void DeleteUnknownParts(
TO_BLOCK *block);
168 void DeleteNonLeaderParts();
171 void FindFigureCaptions();
176 void FindPartitionPartners();
179 void FindPartitionPartners(
bool upper,
ColPartition *part);
182 void FindVPartitionPartners(
bool to_the_left,
ColPartition *part);
186 void RefinePartitionPartners(
bool get_desperate);
193 bool debug, ColPartition_CLIST *candidates);
206 bool SmoothRegionType(
Image nontext_map,
const TBOX &im_box,
207 const FCOORD &rerotation,
bool debug,
217 const FCOORD &rerotation,
bool debug,
225 void AccumulatePartDistances(
const ColPartition &base_part,
226 const ICOORD &dist_scaling,
227 const TBOX &search_box,
Image nontext_map,
229 bool debug, std::vector<int> *dists);
238 int FindMargin(
int x,
bool right_to_left,
int x_limit,
int y_bottom,
std::function< bool(int)> WidthCallback
std::vector< ColPartitionSet * > PartSetVector
ColPartitionGrid()=default
~ColPartitionGrid() override=default