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

Function markMultiItemPath

docs/app/js/sanddance-app.js:122475–122511  ·  view source on GitHub ↗
(type4, shape2, tip)

Source from the content-addressed store, hash-verified

122473 return null;
122474}
122475function markMultiItemPath(type4, shape2, tip) {
122476 function attr2(emit2, item) {
122477 var items = item.mark.items;
122478 if (items.length) emit2("d", shape2(null, items));
122479 }
122480 function bound2(bounds6, mark) {
122481 var items = mark.items;
122482 if (items.length === 0) return bounds6;
122483 else {
122484 shape2(boundContext(bounds6), items);
122485 return boundStroke(bounds6, items[0]);
122486 }
122487 }
122488 function draw3(context36, items) {
122489 context36.beginPath();
122490 shape2(context36, items);
122491 }
122492 const hit3 = hitPath(draw3);
122493 function pick1(context37, scene, x30, y29, gx, gy) {
122494 var items = scene.items, b13 = scene.bounds;
122495 if (!items || !items.length || b13 && !b13.contains(gx, gy)) return null;
122496 x30 *= context37.pixelRatio;
122497 y29 *= context37.pixelRatio;
122498 return hit3(context37, items, x30, y29) ? items[0] : null;
122499 }
122500 return {
122501 type: type4,
122502 tag: "path",
122503 nested: true,
122504 attr: attr2,
122505 bound: bound2,
122506 draw: drawOne(draw3),
122507 pick: pick1,
122508 isect: intersectPoint,
122509 tip: tip
122510 };
122511}
122512var area = markMultiItemPath("area", area$1, pickArea);
122513function clip(context38, scene) {
122514 var clip2 = scene.clip;

Callers 1

sanddance-app.jsFile · 0.70

Calls 2

hitPathFunction · 0.70
drawOneFunction · 0.70

Tested by

no test coverage detected