UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.09 kB
import{PathGeometryCursor as t}from"../CIMCursor.js";import{CurveHelper as i}from"../CurveHelper.js";class s{static local(){return null===s.instance&&(s.instance=new s),s.instance}execute(t,i,s,n,h){return new e(t,i,s)}}s.instance=null;class e extends t{constructor(t,s,e){super(t,!1,!0),this._curveHelper=new i,this._length=(void 0!==s.length?s.length:20)*e,this._angle=void 0!==s.angle?s.angle:225,this._position=void 0!==s.position?s.position:50,this._length<0&&(this._length=-this._length),this._position<20&&(this._position=20),this._position>80&&(this._position=80),this._mirror=!1}processPath(t){if(this._curveHelper.isEmpty(t,!1))return null;const i=t[0],s=t[t.length-1],e=[s[0]-i[0],s[1]-i[1]];this._curveHelper.normalize(e);const n=[i[0]+(s[0]-i[0])*this._position/100,i[1]+(s[1]-i[1])*this._position/100],h=Math.cos((90-this._angle)/180*Math.PI);let r=Math.sin((90-this._angle)/180*Math.PI);this._mirror&&(r=-r),this._mirror=!this._mirror;return{paths:[[i,[n[0]-this._length/2*h,n[1]-this._length/2*r],[n[0]+this._length/2*h,n[1]+this._length/2*r],s]]}}}export{s as EffectJog};