@antv/g2plot
Version:
An interactive and responsive charting library
46 lines (40 loc) • 929 B
text/typescript
import { DotPatternCfg, LinePatternCfg, SquarePatternCfg } from '../../types/pattern';
import { createDotPattern } from './dot';
import { createLinePattern } from './line';
import { createSquarePattern } from './square';
export type PatternOption =
| {
type: 'dot';
cfg?: DotPatternCfg;
}
| {
type: 'line';
cfg?: LinePatternCfg;
}
| {
type: 'square';
cfg?: SquarePatternCfg;
};
/**
* 获取内置的 CanvasPattern 方法
* @param options
* @returns
*/
export function getCanvasPattern(options: PatternOption): CanvasPattern | undefined {
const { type, cfg } = options;
let pattern;
switch (type) {
case 'dot':
pattern = createDotPattern(cfg);
break;
case 'line':
pattern = createLinePattern(cfg);
break;
case 'square':
pattern = createSquarePattern(cfg);
break;
default:
break;
}
return pattern;
}