(function (global, factory) { if (typeof define === "function" && define.amd) { define(["exports", "three"], factory); } else if (typeof exports !== "undefined") { factory(exports, require("three")); } else { var mod = { exports: {} }; factory(mod.exports, global.three); global.ColorConverter = mod.exports; } })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _three) { "use strict"; Object.defineProperty(_exports, "__esModule", { value: true }); _exports.ColorConverter = void 0; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var _hsl = {}; var ColorConverter = /*#__PURE__*/function () { function ColorConverter() { _classCallCheck(this, ColorConverter); } _createClass(ColorConverter, null, [{ key: "setHSV", value: function setHSV(color, h, s, v) { // https://gist.github.com/xpansive/1337890#file-index-js h = _three.MathUtils.euclideanModulo(h, 1); s = _three.MathUtils.clamp(s, 0, 1); v = _three.MathUtils.clamp(v, 0, 1); return color.setHSL(h, s * v / ((h = (2 - s) * v) < 1 ? h : 2 - h), h * 0.5); } }, { key: "getHSV", value: function getHSV(color, target) { if (target === undefined) { console.warn('THREE.ColorConverter: .getHSV() target is now required'); target = { h: 0, s: 0, l: 0 }; } color.getHSL(_hsl); // based on https://gist.github.com/xpansive/1337890#file-index-js _hsl.s *= _hsl.l < 0.5 ? _hsl.l : 1 - _hsl.l; target.h = _hsl.h; target.s = 2 * _hsl.s / (_hsl.l + _hsl.s); target.v = _hsl.l + _hsl.s; return target; } // where c, m, y, k is between 0 and 1 }, { key: "setCMYK", value: function setCMYK(color, c, m, y, k) { var r = (1 - c) * (1 - k); var g = (1 - m) * (1 - k); var b = (1 - y) * (1 - k); return color.setRGB(r, g, b); } }, { key: "getCMYK", value: function getCMYK(color, target) { if (target === undefined) { console.warn('THREE.ColorConverter: .getCMYK() target is now required'); target = { c: 0, m: 0, y: 0, k: 0 }; } var r = color.r; var g = color.g; var b = color.b; var k = 1 - Math.max(r, g, b); var c = (1 - r - k) / (1 - k); var m = (1 - g - k) / (1 - k); var y = (1 - b - k) / (1 - k); target.c = c; target.m = m; target.y = y; target.k = k; return target; } }]); return ColorConverter; }(); _exports.ColorConverter = ColorConverter; });