1.1 --- a/lemon/bits/bezier.h Sun Jul 13 16:46:56 2008 +0100
1.2 +++ b/lemon/bits/bezier.h Sun Jul 13 19:51:02 2008 +0100
1.3 @@ -1,6 +1,6 @@
1.4 -/* -*- C++ -*-
1.5 +/* -*- mode: C++; indent-tabs-mode: nil; -*-
1.6 *
1.7 - * This file is a part of LEMON, a generic C++ optimization library
1.8 + * This file is a part of LEMON, a generic C++ optimization library.
1.9 *
1.10 * Copyright (C) 2003-2008
1.11 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
1.12 @@ -44,7 +44,7 @@
1.13
1.14 Bezier1() {}
1.15 Bezier1(Point _p1, Point _p2) :p1(_p1), p2(_p2) {}
1.16 -
1.17 +
1.18 Point operator()(double t) const
1.19 {
1.20 // return conv(conv(p1,p2,t),conv(p2,p3,t),t);
1.21 @@ -54,7 +54,7 @@
1.22 {
1.23 return Bezier1(p1,conv(p1,p2,t));
1.24 }
1.25 -
1.26 +
1.27 Bezier1 after(double t) const
1.28 {
1.29 return Bezier1(conv(p1,p2,t),p2);
1.30 @@ -87,7 +87,7 @@
1.31 Point r(conv(p2,p3,t));
1.32 return Bezier2(p1,q,conv(q,r,t));
1.33 }
1.34 -
1.35 +
1.36 Bezier2 after(double t) const
1.37 {
1.38 Point q(conv(p1,p2,t));
1.39 @@ -110,16 +110,16 @@
1.40 Bezier3() {}
1.41 Bezier3(Point _p1, Point _p2, Point _p3, Point _p4)
1.42 : p1(_p1), p2(_p2), p3(_p3), p4(_p4) {}
1.43 - Bezier3(const Bezier1 &b) : p1(b.p1), p2(conv(b.p1,b.p2,1.0/3.0)),
1.44 - p3(conv(b.p1,b.p2,2.0/3.0)), p4(b.p2) {}
1.45 + Bezier3(const Bezier1 &b) : p1(b.p1), p2(conv(b.p1,b.p2,1.0/3.0)),
1.46 + p3(conv(b.p1,b.p2,2.0/3.0)), p4(b.p2) {}
1.47 Bezier3(const Bezier2 &b) : p1(b.p1), p2(conv(b.p1,b.p2,2.0/3.0)),
1.48 - p3(conv(b.p2,b.p3,1.0/3.0)), p4(b.p3) {}
1.49 -
1.50 - Point operator()(double t) const
1.51 + p3(conv(b.p2,b.p3,1.0/3.0)), p4(b.p3) {}
1.52 +
1.53 + Point operator()(double t) const
1.54 {
1.55 // return Bezier2(conv(p1,p2,t),conv(p2,p3,t),conv(p3,p4,t))(t);
1.56 return ((1-t)*(1-t)*(1-t))*p1+(3*t*(1-t)*(1-t))*p2+
1.57 - (3*t*t*(1-t))*p3+(t*t*t)*p4;
1.58 + (3*t*t*(1-t))*p3+(t*t*t)*p4;
1.59 }
1.60 Bezier3 before(double t) const
1.61 {
1.62 @@ -131,7 +131,7 @@
1.63 Point c(conv(a,b,t));
1.64 return Bezier3(p1,p,a,c);
1.65 }
1.66 -
1.67 +
1.68 Bezier3 after(double t) const
1.69 {
1.70 Point p(conv(p1,p2,t));
1.71 @@ -146,13 +146,13 @@
1.72 Bezier3 operator()(double a,double b) const { return before(b).after(a/b); }
1.73 Bezier2 grad() const { return Bezier2(3.0*(p2-p1),3.0*(p3-p2),3.0*(p4-p3)); }
1.74 Bezier2 norm() const { return Bezier2(3.0*rot90(p2-p1),
1.75 - 3.0*rot90(p3-p2),
1.76 - 3.0*rot90(p4-p3)); }
1.77 + 3.0*rot90(p3-p2),
1.78 + 3.0*rot90(p4-p3)); }
1.79 Point grad(double t) const { return grad()(t); }
1.80 Point norm(double t) const { return rot90(grad(t)); }
1.81
1.82 template<class R,class F,class S,class D>
1.83 - R recSplit(F &_f,const S &_s,D _d) const
1.84 + R recSplit(F &_f,const S &_s,D _d) const
1.85 {
1.86 const Point a=(p1+p2)/2;
1.87 const Point b=(p2+p3)/2;
1.88 @@ -164,7 +164,7 @@
1.89 R f2=_f(Bezier3(e,d,c,p4),_d);
1.90 return _s(f1,f2);
1.91 }
1.92 -
1.93 +
1.94 };
1.95
1.96