UNPKG

@antv/x6

Version:

JavaScript diagramming library that uses SVG and HTML for rendering.

49 lines (42 loc) 962 B
import { Path } from '../../geometry' import { Attr } from '../attr' import { normalize } from './util' import { Marker } from './index' export interface CircleMarkerOptions extends Attr.SimpleAttrs { r?: number } export interface CirclePlusMarkerOptions extends CircleMarkerOptions {} export const circle: Marker.Factory<CircleMarkerOptions> = ({ r, ...attrs }) => { const radius = r || 5 return { cx: radius, ...attrs, tagName: 'circle', r: radius, } } export const circlePlus: Marker.Factory<CircleMarkerOptions> = ({ r, ...attrs }) => { const radius = r || 5 const path = new Path() path.moveTo(radius, 0).lineTo(radius, radius * 2) path.moveTo(0, radius).lineTo(radius * 2, radius) return { children: [ { ...circle({ r: radius }), fill: 'none', }, { ...attrs, tagName: 'path', d: normalize(path.serialize(), -radius), }, ] as any, } }