diff --git a/lib/part.ts b/lib/part.ts index 48d0eef2eb4..908b320fe97 100644 --- a/lib/part.ts +++ b/lib/part.ts @@ -6,7 +6,7 @@ export class Part { id: string; render: boolean; points: { - [index: string]: Point; + [index: string]: Point | boolean; } paths: { [index: string]: Path; } = {}; attributes = new Attributes(); diff --git a/lib/utils.ts b/lib/utils.ts index 5c26a696aa2..aead7071dea 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -41,7 +41,7 @@ export function beamsCross(a1: Point, a2: Point, b1: Point, b2: Point): Point | // Find intersection let x = (iB - iA) / (slopeA - slopeB); - let y = slopeA * x *iA; + let y = slopeA * x + iA; return new Point(x, y); } diff --git a/tests/utils.test.js b/tests/utils.test.js index 36f480185d9..75a98c59020 100644 --- a/tests/utils.test.js +++ b/tests/utils.test.js @@ -31,28 +31,13 @@ it('should return a line intersection', () => { expect(utils.beamsCross(a,b,c,d)).to.be.false; // Debug - let e = new Point(0,0); - let f = new Point(25,25); - let g = new Point(0,60); - let h = new Point(25,35); - // Should be 30,30, but is 30,0 - console.log(utils.beamsCross(e,f,g,h)); - //$p->newPoint(2,25,25); - //$p->newPoint(3,0,60); - //$p->newPoint(4,25,35); - //$this->assertFalse($p->linesCross(1,2,3,4)); - //$this->assertFalse($p->beamsCross(1,3,2,4)); - // - //$expect = new \Freesewing\Point(); - //$expect->setX(30); - //$expect->setY(30); - //$this->assertEquals($p->beamsCross(1,2,3,4), $expect); - // - //$p->newPoint(4,10,-10); - //$expect->setX(7.5); - //$expect->setY(7.5); - //$this->assertEquals($p->linesCross(1,2,3,4), $expect); - // + let e = new Point(213,222); + let f = new Point(220,214); + let g = new Point(213,44); + let h = new Point(248,222); + result = utils.beamsCross(e,f,g,h); + expect(result.x).to.equal(241.58); + expect(result.y).to.equal(189.34); }); it('should return a line segment intersection', () => {