import { defaultValue } from '../../util'
import Symbol from './Symbol'
import SimpleLineSymbol from './SimpleLineSymbol'
import { SymbolType } from '../enum'
/**
* 填充符号基类
* @class FillSymbol
* @moduleEX SymbolModule
* @extends Symbol
* @param {Object} options 构造参数
* @param {SimpleLineSymbol} [options.outline = new SimpleLineSymbol()] 外边线样式
*/
class FillSymbol extends Symbol {
constructor(options) {
super(options)
options = defaultValue(options, {})
/**
* 符号类型
* @member {String} FillSymbol.prototype.type
*/
this.type = SymbolType.simpleFill
/**
* 外边线样式类型
* @member {SimpleLineSymbol} FillSymbol.prototype.outline
*/
this.outline = this._decorate(
'outline',
options.outline,
SimpleLineSymbol,
SimpleLineSymbol.fromJSON
)
}
/**
* @function FillSymbol.prototype.toJSON
* @description 将JS对象转换为JSON格式
* @returns {Object} 符号的实例化JSON
* @example
* //将JS对象转换为JSON格式
* let symbol = fillSymbol.toJSON();
*/
toJSON() {
const json = super.toJSON()
json.type = this.type
json.outline = this.outline.toJSON()
return json
}
}
export default FillSymbol