Source: geometry/operations/isContained.js

let ol = require('openlayers');
let jsts = require('jsts/dist/jsts');
let parser = new jsts.io.OL3Parser(undefined, ol);

let AbstractOperation = require('../operations/abstract');
let IsContainedResult = require('../operations/types/isContainedResult');


/**
 * Класс IsContained
 * @extends AbstractOperation
 */
class IsContained extends AbstractOperation {

    /**
     * Создает экземпляр класса IsContained
     */
  constructor() {
    super()
  }


    /**
     *
     * @param featureA
     * @param featureB
     * @return {boolean}
     */
    execute(featureA, featureB) {
        let isContained = operation(featureA, featureB);

        return new IsContainedResult({
            result: isContained
        })
    }
    }

function operation(featureA, featureB) {
    let geomA = parser.read(featureA.getGeometry());
    let geomB = parser.read(featureB.getGeometry());
    let result = geomA.contains(geomB);
    return result
}



module.exports = IsContained;