import { defaultValue } from '../../../util'
import { Symbol } from '../../../base/symbol'
/**
* 三维专题图-分段信息
* @class ClassBreakInfo
* @moduleEX RendererModule
* @classdesc 三维专题图-分段信息
* @param {Object} options 初始化参数
* @param {Number} [options.minValue] 设置分段间隔的最小值
* @param {Number} [options.maxValue] 设置分段间隔的最大值
* @param {Symbol} [options.symbol] 符号,用来渲染分段间隔最小-最大值之间的要素
* @param {String} [options.label] 标签信息
* @param {Boolean} [options.visible = true] 是否可视化分段信息
*/
class ClassBreakInfo {
constructor(options) {
options = defaultValue(options, {})
/**
* 设置分段间隔的最小值
* @member {Number} ClassBreakInfo.prototype.minValue
*/
this.minValue = options.minValue
/**
* 设置分段间隔的最大值
* @member {Number} ClassBreakInfo.prototype.maxValue
*/
this.maxValue = options.maxValue
/**
*符号,用来渲染分段间隔最小-最大值之间的要素
* @member {Symbol} ClassBreakInfo.prototype.symbol
*/
this.symbol = Symbol.fromJSON(options.symbol)
/**
* 标签信息
* @member {String} ClassBreakInfo.prototype.label
*/
this.label = defaultValue(options.label, null)
/**
* 标签信息
* @member {String} ClassBreakInfo.prototype.description
*/
this.description = defaultValue(options.description, null)
/**
* 是否可视化分段信息
* @member {Boolean} ClassBreakInfo.prototype.visible
*/
this.visible = defaultValue(options.visible, true)
}
/**
* @description 将JSON格式的分段信息转换为JS对象
* @param {Object} json 分段信息的实例化JSON
*/
static fromJSON(json) {
json = defaultValue(json, {})
return new ClassBreakInfo(json)
}
/**
* 将JS对象转换为JSON格式
* @returns {Object} 分段信息的实例化JSON
*/
toJSON() {
return {
minValue: this.minValue,
maxValue: this.maxValue,
symbol: this.symbol.toJSON(),
label: this.label,
description: this.description,
visible: this.visible
}
}
/**
* 克隆ClassBreakInfo对象
* @return {ClassBreakInfo} 克隆后的ClassBreakInfo对象
*/
clone() {
return new ClassBreakInfo(this.toJSON())
}
}
export default ClassBreakInfo