OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2012 Google Inc. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license that can be | |
5 * found in the LICENSE file. | |
6 */ | |
7 | |
8 #if !defined QUADRATIC_UTILITIES_H | |
9 #define QUADRATIC_UTILITIES_H | |
10 | |
11 #include "DataTypes.h" | |
12 | |
13 int add_valid_ts(double s[], int realRoots, double* t); | |
14 void chop_at(const Quadratic& src, QuadraticPair& dst, double t); | |
15 double dx_at_t(const Quadratic& , double t); | |
16 double dy_at_t(const Quadratic& , double t); | |
17 //void dxdy_at_t(const Quadratic& , double t, _Point& xy); | |
18 _Vector dxdy_at_t(const Quadratic& , double t); | |
19 | |
20 double nearestT(const Quadratic& , const _Point& ); | |
21 bool point_in_hull(const Quadratic& , const _Point& ); | |
22 | |
23 /* Parameterization form, given A*t*t + 2*B*t*(1-t) + C*(1-t)*(1-t) | |
24 * | |
25 * a = A - 2*B + C | |
26 * b = 2*B - 2*C | |
27 * c = C | |
28 */ | |
29 inline void set_abc(const double* quad, double& a, double& b, double& c) { | |
30 a = quad[0]; // a = A | |
31 b = 2 * quad[2]; // b = 2*B | |
32 c = quad[4]; // c = C | |
33 b -= c; // b = 2*B - C | |
34 a -= b; // a = A - 2*B + C | |
35 b -= c; // b = 2*B - 2*C | |
36 } | |
37 | |
38 int quadraticRootsReal(double A, double B, double C, double t[2]); | |
39 int quadraticRootsValidT(const double A, const double B, const double C, double
s[2]); | |
40 void sub_divide(const Quadratic& src, double t1, double t2, Quadratic& dst); | |
41 _Point sub_divide(const Quadratic& src, const _Point& a, const _Point& c, double
t1, double t2); | |
42 void toCubic(const Quadratic& , Cubic& ); | |
43 _Point top(const Quadratic& , double startT, double endT); | |
44 void xy_at_t(const Quadratic& , double t, double& x, double& y); | |
45 _Point xy_at_t(const Quadratic& , double t); | |
46 | |
47 #endif | |
OLD | NEW |