import Sign, {StyleProps as SignProps} from '../label/sign' import {AttachCAD as CAD} from '../index' import {Point as geoPoint} from '../geometry' import {type} from '../util' export interface sign{ setSign: (point: geoPoint, dire?: number) => void, hideSign: () => Promise, showSign: () => Promise, setDefaultSignStyle: (args: SignProps) => void } // 附加显示隐藏比例尺的api,添加当前位置的label export const attachSign = (cad: CAD) => { let signStyle = { border: 2, r: 5 } const addProcessing = cad.addProcessing cad.addProcessing = (...args) => { let processing = addProcessing.call(cad, ...args) Sign.Setting.set(processing.render, signStyle) let sign = new Sign({ pos: {x: 0, y: 0}, dire: 0, renderer: processing.render }) sign.zIndex = 1 processing.render.push(sign) processing.sign = sign return processing } // 添加设置当前点位方向 cad.setSign = (point, dire) => { let sign = cad.processing.sign if (type.isNumber(dire)) sign.dire = dire sign.pos = point } cad.hideSign = () => { let sign = cad.processing.sign sign.show = false return new Promise(r => sign.nextTick(r)) } cad.showSign = () => { let sign = cad.processing.sign sign.show = true return new Promise(r => sign.nextTick(r)) } cad.setDefaultSignStyle = args => { let sign = cad.processing.sign if (args.border) { signStyle.border = args.border sign.border = args.border } if (args.r) { signStyle.r = args.r sign.r = args.r } if (args.color) { sign.color = args.color } } }