SYMBOL INDEX (321 symbols across 8 files) FILE: dist/geometry-extrude.js function earcut (line 12) | function earcut(data, holeIndices, dim) { function linkedList (line 52) | function linkedList(data, start, end, dim, clockwise) { function filterPoints (line 70) | function filterPoints(start, end) { function earcutLinked (line 94) | function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) { function isEar (line 147) | function isEar(ear) { function isEarHashed (line 166) | function isEarHashed(ear, minX, minY, invSize) { function cureLocalIntersections (line 219) | function cureLocalIntersections(start, triangles, dim) { function splitEarcut (line 244) | function splitEarcut(start, triangles, dim, minX, minY, invSize) { function eliminateHoles (line 270) | function eliminateHoles(data, holeIndices, outerNode, dim) { function compareX (line 293) | function compareX(a, b) { function eliminateHole (line 298) | function eliminateHole(hole, outerNode) { function findHoleBridge (line 315) | function findHoleBridge(hole, outerNode) { function sectorContainsSector (line 375) | function sectorContainsSector(m, p) { function indexCurve (line 380) | function indexCurve(start, minX, minY, invSize) { function sortLinked (line 397) | function sortLinked(list) { function zOrder (line 449) | function zOrder(x, y, minX, minY, invSize) { function getLeftmost (line 468) | function getLeftmost(start) { function pointInTriangle (line 480) | function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) { function isValidDiagonal (line 487) | function isValidDiagonal(a, b) { function area$1 (line 495) | function area$1(p, q, r) { function equals (line 500) | function equals(p1, p2) { function intersects (line 505) | function intersects(p1, q1, p2, q2) { function onSegment (line 522) | function onSegment(p, q, r) { function sign (line 526) | function sign(num) { function intersectsPolygon (line 531) | function intersectsPolygon(a, b) { function locallyInside (line 543) | function locallyInside(a, b) { function middleInside (line 550) | function middleInside(a, b) { function splitPolygon (line 567) | function splitPolygon(a, b) { function insertNode (line 589) | function insertNode(i, x, y, last) { function removeNode (line 605) | function removeNode(p) { function Node (line 613) | function Node(i, x, y) { function signedArea (line 665) | function signedArea(data, start, end, dim) { function getSqDist (line 702) | function getSqDist(p1, p2) { function getSqSegDist (line 709) | function getSqSegDist(p, p1, p2) { function simplifyRadialDist (line 734) | function simplifyRadialDist(points, sqTolerance) { function simplifyDPStep (line 752) | function simplifyDPStep(points, first, last, sqTolerance, simplified) { function simplifyDouglasPeucker (line 773) | function simplifyDouglasPeucker(points, sqTolerance) { function simplify (line 782) | function simplify(points, tolerance, highestQuality) { function dot (line 790) | function dot(v1, v2) { function v2Dot (line 793) | function v2Dot(v1, v2) { function normalize (line 796) | function normalize(out, v) { function v2Normalize (line 806) | function v2Normalize(out, v) { function scale (line 814) | function scale(out, v, s) { function scaleAndAdd (line 820) | function scaleAndAdd(out, v1, v2, s) { function v2Add (line 826) | function v2Add(out, v1, v2) { function v3Sub (line 831) | function v3Sub(out, v1, v2) { function v3Normalize (line 837) | function v3Normalize(out, v) { function v3Cross (line 847) | function v3Cross(out, v1, v2) { function slerp (line 861) | function slerp(out, start, end, t) { function lineIntersection (line 872) | function lineIntersection(x1, y1, x2, y2, x3, y3, x4, y4, out, writeOffs... function area (line 890) | function area(points, start, end) { function triangulate (line 914) | function triangulate(vertices, holes) { function flatten (line 918) | function flatten(data) { function innerOffsetPolygon (line 925) | function innerOffsetPolygon(vertices, out, start, end, outStart, offset,... function offsetPolygon (line 1034) | function offsetPolygon(vertices, holes, offset, miterLimit, close) { function reversePoints (line 1072) | function reversePoints(points, stride, start, end) { function convertToClockwise (line 1086) | function convertToClockwise(vertices, holes) { function normalizeOpts (line 1105) | function normalizeOpts(opts) { function generateNormal (line 1156) | function generateNormal(indices, position) { function addExtrudeSide (line 1205) | function addExtrudeSide(out, _ref, start, end, cursors, opts) { function addTopAndBottom (line 1350) | function addTopAndBottom(_ref2, out, cursors, opts) { function splitVertices (line 1401) | function splitVertices(vertices, holes, smoothSide, smoothSideThreshold) { function innerExtrudeTriangulatedPolygon (line 1474) | function innerExtrudeTriangulatedPolygon(preparedData, opts) { function convertPolylineToTriangulatedPolygon (line 1566) | function convertPolylineToTriangulatedPolygon(polyline, polylineIdx, opt... function removeClosePointsOfPolygon (line 1645) | function removeClosePointsOfPolygon(polygon, epsilon) { function simplifyPolygon (line 1680) | function simplifyPolygon(polygon, tolerance) { function extrudePolygon (line 1714) | function extrudePolygon(polygons, opts) { function extrudePolyline (line 1813) | function extrudePolyline(polylines, opts) { function updateBoundingRect (line 1855) | function updateBoundingRect(points, min, max) { function extrudeGeoJSON (line 1886) | function extrudeGeoJSON(geojson, opts) { FILE: index.d.ts type Rect (line 1) | type Rect = { type BasicExtrudeOpt (line 8) | type BasicExtrudeOpt = { type ExtrudeResult (line 21) | type ExtrudeResult = { type Polygon (line 29) | type Polygon = ArrayLike>>; type Polyline (line 30) | type Polyline = ArrayLike>; type GeoJSONPolygonGeometry (line 32) | type GeoJSONPolygonGeometry = { type GeoJSONLineStringGeometry (line 37) | type GeoJSONLineStringGeometry = { type GeoJSONMultiPolygonGeometry (line 41) | type GeoJSONMultiPolygonGeometry = { type GeoJSONMultiLineStringGeometry (line 45) | type GeoJSONMultiLineStringGeometry = { type GeoJSONFeature (line 50) | type GeoJSONFeature = { type GeoJSON (line 58) | type GeoJSON = { type GeometryExtrudeStatic (line 62) | interface GeometryExtrudeStatic { FILE: src/main.js function triangulate (line 13) | function triangulate(vertices, holes, dimensions=2) { function flatten (line 17) | function flatten(data) { function innerOffsetPolygon (line 25) | function innerOffsetPolygon( function offsetPolygon (line 153) | function offsetPolygon(vertices, holes, offset, miterLimit, close) { function reversePoints (line 201) | function reversePoints(points, stride, start, end) { function convertToClockwise (line 215) | function convertToClockwise(vertices, holes) { function normalizeOpts (line 231) | function normalizeOpts(opts) { function generateNormal (line 290) | function generateNormal(indices, position) { function addExtrudeSide (line 347) | function addExtrudeSide( function addTopAndBottom (line 490) | function addTopAndBottom({indices, topVertices, rect, depth}, out, curso... function splitVertices (line 532) | function splitVertices(vertices, holes, smoothSide, smoothSideThreshold) { function innerExtrudeTriangulatedPolygon (line 608) | function innerExtrudeTriangulatedPolygon(preparedData, opts) { function convertPolylineToTriangulatedPolygon (line 695) | function convertPolylineToTriangulatedPolygon(polyline, polylineIdx, opt... function removeClosePointsOfPolygon (line 782) | function removeClosePointsOfPolygon(polygon, epsilon) { function simplifyPolygon (line 811) | function simplifyPolygon(polygon, tolerance) { function extrudePolygon (line 840) | function extrudePolygon(polygons, opts) { function extrudePolyline (line 933) | function extrudePolyline(polylines, opts) { function updateBoundingRect (line 969) | function updateBoundingRect(points, min, max) { function extrudeGeoJSON (line 1000) | function extrudeGeoJSON(geojson, opts) { FILE: src/math.js function dot (line 1) | function dot(v1, v2) { function v2Dot (line 4) | function v2Dot(v1, v2) { function normalize (line 8) | function normalize(out, v) { function v2Normalize (line 19) | function v2Normalize(out, v) { function scale (line 28) | function scale(out, v, s) { function mul (line 35) | function mul(out, v1, v2) { function scaleAndAdd (line 42) | function scaleAndAdd(out, v1, v2, s) { function add (line 49) | function add(out, v1, v2) { function v2Add (line 56) | function v2Add(out, v1, v2) { function sub (line 62) | function sub(out, v1, v2) { function v2Sub (line 69) | function v2Sub(out, v1, v2) { function v3Sub (line 75) | function v3Sub(out, v1, v2) { function v3Normalize (line 82) | function v3Normalize(out, v) { function v3Cross (line 93) | function v3Cross(out, v1, v2) { function slerp (line 105) | function slerp(out, start, end, t) { function lineIntersection (line 119) | function lineIntersection(x1, y1, x2, y2, x3, y3, x4, y4, out, writeOffs... function area (line 140) | function area(points, start, end) { function triangleArea (line 161) | function triangleArea(x0, y0, x1, y1, x2, y2) { FILE: src/simplify.js function getSqDist (line 11) | function getSqDist(p1, p2) { function getSqSegDist (line 20) | function getSqSegDist(p, p1, p2) { function simplifyRadialDist (line 49) | function simplifyRadialDist(points, sqTolerance) { function simplifyDPStep (line 69) | function simplifyDPStep(points, first, last, sqTolerance, simplified) { function simplifyDouglasPeucker (line 90) | function simplifyDouglasPeucker(points, sqTolerance) { function simplify (line 101) | function simplify(points, tolerance, highestQuality) { FILE: test/lib/claygl-advanced-renderer.js function halton (line 9) | function halton(index, base) { function generateNoiseData (line 27) | function generateNoiseData(size) { function generateNoiseTexture (line 44) | function generateNoiseTexture(size) { function generateKernel (line 54) | function generateKernel(size, offset, hemisphere) { function SSAOPass (line 72) | function SSAOPass(opt) { function SSRPass (line 296) | function SSRPass(opt) { function EffectCompositor (line 1359) | function EffectCompositor() { function TemporalSuperSampling (line 1813) | function TemporalSuperSampling (opt) { function RenderMain (line 1980) | function RenderMain(renderer, scene, enableShadow) { function updateQueue (line 2212) | function updateQueue(queue) { function updateQueue (line 2227) | function updateQueue(queue) { function clone (line 2472) | function clone(source) { function merge (line 2520) | function merge(target, source, overwrite) { function isArray (line 2681) | function isArray(value) { function isObject (line 2704) | function isObject(value) { function isBuiltInObject (line 2716) | function isBuiltInObject(value) { function isDom (line 2732) | function isDom(value) { function isPrimitive (line 2797) | function isPrimitive(obj) { function ClayAdvancedRenderer (line 2806) | function ClayAdvancedRenderer(renderer, scene, timeline, graphicOpts) { function accumulate (line 2882) | function accumulate(id) { FILE: test/lib/claygl.js function noop (line 351) | function noop () {} function defaultGetter (line 604) | function defaultGetter(target, key) { function defaultSetter (line 607) | function defaultSetter(target, key, value) { function interpolateNumber (line 611) | function interpolateNumber(p0, p1, percent) { function interpolateArray (line 615) | function interpolateArray(p0, p1, percent, out, arrDim) { function isArrayLike (line 634) | function isArrayLike(data) { function cloneValue (line 644) | function cloneValue(value) { function catmullRomInterpolateArray (line 661) | function catmullRomInterpolateArray( function catmullRomInterpolate (line 684) | function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) { function fillArr (line 694) | function fillArr(arr0, arr1, arrDim) { function isArraySame (line 731) | function isArraySame(arr0, arr1, arrDim) { function createTrackClip (line 759) | function createTrackClip(animator, globalEasing, oneTrackDone, keyframes... function Animator (line 960) | function Animator(target, loop, getter, setter, interpolater) { function noopEasing (line 984) | function noopEasing(w) { function supertriangle (line 1356) | function supertriangle(vertices) { function circumcircle (line 1383) | function circumcircle(vertices, i, j, k) { function dedup (line 1433) | function dedup(edges) { function vec3lerp (line 5174) | function vec3lerp(out, a, b, t, oa, ob) { function quatSlerp (line 5185) | function quatSlerp(out, a, b, t, oa, ob) { function derive (line 5562) | function derive(makeDefaultOpt, initialize/*optional*/, proto/*optional*... function extend (line 5631) | function extend(target, source) { function extendWithPropList (line 5642) | function extendWithPropList(target, source, propList) { function Handler (line 5661) | function Handler(action, context) { function wrapper (line 5756) | function wrapper() { function get (line 6087) | function get(options) { function step (line 6346) | function step() { function GLInfo (line 6660) | function GLInfo(_gl) { function clampCssByte (line 7540) | function clampCssByte(i) { // Clamp to integer 0 .. 255. function clampCssAngle (line 7545) | function clampCssAngle(i) { // Clamp to integer 0 .. 360. function clampCssFloat (line 7550) | function clampCssFloat(f) { // Clamp to float 0.0 .. 1.0. function parseCssInt (line 7554) | function parseCssInt(str) { // int or percentage. function parseCssFloat (line 7561) | function parseCssFloat(str) { // float or percentage. function cssHueToRgb (line 7568) | function cssHueToRgb(m1, m2, h) { function lerpNumber (line 7588) | function lerpNumber(a, b, p) { function setRgba (line 7592) | function setRgba(out, r, g, b, a) { function copyRgba (line 7596) | function copyRgba(out, a) { function putToCache (line 7604) | function putToCache(colorStr, rgbaArr) { function hsla2rgba (line 7745) | function hsla2rgba(hsla, rgba) { function rgba2hsla (line 7774) | function rgba2hsla(rgba) { function getDefineCode (line 8003) | function getDefineCode(defines) { function getProgramKey (line 8021) | function getProgramKey(vertexDefines, fragmentDefines, enabledTextures) { function addLineNumbers (line 8504) | function addLineNumbers(string) { function checkShaderErrorMsg (line 8515) | function checkShaderErrorMsg(_gl, shader, shaderString) { function unrollLoop (line 8817) | function unrollLoop(shaderStr, defines, lightsNumbers) { function getDefineCode$1 (line 8867) | function getDefineCode$1(defines, lightsNumbers, enabledTextures) { function getExtensionCode (line 8896) | function getExtensionCode(exts) { function getPrecisionCode (line 8906) | function getPrecisionCode(precision) { function ProgramManager (line 8913) | function ProgramManager(renderer) { function createZeroArray (line 9021) | function createZeroArray(len) { function getShaderID (line 9119) | function getShaderID(vertex, fragment) { function removeComment (line 9135) | function removeComment(code) { function logSyntaxError (line 9140) | function logSyntaxError() { function parseDeclarations (line 9144) | function parseDeclarations(type, line) { function Shader (line 9311) | function Shader(vertex, fragment) { function makeDefaultValueFunc (line 9443) | function makeDefaultValueFunc(value) { function _uniformParser (line 9447) | function _uniformParser(str, type, content) { function _attributeParser (line 9499) | function _attributeParser(str, type, content) { function _defineParser (line 9540) | function _defineParser(str, symbol, value) { function defaultGetMaterial (line 10619) | function defaultGetMaterial(renderable) { function defaultGetUniform (line 10622) | function defaultGetUniform(renderable, material, symbol) { function defaultIsMaterialChanged (line 10625) | function defaultIsMaterialChanged(renderabled, prevRenderable, material,... function defaultIfRender (line 10628) | function defaultIfRender(renderable) { function noop$1 (line 10632) | function noop$1() {} function VertexArrayObject (line 10642) | function VertexArrayObject(availableAttributes, availableAttributeSymbol... function PlaceHolderTexture (line 10650) | function PlaceHolderTexture(renderer) { function clamp (line 12697) | function clamp(val, min, max) { function defaultFilter (line 15252) | function defaultFilter (el) { function getProgramKey$1 (line 16260) | function getProgramKey$1(lightNumbers) { function RenderList (line 16279) | function RenderList() { function buildNodesMap (line 16477) | function buildNodesMap(sNode, tNode) { function setUniforms (line 16749) | function setUniforms(uniforms, program, renderer) { function lightSortFunc (line 16796) | function lightSortFunc(a, b) { function getArrayCtorByType (line 16910) | function getArrayCtorByType (type) { function makeAttrKey (line 16919) | function makeAttrKey(attrName) { function Attribute$1 (line 16927) | function Attribute$1(name, type, size, semantic) { function AttributeBuffer (line 17139) | function AttributeBuffer(name, type, buffer, size, semantic) { function IndicesBuffer (line 17154) | function IndicesBuffer(buffer) { function createPlane (line 18297) | function createPlane(pos, widthSegments, heightSegments) { function nearestPowerOfTwo (line 19001) | function nearestPowerOfTwo(val) { function convertTextureToPowerOfTwo (line 19004) | function convertTextureToPowerOfTwo(texture, canvas) { function isImageRenderable (line 19508) | function isImageRenderable(image) { function ShaderLibrary (line 20199) | function ShaderLibrary () { function template (line 20225) | function template(name, vertex, fragment) { function getAccessorData (line 20760) | function getAccessorData(json, lib, accessorIdx, isIndices) { function checkLoad (line 21011) | function checkLoad() { function getResult (line 21035) | function getResult() { function afterLoadBuffer (line 21050) | function afterLoadBuffer(immediately) { function enableSkinningForMesh (line 21197) | function enableSkinningForMesh(mesh, skeleton, jointIndices) { function getJointIndex (line 21206) | function getJointIndex(joint) { function instanceMesh (line 21755) | function instanceMesh(mesh) { function checkChannelPath (line 21831) | function checkChannelPath(channelInfo) { function getChannelHash (line 21839) | function getChannelHash(channelInfo, animationInfo) { function fourCCToInt32 (line 23018) | function fourCCToInt32(value) { function rgbe2float (line 23127) | function rgbe2float(rgbe, buffer, offset, exposure) { function uint82string (line 23143) | function uint82string(array, offset, size) { function copyrgbe (line 23151) | function copyrgbe(s, t) { function oldReadColors (line 23159) | function oldReadColors(scan, buffer, offset, xmax) { function readColors (line 23183) | function readColors(scan, buffer, offset, xmax) { function generateKey (line 24079) | function generateKey(parameters) { function fallBack (line 24092) | function fallBack(target) { function isPowerOfTwo$2 (line 24117) | function isPowerOfTwo$2(width, height) { function getDepthMaterialUniform (line 24128) | function getDepthMaterialUniform(renderable, depthMaterial, symbol) { function isDepthMaterialChanged (line 24146) | function isDepthMaterialChanged(renderable, prevRenderable) { function getSize (line 24448) | function getSize(texture) { function harmonics (line 25254) | function harmonics(normal, index){ function projectEnvironmentMapCPU (line 25298) | function projectEnvironmentMapCPU(renderer, cubePixels, width, height) { function App3D (line 25520) | function App3D(dom, appNS) { function isImageLikeElement (line 25708) | function isImageLikeElement(val) { function getKeyFromImageLike (line 25714) | function getKeyFromImageLike(val) { function makeHandlerName (line 25719) | function makeHandlerName(eveType) { function packageEvent (line 25723) | function packageEvent(eventType, pickResult, offsetX, offsetY, wheelDelt... function bubblingEvent (line 25734) | function bubblingEvent(target, event) { function markUnused (line 25903) | function markUnused(resourceList) { function checkAndDispose (line 25909) | function checkAndDispose(renderer, resourceList) { function updateUsed (line 25917) | function updateUsed(resource, list) { function collectResources (line 25925) | function collectResources(scene, textureResourceList, geometryResourceLi... function makeTextureSetter (line 26151) | function makeTextureSetter(key) { function afterLoad (line 26647) | function afterLoad(result) { function Task (line 26749) | function Task() { function makeRequestTask (line 26795) | function makeRequestTask(url, responseType) { function register (line 27994) | function register(Shader) { function createCompositor (line 28024) | function createCompositor(json, opts) { function createNode (line 28055) | function createNode(nodeInfo, lib, opts) { function defaultWidthFunc (line 28168) | function defaultWidthFunc(width, height) { function defaultHeightFunc (line 28171) | function defaultHeightFunc(width, height) { function convertParameter (line 28175) | function convertParameter(paramInfo) { function loadTextures (line 28221) | function loadTextures(json, lib, opts, callback) { function createSizeSetHandler (line 28270) | function createSizeSetHandler(name, exprFunc) { function createSizeParser (line 28282) | function createSizeParser(name, exprFunc, scale) { function tryConvertExpr (line 28292) | function tryConvertExpr(string) { function createFillCanvas (line 28318) | function createFillCanvas(color) { function getGetUniformHook1 (line 28330) | function getGetUniformHook1(defaultNormalMap, defaultRoughnessMap, defau... function getGetUniformHook2 (line 28375) | function getGetUniformHook2(defaultDiffuseMap, defaultMetalnessMap) { function clearViewport (line 28649) | function clearViewport() { function isMaterialChanged (line 28662) | function isMaterialChanged(renderable, prevRenderable) { function getPreZMaterial (line 29678) | function getPreZMaterial() { function packID (line 32946) | function packID(id){ function unpackID (line 32953) | function unpackID(r, g, b){ function dist (line 33586) | function dist(pointPair) { function center (line 33593) | function center(pointPair) { function convertToArray (line 33765) | function convertToArray(val) { function copyAttribute (line 34929) | function copyAttribute(attr, shallow) { function copyIfNecessary (line 34939) | function copyIfNecessary(arr, shallow) { function lerp (line 34964) | function lerp (a, b, t) { FILE: test/lib/dat.gui.js function a (line 19) | function a(b){if(b==="0"||e.isUndefined(b))return 0;b=b.match(d);return!... function h (line 29) | function h(){var a=parseFloat(l.__input.value);c.isNaN(a)||l.setValue(a)} function j (line 29) | function j(a){var b=o-a.clientY;l.setValue(l.getValue()+b*l.__impliedSte... function m (line 29) | function m(){a.unbind(window,"mousemove",j);a.unbind(window,"mouseup",m)} function o (line 32) | function o(b){b.preventDefault();var d=a.getOffset(g.__background),c=a.g... function y (line 32) | function y(){a.unbind(window,"mousemove",o);a.unbind(window,"mouseup",y)... function q (line 45) | function q(a,b,r,c){if(b[r]===void 0)throw Error("Object "+b+' has no pr... function s (line 46) | function s(a,b,d){var c=document.createElement("li");b&&c.appendChild(b)... function p (line 46) | function p(a,d,c){c.__li=d;c.__gui=a;i.extend(c,{options:function(b){if(... function t (line 50) | function t(a,b){var c=a.getRoot(),d=c.__rememberedObjects.indexOf(b.obje... function I (line 50) | function I(a){var b=a.__save_row=document.createElement("li");g.addClass... function J (line 54) | function J(a){function b(f){f.preventDefault();e=f.clientX;g.addClass(a.... function D (line 55) | function D(a,b){a.domElement.style.width=b+"px";if(a.__save_row&&a.autoP... function z (line 56) | function z(a,b){var c={};i.each(a.__rememberedObjects,function(d,e){var ... function C (line 56) | function C(a,b,c){var d=document.createElement("option");d.innerHTML=b;d... function B (line 56) | function B(a,b){var c=a.__preset_select[a.__preset_select.selectedIndex]... function E (line 56) | function E(a){a.length!= function b (line 57) | function b(){localStorage.setItem(document.location.href+".gui",JSON.str... function c (line 57) | function c(){var a=d.getRoot();a.width+=1;i.defer(function(){a.width-=1})} function e (line 73) | function e(){h.setValue(h.__input.value)} function b (line 75) | function b(a,b,c,d){a.style.background="";f.each(j,function(e){a.style.c... function n (line 75) | function n(a){a.style.background="";a.style.cssText+="background: -moz-l... function o (line 76) | function o(b){q(b);a.bind(window,"mousemove",q);a.bind(window, function j (line 77) | function j(){a.unbind(window,"mousemove",q);a.unbind(window,"mouseup",j)} function g (line 77) | function g(){var a=d(this.value);a!==false?(p.__color.__state=a,p.setVal... function i (line 77) | function i(){a.unbind(window,"mousemove",s);a.unbind(window,"mouseup",i)} function q (line 77) | function q(b){b.preventDefault();var c=a.getWidth(p.__saturation_field),... function s (line 78) | function s(b){b.preventDefault();var c=a.getHeight(p.__hue_field),d=a.ge... function f (line 85) | function f(a, function b (line 86) | function b(a,b){Object.defineProperty(a,b,{get:function(){if(this.__stat... function n (line 86) | function n(b,c,e){if(b.__state.space=== function h (line 87) | function h(b){var c=a.rgb_to_hsv(b.r,b.g,b.b);d.extend(b.__state,{s:c.s,...