You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
import { HachureFiller } from './hachure-filler';
|
|
import { ZigZagFiller } from './zigzag-filler';
|
|
import { HatchFiller } from './hatch-filler';
|
|
import { DotFiller } from './dot-filler';
|
|
import { DashedFiller } from './dashed-filler';
|
|
import { ZigZagLineFiller } from './zigzag-line-filler';
|
|
const fillers = {};
|
|
export function getFiller(o, helper) {
|
|
let fillerName = o.fillStyle || 'hachure';
|
|
if (!fillers[fillerName]) {
|
|
switch (fillerName) {
|
|
case 'zigzag':
|
|
if (!fillers[fillerName]) {
|
|
fillers[fillerName] = new ZigZagFiller(helper);
|
|
}
|
|
break;
|
|
case 'cross-hatch':
|
|
if (!fillers[fillerName]) {
|
|
fillers[fillerName] = new HatchFiller(helper);
|
|
}
|
|
break;
|
|
case 'dots':
|
|
if (!fillers[fillerName]) {
|
|
fillers[fillerName] = new DotFiller(helper);
|
|
}
|
|
break;
|
|
case 'dashed':
|
|
if (!fillers[fillerName]) {
|
|
fillers[fillerName] = new DashedFiller(helper);
|
|
}
|
|
break;
|
|
case 'zigzag-line':
|
|
if (!fillers[fillerName]) {
|
|
fillers[fillerName] = new ZigZagLineFiller(helper);
|
|
}
|
|
break;
|
|
case 'hachure':
|
|
default:
|
|
fillerName = 'hachure';
|
|
if (!fillers[fillerName]) {
|
|
fillers[fillerName] = new HachureFiller(helper);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
return fillers[fillerName];
|
|
}
|