(stream, radius, delta, direction, t0, t1)
| 132401 | var _mathJs = require("./math.js"); |
| 132402 | var _rotationJs = require("./rotation.js"); |
| 132403 | function circleStream(stream, radius, delta, direction, t0, t1) { |
| 132404 | if (!delta) return; |
| 132405 | var cosRadius = (0, _mathJs.cos)(radius), sinRadius = (0, _mathJs.sin)(radius), step = direction * delta; |
| 132406 | if (t0 == null) { |
| 132407 | t0 = radius + direction * (0, _mathJs.tau); |
| 132408 | t1 = radius - step / 2; |
| 132409 | } else { |
| 132410 | t0 = circleRadius(cosRadius, t0); |
| 132411 | t1 = circleRadius(cosRadius, t1); |
| 132412 | if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * (0, _mathJs.tau); |
| 132413 | } |
| 132414 | for(var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step){ |
| 132415 | point = (0, _cartesianJs.spherical)([ |
| 132416 | cosRadius, |
| 132417 | -sinRadius * (0, _mathJs.cos)(t), |
| 132418 | -sinRadius * (0, _mathJs.sin)(t) |
| 132419 | ]); |
| 132420 | stream.point(point[0], point[1]); |
| 132421 | } |
| 132422 | } |
| 132423 | // Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0]. |
| 132424 | function circleRadius(cosRadius, point) { |
| 132425 | point = (0, _cartesianJs.cartesian)(point), point[0] -= cosRadius; |
no test coverage detected