getTransformType()

in client/client/modules/render/core/viewport/shortenedIntrons/shortenedIntronsViewport.js [108:145]


    getTransformType({start, end, delta}) {
        if (this.brush) {
            if (this._rebuildRequested) {
                this._rebuildRequested = false;
                return ViewportTransformTypes.VIEWPORT_TRANSFORM_REBUILD;
            }
            if (delta) {
                const newCenter = this.translatePosition(this.brush.center, delta);
                const newStart = this.translatePosition(newCenter, -this.brush.shortenedSize / 2);
                const newEnd = this.translatePosition(newCenter, +this.brush.shortenedSize / 2);
                if (this.checkCoverage(newStart) && this.checkCoverage(newEnd)) {
                    return ViewportTransformTypes.VIEWPORT_MOVE;
                }
            }
            if (this.brush.center &&
                this.brush.shortenedSize &&
                start &&
                end &&
                Math.round((start + end) / 2) === Math.round((this.brush.startIndex + this.brush.endIndex) / 2)) {
                return ViewportTransformTypes.VIEWPORT_SCALE;
            }
            if (this.brush.startIndex &&
                this.brush.endIndex &&
                start &&
                end &&
                this.brush.startIndex <= start && this.brush.endIndex >= end) {
                return ViewportTransformTypes.VIEWPORT_TRANSFORM_LOCAL;
            }
            if (this.brush.startIndex &&
                this.brush.endIndex &&
                start &&
                end &&
                this.brush.startIndex >= start && this.brush.endIndex <= end) {
                return ViewportTransformTypes.VIEWPORT_TRANSFORM_GLOBAL;
            }
        }
        return ViewportTransformTypes.VIEWPORT_TRANSFORM_SET;
    }