123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 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<void>,
- showSign: () => Promise<void>,
- 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
- }
- }
- }
|