UNPKG

lost-sia

Version:

Single Image Annotation Tool

69 lines (63 loc) 1.58 kB
import React from "react"; import Polygon from "./Polygon"; import Edge from "./Edge"; import * as modes from "../types/modes"; class Line extends Polygon { /************* * RENDERING * **************/ renderEdges() { if (!this.props.isSelected) return null; switch (this.state.anno.mode) { case modes.VIEW: case modes.ADD: return this.state.anno.data.map((e, idx) => { return ( <Edge anno={this.state.anno.data} idx={idx} key={idx} style={this.props.style} className={this.props.className} isSelected={this.props.isSelected} onMouseDown={(e, idx) => { this.onEdgeMouseDown(e, idx); }} /> ); }); default: return null; } } renderPolyline() { return ( <polyline points={this.toPolygonStr(this.state.anno.data)} fill="none" stroke="purple" style={{ ...this.props.style, fill: "none" }} className={this.props.className} /> ); } render() { if (this.state.anno) { return ( <g onMouseMove={(e) => this.onMouseMove(e)} onMouseUp={(e) => this.onMouseUp(e)} onMouseDown={(e) => this.onMouseDown(e)} > {this.renderPolyline()} {this.renderEdges()} {this.renderNodes()} {this.renderInfSelectionArea()} </g> ); } else { return <g></g>; } } } export default Line;