import {
    Zondy
} from '../../common/Base';
import {
    AnalysisBase
} from "./AnalysisBase";

/**
 * 叠加分析服务基类
 * @class module:分析服务.OverlayBase
 * @classdesc 叠加分析服务基类
 * @description Zondy.Service.OverlayBase 
 * @extends Zondy.Service.AnalysisBase
 * @param {Object} option 属性键值对
 * @param {String} [option.srcInfo1 = null] 被叠加简单要素类的信息
 * @param {String} [option.desInfo = null] 结果简单要素类信息
 * @param {Number} [option.attOptType = 1] 是否进行属性操作,该注释缺失，请联系igserver部门
 * @param {Number} [option.infoOptType = 1] 共有部分的图形参数操作,该注释缺失，请联系igserver部门
 * @param {Number} [option.overType = 3] 叠加类型,该注释缺失，请联系igserver部门
 * @param {Boolean} [option.isCleanNode = false] 是否结点平差
 * @param {Boolean} [option.isLabelPnt = false] 是否裁剪label点
 * @param {Boolean} [option.isValidReg = false] 是否检查区的合法性
 * @param {Boolean} [option.isReCalculate = false] 是否重算面积
 * @param {Number} [option.radius = 0.001] 容差半径
 */
class OverlayBase extends AnalysisBase {
    constructor(option) {
        var options = option || {};
        super(options);

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.srcInfo1
         * @type {String}
         * @description 被叠加简单要素类的信息
         * @default null
         */
        this.srcInfo1 = options.srcInfo1 !== undefined ? options.srcInfo1 : null;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.desInfo
         * @type {String}
         * @description 结果简单要素类信息
         * @default null
         */
        this.desInfo = options.desInfo !== undefined ? options.desInfo : null;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.attOptType
         * @type {Number}
         * @description 是否进行属性操作,该注释缺失，请联系igserver部门
         * @default 1
         */
        this.attOptType = options.attOptType !== undefined ? options.attOptType : 1;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.infoOptType
         * @type {Number}
         * @description 共有部分的图形参数操作,该注释缺失，请联系igserver部门
         * @default 1
         */
        this.infoOptType = options.infoOptType !== undefined ? options.infoOptType : 1;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.overType
         * @type {Number}
         * @description 叠加类型,该注释缺失，请联系igserver部门
         * @default 1
         */
        this.overType = options.overType !== undefined ? options.overType : 3;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.isCleanNode
         * @type {Boolean}
         * @description 是否结点平差
         * @default false
         */
        this.isCleanNode = options.isCleanNode !== undefined ? options.isCleanNode : false;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.isLabelPnt
         * @type {Boolean}
         * @description 是否裁剪label点
         * @default false
         */
        this.isLabelPnt = options.isLabelPnt !== undefined ? options.isLabelPnt : false;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.isValidReg
         * @type {Boolean}
         * @description 是否检查区的合法性
         * @default false
         */
        this.isValidReg = options.isValidReg !== undefined ? options.isValidReg : false;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.isReCalculate
         * @type {Boolean}
         * @description 是否重算面积
         * @default true
         */
        this.isReCalculate = options.isReCalculate !== undefined ? options.isReCalculate : true;

        /**
         * @private
         * @member Zondy.Service.OverlayBase.prototype.radius
         * @type {Number}
         * @description 容差半径
         * @default 0.001
         */
        this.radius = options.radius !== undefined ? options.radius : 0.001;
    }
}
export {
    OverlayBase
};
Zondy.Service.OverlayBase = OverlayBase;