scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
123 lines (122 loc) • 6.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertCoordinateFromRelativeValue = exports.convertCoordinateFromPixelValue = exports.convertCoordinateFromDataValue = exports.convertToRelativeCoordinate = exports.convertToPixelCoordinate = exports.convertToDataValue = exports.convertCoordinateMode = exports.convertFromAbsoluteCoordinate = exports.convertAbsoluteCoordinateToRelativeValue = exports.convertAbsoluteCoordinateToPixelValue = exports.convertAbsoluteCoordinateToDataValue = exports.convertToAbsoluteCoordinate = exports.convertRelativeValueToAbsoluteCoordinate = exports.convertPixelValueToAbsoluteCoordinate = exports.convertDataValueToAbsoluteCoordinate = exports.subtractCoord = exports.addCoord = void 0;
var AnnotationBase_1 = require("../Charting/Visuals/Annotations/AnnotationBase");
var translate_1 = require("../utils/translate");
// TODO additionally add undefined, null and NaN checks for converting functions
function assertParseValue(value) {
if (value === value && value !== undefined && value !== null) {
return value;
}
else {
throw new Error("Unexpected value: ".concat(value, "!"));
}
}
//#region Basic operations
function addCoord(a, b) {
return (a + b);
}
exports.addCoord = addCoord;
function subtractCoord(a, b) {
return (a - b);
}
exports.subtractCoord = subtractCoord;
//#endregion
//#region Convert to Absolute Coordinate
function convertDataValueToAbsoluteCoordinate(value, calc) {
return calc.getCoordinate(value);
}
exports.convertDataValueToAbsoluteCoordinate = convertDataValueToAbsoluteCoordinate;
function convertPixelValueToAbsoluteCoordinate(value) {
return (0, translate_1.translateToScaled)(value);
}
exports.convertPixelValueToAbsoluteCoordinate = convertPixelValueToAbsoluteCoordinate;
function convertRelativeValueToAbsoluteCoordinate(value, calc) {
return (value * calc.viewportDimension);
}
exports.convertRelativeValueToAbsoluteCoordinate = convertRelativeValueToAbsoluteCoordinate;
function convertToAbsoluteCoordinate(value, calc, currentCoordinateMode) {
switch (currentCoordinateMode) {
case AnnotationBase_1.ECoordinateMode.DataValue: {
return convertDataValueToAbsoluteCoordinate(value, calc);
}
case AnnotationBase_1.ECoordinateMode.Pixel: {
return convertPixelValueToAbsoluteCoordinate(value);
}
case AnnotationBase_1.ECoordinateMode.Relative: {
return convertRelativeValueToAbsoluteCoordinate(value, calc);
}
default: {
throw new Error("Unexpected coordinate mode: \"".concat(currentCoordinateMode, "\"!"));
}
}
}
exports.convertToAbsoluteCoordinate = convertToAbsoluteCoordinate;
//#endregion
//#region Convert from Absolute Coordinate
function convertAbsoluteCoordinateToDataValue(coord, calc) {
return calc.getDataValue(coord);
}
exports.convertAbsoluteCoordinateToDataValue = convertAbsoluteCoordinateToDataValue;
function convertAbsoluteCoordinateToPixelValue(coord) {
return (0, translate_1.translateToNotScaled)(coord);
}
exports.convertAbsoluteCoordinateToPixelValue = convertAbsoluteCoordinateToPixelValue;
function convertAbsoluteCoordinateToRelativeValue(coord, calc) {
return (coord / calc.viewportDimension);
}
exports.convertAbsoluteCoordinateToRelativeValue = convertAbsoluteCoordinateToRelativeValue;
function convertFromAbsoluteCoordinate(coord, calc, targetCoordinateMode) {
switch (targetCoordinateMode) {
case AnnotationBase_1.ECoordinateMode.DataValue: {
return convertAbsoluteCoordinateToDataValue(coord, calc);
}
case AnnotationBase_1.ECoordinateMode.Pixel: {
return convertAbsoluteCoordinateToPixelValue(coord);
}
case AnnotationBase_1.ECoordinateMode.Relative: {
return convertAbsoluteCoordinateToRelativeValue(coord, calc);
}
default: {
throw new Error("Unexpected coordinate mode: \"".concat(targetCoordinateMode, "\"!"));
}
}
}
exports.convertFromAbsoluteCoordinate = convertFromAbsoluteCoordinate;
//#endregion
function convertCoordinateMode(value, calc, currentCoordinateMode, targetCoordinateMode) {
if (currentCoordinateMode === targetCoordinateMode) {
return value;
}
var absoluteCoordinate = convertToAbsoluteCoordinate(value, calc, currentCoordinateMode);
return convertFromAbsoluteCoordinate(absoluteCoordinate, calc, targetCoordinateMode);
}
exports.convertCoordinateMode = convertCoordinateMode;
//#region Convert to a specific Coordinate Mode
function convertToDataValue(value, calc, currentCoordinateMode) {
return convertCoordinateMode(value, calc, currentCoordinateMode, AnnotationBase_1.ECoordinateMode.DataValue);
}
exports.convertToDataValue = convertToDataValue;
function convertToPixelCoordinate(value, calc, currentCoordinateMode) {
return convertCoordinateMode(value, calc, currentCoordinateMode, AnnotationBase_1.ECoordinateMode.Pixel);
}
exports.convertToPixelCoordinate = convertToPixelCoordinate;
function convertToRelativeCoordinate(value, calc, currentCoordinateMode) {
return convertCoordinateMode(value, calc, currentCoordinateMode, AnnotationBase_1.ECoordinateMode.Relative);
}
exports.convertToRelativeCoordinate = convertToRelativeCoordinate;
//#endregion
//#region Convert from a specific Coordinate Mode
function convertCoordinateFromDataValue(value, calc, targetCoordinateMode) {
return convertCoordinateMode(value, calc, AnnotationBase_1.ECoordinateMode.DataValue, targetCoordinateMode);
}
exports.convertCoordinateFromDataValue = convertCoordinateFromDataValue;
function convertCoordinateFromPixelValue(value, calc, targetCoordinateMode) {
return convertCoordinateMode(value, calc, AnnotationBase_1.ECoordinateMode.Pixel, targetCoordinateMode);
}
exports.convertCoordinateFromPixelValue = convertCoordinateFromPixelValue;
function convertCoordinateFromRelativeValue(value, calc, targetCoordinateMode) {
return convertCoordinateMode(value, calc, AnnotationBase_1.ECoordinateMode.Relative, targetCoordinateMode);
}
exports.convertCoordinateFromRelativeValue = convertCoordinateFromRelativeValue;
//#endregion