var PointD = require('./PointD'); function Transform(x, y) { this.lworldOrgX = 0.0; this.lworldOrgY = 0.0; this.ldeviceOrgX = 0.0; this.ldeviceOrgY = 0.0; this.lworldExtX = 1.0; this.lworldExtY = 1.0; this.ldeviceExtX = 1.0; this.ldeviceExtY = 1.0; } Transform.prototype.getWorldOrgX = function () { return this.lworldOrgX; } Transform.prototype.setWorldOrgX = function (wox) { this.lworldOrgX = wox; } Transform.prototype.getWorldOrgY = function () { return this.lworldOrgY; } Transform.prototype.setWorldOrgY = function (woy) { this.lworldOrgY = woy; } Transform.prototype.getWorldExtX = function () { return this.lworldExtX; } Transform.prototype.setWorldExtX = function (wex) { this.lworldExtX = wex; } Transform.prototype.getWorldExtY = function () { return this.lworldExtY; } Transform.prototype.setWorldExtY = function (wey) { this.lworldExtY = wey; } /* Device related */ Transform.prototype.getDeviceOrgX = function () { return this.ldeviceOrgX; } Transform.prototype.setDeviceOrgX = function (dox) { this.ldeviceOrgX = dox; } Transform.prototype.getDeviceOrgY = function () { return this.ldeviceOrgY; } Transform.prototype.setDeviceOrgY = function (doy) { this.ldeviceOrgY = doy; } Transform.prototype.getDeviceExtX = function () { return this.ldeviceExtX; } Transform.prototype.setDeviceExtX = function (dex) { this.ldeviceExtX = dex; } Transform.prototype.getDeviceExtY = function () { return this.ldeviceExtY; } Transform.prototype.setDeviceExtY = function (dey) { this.ldeviceExtY = dey; } Transform.prototype.transformX = function (x) { var xDevice = 0.0; var worldExtX = this.lworldExtX; if (worldExtX != 0.0) { xDevice = this.ldeviceOrgX + ((x - this.lworldOrgX) * this.ldeviceExtX / worldExtX); } return xDevice; } Transform.prototype.transformY = function (y) { var yDevice = 0.0; var worldExtY = this.lworldExtY; if (worldExtY != 0.0) { yDevice = this.ldeviceOrgY + ((y - this.lworldOrgY) * this.ldeviceExtY / worldExtY); } return yDevice; } Transform.prototype.inverseTransformX = function (x) { var xWorld = 0.0; var deviceExtX = this.ldeviceExtX; if (deviceExtX != 0.0) { xWorld = this.lworldOrgX + ((x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX); } return xWorld; } Transform.prototype.inverseTransformY = function (y) { var yWorld = 0.0; var deviceExtY = this.ldeviceExtY; if (deviceExtY != 0.0) { yWorld = this.lworldOrgY + ((y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY); } return yWorld; } Transform.prototype.inverseTransformPoint = function (inPoint) { var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y)); return outPoint; } module.exports = Transform;