62 return x == other.
x &&
y == other.
y;
76 return x * other.
y -
y * other.
x;
81 return x * other.
x +
y * other.
y;
121 return x_dist * x_dist * x_factor + y_dist * y_dist;
146 }
while (pt != end && pt !=
this);
158 }
while (pt != end && pt !=
this);
173 }
while (pt !=
this &&
count <= min_points);
232 void Rotate(
const FCOORD rotation);
234 void Move(
const ICOORD vec);
236 void Scale(
float factor);
240 void ComputeBoundingBox();
246 void MinMaxCrossProduct(
const TPOINT vec,
int *min_xp,
int *max_xp)
const;
248 TBOX bounding_box()
const;
255 if (Contains(pt1) && Contains(pt2)) {
262 }
while (pt != loop);
268 return topleft.x <= pt.
x && pt.
x <= botright.x && botright.y <= pt.
y && pt.
y <= topleft.y;
271#ifndef GRAPHICS_DISABLED
277 EDGEPT *FindBestStartPt()
const;
280 return (botright.x - topleft.x) * (topleft.y - botright.y);
325 float x_origin,
float y_origin,
float x_scale,
float y_scale,
float final_xshift,
326 float final_yshift,
bool inverse,
Image pix);
332 void Scale(
float factor);
344 if (outline->SegmentCrosses(pt1, pt2)) {
353 if (outline->Contains(pt)) {
372#ifndef GRAPHICS_DISABLED
379 total_area += outline->BBArea();
402 std::vector<std::vector<int>> &y_coords)
const;
413 std::vector<std::vector<int>> *x_coords,
414 std::vector<std::vector<int>> *y_coords)
const;
456 void MergeBlobs(
unsigned start,
unsigned end);
458#ifndef GRAPHICS_DISABLED
#define CLISTIZEH(CLASSNAME)
void Normalize(float *Values)
void divide_blobs(TBLOB *blob, TBLOB *other_blob, bool italic_blob, const TPOINT &location)
bool divisible_blob(TBLOB *blob, bool italic_blob, TPOINT *location)
int dot(const TPOINT &other) const
void diff(const TPOINT &p1, const TPOINT &p2)
void operator+=(const TPOINT &other)
int cross(const TPOINT &other) const
static bool IsCrossed(const TPOINT &a0, const TPOINT &a1, const TPOINT &b0, const TPOINT &b1)
bool operator==(const TPOINT &other) const
TPOINT(TDimension vx, TDimension vy)
void operator/=(int divisor)
bool ShortNonCircularSegment(int min_points, const EDGEPT *end) const
int WeightedDistance(const EDGEPT &other, int x_factor) const
bool EqualPos(const EDGEPT &other) const
int SegmentArea(const EDGEPT *end) const
EDGEPT(const EDGEPT &src)
TBOX SegmentBox(const EDGEPT *end) const
void CopyFrom(const EDGEPT &src)
EDGEPT & operator=(const EDGEPT &src)
TESSLINE(const TESSLINE &src)
bool SameBox(const TESSLINE &other) const
bool Contains(const TPOINT &pt) const
TESSLINE & operator=(const TESSLINE &src)
bool SegmentCrosses(const TPOINT &pt1, const TPOINT &pt2) const
bool Contains(const TPOINT &pt) const
TBOX bounding_box() const
int ComputeMoments(FCOORD *center, FCOORD *second_moments) const
void Move(const ICOORD vec)
void ComputeBoundingBoxes()
static TBLOB * ShallowCopy(const TBLOB &src)
bool SegmentCrossesOutline(const TPOINT &pt1, const TPOINT &pt2) const
void GetPreciseBoundingBox(TBOX *precise_box) const
TBLOB & operator=(const TBLOB &src)
void plot(ScrollView *window, ScrollView::Color color, ScrollView::Color child_color)
void Normalize(const BLOCK *block, const FCOORD *rotation, const DENORM *predecessor, float x_origin, float y_origin, float x_scale, float y_scale, float final_xshift, float final_yshift, bool inverse, Image pix)
const DENORM & denorm() const
void GetEdgeCoords(const TBOX &box, std::vector< std::vector< int > > &x_coords, std::vector< std::vector< int > > &y_coords) const
void EliminateDuplicateOutlines()
void CorrectBlobOrder(TBLOB *next)
static TBLOB * PolygonalCopy(bool allow_detailed_fx, C_BLOB *src)
TBLOB * ClassifyNormalizeIfNeeded() const
void Rotate(const FCOORD rotation)
void CopyFrom(const TBLOB &src)
void CopyFrom(const TWERD &src)
TBOX bounding_box() const
void ComputeBoundingBoxes()
static TWERD * PolygonalCopy(bool allow_detailed_fx, WERD *src)
TWERD & operator=(const TWERD &src)
std::vector< TBLOB * > blobs
void BLNormalize(const BLOCK *block, const ROW *row, Image pix, bool inverse, float x_height, float baseline_shift, bool numeric_mode, tesseract::OcrEngineMode hint, const TBOX *norm_box, DENORM *word_denorm)
unsigned NumBlobs() const
void plot(ScrollView *window)
void MergeBlobs(unsigned start, unsigned end)
TDimension bottom() const