Add tolerance argument to Path#join(path, tolerance)

This commit is contained in:
Jürg Lehni 2016-06-11 12:41:23 +02:00
parent 68be3f102e
commit de8b626033
4 changed files with 61 additions and 42 deletions

View file

@ -57,57 +57,70 @@ test('curve.getTimeAt() with straight curve', function() {
equals(t, 0.3869631475722452);
});
test('path.join(path)', function() {
var path = new Path();
path.add(0, 0);
path.add(10, 0);
test('path1.join(path2)', function() {
var path1 = new Path();
path1.add(0, 0);
path1.add(10, 0);
var path2 = new Path();
path2.add(10, 0);
path2.add(20, 10);
path.join(path2);
equals(path.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 20, y: 10 } }');
equals(function() {
return paper.project.activeLayer.children.length;
}, 1);
path1.join(path2);
equals(path1.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 20, y: 10 } }');
equals(function() { return paper.project.activeLayer.children.length; }, 1);
var path = new Path();
path.add(0, 0);
path.add(10, 0);
var path1 = new Path();
path1.add(0, 0);
path1.add(10, 0);
var path2 = new Path();
path2.add(20, 10);
path2.add(10, 0);
path.join(path2);
equals(path.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 20, y: 10 } }');
path1.join(path2);
equals(path1.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 20, y: 10 } }');
var path = new Path();
path.add(0, 0);
path.add(10, 0);
var path1 = new Path();
path1.add(0, 0);
path1.add(10, 0);
var path2 = new Path();
path2.add(30, 10);
path2.add(40, 0);
path.join(path2);
equals(path.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 30, y: 10 } },{ point: { x: 40, y: 0 } }');
path1.join(path2);
equals(path1.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 30, y: 10 } },{ point: { x: 40, y: 0 } }');
var path = new Path();
path.add(0, 0);
path.add(10, 0);
path.add(20, 10);
var path1 = new Path();
path1.add(0, 0);
path1.add(10, 0);
path1.add(20, 10);
var path2 = new Path();
path2.add(0, 0);
path2.add(10, 5);
path2.add(20, 10);
path.join(path2);
path1.join(path2);
equals(path1.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 20, y: 10 } },{ point: { x: 10, y: 5 } }');
equals(function() { return path1.closed; }, true);
});
test('path1.join(path2, tolerance)', function() {
var path1 = new Path();
path1.add(0, 0);
path1.add(10, 0);
var path2 = new Path();
path2.add(path1.lastSegment.point.add(1e-14));
path2.add(20, 10);
equals(path.segments.toString(), '{ point: { x: 0, y: 0 } },{ point: { x: 10, y: 0 } },{ point: { x: 20, y: 10 } },{ point: { x: 10, y: 5 } }');
equals(function() {
return path.closed;
}, true);
return path1.clone().join(path2.clone(), 0).segments.length;
}, 4);
equals(function() {
return path1.clone().join(path2.clone(), 1e-12).segments.length;
}, 3);
});
test('path.remove()', function() {