8 #define DEBUG_STREAM cerr << __func__ << ":" //FIXME    41         return p1.
x*p2.
x+p1.
y*p2.
y;
    45 template <
class T, 
class A>
    52                 T s=sin(alpha), 
c=cos(alpha);
    54                 a=atan2(sin(a),cos(a));
    64 template <
class T, 
class A>
    66   if (theta >= -M_PI && theta < M_PI)
    69   int multiplier = (int)(theta / (2*M_PI));
    70   theta = theta - multiplier*2*M_PI;
    78 template <
class T, 
class A>
    86 template <
class T, 
class A>
    91 template <
class T, 
class A>
    96 template <
class T, 
class A>
   101 template <
class T, 
class A>
   106 template <
class T, 
class A>
   110         double s=sin(p2.theta), 
c=cos(p2.theta);
   115 template <
class T, 
class A>
   122 template <
class T, 
class A>
   131                 return a.
x<b.
x || (a.
x==b.
x && a.
y<b.
y);
   141                 return (atan2(delta1.
y,delta1.
x)<atan2(delta2.
y,delta2.
x));
   148         p.
x=p.
x>p2.
x?p.
x:p2.
x;
   149         p.
y=p.
y>p2.
y?p.
y:p2.
y;
   156         p.
x=p.
x<p2.
x?p.
x:p2.
x;
   157         p.
y=p.
y<p2.
y?p.
y:p2.
y;
   161 template <
class T, 
class F>
   163         F gain=(t3-t1)/(t2-t1);
   168 template <
class T, 
class A, 
class F>
   171         F gain=(t3-t1)/(t2-t1);
   173         p.
x=p1.
x+(p2.
x-p1.
x)*gain;
   174         p.
y=p1.
y+(p2.
y-p1.
y)*gain;
   184   return hypot(p1.
x-p2.
x, p1.
y-p2.
y);
   186 template <
class T, 
class A>
   188   return hypot(p1.
x-p2.
x, p1.
y-p2.
y);
   190 template <
class T, 
class A>
   192   return hypot(p1.
x-p2.
x, p1.
y-p2.
y);
   194 template <
class T, 
class A>
   196   return hypot(p1.
x-p2.
x, p1.
y-p2.
y);
 const char *const  *argv double delta
void normalize(const Iterator &begin, const Iterator &end)
point< T > min(const point< T > &p1, const point< T > &p2)
orientedpoint< T, A > rotate(A alpha)
point< T > operator-(const point< T > &p1, const point< T > &p2)
double euclidianDist(const point< T > &p1, const point< T > &p2)
orientedpoint< T, A > absoluteSum(const orientedpoint< T, A > &p1, const orientedpoint< T, A > &p2)
point< T > max(const point< T > &p1, const point< T > &p2)
orientedpoint< T, A > absoluteDifference(const orientedpoint< T, A > &p1, const orientedpoint< T, A > &p2)
point< T > operator*(const point< T > &p, const T &v)
orientedpoint(T x, T y, A _theta)
point< T > operator+(const point< T > &p1, const point< T > &p2)
point< T > interpolate(const point< T > &p1, const F &t1, const point< T > &p2, const F &t2, const F &t3)
orientedpoint< double, double > OrientedPoint