mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2025-01-20 22:39:50 -05:00
Remove isParameter from Curve.evaluate()
This commit is contained in:
parent
c123468d7a
commit
38db18c2e1
2 changed files with 16 additions and 15 deletions
|
@ -424,9 +424,8 @@ statics: {
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
|
||||||
evaluate: function(v, offset, isParameter, type) {
|
evaluate: function(v, t, type) {
|
||||||
var t = isParameter ? offset : Curve.getParameterAt(v, offset, 0),
|
var p1x = v[0], p1y = v[1],
|
||||||
p1x = v[0], p1y = v[1],
|
|
||||||
c1x = v[2], c1y = v[3],
|
c1x = v[2], c1y = v[3],
|
||||||
c2x = v[4], c2y = v[5],
|
c2x = v[4], c2y = v[5],
|
||||||
p2x = v[6], p2y = v[7],
|
p2x = v[6], p2y = v[7],
|
||||||
|
@ -625,7 +624,7 @@ statics: {
|
||||||
// Checks the y-slope between the current curve and the previous for a
|
// Checks the y-slope between the current curve and the previous for a
|
||||||
// change of orientation, when a solution is found at t == 0
|
// change of orientation, when a solution is found at t == 0
|
||||||
function changesOrientation(tangent) {
|
function changesOrientation(tangent) {
|
||||||
return Curve.evaluate(prev, 1, true, 1).y
|
return Curve.evaluate(prev, 1, 1).y
|
||||||
* tangent.y > 0;
|
* tangent.y > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -638,10 +637,10 @@ statics: {
|
||||||
for (var i = 0; i < count; i++) {
|
for (var i = 0; i < count; i++) {
|
||||||
var t = roots[i];
|
var t = roots[i];
|
||||||
if (t > -tolerance && t < 1 - tolerance) {
|
if (t > -tolerance && t < 1 - tolerance) {
|
||||||
var pt = Curve.evaluate(v, t, true, 0);
|
var pt = Curve.evaluate(v, t, 0);
|
||||||
if (x < pt.x + tolerance) {
|
if (x < pt.x + tolerance) {
|
||||||
// Pass 1 for Curve.evaluate() type to calculate tangent
|
// Pass 1 for Curve.evaluate() type to calculate tangent
|
||||||
var tan = Curve.evaluate(v, t, true, 1);
|
var tan = Curve.evaluate(v, t, 1);
|
||||||
// Handle all kind of edge cases when points are on
|
// Handle all kind of edge cases when points are on
|
||||||
// contours or rays are touching countours, to termine
|
// contours or rays are touching countours, to termine
|
||||||
// wether the crossing counts or not.
|
// wether the crossing counts or not.
|
||||||
|
@ -783,12 +782,14 @@ statics: {
|
||||||
// finds path interesections.
|
// finds path interesections.
|
||||||
function(name, index) {
|
function(name, index) {
|
||||||
this[name + 'At'] = function(offset, isParameter) {
|
this[name + 'At'] = function(offset, isParameter) {
|
||||||
return Curve.evaluate(this.getValues(), offset, isParameter, index);
|
var values = this.getValues();
|
||||||
|
return Curve.evaluate(values, isParameter
|
||||||
|
? offset : Curve.getParameterAt(values, offset, 0), index);
|
||||||
};
|
};
|
||||||
// Deprecated and undocumented, but keep around for now.
|
// Deprecated and undocumented, but keep around for now.
|
||||||
// TODO: Remove once enough time has passed (28.01.2013)
|
// TODO: Remove once enough time has passed (28.01.2013)
|
||||||
this[name] = function(parameter) {
|
this[name] = function(parameter) {
|
||||||
return Curve.evaluate(this.getValues(), parameter, true, index);
|
return Curve.evaluate(this.getValues(), parameter, index);
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
/** @lends Curve# */{
|
/** @lends Curve# */{
|
||||||
|
@ -858,7 +859,7 @@ statics: {
|
||||||
function refine(t) {
|
function refine(t) {
|
||||||
if (t >= 0 && t <= 1) {
|
if (t >= 0 && t <= 1) {
|
||||||
var dist = point.getDistance(
|
var dist = point.getDistance(
|
||||||
Curve.evaluate(values, t, true, 0), true);
|
Curve.evaluate(values, t, 0), true);
|
||||||
if (dist < minDist) {
|
if (dist < minDist) {
|
||||||
minDist = dist;
|
minDist = dist;
|
||||||
minT = t;
|
minT = t;
|
||||||
|
@ -876,7 +877,7 @@ statics: {
|
||||||
if (!refine(minT - step) && !refine(minT + step))
|
if (!refine(minT - step) && !refine(minT + step))
|
||||||
step /= 2;
|
step /= 2;
|
||||||
}
|
}
|
||||||
var pt = Curve.evaluate(values, minT, true, 0);
|
var pt = Curve.evaluate(values, minT, 0);
|
||||||
return new CurveLocation(this, minT, pt, null, null, null,
|
return new CurveLocation(this, minT, pt, null, null, null,
|
||||||
point.getDistance(pt));
|
point.getDistance(pt));
|
||||||
},
|
},
|
||||||
|
@ -1124,8 +1125,8 @@ new function() { // Scope for methods that require numerical integration
|
||||||
var t1 = (range1[0] + range1[1]) / 2,
|
var t1 = (range1[0] + range1[1]) / 2,
|
||||||
t2 = (range2[0] + range2[1]) / 2;
|
t2 = (range2[0] + range2[1]) / 2;
|
||||||
addLocation(locations,
|
addLocation(locations,
|
||||||
curve1, t1, Curve.evaluate(v1, t1, true, 0),
|
curve1, t1, Curve.evaluate(v1, t1, 0),
|
||||||
curve2, t2, Curve.evaluate(v2, t2, true, 0));
|
curve2, t2, Curve.evaluate(v2, t2, 0));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1360,14 +1361,14 @@ new function() { // Scope for methods that require numerical integration
|
||||||
for (var i = 0; i < count; i++) {
|
for (var i = 0; i < count; i++) {
|
||||||
var t = roots[i];
|
var t = roots[i];
|
||||||
if (t >= 0 && t <= 1) {
|
if (t >= 0 && t <= 1) {
|
||||||
var point = Curve.evaluate(vcr, t, true, 0);
|
var point = Curve.evaluate(vcr, t, 0);
|
||||||
// We do have a point on the infinite line. Check if it falls on
|
// We do have a point on the infinite line. Check if it falls on
|
||||||
// the line *segment*.
|
// the line *segment*.
|
||||||
if (point.x >= 0 && point.x <= rl2x)
|
if (point.x >= 0 && point.x <= rl2x)
|
||||||
addLocation(locations,
|
addLocation(locations,
|
||||||
flip ? curve2 : curve1,
|
flip ? curve2 : curve1,
|
||||||
// The actual intersection point
|
// The actual intersection point
|
||||||
t, Curve.evaluate(vc, t, true, 0),
|
t, Curve.evaluate(vc, t, 0),
|
||||||
flip ? curve1 : curve2);
|
flip ? curve1 : curve2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,7 +112,7 @@ var PathFlattener = Base.extend({
|
||||||
|
|
||||||
evaluate: function(offset, type) {
|
evaluate: function(offset, type) {
|
||||||
var param = this.getParameterAt(offset);
|
var param = this.getParameterAt(offset);
|
||||||
return Curve.evaluate(this.curves[param.index], param.value, true, type);
|
return Curve.evaluate(this.curves[param.index], param.value, type);
|
||||||
},
|
},
|
||||||
|
|
||||||
drawPart: function(ctx, from, to) {
|
drawPart: function(ctx, from, to) {
|
||||||
|
|
Loading…
Reference in a new issue