| import constant from "./constant.js"; |
| import {withPath} from "./path.js"; |
| import asterisk from "./symbol/asterisk.js"; |
| import circle from "./symbol/circle.js"; |
| import cross from "./symbol/cross.js"; |
| import diamond from "./symbol/diamond.js"; |
| import diamond2 from "./symbol/diamond2.js"; |
| import plus from "./symbol/plus.js"; |
| import square from "./symbol/square.js"; |
| import square2 from "./symbol/square2.js"; |
| import star from "./symbol/star.js"; |
| import triangle from "./symbol/triangle.js"; |
| import triangle2 from "./symbol/triangle2.js"; |
| import wye from "./symbol/wye.js"; |
| import times from "./symbol/times.js"; |
|
|
| |
| export const symbolsFill = [ |
| circle, |
| cross, |
| diamond, |
| square, |
| star, |
| triangle, |
| wye |
| ]; |
|
|
| |
| export const symbolsStroke = [ |
| circle, |
| plus, |
| times, |
| triangle2, |
| asterisk, |
| square2, |
| diamond2 |
| ]; |
|
|
| export default function Symbol(type, size) { |
| let context = null, |
| path = withPath(symbol); |
|
|
| type = typeof type === "function" ? type : constant(type || circle); |
| size = typeof size === "function" ? size : constant(size === undefined ? 64 : +size); |
|
|
| function symbol() { |
| let buffer; |
| if (!context) context = buffer = path(); |
| type.apply(this, arguments).draw(context, +size.apply(this, arguments)); |
| if (buffer) return context = null, buffer + "" || null; |
| } |
|
|
| symbol.type = function(_) { |
| return arguments.length ? (type = typeof _ === "function" ? _ : constant(_), symbol) : type; |
| }; |
|
|
| symbol.size = function(_) { |
| return arguments.length ? (size = typeof _ === "function" ? _ : constant(+_), symbol) : size; |
| }; |
|
|
| symbol.context = function(_) { |
| return arguments.length ? (context = _ == null ? null : _, symbol) : context; |
| }; |
|
|
| return symbol; |
| } |
|
|