/**
* Copyright Mind Powered Corporation 2020
*
* https://mindpowered.dev/
*/
const maglev = require('@mindpowered/maglev');
const colorconverter = require('../lib/colorconverter.js');
/**
* An Library for Color Conversion
*/
class ColorConverter {
constructor() {
let bus = maglev.maglev.MagLev.getInstance('default');
let lib = new colorconverter.colorconverter.ColorConverter(bus);
}
/**
* Convert from RGB
* @param {number} r
* @param {number} g
* @param {number} b
* @return {Promise} Promise will resolve to type array.
*/
FromRGB(r, g, b) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [r, g, b];
let ret = jsbus.call('ColorConverter.FromRGB', args);
return ret;
}
/**
* Convert from CIELAB
* @param {number} L
* @param {number} a
* @param {number} b
* @return {Promise} Promise will resolve to type array.
*/
FromCIELAB(L, a, b) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [L, a, b];
let ret = jsbus.call('ColorConverter.FromCIELAB', args);
return ret;
}
/**
* Convert from CMYK
* @param {number} c
* @param {number} m
* @param {number} y
* @param {number} k
* @return {Promise} Promise will resolve to type array.
*/
FromCMYK(c, m, y, k) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [c, m, y, k];
let ret = jsbus.call('ColorConverter.FromCMYK', args);
return ret;
}
/**
* Convert from HEX
* @param {string} hex
* @return {Promise} Promise will resolve to type array.
*/
FromHEX(hex) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [hex];
let ret = jsbus.call('ColorConverter.FromHEX', args);
return ret;
}
/**
* Convert from XYZ
* @param {number} x
* @param {number} y
* @param {number} z
* @return {Promise} Promise will resolve to type array.
*/
FromXYZ(x, y, z) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [x, y, z];
let ret = jsbus.call('ColorConverter.FromXYZ', args);
return ret;
}
/**
* Convert from RGB using illumination and observer angles
* @param {number} r
* @param {number} g
* @param {number} b
* @param {string} observer1
* @param {string} observer2
* @return {Promise} Promise will resolve to type array.
*/
ConvertRGB(r, g, b, observer1, observer2) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [r, g, b, observer1, observer2];
let ret = jsbus.call('ColorConverter.ConvertRGB', args);
return ret;
}
/**
* Convert from CIELAB using illumination and observer angles
* @param {number} L
* @param {number} a
* @param {number} b
* @param {string} observer1
* @param {string} observer2
* @return {Promise} Promise will resolve to type array.
*/
ConvertCIELAB(L, a, b, observer1, observer2) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [L, a, b, observer1, observer2];
let ret = jsbus.call('ColorConverter.ConvertCIELAB', args);
return ret;
}
/**
* Convert from CMYK using illumination and observer angles
* @param {number} c
* @param {number} m
* @param {number} y
* @param {number} k
* @param {string} observer1
* @param {string} observer2
* @return {Promise} Promise will resolve to type array.
*/
ConvertCMYK(c, m, y, k, observer1, observer2) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [c, m, y, k, observer1, observer2];
let ret = jsbus.call('ColorConverter.ConvertCMYK', args);
return ret;
}
/**
* Convert from HEX using illumination and observer angles
* @param {string} hex
* @param {string} observer1
* @param {string} observer2
* @return {Promise} Promise will resolve to type array.
*/
ConvertHEX(hex, observer1, observer2) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [hex, observer1, observer2];
let ret = jsbus.call('ColorConverter.ConvertHEX', args);
return ret;
}
/**
* Convert from XYZ using illumination and observer angles
* @param {number} x
* @param {number} y
* @param {number} z
* @param {string} observer1
* @param {string} observer2
* @return {Promise} Promise will resolve to type array.
*/
ConvertXYZ(x, y, z, observer1, observer2) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [x, y, z, observer1, observer2];
let ret = jsbus.call('ColorConverter.ConvertXYZ', args);
return ret;
}
/**
* Add a reference color
* @param {string} system
* @param {string} name
* @param {string} description
* @param {number} r
* @param {number} g
* @param {number} b
*/
AddReferenceColorByRGB(system, name, description, r, g, b) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system, name, description, r, g, b];
jsbus.call('ColorConverter.AddReferenceColorByRGB', args);
}
/**
* Add a reference color
* @param {string} system
* @param {string} name
* @param {string} description
* @param {number} L
* @param {number} a
* @param {number} b
*/
AddReferenceColorByCIELAB(system, name, description, L, a, b) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system, name, description, L, a, b];
jsbus.call('ColorConverter.AddReferenceColorByCIELAB', args);
}
/**
* Add a reference color
* @param {string} system
* @param {string} name
* @param {string} description
* @param {number} c
* @param {number} m
* @param {number} y
* @param {number} k
*/
AddReferenceColorByCMYK(system, name, description, c, m, y, k) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system, name, description, c, m, y, k];
jsbus.call('ColorConverter.AddReferenceColorByCMYK', args);
}
/**
* Add a reference color
* @param {string} system
* @param {string} name
* @param {string} description
* @param {string} hex
*/
AddReferenceColorByHEX(system, name, description, hex) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system, name, description, hex];
jsbus.call('ColorConverter.AddReferenceColorByHEX', args);
}
/**
* Add a reference color
* @param {string} system
* @param {string} name
* @param {string} description
* @param {number} x
* @param {number} y
* @param {number} z
*/
AddReferenceColorByXYZ(system, name, description, x, y, z) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system, name, description, x, y, z];
jsbus.call('ColorConverter.AddReferenceColorByXYZ', args);
}
/**
*
* @param {number} r
* @param {number} g
* @param {number} b
* @return {Promise} Promise will resolve to type array.
*/
FindReferenceColorByRGB(r, g, b) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [r, g, b];
let ret = jsbus.call('ColorConverter.FindReferenceColorByRGB', args);
return ret;
}
/**
*
* @param {number} L
* @param {number} a
* @param {number} b
* @return {Promise} Promise will resolve to type array.
*/
FindReferenceColorByCIELAB(L, a, b) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [L, a, b];
let ret = jsbus.call('ColorConverter.FindReferenceColorByCIELAB', args);
return ret;
}
/**
*
* @param {number} c
* @param {number} m
* @param {number} y
* @param {number} k
* @return {Promise} Promise will resolve to type array.
*/
FindReferenceColorByCMYK(c, m, y, k) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [c, m, y, k];
let ret = jsbus.call('ColorConverter.FindReferenceColorByCMYK', args);
return ret;
}
/**
*
* @param {string} hex
* @return {Promise} Promise will resolve to type array.
*/
FindReferenceColorByHEX(hex) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [hex];
let ret = jsbus.call('ColorConverter.FindReferenceColorByHEX', args);
return ret;
}
/**
*
* @param {number} x
* @param {number} y
* @param {number} z
* @return {Promise} Promise will resolve to type array.
*/
FindReferenceColorByXYZ(x, y, z) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [x, y, z];
let ret = jsbus.call('ColorConverter.FindReferenceColorByXYZ', args);
return ret;
}
/**
*
* @param {string} system
* @param {string} name
* @return {Promise} Promise will resolve to type array.
*/
FindReferenceColor(system, name) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system, name];
let ret = jsbus.call('ColorConverter.FindReferenceColor', args);
return ret;
}
/**
* Remove reference color system and all reference colors
* @param {string} system
*/
RemoveReferenceColorSystem(system) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system];
jsbus.call('ColorConverter.RemoveReferenceColorSystem', args);
}
/**
* Get all reference color systems
* @return {Promise} Promise will resolve to type array.
*/
GetReferenceColorSystems() {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [];
let ret = jsbus.call('ColorConverter.GetReferenceColorSystems', args);
return ret;
}
/**
* Get all reference colors in a color reference system
* @param {string} system
* @return {Promise} Promise will resolve to type array.
*/
GetReferenceColors(system) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [system];
let ret = jsbus.call('ColorConverter.GetReferenceColors', args);
return ret;
}
/**
* Get supported illumination and observer angles
* @return {Promise} Promise will resolve to type array.
*/
GetIlluminationObserverAngles() {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [];
let ret = jsbus.call('ColorConverter.GetIlluminationObserverAngles', args);
return ret;
}
/**
* Save reference colors
* @param {string} id
*/
SaveReferenceColors(id) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [id];
jsbus.call('ColorConverter.SaveReferenceColors', args);
}
/**
* Load reference colors
* @param {string} id
*/
LoadReferenceColors(id) {
let jsbus = maglev.maglev.MagLevJs.getInstance('default');
let args = [id];
jsbus.call('ColorConverter.LoadReferenceColors', args);
}
}
module.exports = ColorConverter;