148 int* major,
int* minor)
const;
226 return xcoord * xcoord + ycoord * ycoord;
231 return (
float) sqrt (sqlength ());
238 gap.xcoord = xcoord - pt.xcoord;
239 gap.ycoord = ycoord - pt.ycoord;
245 return (
float) sqrt (pt_to_pt_sqdist (pt));
250 return (
float) atan2 (ycoord, xcoord);
254 uinT8 to_direction()
const;
261 static uinT8 binary_angle_plus_pi(
double angle);
270 const FCOORD& dir_vector)
const;
277 return xcoord == other.xcoord && ycoord == other.ycoord;
281 return xcoord != other.xcoord || ycoord != other.ycoord;
310 void rotate(
const FCOORD vec);
313 void unrotate(
const FCOORD &vec);
void set_with_shrink(int x, int y)
Set from the given x,y, shrinking the vector to fit if needed.
friend ICOORD operator!(const ICOORD &)
rotate 90 deg anti
friend ICOORD operator/(const ICOORD &, inT16)
divide
float length() const
find length
friend ICOORD & operator/=(ICOORD &, inT16)
divide
ICOORD operator/(const ICOORD &op1, inT16 scale)
ICOORD & operator/=(ICOORD &op1, inT16 scale)
ICOORD()
empty constructor
float length() const
find length
FCOORD(float xvalue, float yvalue)
friend ICOORD operator-(const ICOORD &)
unary minus
float pt_to_pt_sqdist(const FCOORD &pt) const
sq dist between pts
ICOORDELT()
empty constructor
void set_x(inT16 xin)
rewrite function
#define ELISTIZEH(CLASSNAME)
bool DeSerialize(bool swap, FILE *fp)
inT16 x() const
access function
ICOORD & operator+=(ICOORD &op1, const ICOORD &op2)
ICOORD & operator *=(ICOORD &op1, inT16 scale)
static ICOORDELT * deep_copy(const ICOORDELT *src)
float angle() const
find angle
ICOORD & operator-=(ICOORD &op1, const ICOORD &op2)
inT16 y() const
access_function
void set_x(float xin)
rewrite function
float pt_to_pt_sqdist(const ICOORD &pt) const
sq dist between pts
void set_y(inT16 yin)
rewrite function
ICOORD operator+(const ICOORD &op1, const ICOORD &op2)
ICOORD operator!(const ICOORD &src)
float angle() const
find angle
friend ICOORD & operator-=(ICOORD &, const ICOORD &)
subtract
float sqlength() const
find sq length
BOOL8 operator==(const ICOORD &other) const
test equality
friend inT32 operator%(const ICOORD &, const ICOORD &)
scalar product
float pt_to_pt_dist(const ICOORD &pt) const
Distance between pts.
ICOORD operator-(const ICOORD &src)
int direction(EDGEPT *point)
float pt_to_pt_dist(const FCOORD &pt) const
Distance between pts.
friend inT32 operator *(const ICOORD &, const ICOORD &)
cross product
inT32 operator *(const ICOORD &op1, const ICOORD &op2)
friend ICOORD & operator *=(ICOORD &, inT16)
multiply
FCOORD()
empty constructor
ICOORDELT(ICOORD icoord)
constructor from ICOORD
BOOL8 operator!=(const ICOORD &other) const
test inequality
ICOORDELT(inT16 xin, inT16 yin)
inT32 operator%(const ICOORD &op1, const ICOORD &op2)
ICOORD(inT16 xin, inT16 yin)
friend ICOORD operator+(const ICOORD &, const ICOORD &)
add
void set_y(float yin)
rewrite function
bool Serialize(FILE *fp) const
friend ICOORD & operator+=(ICOORD &, const ICOORD &)
add
void setup_render(ICOORD *major_step, ICOORD *minor_step, int *major, int *minor) const
float sqlength() const
find sq length
void rotate(const FCOORD &vec)