40int seg_seg_intersect(
const vec2d& pnt_A,
const vec2d& pnt_B,
const vec2d& pnt_C,
const vec2d& pnt_D,
vec2d& int_pnt,
double &t1,
double &t2 );
42double proj_pnt_on_line_u(
const vec2d& line_A,
const vec2d& line_B,
const vec2d& pnt );
43void encode(
double x_min,
double y_min,
double x_max,
double y_max,
const vec2d& pnt,
int code[4] );
44void clip_seg_rect(
double x_min,
double y_min,
double x_max,
double y_max,
vec2d& pnt1,
vec2d& pnt2,
int& visible );
45bool PointInPolygon(
const vec2d & R,
const std::vector< vec2d > & pnts );
47double poly_area(
const std::vector< vec2d > & pnt_vec );
48vec2d poly_centroid(
const std::vector< vec2d > & pnt_vec );
50void bi_lin_interp(
const vec2d &p0,
const vec2d &p1,
const vec2d &p2,
vec2d const &p3,
double s,
double t,
vec2d &p_out );
51int inverse_bi_lin_interp(
const vec2d &p0,
const vec2d &p1,
const vec2d &p2,
vec2d const &p3,
const vec2d &p,
double &s,
double &t,
double &s2,
double &t2 );
79 vec2d(
const vec2d& a );
113 vec2d& operator=(
double a );
332 vec2d transform(
float mat[3][3] );
333 vec2d transform(
double mat[3][3] );
370 friend vec2d
operator+(
const vec2d& a,
const vec2d& b );
407 friend vec2d
operator-(
const vec2d& a,
const vec2d& b );
443 friend vec2d
operator*(
double b,
const vec2d& a );
482 friend vec2d
operator*(
const vec2d& a,
const vec2d& b );
518 vec2d& operator+=(
const vec2d& b );
519 vec2d& operator-=(
const vec2d& b );
520 vec2d& operator*=(
double b );
550 friend double dist(
const vec2d& a,
const vec2d& b );
675 friend double cross(
const vec2d& a,
const vec2d& b );
705 friend double dot(
const vec2d& a,
const vec2d& b );
739 friend double angle(
const vec2d& a,
const vec2d& b );
774 friend double cos_angle(
const vec2d& a,
const vec2d& b );
823 friend int seg_seg_intersect(
const vec2d& pnt_A,
const vec2d& pnt_B,
const vec2d& pnt_C,
const vec2d& pnt_D, vec2d& int_pnt,
double &t1,
double &t2 );
903 friend void encode(
double x_min,
double y_min,
double x_max,
double y_max,
904 const vec2d& pnt,
int code[4] );
905 friend void clip_seg_rect(
double x_min,
double y_min,
double x_max,
double y_max,
906 vec2d& pnt1, vec2d& pnt2,
int& visible );
939 friend bool PointInPolygon(
const vec2d & R,
const std::vector< vec2d > & pnts );
969 friend double det(
const vec2d & p0,
const vec2d & p1,
const vec2d & offset );
998 friend double poly_area(
const std::vector< vec2d > & pnt_vec );
1064 friend double orient2d(
const vec2d & p0,
const vec2d & p1,
const vec2d & p );
1108 friend void bi_lin_interp(
const vec2d &p0,
const vec2d &p1,
const vec2d &p2, vec2d
const &p3,
double s,
double t, vec2d &p_out );
1167 friend int inverse_bi_lin_interp(
const vec2d &p0,
const vec2d &p1,
const vec2d &p2, vec2d
const &p3,
const vec2d &p,
double &s,
double &t,
double &s2,
double &t2 );
friend void bi_lin_interp(const vec2d &p0, const vec2d &p1, const vec2d &p2, vec2d const &p3, double s, double t, vec2d &p_out)
friend double cross(const vec2d &a, const vec2d &b)
vec2d & set_xy(double xx, double yy)
friend vec2d operator*(const vec2d &a, double b)
friend double cos_angle(const vec2d &a, const vec2d &b)
friend double dot(const vec2d &a, const vec2d &b)
friend vec2d operator-(const vec2d &a, const vec2d &b)
friend double poly_area(const std::vector< vec2d > &pnt_vec)
friend vec2d poly_centroid(const std::vector< vec2d > &pnt_vec)
friend int inverse_bi_lin_interp(const vec2d &p0, const vec2d &p1, const vec2d &p2, vec2d const &p3, const vec2d &p, double &s, double &t, double &s2, double &t2)
vec2d(double xx, double yy)
friend double dist(const vec2d &a, const vec2d &b)
friend double det(const vec2d &p0, const vec2d &p1, const vec2d &offset)
friend vec2d operator+(const vec2d &a, const vec2d &b)
friend double proj_pnt_on_line_u(const vec2d &line_A, const vec2d &line_B, const vec2d &pnt)
double & operator[](int i)
friend double dist_squared(const vec2d &a, const vec2d &b)
friend vec2d operator*(const vec2d &a, const vec2d &b)
friend int seg_seg_intersect(const vec2d &pnt_A, const vec2d &pnt_B, const vec2d &pnt_C, const vec2d &pnt_D, vec2d &int_pnt, double &t1, double &t2)
friend double angle(const vec2d &a, const vec2d &b)
friend double orient2d(const vec2d &p0, const vec2d &p1, const vec2d &p)
friend vec2d operator/(const vec2d &a, double b)
friend bool PointInPolygon(const vec2d &R, const std::vector< vec2d > &pnts)
friend vec2d proj_pnt_on_line_seg(const vec2d &line_A, const vec2d &line_B, const vec2d &pnt)
vec3d operator-(const vec3d &a, const vec3d &b)
double dot(const vec3d &a, const vec3d &b)
vec3d operator+(const vec3d &a, const vec3d &b)
vec3d operator*(const vec3d &a, double b)
vec3d operator/(const vec3d &a, double b)
vec3d cross(const vec3d &a, const vec3d &b)
double angle(const vec3d &a, const vec3d &b)
double dist(const vec3d &a, const vec3d &b)
double cos_angle(const vec3d &a, const vec3d &b)
double dist_squared(const vec3d &a, const vec3d &b)