rt-graphic-component/components/Signal/common/SignalCode.js

32 lines
1.1 KiB
JavaScript
Raw Normal View History

2024-01-02 14:36:10 +08:00
import { Container, Graphics, Point } from 'pixi.js';
import { VectorText } from 'jl-graphic';
import { SignalColorEnum, signalConsts } from '../bjRtss/Signal.js';
class SignalCode extends Container {
blockedMode = new Graphics();
codeGraph = new VectorText('');
name = 'signalCode';
constructor() {
super();
this.addChild(this.blockedMode);
this.addChild(this.codeGraph);
}
paint(datas) {
this.codeGraph.text = datas?.code || '信号机编号';
this.codeGraph.style.fill = SignalColorEnum.defaultCodeColor;
this.codeGraph.setVectorFontSize(signalConsts.codeFontSize);
this.codeGraph.anchor.set(0.5);
this.codeGraph.position.set(0, 0);
this.blockedMode.clear();
}
createBlockedMode() {
const codeRect = this.codeGraph.getBounds();
const rectP = this.screenToLocalPoint(new Point(codeRect.x, codeRect.y));
this.blockedMode.clear();
this.blockedMode.lineStyle(signalConsts.blockedLineWidth, SignalColorEnum.blockedColor);
this.blockedMode.drawRect(rectP.x, rectP.y, codeRect.width, codeRect.height);
}
}
export { SignalCode };