MCPcopy Create free account
hub / github.com/microsoft/SandDance / circleStream

Function circleStream

docs/app/js/sanddance-app.js:132403–132422  ·  view source on GitHub ↗
(stream, radius, delta, direction, t0, t1)

Source from the content-addressed store, hash-verified

132401var _mathJs = require("./math.js");
132402var _rotationJs = require("./rotation.js");
132403function 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].
132424function circleRadius(cosRadius, point) {
132425 point = (0, _cartesianJs.cartesian)(point), point[0] -= cosRadius;

Callers 1

circleFunction · 0.70

Calls 1

circleRadiusFunction · 0.70

Tested by

no test coverage detected