UNPKG

@turbox3d/graphic-component-pixi

Version:

Graphic component library based on pixi

37 lines (33 loc) 913 B
import { Vec2 } from '@turbox3d/shared'; import { Mesh2D } from '@turbox3d/renderer-pixi'; import * as PIXI from 'pixi.js'; import DrawUtils from '../draw-utils'; interface ILine2dProps { lineWidth?: number; lineColor?: number; alignment?: number; start: Vec2; end: Vec2; rotation?: number; scale?: Vec2; zIndex?: number; } export default class Line2d extends Mesh2D<ILine2dProps> { protected view = new PIXI.Graphics(); draw() { const { lineWidth = 2, lineColor = 0xffffff, start, end, alignment = 0.5, zIndex = 0 } = this.props; this.view.clear(); this.view.zIndex = zIndex; DrawUtils.drawLine(this.view, { x0: start.x, y0: start.y, x1: end.x, y1: end.y, lineWidth, lineColor, alignment, }); this.view.rotation = this.props.rotation ?? 0; this.view.scale.set(this.props.scale?.x ?? 1, this.props.scale?.y ?? 1); } }