source: node_modules/d3-geo/src/path/area.js@ e4c61dd

Last change on this file since e4c61dd was e4c61dd, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Prototype 1.1

  • Property mode set to 100644
File size: 973 bytes
Line 
1import {Adder} from "d3-array";
2import {abs} from "../math.js";
3import noop from "../noop.js";
4
5var areaSum = new Adder(),
6 areaRingSum = new Adder(),
7 x00,
8 y00,
9 x0,
10 y0;
11
12var areaStream = {
13 point: noop,
14 lineStart: noop,
15 lineEnd: noop,
16 polygonStart: function() {
17 areaStream.lineStart = areaRingStart;
18 areaStream.lineEnd = areaRingEnd;
19 },
20 polygonEnd: function() {
21 areaStream.lineStart = areaStream.lineEnd = areaStream.point = noop;
22 areaSum.add(abs(areaRingSum));
23 areaRingSum = new Adder();
24 },
25 result: function() {
26 var area = areaSum / 2;
27 areaSum = new Adder();
28 return area;
29 }
30};
31
32function areaRingStart() {
33 areaStream.point = areaPointFirst;
34}
35
36function areaPointFirst(x, y) {
37 areaStream.point = areaPoint;
38 x00 = x0 = x, y00 = y0 = y;
39}
40
41function areaPoint(x, y) {
42 areaRingSum.add(y0 * x - x0 * y);
43 x0 = x, y0 = y;
44}
45
46function areaRingEnd() {
47 areaPoint(x00, y00);
48}
49
50export default areaStream;
Note: See TracBrowser for help on using the repository browser.