tesseract
3.03
|
integer coordinate More...
#include <points.h>
Public Member Functions | |
ICOORD () | |
empty constructor | |
ICOORD (inT16 xin, inT16 yin) | |
~ICOORD () | |
destructor | |
inT16 | x () const |
access function | |
inT16 | y () const |
access_function | |
void | set_x (inT16 xin) |
rewrite function | |
void | set_y (inT16 yin) |
rewrite function | |
void | set_with_shrink (int x, int y) |
Set from the given x,y, shrinking the vector to fit if needed. | |
float | sqlength () const |
find sq length | |
float | length () const |
find length | |
float | pt_to_pt_sqdist (const ICOORD &pt) const |
sq dist between pts | |
float | pt_to_pt_dist (const ICOORD &pt) const |
Distance between pts. | |
float | angle () const |
find angle | |
BOOL8 | operator== (const ICOORD &other) const |
test equality | |
BOOL8 | operator!= (const ICOORD &other) const |
test inequality | |
void | rotate (const FCOORD &vec) |
void | setup_render (ICOORD *major_step, ICOORD *minor_step, int *major, int *minor) const |
bool | Serialize (FILE *fp) const |
bool | DeSerialize (bool swap, FILE *fp) |
Protected Attributes | |
inT16 | xcoord |
inT16 | ycoord |
Friends | |
class | FCOORD |
ICOORD | operator! (const ICOORD &) |
rotate 90 deg anti | |
ICOORD | operator- (const ICOORD &) |
unary minus | |
ICOORD | operator+ (const ICOORD &, const ICOORD &) |
add | |
ICOORD & | operator+= (ICOORD &, const ICOORD &) |
add | |
ICOORD | operator- (const ICOORD &, const ICOORD &) |
subtract | |
ICOORD & | operator-= (ICOORD &, const ICOORD &) |
subtract | |
inT32 | operator% (const ICOORD &, const ICOORD &) |
scalar product | |
inT32 | operator* (const ICOORD &, const ICOORD &) |
cross product | |
ICOORD | operator* (const ICOORD &, inT16) |
multiply | |
ICOORD | operator* (inT16, const ICOORD &) |
multiply | |
ICOORD & | operator*= (ICOORD &, inT16) |
multiply | |
ICOORD | operator/ (const ICOORD &, inT16) |
divide | |
ICOORD & | operator/= (ICOORD &, inT16) |
divide |
ICOORD::ICOORD | ( | ) | [inline] |
ICOORD::ICOORD | ( | inT16 | xin, |
inT16 | yin | ||
) | [inline] |
ICOORD::~ICOORD | ( | ) | [inline] |
float ICOORD::angle | ( | ) | const [inline] |
bool ICOORD::DeSerialize | ( | bool | swap, |
FILE * | fp | ||
) |
float ICOORD::length | ( | ) | const [inline] |
BOOL8 ICOORD::operator!= | ( | const ICOORD & | other | ) | const [inline] |
float ICOORD::pt_to_pt_dist | ( | const ICOORD & | pt | ) | const [inline] |
Distance between pts.
Definition at line 92 of file points.h.
{ return (float) sqrt (pt_to_pt_sqdist (pt)); }
float ICOORD::pt_to_pt_sqdist | ( | const ICOORD & | pt | ) | const [inline] |
void ICOORD::rotate | ( | const FCOORD & | vec | ) | [inline] |
bool ICOORD::Serialize | ( | FILE * | fp | ) | const |
void ICOORD::set_with_shrink | ( | int | x, |
int | y | ||
) |
Set from the given x,y, shrinking the vector to fit if needed.
Definition at line 43 of file points.cpp.
void ICOORD::set_x | ( | inT16 | xin | ) | [inline] |
void ICOORD::set_y | ( | inT16 | yin | ) | [inline] |
void ICOORD::setup_render | ( | ICOORD * | major_step, |
ICOORD * | minor_step, | ||
int * | major, | ||
int * | minor | ||
) | const |
Setup for iterating over the pixels in a vector by the well-known Bresenham rendering algorithm. Starting with major/2 in the accumulator, on each step move by major_step, and then add minor to the accumulator. When accumulator >= major subtract major and also move by minor_step.
Definition at line 86 of file points.cpp.
{ int abs_x = abs(xcoord); int abs_y = abs(ycoord); if (abs_x >= abs_y) { // X-direction is major. major_step->xcoord = sign(xcoord); major_step->ycoord = 0; minor_step->xcoord = 0; minor_step->ycoord = sign(ycoord); *major = abs_x; *minor = abs_y; } else { // Y-direction is major. major_step->xcoord = 0; major_step->ycoord = sign(ycoord); minor_step->xcoord = sign(xcoord); minor_step->ycoord = 0; *major = abs_y; *minor = abs_x; } }
float ICOORD::sqlength | ( | ) | const [inline] |
inT16 ICOORD::xcoord [protected] |
inT16 ICOORD::ycoord [protected] |