UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.32 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{closestPointsOnBezierCurve as t,splitBezierCurve as i}from"./bezierCurveUtils.js";import{closestPointOnCircle as r}from"./circleUtils.js";import{deriveCircleFromCircularArc as n,splitCircularArc as o}from"./circularArcUtils.js";import{isCoordinate as s,cloneCurve as c,isBezierCurve as e,isCircularArc as u,isEllipticArc4 as f}from"./curveUtils.js";import{deriveCircleFromEllipticArc4 as l,splitEllipticArc4 as m}from"./ellipticArc4Utils.js";import{deriveEllipse as p,closestPointOnEllipse as a,splitEllipticArc7 as d}from"./ellipticArc7Utils.js";const j=1e-6;function U(r,n,o,s){const c=t(r,n,o).filter(({distance:t})=>t<=s),e=[];let u=0,f=n;for(const{t}of c){const n=(t-u)/(1-u);if(n<j||1-n<j)continue;const[o,s]=i(r,f,t);e.push(o),f=s,u=t}return e.push(f),e}function v(t,i,s,e){const u=n(t,i);if(u.isInvalid)return[c(i)];const{t:f,distance:l}=r(u,s);return l<=e?o(u,i,f):[c(i)]}function A(t,i,n,o){const s=l(t,i);if(s.isInvalid)return[c(i)];const{t:e,distance:u}=r(s,n);return u<=o?m(s,i,e):[c(i)]}function I(t,i,r,n){const o=p(t,i);if(o.isInvalid)return[c(i)];const{t:s,distance:e}=a(o,r);return e<=n?d(o,i,s):[c(i)]}function h(t,i,r,n){return s(i)?[c(i)]:e(i)?U(t,i,r,n):u(i)?v(t,i,r,n):f(i)?A(t,i,r,n):I(t,i,r,n)}export{h as splitCurveAtPoint};