diff --git a/README.md b/README.md index 271844f..c649e1f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ![SDF-2D logo](media/logo-colored.svg) SDF-2D library -A graphics library to enable the real-time rendering of 2D signed distance fields on the web. +A graphics library for real-time rendering of 2D signed distance fields on the web. ![screenshot of a bumpy tunnel](media/tunnels-screenshot.png) @@ -16,18 +16,18 @@ A graphics library to enable the real-time rendering of 2D signed distance field ## Features - Works with both WebGL and WebGL2 - > The former is mostly required for supporting iPhones. + > The former is mainly needed to support older iPhones. - Performant even on low-end mobile devices > Try it out yourself! -- Has a number of built-in shapes and lights +- Comes with a number of built-in shapes and lights - Easily extensible with new shapes -- Antialiasing is implemented -- Has built-in quality autoscaling +- Antialiasing is built in +- Built-in quality autoscaling - Requires no boilerplate code - - Automatic detection of WebGL and its extensions is provided - - Parallel, non-blocking shader compiling - - Context lost is handled with automatic restoration - - Can be used without thinking of the GPU _(although for stunning results it, should be kept in mind)_ + - WebGL and its extensions are detected automatically + - Shaders are compiled in parallel, without blocking + - Context loss is handled with automatic restoration + - Can be used without thinking about the GPU _(although for stunning results, it should be kept in mind)_ ![four screenshots from mobiles](media/mobile-screenshots.png) @@ -65,7 +65,7 @@ main(); For further examples, please visit the following repositories: - [Minimal example (using Webpack)](https://github.com/schmelczerandras/sdf-2d-minimal-example) -- [More complex example](https://github.com/schmelczerandras/sdf-2d-minimal-example) +- [More complex example](https://github.com/schmelczerandras/sdf-2d-more-complex-example) - [Source for the demo page](https://github.com/schmelczerandras/sdf-2d-demo) - [Source for decla.red, the multiplayer game](https://github.com/schmelczerandras/decla.red) diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e2ac661 --- /dev/null +++ b/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/css/main.css b/docs/assets/css/main.css deleted file mode 100644 index 3c0dcab..0000000 --- a/docs/assets/css/main.css +++ /dev/null @@ -1 +0,0 @@ -/*! normalize.css v1.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4,.tsd-index-panel h3{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:80%}sub{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;top:-0.5em}sub{bottom:-0.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure,form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button]{-webkit-appearance:button;cursor:pointer;*overflow:visible}input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.hljs{display:inline-block;padding:.5em;background:#fff;color:#000}.hljs-comment,.hljs-annotation,.hljs-template_comment,.diff .hljs-header,.hljs-chunk,.apache .hljs-cbracket{color:green}.hljs-keyword,.hljs-id,.hljs-built_in,.css .smalltalk .hljs-class,.hljs-winutils,.bash .hljs-variable,.tex .hljs-command,.hljs-request,.hljs-status,.nginx .hljs-title{color:blue}.xml .hljs-tag{color:blue}.xml .hljs-tag .hljs-value{color:blue}.hljs-string,.hljs-title,.hljs-parent,.hljs-tag .hljs-value,.hljs-rules .hljs-value{color:#a31515}.ruby .hljs-symbol{color:#a31515}.ruby .hljs-symbol .hljs-string{color:#a31515}.hljs-template_tag,.django .hljs-variable,.hljs-addition,.hljs-flow,.hljs-stream,.apache .hljs-tag,.hljs-date,.tex .hljs-formula,.coffeescript .hljs-attribute{color:#a31515}.ruby .hljs-string,.hljs-decorator,.hljs-filter .hljs-argument,.hljs-localvars,.hljs-array,.hljs-attr_selector,.hljs-pseudo,.hljs-pi,.hljs-doctype,.hljs-deletion,.hljs-envvar,.hljs-shebang,.hljs-preprocessor,.hljs-pragma,.userType,.apache .hljs-sqbracket,.nginx .hljs-built_in,.tex .hljs-special,.hljs-prompt{color:#2b91af}.hljs-phpdoc,.hljs-javadoc,.hljs-xmlDocTag{color:gray}.vhdl .hljs-typename{font-weight:bold}.vhdl .hljs-string{color:#666}.vhdl .hljs-literal{color:#a31515}.vhdl .hljs-attribute{color:#00b0e8}.xml .hljs-attribute{color:red}ul.tsd-descriptions>li>:first-child,.tsd-panel>:first-child,.col>:first-child,.col-11>:first-child,.col-10>:first-child,.col-9>:first-child,.col-8>:first-child,.col-7>:first-child,.col-6>:first-child,.col-5>:first-child,.col-4>:first-child,.col-3>:first-child,.col-2>:first-child,.col-1>:first-child,ul.tsd-descriptions>li>:first-child>:first-child,.tsd-panel>:first-child>:first-child,.col>:first-child>:first-child,.col-11>:first-child>:first-child,.col-10>:first-child>:first-child,.col-9>:first-child>:first-child,.col-8>:first-child>:first-child,.col-7>:first-child>:first-child,.col-6>:first-child>:first-child,.col-5>:first-child>:first-child,.col-4>:first-child>:first-child,.col-3>:first-child>:first-child,.col-2>:first-child>:first-child,.col-1>:first-child>:first-child,ul.tsd-descriptions>li>:first-child>:first-child>:first-child,.tsd-panel>:first-child>:first-child>:first-child,.col>:first-child>:first-child>:first-child,.col-11>:first-child>:first-child>:first-child,.col-10>:first-child>:first-child>:first-child,.col-9>:first-child>:first-child>:first-child,.col-8>:first-child>:first-child>:first-child,.col-7>:first-child>:first-child>:first-child,.col-6>:first-child>:first-child>:first-child,.col-5>:first-child>:first-child>:first-child,.col-4>:first-child>:first-child>:first-child,.col-3>:first-child>:first-child>:first-child,.col-2>:first-child>:first-child>:first-child,.col-1>:first-child>:first-child>:first-child{margin-top:0}ul.tsd-descriptions>li>:last-child,.tsd-panel>:last-child,.col>:last-child,.col-11>:last-child,.col-10>:last-child,.col-9>:last-child,.col-8>:last-child,.col-7>:last-child,.col-6>:last-child,.col-5>:last-child,.col-4>:last-child,.col-3>:last-child,.col-2>:last-child,.col-1>:last-child,ul.tsd-descriptions>li>:last-child>:last-child,.tsd-panel>:last-child>:last-child,.col>:last-child>:last-child,.col-11>:last-child>:last-child,.col-10>:last-child>:last-child,.col-9>:last-child>:last-child,.col-8>:last-child>:last-child,.col-7>:last-child>:last-child,.col-6>:last-child>:last-child,.col-5>:last-child>:last-child,.col-4>:last-child>:last-child,.col-3>:last-child>:last-child,.col-2>:last-child>:last-child,.col-1>:last-child>:last-child,ul.tsd-descriptions>li>:last-child>:last-child>:last-child,.tsd-panel>:last-child>:last-child>:last-child,.col>:last-child>:last-child>:last-child,.col-11>:last-child>:last-child>:last-child,.col-10>:last-child>:last-child>:last-child,.col-9>:last-child>:last-child>:last-child,.col-8>:last-child>:last-child>:last-child,.col-7>:last-child>:last-child>:last-child,.col-6>:last-child>:last-child>:last-child,.col-5>:last-child>:last-child>:last-child,.col-4>:last-child>:last-child>:last-child,.col-3>:last-child>:last-child>:last-child,.col-2>:last-child>:last-child>:last-child,.col-1>:last-child>:last-child>:last-child{margin-bottom:0}.container{max-width:1200px;margin:0 auto;padding:0 40px}@media(max-width: 640px){.container{padding:0 20px}}.container-main{padding-bottom:200px}.row{display:flex;position:relative;margin:0 -10px}.row:after{visibility:hidden;display:block;content:"";clear:both;height:0}.col,.col-11,.col-10,.col-9,.col-8,.col-7,.col-6,.col-5,.col-4,.col-3,.col-2,.col-1{box-sizing:border-box;float:left;padding:0 10px}.col-1{width:8.3333333333%}.offset-1{margin-left:8.3333333333%}.col-2{width:16.6666666667%}.offset-2{margin-left:16.6666666667%}.col-3{width:25%}.offset-3{margin-left:25%}.col-4{width:33.3333333333%}.offset-4{margin-left:33.3333333333%}.col-5{width:41.6666666667%}.offset-5{margin-left:41.6666666667%}.col-6{width:50%}.offset-6{margin-left:50%}.col-7{width:58.3333333333%}.offset-7{margin-left:58.3333333333%}.col-8{width:66.6666666667%}.offset-8{margin-left:66.6666666667%}.col-9{width:75%}.offset-9{margin-left:75%}.col-10{width:83.3333333333%}.offset-10{margin-left:83.3333333333%}.col-11{width:91.6666666667%}.offset-11{margin-left:91.6666666667%}.tsd-kind-icon{display:block;position:relative;padding-left:20px;text-indent:-20px}.tsd-kind-icon:before{content:"";display:inline-block;vertical-align:middle;width:17px;height:17px;margin:0 3px 2px 0;background-image:url(../images/icons.png)}@media(-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 144dpi){.tsd-kind-icon:before{background-image:url(../images/icons@2x.png);background-size:238px 204px}}.tsd-signature.tsd-kind-icon:before{background-position:0 -153px}.tsd-kind-object-literal>.tsd-kind-icon:before{background-position:0px -17px}.tsd-kind-object-literal.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -17px}.tsd-kind-object-literal.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -17px}.tsd-kind-class>.tsd-kind-icon:before{background-position:0px -34px}.tsd-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -34px}.tsd-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -34px}.tsd-kind-class.tsd-has-type-parameter>.tsd-kind-icon:before{background-position:0px -51px}.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -51px}.tsd-kind-class.tsd-has-type-parameter.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -51px}.tsd-kind-interface>.tsd-kind-icon:before{background-position:0px -68px}.tsd-kind-interface.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -68px}.tsd-kind-interface.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -68px}.tsd-kind-interface.tsd-has-type-parameter>.tsd-kind-icon:before{background-position:0px -85px}.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -85px}.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -85px}.tsd-kind-namespace>.tsd-kind-icon:before{background-position:0px -102px}.tsd-kind-namespace.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -102px}.tsd-kind-namespace.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -102px}.tsd-kind-module>.tsd-kind-icon:before{background-position:0px -102px}.tsd-kind-module.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -102px}.tsd-kind-module.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -102px}.tsd-kind-enum>.tsd-kind-icon:before{background-position:0px -119px}.tsd-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -119px}.tsd-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -119px}.tsd-kind-enum-member>.tsd-kind-icon:before{background-position:0px -136px}.tsd-kind-enum-member.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -136px}.tsd-kind-enum-member.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -136px}.tsd-kind-signature>.tsd-kind-icon:before{background-position:0px -153px}.tsd-kind-signature.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -153px}.tsd-kind-signature.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -153px}.tsd-kind-type-alias>.tsd-kind-icon:before{background-position:0px -170px}.tsd-kind-type-alias.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -170px}.tsd-kind-type-alias.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -170px}.tsd-kind-type-alias.tsd-has-type-parameter>.tsd-kind-icon:before{background-position:0px -187px}.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-protected>.tsd-kind-icon:before{background-position:-17px -187px}.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-private>.tsd-kind-icon:before{background-position:-34px -187px}.tsd-kind-variable>.tsd-kind-icon:before{background-position:-136px -0px}.tsd-kind-variable.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -0px}.tsd-kind-variable.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -0px}.tsd-kind-variable.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -0px}.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -0px}.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -0px}.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -0px}.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -0px}.tsd-kind-variable.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -0px}.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -0px}.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -0px}.tsd-kind-variable.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -0px}.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -0px}.tsd-kind-property>.tsd-kind-icon:before{background-position:-136px -0px}.tsd-kind-property.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -0px}.tsd-kind-property.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -0px}.tsd-kind-property.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -0px}.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -0px}.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -0px}.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -0px}.tsd-kind-property.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -0px}.tsd-kind-property.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -0px}.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -0px}.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -0px}.tsd-kind-property.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -0px}.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -0px}.tsd-kind-get-signature>.tsd-kind-icon:before{background-position:-136px -17px}.tsd-kind-get-signature.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -17px}.tsd-kind-get-signature.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -17px}.tsd-kind-get-signature.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -17px}.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -17px}.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -17px}.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -17px}.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -17px}.tsd-kind-get-signature.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -17px}.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -17px}.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -17px}.tsd-kind-get-signature.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -17px}.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -17px}.tsd-kind-set-signature>.tsd-kind-icon:before{background-position:-136px -34px}.tsd-kind-set-signature.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -34px}.tsd-kind-set-signature.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -34px}.tsd-kind-set-signature.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -34px}.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -34px}.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -34px}.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -34px}.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -34px}.tsd-kind-set-signature.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -34px}.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -34px}.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -34px}.tsd-kind-set-signature.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -34px}.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -34px}.tsd-kind-accessor>.tsd-kind-icon:before{background-position:-136px -51px}.tsd-kind-accessor.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -51px}.tsd-kind-accessor.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -51px}.tsd-kind-accessor.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -51px}.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -51px}.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -51px}.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -51px}.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -51px}.tsd-kind-accessor.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -51px}.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -51px}.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -51px}.tsd-kind-accessor.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -51px}.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -51px}.tsd-kind-function>.tsd-kind-icon:before{background-position:-136px -68px}.tsd-kind-function.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -68px}.tsd-kind-function.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-function.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -68px}.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -68px}.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -68px}.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -68px}.tsd-kind-function.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-function.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -68px}.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -68px}.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-function.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -68px}.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -68px}.tsd-kind-method>.tsd-kind-icon:before{background-position:-136px -68px}.tsd-kind-method.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -68px}.tsd-kind-method.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-method.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -68px}.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -68px}.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -68px}.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -68px}.tsd-kind-method.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-method.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -68px}.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -68px}.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-method.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -68px}.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -68px}.tsd-kind-call-signature>.tsd-kind-icon:before{background-position:-136px -68px}.tsd-kind-call-signature.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -68px}.tsd-kind-call-signature.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-call-signature.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -68px}.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -68px}.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -68px}.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -68px}.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-call-signature.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -68px}.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -68px}.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -68px}.tsd-kind-call-signature.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -68px}.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -68px}.tsd-kind-function.tsd-has-type-parameter>.tsd-kind-icon:before{background-position:-136px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -85px}.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -85px}.tsd-kind-method.tsd-has-type-parameter>.tsd-kind-icon:before{background-position:-136px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -85px}.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -85px}.tsd-kind-constructor>.tsd-kind-icon:before{background-position:-136px -102px}.tsd-kind-constructor.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -102px}.tsd-kind-constructor.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -102px}.tsd-kind-constructor.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -102px}.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -102px}.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -102px}.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -102px}.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -102px}.tsd-kind-constructor.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -102px}.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -102px}.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -102px}.tsd-kind-constructor.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -102px}.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -102px}.tsd-kind-constructor-signature>.tsd-kind-icon:before{background-position:-136px -102px}.tsd-kind-constructor-signature.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -102px}.tsd-kind-constructor-signature.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -102px}.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -102px}.tsd-kind-index-signature>.tsd-kind-icon:before{background-position:-136px -119px}.tsd-kind-index-signature.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -119px}.tsd-kind-index-signature.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -119px}.tsd-kind-index-signature.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -119px}.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -119px}.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -119px}.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -119px}.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -119px}.tsd-kind-index-signature.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -119px}.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -119px}.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -119px}.tsd-kind-index-signature.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -119px}.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -119px}.tsd-kind-event>.tsd-kind-icon:before{background-position:-136px -136px}.tsd-kind-event.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -136px}.tsd-kind-event.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -136px}.tsd-kind-event.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -136px}.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -136px}.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -136px}.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -136px}.tsd-kind-event.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -136px}.tsd-kind-event.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -136px}.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -136px}.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -136px}.tsd-kind-event.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -136px}.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -136px}.tsd-is-static>.tsd-kind-icon:before{background-position:-136px -153px}.tsd-is-static.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -153px}.tsd-is-static.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -153px}.tsd-is-static.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -153px}.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -153px}.tsd-is-static.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -153px}.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -153px}.tsd-is-static.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -153px}.tsd-is-static.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -153px}.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -153px}.tsd-is-static.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -153px}.tsd-is-static.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -153px}.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -153px}.tsd-is-static.tsd-kind-function>.tsd-kind-icon:before{background-position:-136px -170px}.tsd-is-static.tsd-kind-function.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -170px}.tsd-is-static.tsd-kind-function.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -170px}.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -170px}.tsd-is-static.tsd-kind-method>.tsd-kind-icon:before{background-position:-136px -170px}.tsd-is-static.tsd-kind-method.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -170px}.tsd-is-static.tsd-kind-method.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -170px}.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -170px}.tsd-is-static.tsd-kind-call-signature>.tsd-kind-icon:before{background-position:-136px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -170px}.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -170px}.tsd-is-static.tsd-kind-event>.tsd-kind-icon:before{background-position:-136px -187px}.tsd-is-static.tsd-kind-event.tsd-is-protected>.tsd-kind-icon:before{background-position:-153px -187px}.tsd-is-static.tsd-kind-event.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-class>.tsd-kind-icon:before{background-position:-51px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited>.tsd-kind-icon:before{background-position:-68px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected>.tsd-kind-icon:before{background-position:-85px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited>.tsd-kind-icon:before{background-position:-102px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum>.tsd-kind-icon:before{background-position:-170px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected>.tsd-kind-icon:before{background-position:-187px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private>.tsd-kind-icon:before{background-position:-119px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface>.tsd-kind-icon:before{background-position:-204px -187px}.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited>.tsd-kind-icon:before{background-position:-221px -187px}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-out{from{opacity:1;visibility:visible}to{opacity:0}}@keyframes fade-in-delayed{0%{opacity:0}33%{opacity:0}100%{opacity:1}}@keyframes fade-out-delayed{0%{opacity:1;visibility:visible}66%{opacity:0}100%{opacity:0}}@keyframes shift-to-left{from{transform:translate(0, 0)}to{transform:translate(-25%, 0)}}@keyframes unshift-to-left{from{transform:translate(-25%, 0)}to{transform:translate(0, 0)}}@keyframes pop-in-from-right{from{transform:translate(100%, 0)}to{transform:translate(0, 0)}}@keyframes pop-out-to-right{from{transform:translate(0, 0);visibility:visible}to{transform:translate(100%, 0)}}body{background:#fdfdfd;font-family:"Segoe UI",sans-serif;font-size:16px;color:#222}a{color:#4da6ff;text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:.2em;margin:0;font-size:14px;background-color:rgba(0,0,0,.04)}pre{padding:10px}pre code{padding:0;font-size:100%;background-color:transparent}.tsd-typography{line-height:1.333em}.tsd-typography ul{list-style:square;padding:0 0 0 20px;margin:0}.tsd-typography h4,.tsd-typography .tsd-index-panel h3,.tsd-index-panel .tsd-typography h3,.tsd-typography h5,.tsd-typography h6{font-size:1em;margin:0}.tsd-typography h5,.tsd-typography h6{font-weight:normal}.tsd-typography p,.tsd-typography ul,.tsd-typography ol{margin:1em 0}@media(min-width: 901px)and (max-width: 1024px){html.default .col-content{width:72%}html.default .col-menu{width:28%}html.default .tsd-navigation{padding-left:10px}}@media(max-width: 900px){html.default .col-content{float:none;width:100%}html.default .col-menu{position:fixed !important;overflow:auto;-webkit-overflow-scrolling:touch;z-index:1024;top:0 !important;bottom:0 !important;left:auto !important;right:0 !important;width:100%;padding:20px 20px 0 0;max-width:450px;visibility:hidden;background-color:#fff;transform:translate(100%, 0)}html.default .col-menu>*:last-child{padding-bottom:20px}html.default .overlay{content:"";display:block;position:fixed;z-index:1023;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.75);visibility:hidden}html.default.to-has-menu .overlay{animation:fade-in .4s}html.default.to-has-menu header,html.default.to-has-menu footer,html.default.to-has-menu .col-content{animation:shift-to-left .4s}html.default.to-has-menu .col-menu{animation:pop-in-from-right .4s}html.default.from-has-menu .overlay{animation:fade-out .4s}html.default.from-has-menu header,html.default.from-has-menu footer,html.default.from-has-menu .col-content{animation:unshift-to-left .4s}html.default.from-has-menu .col-menu{animation:pop-out-to-right .4s}html.default.has-menu body{overflow:hidden}html.default.has-menu .overlay{visibility:visible}html.default.has-menu header,html.default.has-menu footer,html.default.has-menu .col-content{transform:translate(-25%, 0)}html.default.has-menu .col-menu{visibility:visible;transform:translate(0, 0)}}.tsd-page-title{padding:70px 0 20px 0;margin:0 0 40px 0;background:#fff;box-shadow:0 0 5px rgba(0,0,0,.35)}.tsd-page-title h1{margin:0}.tsd-breadcrumb{margin:0;padding:0;color:#707070}.tsd-breadcrumb a{color:#707070;text-decoration:none}.tsd-breadcrumb a:hover{text-decoration:underline}.tsd-breadcrumb li{display:inline}.tsd-breadcrumb li:after{content:" / "}html.minimal .container{margin:0}html.minimal .container-main{padding-top:50px;padding-bottom:0}html.minimal .content-wrap{padding-left:300px}html.minimal .tsd-navigation{position:fixed !important;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;z-index:1;left:0;top:40px;bottom:0;width:300px;padding:20px;margin:0}html.minimal .tsd-member .tsd-member{margin-left:0}html.minimal .tsd-page-toolbar{position:fixed;z-index:2}html.minimal #tsd-filter .tsd-filter-group{right:0;transform:none}html.minimal footer{background-color:transparent}html.minimal footer .container{padding:0}html.minimal .tsd-generator{padding:0}@media(max-width: 900px){html.minimal .tsd-navigation{display:none}html.minimal .content-wrap{padding-left:0}}dl.tsd-comment-tags{overflow:hidden}dl.tsd-comment-tags dt{float:left;padding:1px 5px;margin:0 10px 0 0;border-radius:4px;border:1px solid #707070;color:#707070;font-size:.8em;font-weight:normal}dl.tsd-comment-tags dd{margin:0 0 10px 0}dl.tsd-comment-tags dd:before,dl.tsd-comment-tags dd:after{display:table;content:" "}dl.tsd-comment-tags dd pre,dl.tsd-comment-tags dd:after{clear:both}dl.tsd-comment-tags p{margin:0}.tsd-panel.tsd-comment .lead{font-size:1.1em;line-height:1.333em;margin-bottom:2em}.tsd-panel.tsd-comment .lead:last-child{margin-bottom:0}.toggle-protected .tsd-is-private{display:none}.toggle-public .tsd-is-private,.toggle-public .tsd-is-protected,.toggle-public .tsd-is-private-protected{display:none}.toggle-inherited .tsd-is-inherited{display:none}.toggle-only-exported .tsd-is-not-exported{display:none}.toggle-externals .tsd-is-external{display:none}#tsd-filter{position:relative;display:inline-block;height:40px;vertical-align:bottom}.no-filter #tsd-filter{display:none}#tsd-filter .tsd-filter-group{display:inline-block;height:40px;vertical-align:bottom;white-space:nowrap}#tsd-filter input{display:none}@media(max-width: 900px){#tsd-filter .tsd-filter-group{display:block;position:absolute;top:40px;right:20px;height:auto;background-color:#fff;visibility:hidden;transform:translate(50%, 0);box-shadow:0 0 4px rgba(0,0,0,.25)}.has-options #tsd-filter .tsd-filter-group{visibility:visible}.to-has-options #tsd-filter .tsd-filter-group{animation:fade-in .2s}.from-has-options #tsd-filter .tsd-filter-group{animation:fade-out .2s}#tsd-filter label,#tsd-filter .tsd-select{display:block;padding-right:20px}}footer{border-top:1px solid #eee;background-color:#fff}footer.with-border-bottom{border-bottom:1px solid #eee}footer .tsd-legend-group{font-size:0}footer .tsd-legend{display:inline-block;width:25%;padding:0;font-size:16px;list-style:none;line-height:1.333em;vertical-align:top}@media(max-width: 900px){footer .tsd-legend{width:50%}}.tsd-hierarchy{list-style:square;padding:0 0 0 20px;margin:0}.tsd-hierarchy .target{font-weight:bold}.tsd-index-panel .tsd-index-content{margin-bottom:-30px !important}.tsd-index-panel .tsd-index-section{margin-bottom:30px !important}.tsd-index-panel h3{margin:0 -20px 10px -20px;padding:0 20px 10px 20px;border-bottom:1px solid #eee}.tsd-index-panel ul.tsd-index-list{-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3;-webkit-column-gap:20px;-moz-column-gap:20px;-ms-column-gap:20px;-o-column-gap:20px;column-gap:20px;padding:0;list-style:none;line-height:1.333em}@media(max-width: 900px){.tsd-index-panel ul.tsd-index-list{-webkit-column-count:1;-moz-column-count:1;-ms-column-count:1;-o-column-count:1;column-count:1}}@media(min-width: 901px)and (max-width: 1024px){.tsd-index-panel ul.tsd-index-list{-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}}.tsd-index-panel ul.tsd-index-list li{-webkit-page-break-inside:avoid;-moz-page-break-inside:avoid;-ms-page-break-inside:avoid;-o-page-break-inside:avoid;page-break-inside:avoid}.tsd-index-panel a,.tsd-index-panel .tsd-parent-kind-module a{color:#9600ff}.tsd-index-panel .tsd-parent-kind-interface a{color:#647f1b}.tsd-index-panel .tsd-parent-kind-enum a{color:#937210}.tsd-index-panel .tsd-parent-kind-class a{color:#0672de}.tsd-index-panel .tsd-kind-module a{color:#9600ff}.tsd-index-panel .tsd-kind-interface a{color:#647f1b}.tsd-index-panel .tsd-kind-enum a{color:#937210}.tsd-index-panel .tsd-kind-class a{color:#0672de}.tsd-index-panel .tsd-is-private a{color:#707070}.tsd-flag{display:inline-block;padding:1px 5px;border-radius:4px;color:#fff;background-color:#707070;text-indent:0;font-size:14px;font-weight:normal}.tsd-anchor{position:absolute;top:-100px}.tsd-member{position:relative}.tsd-member .tsd-anchor+h3{margin-top:0;margin-bottom:0;border-bottom:none}.tsd-navigation{margin:0 0 0 40px}.tsd-navigation a{display:block;padding-top:2px;padding-bottom:2px;border-left:2px solid transparent;color:#222;text-decoration:none;transition:border-left-color .1s}.tsd-navigation a:hover{text-decoration:underline}.tsd-navigation ul{margin:0;padding:0;list-style:none}.tsd-navigation li{padding:0}.tsd-navigation.primary{padding-bottom:40px}.tsd-navigation.primary a{display:block;padding-top:6px;padding-bottom:6px}.tsd-navigation.primary ul li a{padding-left:5px}.tsd-navigation.primary ul li li a{padding-left:25px}.tsd-navigation.primary ul li li li a{padding-left:45px}.tsd-navigation.primary ul li li li li a{padding-left:65px}.tsd-navigation.primary ul li li li li li a{padding-left:85px}.tsd-navigation.primary ul li li li li li li a{padding-left:105px}.tsd-navigation.primary>ul{border-bottom:1px solid #eee}.tsd-navigation.primary li{border-top:1px solid #eee}.tsd-navigation.primary li.current>a{font-weight:bold}.tsd-navigation.primary li.label span{display:block;padding:20px 0 6px 5px;color:#707070}.tsd-navigation.primary li.globals+li>span,.tsd-navigation.primary li.globals+li>a{padding-top:20px}.tsd-navigation.secondary{max-height:calc(100vh - 1rem - 40px);overflow:auto;position:-webkit-sticky;position:sticky;top:calc(.5rem + 40px);transition:.3s}.tsd-navigation.secondary.tsd-navigation--toolbar-hide{max-height:calc(100vh - 1rem);top:.5rem}.tsd-navigation.secondary ul{transition:opacity .2s}.tsd-navigation.secondary ul li a{padding-left:25px}.tsd-navigation.secondary ul li li a{padding-left:45px}.tsd-navigation.secondary ul li li li a{padding-left:65px}.tsd-navigation.secondary ul li li li li a{padding-left:85px}.tsd-navigation.secondary ul li li li li li a{padding-left:105px}.tsd-navigation.secondary ul li li li li li li a{padding-left:125px}.tsd-navigation.secondary ul.current a{border-left-color:#eee}.tsd-navigation.secondary li.focus>a,.tsd-navigation.secondary ul.current li.focus>a{border-left-color:#000}.tsd-navigation.secondary li.current{margin-top:20px;margin-bottom:20px;border-left-color:#eee}.tsd-navigation.secondary li.current>a{font-weight:bold}@media(min-width: 901px){.menu-sticky-wrap{position:static}}.tsd-panel{margin:20px 0;padding:20px;background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.25)}.tsd-panel:empty{display:none}.tsd-panel>h1,.tsd-panel>h2,.tsd-panel>h3{margin:1.5em -20px 10px -20px;padding:0 20px 10px 20px;border-bottom:1px solid #eee}.tsd-panel>h1.tsd-before-signature,.tsd-panel>h2.tsd-before-signature,.tsd-panel>h3.tsd-before-signature{margin-bottom:0;border-bottom:0}.tsd-panel table{display:block;width:100%;overflow:auto;margin-top:10px;word-break:normal;word-break:keep-all}.tsd-panel table th{font-weight:bold}.tsd-panel table th,.tsd-panel table td{padding:6px 13px;border:1px solid #ddd}.tsd-panel table tr{background-color:#fff;border-top:1px solid #ccc}.tsd-panel table tr:nth-child(2n){background-color:#f8f8f8}.tsd-panel-group{margin:60px 0}.tsd-panel-group>h1,.tsd-panel-group>h2,.tsd-panel-group>h3{padding-left:20px;padding-right:20px}#tsd-search{transition:background-color .2s}#tsd-search .title{position:relative;z-index:2}#tsd-search .field{position:absolute;left:0;top:0;right:40px;height:40px}#tsd-search .field input{box-sizing:border-box;position:relative;top:-50px;z-index:1;width:100%;padding:0 10px;opacity:0;outline:0;border:0;background:transparent;color:#222}#tsd-search .field label{position:absolute;overflow:hidden;right:-40px}#tsd-search .field input,#tsd-search .title{transition:opacity .2s}#tsd-search .results{position:absolute;visibility:hidden;top:40px;width:100%;margin:0;padding:0;list-style:none;box-shadow:0 0 4px rgba(0,0,0,.25)}#tsd-search .results li{padding:0 10px;background-color:#fdfdfd}#tsd-search .results li:nth-child(even){background-color:#fff}#tsd-search .results li.state{display:none}#tsd-search .results li.current,#tsd-search .results li:hover{background-color:#eee}#tsd-search .results a{display:block}#tsd-search .results a:before{top:10px}#tsd-search .results span.parent{color:#707070;font-weight:normal}#tsd-search.has-focus{background-color:#eee}#tsd-search.has-focus .field input{top:0;opacity:1}#tsd-search.has-focus .title{z-index:0;opacity:0}#tsd-search.has-focus .results{visibility:visible}#tsd-search.loading .results li.state.loading{display:block}#tsd-search.failure .results li.state.failure{display:block}.tsd-signature{margin:0 0 1em 0;padding:10px;border:1px solid #eee;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:14px;overflow-x:auto}.tsd-signature.tsd-kind-icon{padding-left:30px}.tsd-signature.tsd-kind-icon:before{top:10px;left:10px}.tsd-panel>.tsd-signature{margin-left:-20px;margin-right:-20px;border-width:1px 0}.tsd-panel>.tsd-signature.tsd-kind-icon{padding-left:40px}.tsd-panel>.tsd-signature.tsd-kind-icon:before{left:20px}.tsd-signature-symbol{color:#707070;font-weight:normal}.tsd-signature-type{font-style:italic;font-weight:normal}.tsd-signatures{padding:0;margin:0 0 1em 0;border:1px solid #eee}.tsd-signatures .tsd-signature{margin:0;border-width:1px 0 0 0;transition:background-color .1s}.tsd-signatures .tsd-signature:first-child{border-top-width:0}.tsd-signatures .tsd-signature.current{background-color:#eee}.tsd-signatures.active>.tsd-signature{cursor:pointer}.tsd-panel>.tsd-signatures{margin-left:-20px;margin-right:-20px;border-width:1px 0}.tsd-panel>.tsd-signatures .tsd-signature.tsd-kind-icon{padding-left:40px}.tsd-panel>.tsd-signatures .tsd-signature.tsd-kind-icon:before{left:20px}.tsd-panel>a.anchor+.tsd-signatures{border-top-width:0;margin-top:-20px}ul.tsd-descriptions{position:relative;overflow:hidden;padding:0;list-style:none}ul.tsd-descriptions.active>.tsd-description{display:none}ul.tsd-descriptions.active>.tsd-description.current{display:block}ul.tsd-descriptions.active>.tsd-description.fade-in{animation:fade-in-delayed .3s}ul.tsd-descriptions.active>.tsd-description.fade-out{animation:fade-out-delayed .3s;position:absolute;display:block;top:0;left:0;right:0;opacity:0;visibility:hidden}ul.tsd-descriptions h4,ul.tsd-descriptions .tsd-index-panel h3,.tsd-index-panel ul.tsd-descriptions h3{font-size:16px;margin:1em 0 .5em 0}ul.tsd-parameters,ul.tsd-type-parameters{list-style:square;margin:0;padding-left:20px}ul.tsd-parameters>li.tsd-parameter-signature,ul.tsd-type-parameters>li.tsd-parameter-signature{list-style:none;margin-left:-20px}ul.tsd-parameters h5,ul.tsd-type-parameters h5{font-size:16px;margin:1em 0 .5em 0}ul.tsd-parameters .tsd-comment,ul.tsd-type-parameters .tsd-comment{margin-top:-0.5em}.tsd-sources{font-size:14px;color:#707070;margin:0 0 1em 0}.tsd-sources a{color:#707070;text-decoration:underline}.tsd-sources ul,.tsd-sources p{margin:0 !important}.tsd-sources ul{list-style:none;padding:0}.tsd-page-toolbar{position:fixed;z-index:1;top:0;left:0;width:100%;height:40px;color:#333;background:#fff;border-bottom:1px solid #eee;transition:transform .3s linear}.tsd-page-toolbar a{color:#333;text-decoration:none}.tsd-page-toolbar a.title{font-weight:bold}.tsd-page-toolbar a.title:hover{text-decoration:underline}.tsd-page-toolbar .table-wrap{display:table;width:100%;height:40px}.tsd-page-toolbar .table-cell{display:table-cell;position:relative;white-space:nowrap;line-height:40px}.tsd-page-toolbar .table-cell:first-child{width:100%}.tsd-page-toolbar--hide{transform:translateY(-100%)}.tsd-select .tsd-select-list li:before,.tsd-select .tsd-select-label:before,.tsd-widget:before{content:"";display:inline-block;width:40px;height:40px;margin:0 -8px 0 0;background-image:url(../images/widgets.png);background-repeat:no-repeat;text-indent:-1024px;vertical-align:bottom}@media(-webkit-min-device-pixel-ratio: 1.5),(min-resolution: 144dpi){.tsd-select .tsd-select-list li:before,.tsd-select .tsd-select-label:before,.tsd-widget:before{background-image:url(../images/widgets@2x.png);background-size:320px 40px}}.tsd-widget{display:inline-block;overflow:hidden;opacity:.6;height:40px;transition:opacity .1s,background-color .2s;vertical-align:bottom;cursor:pointer}.tsd-widget:hover{opacity:.8}.tsd-widget.active{opacity:1;background-color:#eee}.tsd-widget.no-caption{width:40px}.tsd-widget.no-caption:before{margin:0}.tsd-widget.search:before{background-position:0 0}.tsd-widget.menu:before{background-position:-40px 0}.tsd-widget.options:before{background-position:-80px 0}.tsd-widget.options,.tsd-widget.menu{display:none}@media(max-width: 900px){.tsd-widget.options,.tsd-widget.menu{display:inline-block}}input[type=checkbox]+.tsd-widget:before{background-position:-120px 0}input[type=checkbox]:checked+.tsd-widget:before{background-position:-160px 0}.tsd-select{position:relative;display:inline-block;height:40px;transition:opacity .1s,background-color .2s;vertical-align:bottom;cursor:pointer}.tsd-select .tsd-select-label{opacity:.6;transition:opacity .2s}.tsd-select .tsd-select-label:before{background-position:-240px 0}.tsd-select.active .tsd-select-label{opacity:.8}.tsd-select.active .tsd-select-list{visibility:visible;opacity:1;transition-delay:0s}.tsd-select .tsd-select-list{position:absolute;visibility:hidden;top:40px;left:0;margin:0;padding:0;opacity:0;list-style:none;box-shadow:0 0 4px rgba(0,0,0,.25);transition:visibility 0s .2s,opacity .2s}.tsd-select .tsd-select-list li{padding:0 20px 0 0;background-color:#fdfdfd}.tsd-select .tsd-select-list li:before{background-position:40px 0}.tsd-select .tsd-select-list li:nth-child(even){background-color:#fff}.tsd-select .tsd-select-list li:hover{background-color:#eee}.tsd-select .tsd-select-list li.selected:before{background-position:-200px 0}@media(max-width: 900px){.tsd-select .tsd-select-list{top:0;left:auto;right:100%;margin-right:-5px}.tsd-select .tsd-select-label:before{background-position:-280px 0}}img{max-width:100%} diff --git a/docs/favicon.ico b/docs/assets/favicon.ico similarity index 100% rename from docs/favicon.ico rename to docs/assets/favicon.ico diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js new file mode 100644 index 0000000..60aef28 --- /dev/null +++ b/docs/assets/hierarchy.js @@ -0,0 +1 @@ +window.hierarchyData = "eJyNjs0KgzAQhN9lztHiD1JytW8hImmSYmhMSjbSg+Tdi1WhPbWXYRnmm50FwftI4F1Z9QxB36yW0XhH4AvKalUnJg2OSxBPcbUaDHfjFHhRnhnmYMEhrSDSdFJ7hobjyg8sH+NkwbYoOCKpbO3JNoNBjsaqoB14V9RNnxiKuvn433rrw222rQny3xU0ioemQe5oJt9s/l31Y1lK6QWJ4mRz" \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css new file mode 100644 index 0000000..e6a0dd1 --- /dev/null +++ b/docs/assets/highlight.css @@ -0,0 +1,106 @@ +:root { + --light-hl-0: #0000FF; + --dark-hl-0: #569CD6; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #001080; + --dark-hl-2: #9CDCFE; + --light-hl-3: #AF00DB; + --dark-hl-3: #C586C0; + --light-hl-4: #795E26; + --dark-hl-4: #DCDCAA; + --light-hl-5: #098658; + --dark-hl-5: #B5CEA8; + --light-hl-6: #A31515; + --dark-hl-6: #CE9178; + --light-hl-7: #0070C1; + --dark-hl-7: #4FC1FF; + --light-hl-8: #800000; + --dark-hl-8: #808080; + --light-hl-9: #800000; + --dark-hl-9: #569CD6; + --light-hl-10: #E50000; + --dark-hl-10: #9CDCFE; + --light-hl-11: #0000FF; + --dark-hl-11: #CE9178; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } +.hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } +pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.js b/docs/assets/icons.js new file mode 100644 index 0000000..4fbadc5 --- /dev/null +++ b/docs/assets/icons.js @@ -0,0 +1,18 @@ +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg new file mode 100644 index 0000000..be7798f --- /dev/null +++ b/docs/assets/icons.svg @@ -0,0 +1 @@ +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/images/icons.png b/docs/assets/images/icons.png deleted file mode 100644 index 3836d5f..0000000 Binary files a/docs/assets/images/icons.png and /dev/null differ diff --git a/docs/assets/images/icons@2x.png b/docs/assets/images/icons@2x.png deleted file mode 100644 index 5a209e2..0000000 Binary files a/docs/assets/images/icons@2x.png and /dev/null differ diff --git a/docs/assets/images/widgets.png b/docs/assets/images/widgets.png deleted file mode 100644 index c738053..0000000 Binary files a/docs/assets/images/widgets.png and /dev/null differ diff --git a/docs/assets/images/widgets@2x.png b/docs/assets/images/widgets@2x.png deleted file mode 100644 index 4bbbd57..0000000 Binary files a/docs/assets/images/widgets@2x.png and /dev/null differ diff --git a/docs/assets/js/main.js b/docs/assets/js/main.js deleted file mode 100644 index c2190a9..0000000 --- a/docs/assets/js/main.js +++ /dev/null @@ -1,51 +0,0 @@ -!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=2)}([function(e,t,r){var n,i; -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */!function(){var s,o,a,u,l,c,h,d,f,p,y,m,v,g,x,w,L,E,b,S,k,Q,O,P,T,_,C=function(e){var t=new C.Builder;return t.pipeline.add(C.trimmer,C.stopWordFilter,C.stemmer),t.searchPipeline.add(C.stemmer),e.call(t,t),t.build()};C.version="2.3.9" -/*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - */,C.utils={},C.utils.warn=(s=this,function(e){s.console&&console.warn&&console.warn(e)}),C.utils.asString=function(e){return null==e?"":e.toString()},C.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),r=Object.keys(e),n=0;n0){var u=C.utils.clone(t)||{};u.position=[o,a],u.index=i.length,i.push(new C.Token(r.slice(o,s),u))}o=s+1}}return i},C.tokenizer.separator=/[\s\-]+/ -/*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - */,C.Pipeline=function(){this._stack=[]},C.Pipeline.registeredFunctions=Object.create(null),C.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&C.utils.warn("Overwriting existing registered function: "+t),e.label=t,C.Pipeline.registeredFunctions[e.label]=e},C.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||C.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},C.Pipeline.load=function(e){var t=new C.Pipeline;return e.forEach((function(e){var r=C.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},C.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){C.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},C.Pipeline.prototype.after=function(e,t){C.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},C.Pipeline.prototype.before=function(e,t){C.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},C.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},C.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=i),s!=e);)n=r-t,i=t+Math.floor(n/2),s=this.elements[2*i];return s==e||s>e?2*i:sa?l+=2:o==a&&(t+=r[u+1]*n[l+1],u+=2,l+=2);return t},C.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},C.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var s,o=i.str.charAt(0);o in i.node.edges?s=i.node.edges[o]:(s=new C.TokenSet,i.node.edges[o]=s),1==i.str.length&&(s.final=!0),n.push({node:s,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var a=i.node.edges["*"];else{a=new C.TokenSet;i.node.edges["*"]=a}if(0==i.str.length&&(a.final=!0),n.push({node:a,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&n.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var u=i.node.edges["*"];else{u=new C.TokenSet;i.node.edges["*"]=u}1==i.str.length&&(u.final=!0),n.push({node:u,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var l,c=i.str.charAt(0),h=i.str.charAt(1);h in i.node.edges?l=i.node.edges[h]:(l=new C.TokenSet,i.node.edges[h]=l),1==i.str.length&&(l.final=!0),n.push({node:l,editsRemaining:i.editsRemaining-1,str:c+i.str.slice(2)})}}}return r},C.TokenSet.fromString=function(e){for(var t=new C.TokenSet,r=t,n=0,i=e.length;n=e;t--){var r=this.uncheckedNodes[t],n=r.child.toString();n in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[n]:(r.child._str=n,this.minimizedNodes[n]=r.child),this.uncheckedNodes.pop()}} -/*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - */,C.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},C.Index.prototype.search=function(e){return this.query((function(t){new C.QueryParser(e,t).parse()}))},C.Index.prototype.query=function(e){for(var t=new C.Query(this.fields),r=Object.create(null),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},C.Builder.prototype.k1=function(e){this._k1=e},C.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return C.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},C.QueryLexer.prototype.width=function(){return this.pos-this.start},C.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},C.QueryLexer.prototype.backup=function(){this.pos-=1},C.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=C.QueryLexer.EOS&&this.backup()},C.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(C.QueryLexer.TERM)),e.ignore(),e.more())return C.QueryLexer.lexText},C.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(C.QueryLexer.EDIT_DISTANCE),C.QueryLexer.lexText},C.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(C.QueryLexer.BOOST),C.QueryLexer.lexText},C.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(C.QueryLexer.TERM)},C.QueryLexer.termSeparator=C.tokenizer.separator,C.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==C.QueryLexer.EOS)return C.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return C.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(C.QueryLexer.TERM),C.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(C.QueryLexer.TERM),C.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(C.QueryLexer.PRESENCE),C.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(C.QueryLexer.PRESENCE),C.QueryLexer.lexText;if(t.match(C.QueryLexer.termSeparator))return C.QueryLexer.lexTerm}else e.escapeCharacter()}},C.QueryParser=function(e,t){this.lexer=new C.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},C.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=C.QueryParser.parseClause;e;)e=e(this);return this.query},C.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},C.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},C.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},C.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case C.QueryLexer.PRESENCE:return C.QueryParser.parsePresence;case C.QueryLexer.FIELD:return C.QueryParser.parseField;case C.QueryLexer.TERM:return C.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value '"+t.str+"'"),new C.QueryParseError(r,t.start,t.end)}},C.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=C.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=C.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+t.str+"'";throw new C.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new C.QueryParseError(r,t.start,t.end)}switch(n.type){case C.QueryLexer.FIELD:return C.QueryParser.parseField;case C.QueryLexer.TERM:return C.QueryParser.parseTerm;default:r="expecting term or field, found '"+n.type+"'";throw new C.QueryParseError(r,n.start,n.end)}}},C.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),n="unrecognised field '"+t.str+"', possible fields: "+r;throw new C.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new C.QueryParseError(n,t.start,t.end)}switch(i.type){case C.QueryLexer.TERM:return C.QueryParser.parseTerm;default:n="expecting term, found '"+i.type+"'";throw new C.QueryParseError(n,i.start,i.end)}}},C.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case C.QueryLexer.TERM:return e.nextClause(),C.QueryParser.parseTerm;case C.QueryLexer.FIELD:return e.nextClause(),C.QueryParser.parseField;case C.QueryLexer.EDIT_DISTANCE:return C.QueryParser.parseEditDistance;case C.QueryLexer.BOOST:return C.QueryParser.parseBoost;case C.QueryLexer.PRESENCE:return e.nextClause(),C.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+r.type+"'";throw new C.QueryParseError(n,r.start,r.end)}else e.nextClause()}},C.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new C.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case C.QueryLexer.TERM:return e.nextClause(),C.QueryParser.parseTerm;case C.QueryLexer.FIELD:return e.nextClause(),C.QueryParser.parseField;case C.QueryLexer.EDIT_DISTANCE:return C.QueryParser.parseEditDistance;case C.QueryLexer.BOOST:return C.QueryParser.parseBoost;case C.QueryLexer.PRESENCE:return e.nextClause(),C.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new C.QueryParseError(n,i.start,i.end)}else e.nextClause()}},C.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new C.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case C.QueryLexer.TERM:return e.nextClause(),C.QueryParser.parseTerm;case C.QueryLexer.FIELD:return e.nextClause(),C.QueryParser.parseField;case C.QueryLexer.EDIT_DISTANCE:return C.QueryParser.parseEditDistance;case C.QueryLexer.BOOST:return C.QueryParser.parseBoost;case C.QueryLexer.PRESENCE:return e.nextClause(),C.QueryParser.parsePresence;default:n="Unexpected lexeme type '"+i.type+"'";throw new C.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(i="function"==typeof(n=function(){return C})?n.call(t,r,t,e):n)||(e.exports=i)}()},function(e,t,r){},function(e,t,r){"use strict";r.r(t);var n=[];function i(e,t){n.push({selector:t,constructor:e})}var s,o,a=function(){function e(){this.createComponents(document.body)}return e.prototype.createComponents=function(e){n.forEach((function(t){e.querySelectorAll(t.selector).forEach((function(e){e.dataset.hasInstance||(new t.constructor({el:e}),e.dataset.hasInstance=String(!0))}))}))},e}(),u=function(e){this.el=e.el},l=r(0),c=(s=function(e,t){return(s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}s(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});!function(e){e[e.Idle=0]="Idle",e[e.Loading=1]="Loading",e[e.Ready=2]="Ready",e[e.Failure=3]="Failure"}(o||(o={}));var h=function(e){function t(t){var r=e.call(this,t)||this;r.query="",r.loadingState=o.Idle,r.hasFocus=!1,r.preventPress=!1,r.data=null,r.index=null,r.resultClicked=!1;var n=document.querySelector("#tsd-search-field"),i=document.querySelector(".results");if(!n||!i)throw new Error("The input field or the result list wrapper are not found");return r.field=n,r.results=i,r.base=r.el.dataset.base+"/",r.bindEvents(),r}return c(t,e),t.prototype.loadIndex=function(){var e=this;if(this.loadingState==o.Idle&&!this.data){setTimeout((function(){e.loadingState==o.Idle&&e.setLoadingState(o.Loading)}),500);var t=this.el.dataset.index;t?fetch(t).then((function(e){if(!e.ok)throw new Error("The search index is missing");return e.json()})).then((function(t){e.data=t,e.index=l.Index.load(t.index),e.setLoadingState(o.Ready)})).catch((function(t){console.error(t),e.setLoadingState(o.Failure)})):this.setLoadingState(o.Failure)}},t.prototype.updateResults=function(){if(this.loadingState==o.Ready&&(this.results.textContent="",this.query&&this.index&&this.data)){var e=this.index.search("*"+this.query+"*");0===e.length&&(e=this.index.search("*"+this.query+"~1*"));for(var t=0,r=Math.min(10,e.length);t"+e+""})),s=n.parent||"";(s=s.replace(new RegExp(this.query,"i"),(function(e){return""+e+""})))&&(i=''+s+"."+i);var a=document.createElement("li");a.classList.value=n.classes,a.innerHTML='\n '+i+"\n ",this.results.appendChild(a)}}},t.prototype.setLoadingState=function(e){this.loadingState!=e&&(this.el.classList.remove(o[this.loadingState].toLowerCase()),this.loadingState=e,this.el.classList.add(o[this.loadingState].toLowerCase()),this.updateResults())},t.prototype.setHasFocus=function(e){this.hasFocus!=e&&(this.hasFocus=e,this.el.classList.toggle("has-focus"),e?(this.setQuery(""),this.field.value=""):this.field.value=this.query)},t.prototype.setQuery=function(e){this.query=e.trim(),this.updateResults()},t.prototype.setCurrentResult=function(e){var t=this.results.querySelector(".current");if(t){var r=1==e?t.nextElementSibling:t.previousElementSibling;r&&(t.classList.remove("current"),r.classList.add("current"))}else(t=this.results.querySelector(1==e?"li:first-child":"li:last-child"))&&t.classList.add("current")},t.prototype.gotoCurrentResult=function(){var e=this.results.querySelector(".current");if(e||(e=this.results.querySelector("li:first-child")),e){var t=e.querySelector("a");t&&(window.location.href=t.href),this.field.blur()}},t.prototype.bindEvents=function(){var e=this;this.results.addEventListener("mousedown",(function(){e.resultClicked=!0})),this.results.addEventListener("mouseup",(function(){e.resultClicked=!1,e.setHasFocus(!1)})),this.field.addEventListener("focusin",(function(){e.setHasFocus(!0),e.loadIndex()})),this.field.addEventListener("focusout",(function(){e.resultClicked?e.resultClicked=!1:setTimeout((function(){return e.setHasFocus(!1)}),100)})),this.field.addEventListener("input",(function(){e.setQuery(e.field.value)})),this.field.addEventListener("keydown",(function(t){13==t.keyCode||27==t.keyCode||38==t.keyCode||40==t.keyCode?(e.preventPress=!0,t.preventDefault(),13==t.keyCode?e.gotoCurrentResult():27==t.keyCode?e.field.blur():38==t.keyCode?e.setCurrentResult(-1):40==t.keyCode&&e.setCurrentResult(1)):e.preventPress=!1})),this.field.addEventListener("keypress",(function(t){e.preventPress&&t.preventDefault()})),document.body.addEventListener("keydown",(function(t){t.altKey||t.ctrlKey||t.metaKey||!e.hasFocus&&t.keyCode>47&&t.keyCode<112&&e.field.focus()}))},t}(u),d=function(){function e(){this.listeners={}}return e.prototype.addEventListener=function(e,t){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(t)},e.prototype.removeEventListener=function(e,t){if(e in this.listeners)for(var r=this.listeners[e],n=0,i=r.length;n=this.scrollTop||0===this.scrollTop,e!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.secondaryNav.classList.toggle("tsd-navigation--toolbar-hide")),this.lastY=this.scrollTop},t.instance=new t,t}(d),m=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),v=function(e){function t(t){var r=e.call(this,t)||this;return r.anchors=[],r.index=-1,y.instance.addEventListener("resize",(function(){return r.onResize()})),y.instance.addEventListener("scroll",(function(e){return r.onScroll(e)})),r.createAnchors(),r}return m(t,e),t.prototype.createAnchors=function(){var e=this,t=window.location.href;-1!=t.indexOf("#")&&(t=t.substr(0,t.indexOf("#"))),this.el.querySelectorAll("a").forEach((function(r){var n=r.href;if(-1!=n.indexOf("#")&&n.substr(0,t.length)==t){var i=n.substr(n.indexOf("#")+1),s=document.querySelector("a.tsd-anchor[name="+i+"]"),o=r.parentNode;s&&o&&e.anchors.push({link:o,anchor:s,position:0})}})),this.onResize()},t.prototype.onResize=function(){for(var e,t=0,r=this.anchors.length;t-1&&r[i].position>t;)i-=1;for(;i-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=i,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))},t}(u),g=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),x=function(){function e(e,t){this.signature=e,this.description=t}return e.prototype.addClass=function(e){return this.signature.classList.add(e),this.description.classList.add(e),this},e.prototype.removeClass=function(e){return this.signature.classList.remove(e),this.description.classList.remove(e),this},e}(),w=function(e){function t(t){var r=e.call(this,t)||this;return r.groups=[],r.index=-1,r.createGroups(),r.container&&(r.el.classList.add("active"),Array.from(r.el.children).forEach((function(e){e.addEventListener("touchstart",(function(e){return r.onClick(e)})),e.addEventListener("click",(function(e){return r.onClick(e)}))})),r.container.classList.add("active"),r.setIndex(0)),r}return g(t,e),t.prototype.setIndex=function(e){if(e<0&&(e=0),e>this.groups.length-1&&(e=this.groups.length-1),this.index!=e){var t=this.groups[e];if(this.index>-1){var r=this.groups[this.index];r.removeClass("current").addClass("fade-out"),t.addClass("current"),t.addClass("fade-in"),y.instance.triggerResize(),setTimeout((function(){r.removeClass("fade-out"),t.removeClass("fade-in")}),300)}else t.addClass("current"),y.instance.triggerResize();this.index=e}},t.prototype.createGroups=function(){var e=this.el.children;if(!(e.length<2)){this.container=this.el.nextElementSibling;var t=this.container.children;this.groups=[];for(var r=0;r10}})),document.addEventListener(b,(function(){Q=!1})),document.addEventListener("click",(function(e){k&&(e.preventDefault(),e.stopImmediatePropagation(),k=!1)}));var T=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),_=function(e){function t(t){var r=e.call(this,t)||this;return r.className=r.el.dataset.toggle||"",r.el.addEventListener(b,(function(e){return r.onPointerUp(e)})),r.el.addEventListener("click",(function(e){return e.preventDefault()})),document.addEventListener(L,(function(e){return r.onDocumentPointerDown(e)})),document.addEventListener(b,(function(e){return r.onDocumentPointerUp(e)})),r}return T(t,e),t.prototype.setActive=function(e){if(this.active!=e){this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);var t=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(t),setTimeout((function(){return document.documentElement.classList.remove(t)}),500)}},t.prototype.onPointerUp=function(e){O||(this.setActive(!0),e.preventDefault())},t.prototype.onDocumentPointerDown=function(e){if(this.active){if(e.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}},t.prototype.onDocumentPointerUp=function(e){var t=this;if(!O&&this.active&&e.target.closest(".col-menu")){var r=e.target.closest("a");if(r){var n=window.location.href;-1!=n.indexOf("#")&&(n=n.substr(0,n.indexOf("#"))),r.href.substr(0,n.length)==n&&setTimeout((function(){return t.setActive(!1)}),250)}}},t}(u),C=function(){var e=function(t,r){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(t,r)};return function(t,r){function n(){this.constructor=t}e(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}}(),R=function(){function e(e,t){this.key=e,this.value=t,this.defaultValue=t,this.initialize(),window.localStorage[this.key]&&this.setValue(this.fromLocalStorage(window.localStorage[this.key]))}return e.prototype.initialize=function(){},e.prototype.setValue=function(e){if(this.value!=e){var t=this.value;this.value=e,window.localStorage[this.key]=this.toLocalStorage(e),this.handleValueChange(t,e)}},e}(),I=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return C(t,e),t.prototype.initialize=function(){var e=this,t=document.querySelector("#tsd-filter-"+this.key);t&&(this.checkbox=t,this.checkbox.addEventListener("change",(function(){e.setValue(e.checkbox.checked)})))},t.prototype.handleValueChange=function(e,t){this.checkbox&&(this.checkbox.checked=this.value,document.documentElement.classList.toggle("toggle-"+this.key,this.value!=this.defaultValue))},t.prototype.fromLocalStorage=function(e){return"true"==e},t.prototype.toLocalStorage=function(e){return e?"true":"false"},t}(R),j=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return C(t,e),t.prototype.initialize=function(){var e=this;document.documentElement.classList.add("toggle-"+this.key+this.value);var t=document.querySelector("#tsd-filter-"+this.key);if(t){this.select=t;var r=function(){e.select.classList.add("active")};this.select.addEventListener(L,r),this.select.addEventListener("mouseover",r),this.select.addEventListener("mouseleave",(function(){e.select.classList.remove("active")})),this.select.querySelectorAll("li").forEach((function(r){r.addEventListener(b,(function(r){t.classList.remove("active"),e.setValue(r.target.dataset.value||"")}))})),document.addEventListener(L,(function(t){e.select.contains(t.target)||e.select.classList.remove("active")}))}},t.prototype.handleValueChange=function(e,t){this.select.querySelectorAll("li.selected").forEach((function(e){e.classList.remove("selected")}));var r=this.select.querySelector('li[data-value="'+t+'"]'),n=this.select.querySelector(".tsd-select-label");r&&n&&(r.classList.add("selected"),n.textContent=r.textContent),document.documentElement.classList.remove("toggle-"+e),document.documentElement.classList.add("toggle-"+t)},t.prototype.fromLocalStorage=function(e){return e},t.prototype.toLocalStorage=function(e){return e},t}(R),F=function(e){function t(t){var r=e.call(this,t)||this;return r.optionVisibility=new j("visibility","private"),r.optionInherited=new I("inherited",!0),r.optionExternals=new I("externals",!0),r.optionOnlyExported=new I("only-exported",!1),r}return C(t,e),t.isSupported=function(){try{return void 0!==window.localStorage}catch(e){return!1}},t}(u);r(1);i(h,"#tsd-search"),i(v,".menu-highlight"),i(w,".tsd-signatures"),i(_,"a[data-toggle]"),F.isSupported()?i(F,"#tsd-filter"):document.documentElement.classList.add("no-filter");var N=new a;Object.defineProperty(window,"app",{value:N})}]); \ No newline at end of file diff --git a/docs/assets/js/search.json b/docs/assets/js/search.json deleted file mode 100644 index 96e2fa2..0000000 --- a/docs/assets/js/search.json +++ /dev/null @@ -1 +0,0 @@ -{"kinds":{"2":"Namespace","4":"Enumeration","16":"Enumeration member","32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","2097152":"Object literal","4194304":"Type alias"},"rows":[{"id":0,"kind":256,"name":"DrawableDescriptor","url":"interfaces/drawabledescriptor.html","classes":"tsd-kind-interface"},{"id":1,"kind":1024,"name":"propertyUniformMapping","url":"interfaces/drawabledescriptor.html#propertyuniformmapping","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"DrawableDescriptor"},{"id":2,"kind":65536,"name":"__type","url":"interfaces/drawabledescriptor.html#propertyuniformmapping.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"DrawableDescriptor.propertyUniformMapping"},{"id":3,"kind":1024,"name":"uniformCountMacroName","url":"interfaces/drawabledescriptor.html#uniformcountmacroname","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"DrawableDescriptor"},{"id":4,"kind":1024,"name":"sdf","url":"interfaces/drawabledescriptor.html#sdf","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"DrawableDescriptor"},{"id":5,"kind":1024,"name":"objectCountScaler","url":"interfaces/drawabledescriptor.html#objectcountscaler","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"DrawableDescriptor"},{"id":6,"kind":1024,"name":"shaderCombinationSteps","url":"interfaces/drawabledescriptor.html#shadercombinationsteps","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"DrawableDescriptor"},{"id":7,"kind":1024,"name":"empty","url":"interfaces/drawabledescriptor.html#empty","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"DrawableDescriptor"},{"id":8,"kind":128,"name":"Drawable","url":"classes/drawable.html","classes":"tsd-kind-class"},{"id":9,"kind":1024,"name":"descriptor","url":"classes/drawable.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"Drawable"},{"id":10,"kind":2048,"name":"minDistance","url":"classes/drawable.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Drawable"},{"id":11,"kind":2048,"name":"getObjectToSerialize","url":"classes/drawable.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"Drawable"},{"id":12,"kind":4,"name":"WrapOptions","url":"enums/wrapoptions.html","classes":"tsd-kind-enum"},{"id":13,"kind":16,"name":"CLAMP_TO_EDGE","url":"enums/wrapoptions.html#clamp_to_edge","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WrapOptions"},{"id":14,"kind":16,"name":"REPEAT","url":"enums/wrapoptions.html#repeat","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WrapOptions"},{"id":15,"kind":16,"name":"MIRRORED_REPEAT","url":"enums/wrapoptions.html#mirrored_repeat","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"WrapOptions"},{"id":16,"kind":4,"name":"FilteringOptions","url":"enums/filteringoptions.html","classes":"tsd-kind-enum"},{"id":17,"kind":16,"name":"LINEAR","url":"enums/filteringoptions.html#linear","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"FilteringOptions"},{"id":18,"kind":16,"name":"NEAREST","url":"enums/filteringoptions.html#nearest","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"FilteringOptions"},{"id":19,"kind":256,"name":"TextureOptions","url":"interfaces/textureoptions.html","classes":"tsd-kind-interface"},{"id":20,"kind":1024,"name":"wrapS","url":"interfaces/textureoptions.html#wraps","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"TextureOptions"},{"id":21,"kind":1024,"name":"wrapT","url":"interfaces/textureoptions.html#wrapt","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"TextureOptions"},{"id":22,"kind":1024,"name":"minFilter","url":"interfaces/textureoptions.html#minfilter","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"TextureOptions"},{"id":23,"kind":1024,"name":"maxFilter","url":"interfaces/textureoptions.html#maxfilter","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"TextureOptions"},{"id":24,"kind":4194304,"name":"TextureWithOptions","url":"globals.html#texturewithoptions","classes":"tsd-kind-type-alias"},{"id":25,"kind":65536,"name":"__type","url":"globals.html#texturewithoptions.__type","classes":"tsd-kind-type-literal tsd-parent-kind-type-alias","parent":"TextureWithOptions"},{"id":26,"kind":32,"name":"source","url":"globals.html#texturewithoptions.__type.source","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"TextureWithOptions.__type"},{"id":27,"kind":32,"name":"overrides","url":"globals.html#texturewithoptions.__type.overrides","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"TextureWithOptions.__type"},{"id":28,"kind":256,"name":"RuntimeSettings","url":"interfaces/runtimesettings.html","classes":"tsd-kind-interface"},{"id":29,"kind":1024,"name":"enableHighDpiRendering","url":"interfaces/runtimesettings.html#enablehighdpirendering","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":30,"kind":1024,"name":"tileMultiplier","url":"interfaces/runtimesettings.html#tilemultiplier","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":31,"kind":1024,"name":"isWorldInverted","url":"interfaces/runtimesettings.html#isworldinverted","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":32,"kind":1024,"name":"lightCutoffDistance","url":"interfaces/runtimesettings.html#lightcutoffdistance","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":33,"kind":1024,"name":"colorPalette","url":"interfaces/runtimesettings.html#colorpalette","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":34,"kind":1024,"name":"distanceRenderScale","url":"interfaces/runtimesettings.html#distancerenderscale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":35,"kind":1024,"name":"lightsRenderScale","url":"interfaces/runtimesettings.html#lightsrenderscale","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":36,"kind":1024,"name":"motionBlur","url":"interfaces/runtimesettings.html#motionblur","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":37,"kind":1024,"name":"textures","url":"interfaces/runtimesettings.html#textures","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":38,"kind":65536,"name":"__type","url":"interfaces/runtimesettings.html#textures.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"RuntimeSettings.textures"},{"id":39,"kind":1024,"name":"ambientLight","url":"interfaces/runtimesettings.html#ambientlight","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RuntimeSettings"},{"id":40,"kind":256,"name":"StartupSettings","url":"interfaces/startupsettings.html","classes":"tsd-kind-interface"},{"id":41,"kind":1024,"name":"enableStopwatch","url":"interfaces/startupsettings.html#enablestopwatch","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"StartupSettings"},{"id":42,"kind":1024,"name":"shadowTraceCount","url":"interfaces/startupsettings.html#shadowtracecount","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"StartupSettings"},{"id":43,"kind":1024,"name":"lightPenetrationRatio","url":"interfaces/startupsettings.html#lightpenetrationratio","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"StartupSettings"},{"id":44,"kind":1024,"name":"paletteSize","url":"interfaces/startupsettings.html#palettesize","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"StartupSettings"},{"id":45,"kind":1024,"name":"enableContextLostSimulator","url":"interfaces/startupsettings.html#enablecontextlostsimulator","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"StartupSettings"},{"id":46,"kind":1024,"name":"backgroundColor","url":"interfaces/startupsettings.html#backgroundcolor","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"StartupSettings"},{"id":47,"kind":1024,"name":"ignoreWebGL2","url":"interfaces/startupsettings.html#ignorewebgl2","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"StartupSettings"},{"id":48,"kind":256,"name":"RendererInfo","url":"interfaces/rendererinfo.html","classes":"tsd-kind-interface"},{"id":49,"kind":1024,"name":"isWebGL2","url":"interfaces/rendererinfo.html#iswebgl2","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":50,"kind":1024,"name":"vendor","url":"interfaces/rendererinfo.html#vendor","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":51,"kind":1024,"name":"renderer","url":"interfaces/rendererinfo.html#renderer","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":52,"kind":1024,"name":"sdf2dVersion","url":"interfaces/rendererinfo.html#sdf2dversion","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":53,"kind":1024,"name":"extensions","url":"interfaces/rendererinfo.html#extensions","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":54,"kind":65536,"name":"__type","url":"interfaces/rendererinfo.html#extensions.__type","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"RendererInfo.extensions"},{"id":55,"kind":1024,"name":"floatInterpolationEnabled","url":"interfaces/rendererinfo.html#floatinterpolationenabled","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":56,"kind":1024,"name":"programCount","url":"interfaces/rendererinfo.html#programcount","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":57,"kind":1024,"name":"renderPasses","url":"interfaces/rendererinfo.html#renderpasses","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":58,"kind":65536,"name":"__type","url":"interfaces/rendererinfo.html#renderpasses.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-property","parent":"RendererInfo.renderPasses"},{"id":59,"kind":32,"name":"distance","url":"interfaces/rendererinfo.html#renderpasses.__type-1.distance","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type"},{"id":60,"kind":65536,"name":"__type","url":"interfaces/rendererinfo.html#renderpasses.__type-1.distance.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"RendererInfo.renderPasses.__type.distance"},{"id":61,"kind":32,"name":"renderScale","url":"interfaces/rendererinfo.html#renderpasses.__type-1.distance.__type-2.renderscale","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type.distance.__type"},{"id":62,"kind":32,"name":"drawableCount","url":"interfaces/rendererinfo.html#renderpasses.__type-1.distance.__type-2.drawablecount","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type.distance.__type"},{"id":63,"kind":32,"name":"drawnDrawableCount","url":"interfaces/rendererinfo.html#renderpasses.__type-1.distance.__type-2.drawndrawablecount","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type.distance.__type"},{"id":64,"kind":32,"name":"tileCount","url":"interfaces/rendererinfo.html#renderpasses.__type-1.distance.__type-2.tilecount","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type.distance.__type"},{"id":65,"kind":32,"name":"lights","url":"interfaces/rendererinfo.html#renderpasses.__type-1.lights","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type"},{"id":66,"kind":65536,"name":"__type","url":"interfaces/rendererinfo.html#renderpasses.__type-1.lights.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"RendererInfo.renderPasses.__type.lights"},{"id":67,"kind":32,"name":"renderScale","url":"interfaces/rendererinfo.html#renderpasses.__type-1.lights.__type-3.renderscale-1","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type.lights.__type"},{"id":68,"kind":32,"name":"drawnDrawableCount","url":"interfaces/rendererinfo.html#renderpasses.__type-1.lights.__type-3.drawndrawablecount-1","classes":"tsd-kind-variable tsd-parent-kind-type-literal","parent":"RendererInfo.renderPasses.__type.lights.__type"},{"id":69,"kind":1024,"name":"startupTimeInMilliseconds","url":"interfaces/rendererinfo.html#startuptimeinmilliseconds","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RendererInfo"},{"id":70,"kind":256,"name":"Renderer","url":"interfaces/renderer.html","classes":"tsd-kind-interface"},{"id":71,"kind":1024,"name":"canvasSize","url":"interfaces/renderer.html#canvassize","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Renderer"},{"id":72,"kind":1024,"name":"viewAreaSize","url":"interfaces/renderer.html#viewareasize","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Renderer"},{"id":73,"kind":2048,"name":"setViewArea","url":"interfaces/renderer.html#setviewarea","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Renderer"},{"id":74,"kind":2048,"name":"displayToWorldCoordinates","url":"interfaces/renderer.html#displaytoworldcoordinates","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Renderer"},{"id":75,"kind":2048,"name":"worldToDisplayCoordinates","url":"interfaces/renderer.html#worldtodisplaycoordinates","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Renderer"},{"id":76,"kind":2048,"name":"setRuntimeSettings","url":"interfaces/renderer.html#setruntimesettings","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Renderer"},{"id":77,"kind":2048,"name":"addDrawable","url":"interfaces/renderer.html#adddrawable","classes":"tsd-kind-method tsd-parent-kind-interface tsd-has-type-parameter","parent":"Renderer"},{"id":78,"kind":2048,"name":"renderDrawables","url":"interfaces/renderer.html#renderdrawables","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Renderer"},{"id":79,"kind":2048,"name":"destroy","url":"interfaces/renderer.html#destroy","classes":"tsd-kind-method tsd-parent-kind-interface","parent":"Renderer"},{"id":80,"kind":1024,"name":"insights","url":"interfaces/renderer.html#insights","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Renderer"},{"id":81,"kind":128,"name":"CircleLight","url":"classes/circlelight.html","classes":"tsd-kind-class"},{"id":82,"kind":2097152,"name":"descriptor","url":"classes/circlelight.html#descriptor","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"CircleLight"},{"id":83,"kind":2097152,"name":"propertyUniformMapping","url":"classes/circlelight.html#descriptor.propertyuniformmapping","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"CircleLight.descriptor"},{"id":84,"kind":32,"name":"center","url":"classes/circlelight.html#descriptor.propertyuniformmapping.center-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"CircleLight.descriptor.propertyUniformMapping"},{"id":85,"kind":32,"name":"color","url":"classes/circlelight.html#descriptor.propertyuniformmapping.color-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"CircleLight.descriptor.propertyUniformMapping"},{"id":86,"kind":32,"name":"intensity","url":"classes/circlelight.html#descriptor.propertyuniformmapping.intensity-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"CircleLight.descriptor.propertyUniformMapping"},{"id":87,"kind":32,"name":"uniformCountMacroName","url":"classes/circlelight.html#descriptor.uniformcountmacroname","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"CircleLight.descriptor"},{"id":88,"kind":32,"name":"shaderCombinationSteps","url":"classes/circlelight.html#descriptor.shadercombinationsteps","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"CircleLight.descriptor"},{"id":89,"kind":32,"name":"empty","url":"classes/circlelight.html#descriptor.empty","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"CircleLight.descriptor"},{"id":90,"kind":512,"name":"constructor","url":"classes/circlelight.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"CircleLight"},{"id":91,"kind":1024,"name":"lightnessRatio","url":"classes/circlelight.html#lightnessratio","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"CircleLight"},{"id":92,"kind":1024,"name":"center","url":"classes/circlelight.html#center","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"CircleLight"},{"id":93,"kind":1024,"name":"color","url":"classes/circlelight.html#color","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"CircleLight"},{"id":94,"kind":1024,"name":"intensity","url":"classes/circlelight.html#intensity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"CircleLight"},{"id":95,"kind":2048,"name":"setLightnessRatio","url":"classes/circlelight.html#setlightnessratio","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"CircleLight"},{"id":96,"kind":2048,"name":"minDistance","url":"classes/circlelight.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"CircleLight"},{"id":97,"kind":2048,"name":"getObjectToSerialize","url":"classes/circlelight.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"CircleLight"},{"id":98,"kind":128,"name":"Flashlight","url":"classes/flashlight.html","classes":"tsd-kind-class"},{"id":99,"kind":2097152,"name":"descriptor","url":"classes/flashlight.html#descriptor","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"Flashlight"},{"id":100,"kind":2097152,"name":"propertyUniformMapping","url":"classes/flashlight.html#descriptor.propertyuniformmapping","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"Flashlight.descriptor"},{"id":101,"kind":32,"name":"center","url":"classes/flashlight.html#descriptor.propertyuniformmapping.center-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor.propertyUniformMapping"},{"id":102,"kind":32,"name":"color","url":"classes/flashlight.html#descriptor.propertyuniformmapping.color-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor.propertyUniformMapping"},{"id":103,"kind":32,"name":"intensity","url":"classes/flashlight.html#descriptor.propertyuniformmapping.intensity-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor.propertyUniformMapping"},{"id":104,"kind":32,"name":"direction","url":"classes/flashlight.html#descriptor.propertyuniformmapping.direction-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor.propertyUniformMapping"},{"id":105,"kind":32,"name":"startCutoff","url":"classes/flashlight.html#descriptor.propertyuniformmapping.startcutoff-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor.propertyUniformMapping"},{"id":106,"kind":32,"name":"uniformCountMacroName","url":"classes/flashlight.html#descriptor.uniformcountmacroname","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor"},{"id":107,"kind":32,"name":"shaderCombinationSteps","url":"classes/flashlight.html#descriptor.shadercombinationsteps","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor"},{"id":108,"kind":32,"name":"empty","url":"classes/flashlight.html#descriptor.empty","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"Flashlight.descriptor"},{"id":109,"kind":512,"name":"constructor","url":"classes/flashlight.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite","parent":"Flashlight"},{"id":110,"kind":1024,"name":"direction","url":"classes/flashlight.html#direction","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Flashlight"},{"id":111,"kind":1024,"name":"startCutoff","url":"classes/flashlight.html#startcutoff","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Flashlight"},{"id":112,"kind":2048,"name":"getObjectToSerialize","url":"classes/flashlight.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-protected","parent":"Flashlight"},{"id":113,"kind":1024,"name":"lightnessRatio","url":"classes/flashlight.html#lightnessratio","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected","parent":"Flashlight"},{"id":114,"kind":1024,"name":"center","url":"classes/flashlight.html#center","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Flashlight"},{"id":115,"kind":1024,"name":"color","url":"classes/flashlight.html#color","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Flashlight"},{"id":116,"kind":1024,"name":"intensity","url":"classes/flashlight.html#intensity","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"Flashlight"},{"id":117,"kind":2048,"name":"setLightnessRatio","url":"classes/flashlight.html#setlightnessratio","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-inherited","parent":"Flashlight"},{"id":118,"kind":2048,"name":"minDistance","url":"classes/flashlight.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"Flashlight"},{"id":119,"kind":128,"name":"CircleBase","url":"classes/circlebase.html","classes":"tsd-kind-class"},{"id":120,"kind":512,"name":"constructor","url":"classes/circlebase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"CircleBase"},{"id":121,"kind":1024,"name":"center","url":"classes/circlebase.html#center","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CircleBase"},{"id":122,"kind":1024,"name":"radius","url":"classes/circlebase.html#radius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"CircleBase"},{"id":123,"kind":1024,"name":"descriptor","url":"classes/circlebase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"CircleBase"},{"id":124,"kind":2048,"name":"minDistance","url":"classes/circlebase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"CircleBase"},{"id":125,"kind":2048,"name":"getObjectToSerialize","url":"classes/circlebase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"CircleBase"},{"id":126,"kind":64,"name":"CircleFactory","url":"globals.html#circlefactory","classes":"tsd-kind-function"},{"id":127,"kind":128,"name":"HexagonBase","url":"classes/hexagonbase.html","classes":"tsd-kind-class"},{"id":128,"kind":512,"name":"constructor","url":"classes/hexagonbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"HexagonBase"},{"id":129,"kind":1024,"name":"center","url":"classes/hexagonbase.html#center","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HexagonBase"},{"id":130,"kind":1024,"name":"radius","url":"classes/hexagonbase.html#radius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"HexagonBase"},{"id":131,"kind":1024,"name":"descriptor","url":"classes/hexagonbase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"HexagonBase"},{"id":132,"kind":2048,"name":"minDistance","url":"classes/hexagonbase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"HexagonBase"},{"id":133,"kind":2048,"name":"getObjectToSerialize","url":"classes/hexagonbase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"HexagonBase"},{"id":134,"kind":64,"name":"HexagonFactory","url":"globals.html#hexagonfactory","classes":"tsd-kind-function"},{"id":135,"kind":128,"name":"ColorfulCircle","url":"classes/colorfulcircle.html","classes":"tsd-kind-class"},{"id":136,"kind":2097152,"name":"descriptor","url":"classes/colorfulcircle.html#descriptor","classes":"tsd-kind-object-literal tsd-parent-kind-class tsd-is-overwrite tsd-is-static","parent":"ColorfulCircle"},{"id":137,"kind":2097152,"name":"sdf","url":"classes/colorfulcircle.html#descriptor.sdf","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor"},{"id":138,"kind":32,"name":"shader","url":"classes/colorfulcircle.html#descriptor.sdf.shader","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor.sdf"},{"id":139,"kind":32,"name":"distanceFunctionName","url":"classes/colorfulcircle.html#descriptor.sdf.distancefunctionname","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor.sdf"},{"id":140,"kind":2097152,"name":"propertyUniformMapping","url":"classes/colorfulcircle.html#descriptor.propertyuniformmapping","classes":"tsd-kind-object-literal tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor"},{"id":141,"kind":32,"name":"center","url":"classes/colorfulcircle.html#descriptor.propertyuniformmapping.center-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor.propertyUniformMapping"},{"id":142,"kind":32,"name":"radius","url":"classes/colorfulcircle.html#descriptor.propertyuniformmapping.radius-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor.propertyUniformMapping"},{"id":143,"kind":32,"name":"colorIndex","url":"classes/colorfulcircle.html#descriptor.propertyuniformmapping.colorindex-1","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor.propertyUniformMapping"},{"id":144,"kind":32,"name":"uniformCountMacroName","url":"classes/colorfulcircle.html#descriptor.uniformcountmacroname","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor"},{"id":145,"kind":32,"name":"shaderCombinationSteps","url":"classes/colorfulcircle.html#descriptor.shadercombinationsteps","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor"},{"id":146,"kind":32,"name":"empty","url":"classes/colorfulcircle.html#descriptor.empty","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"ColorfulCircle.descriptor"},{"id":147,"kind":512,"name":"constructor","url":"classes/colorfulcircle.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"ColorfulCircle"},{"id":148,"kind":1024,"name":"center","url":"classes/colorfulcircle.html#center","classes":"tsd-kind-property tsd-parent-kind-class","parent":"ColorfulCircle"},{"id":149,"kind":1024,"name":"radius","url":"classes/colorfulcircle.html#radius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"ColorfulCircle"},{"id":150,"kind":1024,"name":"colorIndex","url":"classes/colorfulcircle.html#colorindex","classes":"tsd-kind-property tsd-parent-kind-class","parent":"ColorfulCircle"},{"id":151,"kind":2048,"name":"minDistance","url":"classes/colorfulcircle.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite","parent":"ColorfulCircle"},{"id":152,"kind":2048,"name":"getObjectToSerialize","url":"classes/colorfulcircle.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-protected","parent":"ColorfulCircle"},{"id":153,"kind":128,"name":"DropletBase","url":"classes/dropletbase.html","classes":"tsd-kind-class"},{"id":154,"kind":512,"name":"constructor","url":"classes/dropletbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DropletBase"},{"id":155,"kind":1024,"name":"from","url":"classes/dropletbase.html#from","classes":"tsd-kind-property tsd-parent-kind-class","parent":"DropletBase"},{"id":156,"kind":1024,"name":"to","url":"classes/dropletbase.html#to","classes":"tsd-kind-property tsd-parent-kind-class","parent":"DropletBase"},{"id":157,"kind":1024,"name":"fromRadius","url":"classes/dropletbase.html#fromradius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"DropletBase"},{"id":158,"kind":1024,"name":"toRadius","url":"classes/dropletbase.html#toradius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"DropletBase"},{"id":159,"kind":1024,"name":"descriptor","url":"classes/dropletbase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"DropletBase"},{"id":160,"kind":2048,"name":"minDistance","url":"classes/dropletbase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"DropletBase"},{"id":161,"kind":2048,"name":"getObjectToSerialize","url":"classes/dropletbase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"DropletBase"},{"id":162,"kind":64,"name":"DropletFactory","url":"globals.html#dropletfactory","classes":"tsd-kind-function"},{"id":163,"kind":128,"name":"InvertedTunnelBase","url":"classes/invertedtunnelbase.html","classes":"tsd-kind-class"},{"id":164,"kind":512,"name":"constructor","url":"classes/invertedtunnelbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"InvertedTunnelBase"},{"id":165,"kind":1024,"name":"from","url":"classes/invertedtunnelbase.html#from","classes":"tsd-kind-property tsd-parent-kind-class","parent":"InvertedTunnelBase"},{"id":166,"kind":1024,"name":"to","url":"classes/invertedtunnelbase.html#to","classes":"tsd-kind-property tsd-parent-kind-class","parent":"InvertedTunnelBase"},{"id":167,"kind":1024,"name":"fromRadius","url":"classes/invertedtunnelbase.html#fromradius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"InvertedTunnelBase"},{"id":168,"kind":1024,"name":"toRadius","url":"classes/invertedtunnelbase.html#toradius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"InvertedTunnelBase"},{"id":169,"kind":1024,"name":"descriptor","url":"classes/invertedtunnelbase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"InvertedTunnelBase"},{"id":170,"kind":2048,"name":"minDistance","url":"classes/invertedtunnelbase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"InvertedTunnelBase"},{"id":171,"kind":2048,"name":"getObjectToSerialize","url":"classes/invertedtunnelbase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"InvertedTunnelBase"},{"id":172,"kind":64,"name":"InvertedTunnelFactory","url":"globals.html#invertedtunnelfactory","classes":"tsd-kind-function"},{"id":173,"kind":128,"name":"MetaCircleBase","url":"classes/metacirclebase.html","classes":"tsd-kind-class"},{"id":174,"kind":512,"name":"constructor","url":"classes/metacirclebase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"MetaCircleBase"},{"id":175,"kind":1024,"name":"center","url":"classes/metacirclebase.html#center","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MetaCircleBase"},{"id":176,"kind":1024,"name":"radius","url":"classes/metacirclebase.html#radius","classes":"tsd-kind-property tsd-parent-kind-class","parent":"MetaCircleBase"},{"id":177,"kind":1024,"name":"descriptor","url":"classes/metacirclebase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"MetaCircleBase"},{"id":178,"kind":2048,"name":"minDistance","url":"classes/metacirclebase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"MetaCircleBase"},{"id":179,"kind":2048,"name":"getObjectToSerialize","url":"classes/metacirclebase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"MetaCircleBase"},{"id":180,"kind":32,"name":"_id","url":"globals.html#_id","classes":"tsd-kind-variable"},{"id":181,"kind":64,"name":"MetaCircleFactory","url":"globals.html#metacirclefactory","classes":"tsd-kind-function"},{"id":182,"kind":128,"name":"PolygonBase","url":"classes/polygonbase.html","classes":"tsd-kind-class"},{"id":183,"kind":512,"name":"constructor","url":"classes/polygonbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"PolygonBase"},{"id":184,"kind":1024,"name":"vertices","url":"classes/polygonbase.html#vertices","classes":"tsd-kind-property tsd-parent-kind-class","parent":"PolygonBase"},{"id":185,"kind":1024,"name":"descriptor","url":"classes/polygonbase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"PolygonBase"},{"id":186,"kind":2048,"name":"minDistance","url":"classes/polygonbase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"PolygonBase"},{"id":187,"kind":2048,"name":"getObjectToSerialize","url":"classes/polygonbase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"PolygonBase"},{"id":188,"kind":64,"name":"PolygonFactory","url":"globals.html#polygonfactory","classes":"tsd-kind-function"},{"id":189,"kind":256,"name":"NoisyPolygonBase","url":"interfaces/noisypolygonbase.html","classes":"tsd-kind-interface"},{"id":190,"kind":1024,"name":"randomOffset","url":"interfaces/noisypolygonbase.html#randomoffset","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"NoisyPolygonBase"},{"id":191,"kind":512,"name":"constructor","url":"interfaces/noisypolygonbase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-interface tsd-is-inherited","parent":"NoisyPolygonBase"},{"id":192,"kind":1024,"name":"vertices","url":"interfaces/noisypolygonbase.html#vertices","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"NoisyPolygonBase"},{"id":193,"kind":1024,"name":"descriptor","url":"interfaces/noisypolygonbase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"NoisyPolygonBase"},{"id":194,"kind":2048,"name":"minDistance","url":"interfaces/noisypolygonbase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited","parent":"NoisyPolygonBase"},{"id":195,"kind":2048,"name":"getObjectToSerialize","url":"interfaces/noisypolygonbase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-interface tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"NoisyPolygonBase"},{"id":196,"kind":64,"name":"NoisyPolygonFactory","url":"globals.html#noisypolygonfactory","classes":"tsd-kind-function"},{"id":197,"kind":128,"name":"RotatedRectangleBase","url":"classes/rotatedrectanglebase.html","classes":"tsd-kind-class"},{"id":198,"kind":512,"name":"constructor","url":"classes/rotatedrectanglebase.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"RotatedRectangleBase"},{"id":199,"kind":1024,"name":"center","url":"classes/rotatedrectanglebase.html#center","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RotatedRectangleBase"},{"id":200,"kind":1024,"name":"size","url":"classes/rotatedrectanglebase.html#size","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RotatedRectangleBase"},{"id":201,"kind":1024,"name":"rotation","url":"classes/rotatedrectanglebase.html#rotation","classes":"tsd-kind-property tsd-parent-kind-class","parent":"RotatedRectangleBase"},{"id":202,"kind":1024,"name":"descriptor","url":"classes/rotatedrectanglebase.html#descriptor","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-static","parent":"RotatedRectangleBase"},{"id":203,"kind":2048,"name":"minDistance","url":"classes/rotatedrectanglebase.html#mindistance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"RotatedRectangleBase"},{"id":204,"kind":2048,"name":"getObjectToSerialize","url":"classes/rotatedrectanglebase.html#getobjecttoserialize","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited tsd-is-protected","parent":"RotatedRectangleBase"},{"id":205,"kind":64,"name":"RotatedRectangleFactory","url":"globals.html#rotatedrectanglefactory","classes":"tsd-kind-function"},{"id":206,"kind":64,"name":"renderNoise","url":"globals.html#rendernoise","classes":"tsd-kind-function"},{"id":207,"kind":64,"name":"rgb255","url":"globals.html#rgb255","classes":"tsd-kind-function"},{"id":208,"kind":64,"name":"hex","url":"globals.html#hex","classes":"tsd-kind-function"},{"id":209,"kind":64,"name":"rgb","url":"globals.html#rgb","classes":"tsd-kind-function"},{"id":210,"kind":64,"name":"hsl","url":"globals.html#hsl","classes":"tsd-kind-function"},{"id":211,"kind":64,"name":"rgba","url":"globals.html#rgba","classes":"tsd-kind-function"},{"id":212,"kind":64,"name":"rgba255","url":"globals.html#rgba255","classes":"tsd-kind-function"},{"id":213,"kind":128,"name":"DeltaTimeCalculator","url":"classes/deltatimecalculator.html","classes":"tsd-kind-class"},{"id":214,"kind":512,"name":"constructor","url":"classes/deltatimecalculator.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"DeltaTimeCalculator"},{"id":215,"kind":2048,"name":"getNextDeltaTime","url":"classes/deltatimecalculator.html#getnextdeltatime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeltaTimeCalculator"},{"id":216,"kind":2048,"name":"destroy","url":"classes/deltatimecalculator.html#destroy","classes":"tsd-kind-method tsd-parent-kind-class","parent":"DeltaTimeCalculator"},{"id":217,"kind":128,"name":"FpsQualityAutoscaler","url":"classes/fpsqualityautoscaler.html","classes":"tsd-kind-class"},{"id":218,"kind":1024,"name":"fpsTarget","url":"classes/fpsqualityautoscaler.html#fpstarget","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"FpsQualityAutoscaler"},{"id":219,"kind":1024,"name":"fpsHysteresis","url":"classes/fpsqualityautoscaler.html#fpshysteresis","classes":"tsd-kind-property tsd-parent-kind-class","parent":"FpsQualityAutoscaler"},{"id":220,"kind":512,"name":"constructor","url":"classes/fpsqualityautoscaler.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"FpsQualityAutoscaler"},{"id":221,"kind":262144,"name":"FPS","url":"classes/fpsqualityautoscaler.html#fps","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"FpsQualityAutoscaler"},{"id":222,"kind":2048,"name":"addDeltaTime","url":"classes/fpsqualityautoscaler.html#adddeltatime","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FpsQualityAutoscaler"},{"id":223,"kind":64,"name":"runAnimation","url":"globals.html#runanimation","classes":"tsd-kind-function"},{"id":224,"kind":2,"name":"__global","url":"modules/__global.html","classes":"tsd-kind-namespace"},{"id":225,"kind":256,"name":"Array","url":"interfaces/__global.array.html","classes":"tsd-kind-interface tsd-parent-kind-namespace tsd-has-type-parameter","parent":"__global"},{"id":226,"kind":1024,"name":"x","url":"interfaces/__global.array.html#x","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"__global.Array"},{"id":227,"kind":1024,"name":"y","url":"interfaces/__global.array.html#y","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"__global.Array"},{"id":228,"kind":256,"name":"ReadonlyArray","url":"interfaces/__global.readonlyarray.html","classes":"tsd-kind-interface tsd-parent-kind-namespace tsd-has-type-parameter","parent":"__global"},{"id":229,"kind":1024,"name":"x","url":"interfaces/__global.readonlyarray.html#x","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"__global.ReadonlyArray"},{"id":230,"kind":1024,"name":"y","url":"interfaces/__global.readonlyarray.html#y","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"__global.ReadonlyArray"},{"id":231,"kind":256,"name":"Float32Array","url":"interfaces/__global.float32array.html","classes":"tsd-kind-interface tsd-parent-kind-namespace","parent":"__global"},{"id":232,"kind":1024,"name":"x","url":"interfaces/__global.float32array.html#x","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"__global.Float32Array"},{"id":233,"kind":1024,"name":"y","url":"interfaces/__global.float32array.html#y","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"__global.Float32Array"},{"id":234,"kind":2097152,"name":"defaultRuntimeSettings","url":"globals.html#defaultruntimesettings","classes":"tsd-kind-object-literal"},{"id":235,"kind":32,"name":"enableHighDpiRendering","url":"globals.html#defaultruntimesettings.enablehighdpirendering","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":236,"kind":32,"name":"tileMultiplier","url":"globals.html#defaultruntimesettings.tilemultiplier","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":237,"kind":32,"name":"isWorldInverted","url":"globals.html#defaultruntimesettings.isworldinverted","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":238,"kind":32,"name":"lightCutoffDistance","url":"globals.html#defaultruntimesettings.lightcutoffdistance","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":239,"kind":32,"name":"distanceRenderScale","url":"globals.html#defaultruntimesettings.distancerenderscale","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":240,"kind":32,"name":"lightsRenderScale","url":"globals.html#defaultruntimesettings.lightsrenderscale","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":241,"kind":32,"name":"colorPalette","url":"globals.html#defaultruntimesettings.colorpalette","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":242,"kind":32,"name":"motionBlur","url":"globals.html#defaultruntimesettings.motionblur","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":243,"kind":32,"name":"ambientLight","url":"globals.html#defaultruntimesettings.ambientlight","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":244,"kind":32,"name":"textures","url":"globals.html#defaultruntimesettings.textures","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultRuntimeSettings"},{"id":245,"kind":65536,"name":"__type","url":"globals.html#defaultruntimesettings.textures.__type","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"defaultRuntimeSettings.textures"},{"id":246,"kind":2097152,"name":"defaultStartupSettings","url":"globals.html#defaultstartupsettings","classes":"tsd-kind-object-literal"},{"id":247,"kind":32,"name":"shadowTraceCount","url":"globals.html#defaultstartupsettings.shadowtracecount","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultStartupSettings"},{"id":248,"kind":32,"name":"paletteSize","url":"globals.html#defaultstartupsettings.palettesize","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultStartupSettings"},{"id":249,"kind":32,"name":"ignoreWebGL2","url":"globals.html#defaultstartupsettings.ignorewebgl2","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultStartupSettings"},{"id":250,"kind":32,"name":"backgroundColor","url":"globals.html#defaultstartupsettings.backgroundcolor","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultStartupSettings"},{"id":251,"kind":32,"name":"lightPenetrationRatio","url":"globals.html#defaultstartupsettings.lightpenetrationratio","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultStartupSettings"},{"id":252,"kind":32,"name":"enableStopwatch","url":"globals.html#defaultstartupsettings.enablestopwatch","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultStartupSettings"},{"id":253,"kind":32,"name":"enableContextLostSimulator","url":"globals.html#defaultstartupsettings.enablecontextlostsimulator","classes":"tsd-kind-variable tsd-parent-kind-object-literal","parent":"defaultStartupSettings"},{"id":254,"kind":64,"name":"compile","url":"globals.html#compile","classes":"tsd-kind-function"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,35.303]],["parent/0",[]],["name/1",[1,40.411]],["parent/1",[0,3.253]],["name/2",[2,34.051]],["parent/2",[3,4.736]],["name/3",[4,40.411]],["parent/3",[0,3.253]],["name/4",[5,46.289]],["parent/4",[0,3.253]],["name/5",[6,51.397]],["parent/5",[0,3.253]],["name/6",[7,40.411]],["parent/6",[0,3.253]],["name/7",[8,40.411]],["parent/7",[0,3.253]],["name/8",[9,40.411]],["parent/8",[]],["name/9",[10,30.194]],["parent/9",[9,3.723]],["name/10",[11,30.194]],["parent/10",[9,3.723]],["name/11",[12,30.194]],["parent/11",[9,3.723]],["name/12",[13,40.411]],["parent/12",[]],["name/13",[14,51.397]],["parent/13",[13,3.723]],["name/14",[15,51.397]],["parent/14",[13,3.723]],["name/15",[16,51.397]],["parent/15",[13,3.723]],["name/16",[17,42.924]],["parent/16",[]],["name/17",[18,51.397]],["parent/17",[17,3.955]],["name/18",[19,51.397]],["parent/18",[17,3.955]],["name/19",[20,38.404]],["parent/19",[]],["name/20",[21,51.397]],["parent/20",[20,3.539]],["name/21",[22,51.397]],["parent/21",[20,3.539]],["name/22",[23,51.397]],["parent/22",[20,3.539]],["name/23",[24,51.397]],["parent/23",[20,3.539]],["name/24",[25,46.289]],["parent/24",[]],["name/25",[2,34.051]],["parent/25",[25,4.265]],["name/26",[26,51.397]],["parent/26",[27,4.265]],["name/27",[28,51.397]],["parent/27",[27,4.265]],["name/28",[29,31.028]],["parent/28",[]],["name/29",[30,46.289]],["parent/29",[29,2.859]],["name/30",[31,46.289]],["parent/30",[29,2.859]],["name/31",[32,46.289]],["parent/31",[29,2.859]],["name/32",[33,46.289]],["parent/32",[29,2.859]],["name/33",[34,46.289]],["parent/33",[29,2.859]],["name/34",[35,46.289]],["parent/34",[29,2.859]],["name/35",[36,46.289]],["parent/35",[29,2.859]],["name/36",[37,46.289]],["parent/36",[29,2.859]],["name/37",[38,46.289]],["parent/37",[29,2.859]],["name/38",[2,34.051]],["parent/38",[39,4.736]],["name/39",[40,46.289]],["parent/39",[29,2.859]],["name/40",[41,34.051]],["parent/40",[]],["name/41",[42,46.289]],["parent/41",[41,3.137]],["name/42",[43,46.289]],["parent/42",[41,3.137]],["name/43",[44,46.289]],["parent/43",[41,3.137]],["name/44",[45,46.289]],["parent/44",[41,3.137]],["name/45",[46,46.289]],["parent/45",[41,3.137]],["name/46",[47,46.289]],["parent/46",[41,3.137]],["name/47",[48,46.289]],["parent/47",[41,3.137]],["name/48",[49,31.938]],["parent/48",[]],["name/49",[50,51.397]],["parent/49",[49,2.943]],["name/50",[51,51.397]],["parent/50",[49,2.943]],["name/51",[52,30.194]],["parent/51",[49,2.943]],["name/52",[53,51.397]],["parent/52",[49,2.943]],["name/53",[54,51.397]],["parent/53",[49,2.943]],["name/54",[2,34.051]],["parent/54",[55,4.736]],["name/55",[56,51.397]],["parent/55",[49,2.943]],["name/56",[57,51.397]],["parent/56",[49,2.943]],["name/57",[58,51.397]],["parent/57",[49,2.943]],["name/58",[2,34.051]],["parent/58",[59,4.736]],["name/59",[60,51.397]],["parent/59",[61,4.265]],["name/60",[2,34.051]],["parent/60",[62,4.736]],["name/61",[63,46.289]],["parent/61",[64,3.723]],["name/62",[65,51.397]],["parent/62",[64,3.723]],["name/63",[66,46.289]],["parent/63",[64,3.723]],["name/64",[67,51.397]],["parent/64",[64,3.723]],["name/65",[68,51.397]],["parent/65",[61,4.265]],["name/66",[2,34.051]],["parent/66",[69,4.736]],["name/67",[63,46.289]],["parent/67",[70,4.265]],["name/68",[66,46.289]],["parent/68",[70,4.265]],["name/69",[71,51.397]],["parent/69",[49,2.943]],["name/70",[52,30.194]],["parent/70",[]],["name/71",[72,51.397]],["parent/71",[52,2.782]],["name/72",[73,51.397]],["parent/72",[52,2.782]],["name/73",[74,51.397]],["parent/73",[52,2.782]],["name/74",[75,51.397]],["parent/74",[52,2.782]],["name/75",[76,51.397]],["parent/75",[52,2.782]],["name/76",[77,51.397]],["parent/76",[52,2.782]],["name/77",[78,51.397]],["parent/77",[52,2.782]],["name/78",[79,51.397]],["parent/78",[52,2.782]],["name/79",[80,46.289]],["parent/79",[52,2.782]],["name/80",[81,51.397]],["parent/80",[52,2.782]],["name/81",[82,31.938]],["parent/81",[]],["name/82",[10,30.194]],["parent/82",[82,2.943]],["name/83",[1,40.411]],["parent/83",[83,3.723]],["name/84",[84,31.938]],["parent/84",[85,3.955]],["name/85",[86,40.411]],["parent/85",[85,3.955]],["name/86",[87,40.411]],["parent/86",[85,3.955]],["name/87",[4,40.411]],["parent/87",[83,3.723]],["name/88",[7,40.411]],["parent/88",[83,3.723]],["name/89",[8,40.411]],["parent/89",[83,3.723]],["name/90",[88,29.425]],["parent/90",[82,2.943]],["name/91",[89,46.289]],["parent/91",[82,2.943]],["name/92",[84,31.938]],["parent/92",[82,2.943]],["name/93",[86,40.411]],["parent/93",[82,2.943]],["name/94",[87,40.411]],["parent/94",[82,2.943]],["name/95",[90,46.289]],["parent/95",[82,2.943]],["name/96",[11,30.194]],["parent/96",[82,2.943]],["name/97",[12,30.194]],["parent/97",[82,2.943]],["name/98",[91,30.194]],["parent/98",[]],["name/99",[10,30.194]],["parent/99",[91,2.782]],["name/100",[1,40.411]],["parent/100",[92,3.723]],["name/101",[84,31.938]],["parent/101",[93,3.539]],["name/102",[86,40.411]],["parent/102",[93,3.539]],["name/103",[87,40.411]],["parent/103",[93,3.539]],["name/104",[94,46.289]],["parent/104",[93,3.539]],["name/105",[95,46.289]],["parent/105",[93,3.539]],["name/106",[4,40.411]],["parent/106",[92,3.723]],["name/107",[7,40.411]],["parent/107",[92,3.723]],["name/108",[8,40.411]],["parent/108",[92,3.723]],["name/109",[88,29.425]],["parent/109",[91,2.782]],["name/110",[94,46.289]],["parent/110",[91,2.782]],["name/111",[95,46.289]],["parent/111",[91,2.782]],["name/112",[12,30.194]],["parent/112",[91,2.782]],["name/113",[89,46.289]],["parent/113",[91,2.782]],["name/114",[84,31.938]],["parent/114",[91,2.782]],["name/115",[86,40.411]],["parent/115",[91,2.782]],["name/116",[87,40.411]],["parent/116",[91,2.782]],["name/117",[90,46.289]],["parent/117",[91,2.782]],["name/118",[11,30.194]],["parent/118",[91,2.782]],["name/119",[96,35.303]],["parent/119",[]],["name/120",[88,29.425]],["parent/120",[96,3.253]],["name/121",[84,31.938]],["parent/121",[96,3.253]],["name/122",[97,38.404]],["parent/122",[96,3.253]],["name/123",[10,30.194]],["parent/123",[96,3.253]],["name/124",[11,30.194]],["parent/124",[96,3.253]],["name/125",[12,30.194]],["parent/125",[96,3.253]],["name/126",[98,51.397]],["parent/126",[]],["name/127",[99,35.303]],["parent/127",[]],["name/128",[88,29.425]],["parent/128",[99,3.253]],["name/129",[84,31.938]],["parent/129",[99,3.253]],["name/130",[97,38.404]],["parent/130",[99,3.253]],["name/131",[10,30.194]],["parent/131",[99,3.253]],["name/132",[11,30.194]],["parent/132",[99,3.253]],["name/133",[12,30.194]],["parent/133",[99,3.253]],["name/134",[100,51.397]],["parent/134",[]],["name/135",[101,34.051]],["parent/135",[]],["name/136",[10,30.194]],["parent/136",[101,3.137]],["name/137",[5,46.289]],["parent/137",[102,3.539]],["name/138",[103,51.397]],["parent/138",[104,4.265]],["name/139",[105,51.397]],["parent/139",[104,4.265]],["name/140",[1,40.411]],["parent/140",[102,3.539]],["name/141",[84,31.938]],["parent/141",[106,3.955]],["name/142",[97,38.404]],["parent/142",[106,3.955]],["name/143",[107,46.289]],["parent/143",[106,3.955]],["name/144",[4,40.411]],["parent/144",[102,3.539]],["name/145",[7,40.411]],["parent/145",[102,3.539]],["name/146",[8,40.411]],["parent/146",[102,3.539]],["name/147",[88,29.425]],["parent/147",[101,3.137]],["name/148",[84,31.938]],["parent/148",[101,3.137]],["name/149",[97,38.404]],["parent/149",[101,3.137]],["name/150",[107,46.289]],["parent/150",[101,3.137]],["name/151",[11,30.194]],["parent/151",[101,3.137]],["name/152",[12,30.194]],["parent/152",[101,3.137]],["name/153",[108,32.939]],["parent/153",[]],["name/154",[88,29.425]],["parent/154",[108,3.035]],["name/155",[109,46.289]],["parent/155",[108,3.035]],["name/156",[110,46.289]],["parent/156",[108,3.035]],["name/157",[111,46.289]],["parent/157",[108,3.035]],["name/158",[112,46.289]],["parent/158",[108,3.035]],["name/159",[10,30.194]],["parent/159",[108,3.035]],["name/160",[11,30.194]],["parent/160",[108,3.035]],["name/161",[12,30.194]],["parent/161",[108,3.035]],["name/162",[113,51.397]],["parent/162",[]],["name/163",[114,32.939]],["parent/163",[]],["name/164",[88,29.425]],["parent/164",[114,3.035]],["name/165",[109,46.289]],["parent/165",[114,3.035]],["name/166",[110,46.289]],["parent/166",[114,3.035]],["name/167",[111,46.289]],["parent/167",[114,3.035]],["name/168",[112,46.289]],["parent/168",[114,3.035]],["name/169",[10,30.194]],["parent/169",[114,3.035]],["name/170",[11,30.194]],["parent/170",[114,3.035]],["name/171",[12,30.194]],["parent/171",[114,3.035]],["name/172",[115,51.397]],["parent/172",[]],["name/173",[116,35.303]],["parent/173",[]],["name/174",[88,29.425]],["parent/174",[116,3.253]],["name/175",[84,31.938]],["parent/175",[116,3.253]],["name/176",[97,38.404]],["parent/176",[116,3.253]],["name/177",[10,30.194]],["parent/177",[116,3.253]],["name/178",[11,30.194]],["parent/178",[116,3.253]],["name/179",[12,30.194]],["parent/179",[116,3.253]],["name/180",[117,51.397]],["parent/180",[]],["name/181",[118,51.397]],["parent/181",[]],["name/182",[119,36.734]],["parent/182",[]],["name/183",[88,29.425]],["parent/183",[119,3.385]],["name/184",[120,46.289]],["parent/184",[119,3.385]],["name/185",[10,30.194]],["parent/185",[119,3.385]],["name/186",[11,30.194]],["parent/186",[119,3.385]],["name/187",[12,30.194]],["parent/187",[119,3.385]],["name/188",[121,51.397]],["parent/188",[]],["name/189",[122,35.303]],["parent/189",[]],["name/190",[123,51.397]],["parent/190",[122,3.253]],["name/191",[88,29.425]],["parent/191",[122,3.253]],["name/192",[120,46.289]],["parent/192",[122,3.253]],["name/193",[10,30.194]],["parent/193",[122,3.253]],["name/194",[11,30.194]],["parent/194",[122,3.253]],["name/195",[12,30.194]],["parent/195",[122,3.253]],["name/196",[124,51.397]],["parent/196",[]],["name/197",[125,34.051]],["parent/197",[]],["name/198",[88,29.425]],["parent/198",[125,3.137]],["name/199",[84,31.938]],["parent/199",[125,3.137]],["name/200",[126,51.397]],["parent/200",[125,3.137]],["name/201",[127,51.397]],["parent/201",[125,3.137]],["name/202",[10,30.194]],["parent/202",[125,3.137]],["name/203",[11,30.194]],["parent/203",[125,3.137]],["name/204",[12,30.194]],["parent/204",[125,3.137]],["name/205",[128,51.397]],["parent/205",[]],["name/206",[129,51.397]],["parent/206",[]],["name/207",[130,51.397]],["parent/207",[]],["name/208",[131,51.397]],["parent/208",[]],["name/209",[132,51.397]],["parent/209",[]],["name/210",[133,51.397]],["parent/210",[]],["name/211",[134,51.397]],["parent/211",[]],["name/212",[135,51.397]],["parent/212",[]],["name/213",[136,40.411]],["parent/213",[]],["name/214",[88,29.425]],["parent/214",[136,3.723]],["name/215",[137,51.397]],["parent/215",[136,3.723]],["name/216",[80,46.289]],["parent/216",[136,3.723]],["name/217",[138,36.734]],["parent/217",[]],["name/218",[139,51.397]],["parent/218",[138,3.385]],["name/219",[140,51.397]],["parent/219",[138,3.385]],["name/220",[88,29.425]],["parent/220",[138,3.385]],["name/221",[141,51.397]],["parent/221",[138,3.385]],["name/222",[142,51.397]],["parent/222",[138,3.385]],["name/223",[143,51.397]],["parent/223",[]],["name/224",[144,40.411]],["parent/224",[]],["name/225",[145,51.397]],["parent/225",[144,3.723]],["name/226",[146,42.924]],["parent/226",[147,4.265]],["name/227",[148,42.924]],["parent/227",[147,4.265]],["name/228",[149,51.397]],["parent/228",[144,3.723]],["name/229",[146,42.924]],["parent/229",[150,4.265]],["name/230",[148,42.924]],["parent/230",[150,4.265]],["name/231",[151,51.397]],["parent/231",[144,3.723]],["name/232",[146,42.924]],["parent/232",[152,4.265]],["name/233",[148,42.924]],["parent/233",[152,4.265]],["name/234",[153,31.028]],["parent/234",[]],["name/235",[30,46.289]],["parent/235",[153,2.859]],["name/236",[31,46.289]],["parent/236",[153,2.859]],["name/237",[32,46.289]],["parent/237",[153,2.859]],["name/238",[33,46.289]],["parent/238",[153,2.859]],["name/239",[35,46.289]],["parent/239",[153,2.859]],["name/240",[36,46.289]],["parent/240",[153,2.859]],["name/241",[34,46.289]],["parent/241",[153,2.859]],["name/242",[37,46.289]],["parent/242",[153,2.859]],["name/243",[40,46.289]],["parent/243",[153,2.859]],["name/244",[38,46.289]],["parent/244",[153,2.859]],["name/245",[2,34.051]],["parent/245",[154,4.736]],["name/246",[155,34.051]],["parent/246",[]],["name/247",[43,46.289]],["parent/247",[155,3.137]],["name/248",[45,46.289]],["parent/248",[155,3.137]],["name/249",[48,46.289]],["parent/249",[155,3.137]],["name/250",[47,46.289]],["parent/250",[155,3.137]],["name/251",[44,46.289]],["parent/251",[155,3.137]],["name/252",[42,46.289]],["parent/252",[155,3.137]],["name/253",[46,46.289]],["parent/253",[155,3.137]],["name/254",[156,51.397]],["parent/254",[]]],"invertedIndex":[["__global",{"_index":144,"name":{"224":{}},"parent":{"225":{},"228":{},"231":{}}}],["__global.array",{"_index":147,"name":{},"parent":{"226":{},"227":{}}}],["__global.float32array",{"_index":152,"name":{},"parent":{"232":{},"233":{}}}],["__global.readonlyarray",{"_index":150,"name":{},"parent":{"229":{},"230":{}}}],["__type",{"_index":2,"name":{"2":{},"25":{},"38":{},"54":{},"58":{},"60":{},"66":{},"245":{}},"parent":{}}],["_id",{"_index":117,"name":{"180":{}},"parent":{}}],["adddeltatime",{"_index":142,"name":{"222":{}},"parent":{}}],["adddrawable",{"_index":78,"name":{"77":{}},"parent":{}}],["ambientlight",{"_index":40,"name":{"39":{},"243":{}},"parent":{}}],["array",{"_index":145,"name":{"225":{}},"parent":{}}],["backgroundcolor",{"_index":47,"name":{"46":{},"250":{}},"parent":{}}],["canvassize",{"_index":72,"name":{"71":{}},"parent":{}}],["center",{"_index":84,"name":{"84":{},"92":{},"101":{},"114":{},"121":{},"129":{},"141":{},"148":{},"175":{},"199":{}},"parent":{}}],["circlebase",{"_index":96,"name":{"119":{}},"parent":{"120":{},"121":{},"122":{},"123":{},"124":{},"125":{}}}],["circlefactory",{"_index":98,"name":{"126":{}},"parent":{}}],["circlelight",{"_index":82,"name":{"81":{}},"parent":{"82":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{}}}],["circlelight.descriptor",{"_index":83,"name":{},"parent":{"83":{},"87":{},"88":{},"89":{}}}],["circlelight.descriptor.propertyuniformmapping",{"_index":85,"name":{},"parent":{"84":{},"85":{},"86":{}}}],["clamp_to_edge",{"_index":14,"name":{"13":{}},"parent":{}}],["color",{"_index":86,"name":{"85":{},"93":{},"102":{},"115":{}},"parent":{}}],["colorfulcircle",{"_index":101,"name":{"135":{}},"parent":{"136":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{}}}],["colorfulcircle.descriptor",{"_index":102,"name":{},"parent":{"137":{},"140":{},"144":{},"145":{},"146":{}}}],["colorfulcircle.descriptor.propertyuniformmapping",{"_index":106,"name":{},"parent":{"141":{},"142":{},"143":{}}}],["colorfulcircle.descriptor.sdf",{"_index":104,"name":{},"parent":{"138":{},"139":{}}}],["colorindex",{"_index":107,"name":{"143":{},"150":{}},"parent":{}}],["colorpalette",{"_index":34,"name":{"33":{},"241":{}},"parent":{}}],["compile",{"_index":156,"name":{"254":{}},"parent":{}}],["constructor",{"_index":88,"name":{"90":{},"109":{},"120":{},"128":{},"147":{},"154":{},"164":{},"174":{},"183":{},"191":{},"198":{},"214":{},"220":{}},"parent":{}}],["defaultruntimesettings",{"_index":153,"name":{"234":{}},"parent":{"235":{},"236":{},"237":{},"238":{},"239":{},"240":{},"241":{},"242":{},"243":{},"244":{}}}],["defaultruntimesettings.textures",{"_index":154,"name":{},"parent":{"245":{}}}],["defaultstartupsettings",{"_index":155,"name":{"246":{}},"parent":{"247":{},"248":{},"249":{},"250":{},"251":{},"252":{},"253":{}}}],["deltatimecalculator",{"_index":136,"name":{"213":{}},"parent":{"214":{},"215":{},"216":{}}}],["descriptor",{"_index":10,"name":{"9":{},"82":{},"99":{},"123":{},"131":{},"136":{},"159":{},"169":{},"177":{},"185":{},"193":{},"202":{}},"parent":{}}],["destroy",{"_index":80,"name":{"79":{},"216":{}},"parent":{}}],["direction",{"_index":94,"name":{"104":{},"110":{}},"parent":{}}],["displaytoworldcoordinates",{"_index":75,"name":{"74":{}},"parent":{}}],["distance",{"_index":60,"name":{"59":{}},"parent":{}}],["distancefunctionname",{"_index":105,"name":{"139":{}},"parent":{}}],["distancerenderscale",{"_index":35,"name":{"34":{},"239":{}},"parent":{}}],["drawable",{"_index":9,"name":{"8":{}},"parent":{"9":{},"10":{},"11":{}}}],["drawablecount",{"_index":65,"name":{"62":{}},"parent":{}}],["drawabledescriptor",{"_index":0,"name":{"0":{}},"parent":{"1":{},"3":{},"4":{},"5":{},"6":{},"7":{}}}],["drawabledescriptor.propertyuniformmapping",{"_index":3,"name":{},"parent":{"2":{}}}],["drawndrawablecount",{"_index":66,"name":{"63":{},"68":{}},"parent":{}}],["dropletbase",{"_index":108,"name":{"153":{}},"parent":{"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{}}}],["dropletfactory",{"_index":113,"name":{"162":{}},"parent":{}}],["empty",{"_index":8,"name":{"7":{},"89":{},"108":{},"146":{}},"parent":{}}],["enablecontextlostsimulator",{"_index":46,"name":{"45":{},"253":{}},"parent":{}}],["enablehighdpirendering",{"_index":30,"name":{"29":{},"235":{}},"parent":{}}],["enablestopwatch",{"_index":42,"name":{"41":{},"252":{}},"parent":{}}],["extensions",{"_index":54,"name":{"53":{}},"parent":{}}],["filteringoptions",{"_index":17,"name":{"16":{}},"parent":{"17":{},"18":{}}}],["flashlight",{"_index":91,"name":{"98":{}},"parent":{"99":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{}}}],["flashlight.descriptor",{"_index":92,"name":{},"parent":{"100":{},"106":{},"107":{},"108":{}}}],["flashlight.descriptor.propertyuniformmapping",{"_index":93,"name":{},"parent":{"101":{},"102":{},"103":{},"104":{},"105":{}}}],["float32array",{"_index":151,"name":{"231":{}},"parent":{}}],["floatinterpolationenabled",{"_index":56,"name":{"55":{}},"parent":{}}],["fps",{"_index":141,"name":{"221":{}},"parent":{}}],["fpshysteresis",{"_index":140,"name":{"219":{}},"parent":{}}],["fpsqualityautoscaler",{"_index":138,"name":{"217":{}},"parent":{"218":{},"219":{},"220":{},"221":{},"222":{}}}],["fpstarget",{"_index":139,"name":{"218":{}},"parent":{}}],["from",{"_index":109,"name":{"155":{},"165":{}},"parent":{}}],["fromradius",{"_index":111,"name":{"157":{},"167":{}},"parent":{}}],["getnextdeltatime",{"_index":137,"name":{"215":{}},"parent":{}}],["getobjecttoserialize",{"_index":12,"name":{"11":{},"97":{},"112":{},"125":{},"133":{},"152":{},"161":{},"171":{},"179":{},"187":{},"195":{},"204":{}},"parent":{}}],["hex",{"_index":131,"name":{"208":{}},"parent":{}}],["hexagonbase",{"_index":99,"name":{"127":{}},"parent":{"128":{},"129":{},"130":{},"131":{},"132":{},"133":{}}}],["hexagonfactory",{"_index":100,"name":{"134":{}},"parent":{}}],["hsl",{"_index":133,"name":{"210":{}},"parent":{}}],["ignorewebgl2",{"_index":48,"name":{"47":{},"249":{}},"parent":{}}],["insights",{"_index":81,"name":{"80":{}},"parent":{}}],["intensity",{"_index":87,"name":{"86":{},"94":{},"103":{},"116":{}},"parent":{}}],["invertedtunnelbase",{"_index":114,"name":{"163":{}},"parent":{"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{}}}],["invertedtunnelfactory",{"_index":115,"name":{"172":{}},"parent":{}}],["iswebgl2",{"_index":50,"name":{"49":{}},"parent":{}}],["isworldinverted",{"_index":32,"name":{"31":{},"237":{}},"parent":{}}],["lightcutoffdistance",{"_index":33,"name":{"32":{},"238":{}},"parent":{}}],["lightnessratio",{"_index":89,"name":{"91":{},"113":{}},"parent":{}}],["lightpenetrationratio",{"_index":44,"name":{"43":{},"251":{}},"parent":{}}],["lights",{"_index":68,"name":{"65":{}},"parent":{}}],["lightsrenderscale",{"_index":36,"name":{"35":{},"240":{}},"parent":{}}],["linear",{"_index":18,"name":{"17":{}},"parent":{}}],["maxfilter",{"_index":24,"name":{"23":{}},"parent":{}}],["metacirclebase",{"_index":116,"name":{"173":{}},"parent":{"174":{},"175":{},"176":{},"177":{},"178":{},"179":{}}}],["metacirclefactory",{"_index":118,"name":{"181":{}},"parent":{}}],["mindistance",{"_index":11,"name":{"10":{},"96":{},"118":{},"124":{},"132":{},"151":{},"160":{},"170":{},"178":{},"186":{},"194":{},"203":{}},"parent":{}}],["minfilter",{"_index":23,"name":{"22":{}},"parent":{}}],["mirrored_repeat",{"_index":16,"name":{"15":{}},"parent":{}}],["motionblur",{"_index":37,"name":{"36":{},"242":{}},"parent":{}}],["nearest",{"_index":19,"name":{"18":{}},"parent":{}}],["noisypolygonbase",{"_index":122,"name":{"189":{}},"parent":{"190":{},"191":{},"192":{},"193":{},"194":{},"195":{}}}],["noisypolygonfactory",{"_index":124,"name":{"196":{}},"parent":{}}],["objectcountscaler",{"_index":6,"name":{"5":{}},"parent":{}}],["overrides",{"_index":28,"name":{"27":{}},"parent":{}}],["palettesize",{"_index":45,"name":{"44":{},"248":{}},"parent":{}}],["polygonbase",{"_index":119,"name":{"182":{}},"parent":{"183":{},"184":{},"185":{},"186":{},"187":{}}}],["polygonfactory",{"_index":121,"name":{"188":{}},"parent":{}}],["programcount",{"_index":57,"name":{"56":{}},"parent":{}}],["propertyuniformmapping",{"_index":1,"name":{"1":{},"83":{},"100":{},"140":{}},"parent":{}}],["radius",{"_index":97,"name":{"122":{},"130":{},"142":{},"149":{},"176":{}},"parent":{}}],["randomoffset",{"_index":123,"name":{"190":{}},"parent":{}}],["readonlyarray",{"_index":149,"name":{"228":{}},"parent":{}}],["renderdrawables",{"_index":79,"name":{"78":{}},"parent":{}}],["renderer",{"_index":52,"name":{"51":{},"70":{}},"parent":{"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{}}}],["rendererinfo",{"_index":49,"name":{"48":{}},"parent":{"49":{},"50":{},"51":{},"52":{},"53":{},"55":{},"56":{},"57":{},"69":{}}}],["rendererinfo.extensions",{"_index":55,"name":{},"parent":{"54":{}}}],["rendererinfo.renderpasses",{"_index":59,"name":{},"parent":{"58":{}}}],["rendererinfo.renderpasses.__type",{"_index":61,"name":{},"parent":{"59":{},"65":{}}}],["rendererinfo.renderpasses.__type.distance",{"_index":62,"name":{},"parent":{"60":{}}}],["rendererinfo.renderpasses.__type.distance.__type",{"_index":64,"name":{},"parent":{"61":{},"62":{},"63":{},"64":{}}}],["rendererinfo.renderpasses.__type.lights",{"_index":69,"name":{},"parent":{"66":{}}}],["rendererinfo.renderpasses.__type.lights.__type",{"_index":70,"name":{},"parent":{"67":{},"68":{}}}],["rendernoise",{"_index":129,"name":{"206":{}},"parent":{}}],["renderpasses",{"_index":58,"name":{"57":{}},"parent":{}}],["renderscale",{"_index":63,"name":{"61":{},"67":{}},"parent":{}}],["repeat",{"_index":15,"name":{"14":{}},"parent":{}}],["rgb",{"_index":132,"name":{"209":{}},"parent":{}}],["rgb255",{"_index":130,"name":{"207":{}},"parent":{}}],["rgba",{"_index":134,"name":{"211":{}},"parent":{}}],["rgba255",{"_index":135,"name":{"212":{}},"parent":{}}],["rotatedrectanglebase",{"_index":125,"name":{"197":{}},"parent":{"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{}}}],["rotatedrectanglefactory",{"_index":128,"name":{"205":{}},"parent":{}}],["rotation",{"_index":127,"name":{"201":{}},"parent":{}}],["runanimation",{"_index":143,"name":{"223":{}},"parent":{}}],["runtimesettings",{"_index":29,"name":{"28":{}},"parent":{"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"39":{}}}],["runtimesettings.textures",{"_index":39,"name":{},"parent":{"38":{}}}],["sdf",{"_index":5,"name":{"4":{},"137":{}},"parent":{}}],["sdf2dversion",{"_index":53,"name":{"52":{}},"parent":{}}],["setlightnessratio",{"_index":90,"name":{"95":{},"117":{}},"parent":{}}],["setruntimesettings",{"_index":77,"name":{"76":{}},"parent":{}}],["setviewarea",{"_index":74,"name":{"73":{}},"parent":{}}],["shader",{"_index":103,"name":{"138":{}},"parent":{}}],["shadercombinationsteps",{"_index":7,"name":{"6":{},"88":{},"107":{},"145":{}},"parent":{}}],["shadowtracecount",{"_index":43,"name":{"42":{},"247":{}},"parent":{}}],["size",{"_index":126,"name":{"200":{}},"parent":{}}],["source",{"_index":26,"name":{"26":{}},"parent":{}}],["startcutoff",{"_index":95,"name":{"105":{},"111":{}},"parent":{}}],["startupsettings",{"_index":41,"name":{"40":{}},"parent":{"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{}}}],["startuptimeinmilliseconds",{"_index":71,"name":{"69":{}},"parent":{}}],["textureoptions",{"_index":20,"name":{"19":{}},"parent":{"20":{},"21":{},"22":{},"23":{}}}],["textures",{"_index":38,"name":{"37":{},"244":{}},"parent":{}}],["texturewithoptions",{"_index":25,"name":{"24":{}},"parent":{"25":{}}}],["texturewithoptions.__type",{"_index":27,"name":{},"parent":{"26":{},"27":{}}}],["tilecount",{"_index":67,"name":{"64":{}},"parent":{}}],["tilemultiplier",{"_index":31,"name":{"30":{},"236":{}},"parent":{}}],["to",{"_index":110,"name":{"156":{},"166":{}},"parent":{}}],["toradius",{"_index":112,"name":{"158":{},"168":{}},"parent":{}}],["uniformcountmacroname",{"_index":4,"name":{"3":{},"87":{},"106":{},"144":{}},"parent":{}}],["vendor",{"_index":51,"name":{"50":{}},"parent":{}}],["vertices",{"_index":120,"name":{"184":{},"192":{}},"parent":{}}],["viewareasize",{"_index":73,"name":{"72":{}},"parent":{}}],["worldtodisplaycoordinates",{"_index":76,"name":{"75":{}},"parent":{}}],["wrapoptions",{"_index":13,"name":{"12":{}},"parent":{"13":{},"14":{},"15":{}}}],["wraps",{"_index":21,"name":{"20":{}},"parent":{}}],["wrapt",{"_index":22,"name":{"21":{}},"parent":{}}],["x",{"_index":146,"name":{"226":{},"229":{},"232":{}},"parent":{}}],["y",{"_index":148,"name":{"227":{},"230":{},"233":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js new file mode 100644 index 0000000..8182cee --- /dev/null +++ b/docs/assets/main.js @@ -0,0 +1,60 @@ +"use strict"; +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; +"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=(function(e){return function(n){e.console&&console.warn&&console.warn(n)}})(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}if(s.type===t.QueryLexer.TERM)return t.QueryParser.parseTerm;var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function Ee(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function xe(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function Le(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var we=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;Ee(i,{closeOnClick:!0});function a(){xe(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",we+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!Le(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` + ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${we}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`
${e}
`:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Ve(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ve(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Ve(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Be),Be())}async function Be(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js new file mode 100644 index 0000000..da10e0d --- /dev/null +++ b/docs/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "eJytmttu3DYQht9le2umiWOnje/SBEED9OgEyEUQLGYlakWUIlWSsr0o8u6FTrs8DUXt5soLa+b7Z0hqxNOX/zaGPpnN3aaQTcs43VxtWjD15m7TyLLjVP84PXhWm4Zvrjb/MFFu7q6vNkXNeKmo2Nx9wSFVJwrDpDhhorhXN9++frs6YkoFj7DjVG/iMvPzMNij53b+lRX3uwBYcNA6DnwXJb+4/jmaAympLhRrjVQ54VrmqyJ/F1FhwlBVQbEoFEI87dtXTm60ac2B5PSCa+lRLSJn+9pg3V0wVXBKBpuU2AjZ2uZZbfh2cPjNxYcDIIa3XNPDoeKg69wMTsZZ8b+PsNHwLfZ7RMaPfTDJ6u5Jw3Xwe91G6xpa9DWfWrqCwkh1SOmOmK3rsKLv3/sSp7q1JOIAklWtkFyqquNkJOTk43rkJTT5vPVEwgGBiLiApSInW07Nii7yPDJr3OCzppN8GReR7KaaPsFeihU5eR5ZOf06+qzJyZdxEcmcmHigytCSmE4Iylfkhnhm5fhh8v00uK5JFVONEpOZN9QAWV1IIl5ZGf9ODayvKDG1gJTMUkimD6SV/LBu5Eb9sjL9o/f8a3Rck2tcMUJL5rs+03NynAL6BXROHfUVLO+wiF75ImvaEFHKaTglDfTvlaKFAbFf9VKgvlmNeT9638/OaxLGlRFqpA2+Ou2wV9DWrMBmHvNjwtlOwRBlfLkj+l+ES20IfSpo2ycQNuWM2/rcbZyAz5MrBQ0lu66qqMIWR7SCjhvimWaHZPttY7Ds6M6TzJMa1jYNLRkY+n1SRYmp+WtNeYv2BBXDQsvpY82ajkN0MYjHOapskzy8qSY3+mSo0CvHp6t8ROBie2pIDap8BEUJE5U8Qy1gJNaNEkrSCVZJ1ZyhZLvjItrI9hFMUZ+hcPRNjaIWFHBOOZk2R1YNjsAZT6RVcq+gQYZrpWDfUGGIrqGkikjBD+Tkkh/Q6LJN8RIv9iWSbJl/AX2RPY0kAkrBgUBnpC6AM7G/JKdFaGpk9X86RdHvF5eKnGyyY5tctg4Ab5eSaQOioJdI+YxEDwOnxlwk5iFwrQs0ctlEDnMCfYHGjMjbTWLcUMXE/k9fl4quOUfVJ7ph2JPhzwra7yZrwXDFT6NTIGrtna5XdqHhXmog/5mZOgjBHNpL1C2mF8Hz1z+9uL32ZsSdYA9UaeBEUVEO3TXPNNaMvAQmVaeOxti3qdXk3w44M6cSmPxMHoHbuGveq9Dqv0fPNxHNeSWYrxnjpTfYRiRpQaNnIXNddE2X28Wy38YgS5v1FwmGCFzuEp2EQNjM6ER+nnHDMCO1jHODoWobZ+BZ9xsl52q5vllDfTTu92Gip3cr1CxSeivirNRWJXUfSMTKekrlPi7nnYfN5oQ1Laf9nBcWNgISmh5k6b3oHdLLrKRWuLpKN+UHR2tlc45yNirWrs75EDWGiT1a/KbtCdUJwxpKLPPl1piNtxglq2Em5/vR92MQwAMoNmxmnRdCHO9G9tItZjNLG1Cmay9sFJ+yplE+jr6XNkoQQhyfbJTLRshZIwMdEum3BhdNDgK/Jl3W+2f1OtrdmQkHoskODovFtFLW/cL4gZWZn5bAK5woZO/4DWv0UHXaCxqe4vW84NC0qPPwNOEsS0oqqci4JIeioLHp0gyLWafgwzJfEm2mOTqGdewWgFhRr+lTWmE4Cs0akQ7qNJuJwHygfyis+WJMmufFZKPQmHqYD/QnUPvdUkxqv8ub/dkoLKYeFgDDmK5vbzPCur69zY3MASaC65ExchgiZAQIueFBVnDwLGRGAstrPFjRepDbfDC1Xwifzs/sGQY3QIaPUwG8wA40Jomodd7Fj97zE2vo24jKvPxOqkQI6QU3fWqloMIw4KSkRaKaB5aJczGpGugPbPDSeTJJn60UstkxAciOoHWAYhsmlvKgI9s78+kI6GDTxrpZwfAy3TC/PtuOOuNTYhslFslds6PDF2fPNScVl4CnEzPG0Y/AcFT/MLWf0ACLrP76/15yKS3g/DBeGjkd4Y/Umxevb14+v7Hiid5wxHDzTUIUhtwwi/Amy+OFNwyJXj62WbMJBklWixA4FIy+XjglDIWjtx8t4slmCRO7rosDnSvEODp+Sy6GHSyXhw1+FBBCq9n2dFyBYhN3YS2gbYWhonPFE2N8jDljd/CinN5yucWi80SLo3nCeeG+XIibr8mNt+SWo0tcTwvh/a203PqSvA0WoodLYNMtpmV49BpWCJ14u9FsAZYRZHZ84S5jCLM2OzFMdAcWI4nJDIXF1gYWZHiccI7OQx3/0SKBiEyyHQAsuC+HAOkYFm+cRaCjy/Ge2XLnq068EaxB9nstcifAssNw2HFkCJxO/ZarbeqIEcU+MlMvo6PHtSHzUUGLwbw9OgJ4YzqP85Y/0c45rYFcom0dWwD9D65qAkA=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js new file mode 100644 index 0000000..ec426da --- /dev/null +++ b/docs/assets/search.js @@ -0,0 +1 @@ +window.searchData = "eJzFXduS2ziS/ZUN+VUqM8G733rs7pmO6Nva3ukHR0cFS0JVcYYitSTly3b0v28AJKVMICmBElXz1OoycZAJHAAJHFz+XNTVl2bx5tOfi3/n5WbxRiwXZbaVizeLdbXd5YVcLBf7uli8WWyrzb6Qzev+73fP7bZYLBfrImsa2SzeLBZ/LQeUKBiFedyX6zavyiPQOOBysctqWbYI5pjH0dJNnX3JHpRtwy/L6MMn98Ovk/aDSA7o70zMPgWH+W4cHPnC2HvMOgRcBWXT1vt1W9WTc39FE7tacgDBpeGJY31uZLOu891FJpG011gkvOBYQU+y/fXhX3Ldfqw+yDrPivz/plfWqyfZVhqlrRqEcrSybTarvFnt6qqV61ZurrR6m5fv8qbNyvUFxm7zcnNMfFVJnmhFK6auxxsU+vpk2xJhZLWtd3ZGednK+jFbn83Lxpja+rCfI6yX2137bTbbXg1wF1jIYI4Z3fH5bbUv2w/rrJDzFe6rDnqtoJsB+rbO7OpqJ+v22/+U+WNVb3/Odru8fJrPowF/3+FvD/i3davZPM7nQwd2Y4Ofs42s31bbh7zM1ED+oZW7ZkYfNP76iN/0+Ld1q6923Vh+ztZ19Yv6+2xe9fC6wWwVfNnBz+4U15/r3mblEBvRD0/34kw+Rf703Dav13m9LuRK/9+JzLqv7/HXzjHZW53oJ5KDPXhyOaCUrsME59Y18ZqLWROjN8ZEDDlG+rVUvL7a1AHFipXy8lnW+WisdKnVVTFH+RbVC9qsOpCyyVEMcaHdGOiFbNcflrJp3qv++FoHDmh1jzYeYf/XTd1ymsg4uTRpWuNu7TWTHCe7J095Zq+QC2ZETp6NzY9uan8j259mbSqNbM+3lvl8GR/RH4useXYcz4/fOo/mP9jwoyWG4H84ldOpwkDuzDCOj1t02SDO4l07gp8y8srhe5q9bmP3yTK9auCeZO0mr6VerLzKYoxyCw5MiC1OWDlDYDHJ6qlRxQnTbxZSTHKoabO6fbtvq8fHq7zROOsB5xaEmRL5nOL1BWHPOTtniHlOWDzTGu8lvkwKbk64MEtkM8nyC8KaU+yeL6Y568V4QKP/47Ii0jtEv5+8MNI8Zzt5CMIeMxUQfDuRa/f9Pf3eVXDrorsfjEyOstu5bEh618iK99CtVNSA/rgvVl1ih2KhCdwXjfp0b2k+NotH8qHpp5aM4eU1gae7fRMjUN5WA/jiUHSK2XZMeguL1Vc/lhv5da7CLqo67/FuanmdbfJ9M4/VB6ybWuwUc0ywelLwMdXya6KQCT7MFI5c5Z1bXDLBqWnS9GTbx8eRTV3tCtm6D69GAtfx9V2XbMIAa2ZEESYOJKabTmXzLL9mT1XpXjZGAtey+UeXbELZmBlRhIllY7rpVDZ5+VnWrdys2n1ZysK9jEYSupbVj33yjzr1hCIby5cFnFiCY4XhVJJb2WarqUEuk8i1BH+WbTY52uXys4AmlhrnuFOJlVXefFvtquLbpNbJJnMttV9U4t+6tBPKjc+TAZtYdnwROJXe5HKbUmJ45tA7+LescRgkzUxQ4olFM14oF88Zzhl32YThBOpYPKi6mXwtHWLYsyYjqNvZOyV+PWvxSPDqtvoxyYcZItmz3txKRrzc0UlB7Vn/rltym+QF6qan99AjWVzWLV/UIddVm6ngQekdWfk0JQwYTeo6rL3vAN4P6ScU3HjeI6ATy3K8WLhSfaqz3XO+bl4PP1ZF/lBn9bfX66ps5dd2VVRNu5Jf13JHtKmhbId09ybAPQ/guJw5btdjnW3l6mH/+Cjr1xv5mO2LdoX/OMFEnOyew5rX2jmsvJ11etvhVm7yrJWzFOgo4NV2P8tiJ+vXstS7FQnRmny7LzJuE/m41R3c/Um4mW2WX7UAOqlBUTMPCHNZ9iTb1XNWb75ktVzl5WM13TQLYi7biirbrPptrdPNwqnnsqhpq92XrF0/TzfnkPRqW3ZZnRWFLFb9gaUppLfSXm9NXT3V2Vb1Kk9bWbarbnf1qiqLb6v+H6cY2KW4PwU3m835FQbms1tzuS1zW9K3mlVW19m3VbZvK3UCIy+friivs5hXW6/6730tu5XeVf9/EyztU9yT9LNZNcT3VxhmQsxm2y4rZNteY5qBMJtll1t0I0tWlQ5om8stGhBOWoZ2LuZFK+u8fPrVyFiW++0l2ZqAp2ca0wsGrW4cT+H99OMv33/3/ja2vyryUmbja0mTXbCy4X1SHn3/4eONnFIuyaZ9Ga+OdPu9znZzMQ1hvQjJ3v703c+/3X/89f77d3//fnbrX62LbLu7b6t7uXkaFx6n1wsuctavn398//7X99+/u3///W/ff3c94SzPtnldV7Xc3NdyJ7M5OXfWt1u59EKe4JPGH7sUZutBB/um+0Uxb9iK8EL0Nvva9RU38+HVNvv6OGQxVw0Z5T/mXF7e3Lm8/A8596XOdh9u55iCH9dAbunUx9s6NWdHMeqU8NIYQmH2F7/n7bPZZ7Tfdtf4hyBfqMuoPsu6zjfyZi68wjnMXFW4BsZ23lf7Gik9czt3gH8Rz1ymPfsy/yzrJitWtSw3Omwc1kgnTH1OoEydmB0AXj/umtX/7rMib4/rCKcWwQ4p7/mU7ofIds1/d6m/s7MdxD/3bDk4x+Z6tjCm6/gz2O2k7Dv7wOYz1j4fd80/vjWtrGWT24L/HL497ppnnMMLe/cxq5+kfXhxJs/aAf3GXolIQHD064ffPtzKoxfwBW8HyDabd7Jos4/51t4PMIdL2WazURm0+YlLPebz7VT/2/1a7bKmOa5qoj+69MTo83sO4/LRAVvXHa25xjYbYR7LrjBpRltkfRD8M63eDX92t0nW9zzEDLapfXsX2kSTum7w6L5XGw65ywQn5IeAJo/oY+5PLb2Lys2t9tCix3szF25+diqj9+M5OpYTU0L0DE5Wfs6aD3gn2lVGvuoAG3MP2lR7D6jjp64b3f3MZDaCu6HRn3P55btaZjOWt4LMapndpMStYdw8sXmd7WrcPiLe0PSNbNq6Yi8QvMDsI9otTc6bXZF9+1j9XtXF5m1V1Rt1IZuci/A9flt9Ufhrgn9Dt7oPBx7N5Uz35w1CvaELjWzf70sVa36QbZuXT3N50ci27oCbI/BtHfln3yHN58HQH93WdE3aj9W7jsTztw6N31Z9I7lp65gUr6zy7a6Qau9Pdnrv6QlXDYwZYtEj8sk9cidtOrs1jomrfsTZTazwLkeMdH2Q1fk/doXtsDvxYo6OmPyKIF9pPYEfXXIpqqz9URm/qwpNou/1DszN3J7pjHKckTxk9BKO5s3v8uHvP4m5/cqbL/LhqRAv5Ea/iUxfrjq3Kz32usd+CXesydtMriDcl3Pjty6jm7iyG7Bfwp1m8yg2/5Q12cI9kzsa+/MB+0XcUddA7XdqzfLH8ue8KPJGrqtyM3tV9RmpsC8vtzSjl3D0syw3/L3v13h1QL2RCycDkyF8PhyG6cPqVWMG7CdilOHb+zGQk+GKj45pdenH5gyfszrvjitdZASPPjmWOV9kl5Z9z+/ryt4EmVj2H7rkV5a9ZQSPfn3ZW0U2teyv4vsknpOw/KJZ8Xi+s3H6BJdJV5htH3JZtvRe8zmtf9XnMFy2er0rZjYn71r6rduIfhvXdA67Qw4v59ogkXUjhX5p4zYeDhl1AE2f0cs52s19/pE/Pb/b5e8H3Nv42uX1nD89b3Z5jfJ6OXfzRi99Dteq3MbPvNFLPfkxk5dzUPcC3Y2l1nH5WZ3UGXVXmp69G+pmjjY3b59dNv+p1rmt1PrE34q9ayw90bsO/6HDfzm3+s1ztxnNXyH0F3QpL+TP+6LNd0XuvIow1bG8kFucx03dc4sKr4rEJ0XgOCoci70di9vKd7Zo+0SUTejykK3//VRX+3LzltyePqcDr46Z2BesX+qQmdPpuOJtt1Plp6ppP1g3Bszqa5dfvzNG3SmAbyh4abc/WKfWb+ArPhr/cg7mT2VVy0kr2BO963KYvpZ9tWt6qP/1s6yLbPdebvb0lYBZfdRZVV1WNcrqhZ39TZay1Td2l/QW8Pmd3R2zsq8Iv7Wz/Qxywg6ZiS72GUzdL3O1Y+quhurLxzpbyylCzETvulxalctkSeYSF09GHv21Bvrqsc/5xm27nZXIUaDubyHRVyhY+fT3jOh/nIanD7aO4el/nIhXbeTqsapX3U0K2XotmW2uAz738dT89IUN1appyWqBlRP57II89PWvJ+H1bbOu200x2HGbKQPHQiKi2zY6eNIU5zxpCmdPENioJwqOhRz3pCkcPKmfHs54Uj89OG8BRmBjnig4HnLUEwXr5IkIw/POiDCc4A+GPOGSAh3FPuWYwnfyLTvvWTbBr8zFq+xuBPWUR5mjP06VlU2rrcyxurK+vkbgT7p3psb0QZOVnpivs2I9crNabxH7sfORusOhmbd2RsPxmZMZMQBOpcH7OP3Y3EXGOR2UO2Uoh+y6Mfg6y89tDJ7L6ifZ/iK/tuOHqi4z/0m2pfzanj9KdY0fZnuSX3dqV1ebZ8VqI9fjsZv14bQYRcWUmbrCcDQEOn4xDVld8Yffyx7DN7+blkuRNfbh4uE2v6xxPTLco23z0VBtm5+O0Wys5nx4ib+Zhl7utw9SR6ZPRVOs9I7AsVy4b6fl9iXLR9HVvzmibbPc3pur/ngyfQBp4HvnXpKy4F51N98fr/rlG6226VxmVPoey+q0fH0uI/4ZKCav/sPDu1QXZdff5Xgyn+GLizI4NUrbmR06VxI8XJbx2PNpKLdzp2scs3hn374+npnD00Bns2WfeOGy1B9eSf3RW+TsDB+HT4833V2W5fiLvigz/NFF2XAz8iP+84mHss4Ajzw0w+ahPryyhrj5OMqjGY9ozwCffgTGzmrYJ9A9z3KlV+Pvp9gZqydOZunnTz0/YmerXwfp76K/MmPuEQ87wz6vh+6razI679w8flmHfO2Mzm4sP5NFl54evR7Lpey/uiwjZrUIZaD/9VJgbj2AYHcfXApvr58Q8PHzaA7QZ03PrrD93MMJTIZdisNzBlcSuN6X35X5lj9QhnLdlxn67KKsRm4BtDPr94VcOcqeuERsNMsveft8ZbbcNaF2fupqtYkZCVxnq2y00si/Oi+vcTQ4rrFRTPzx6SUlaulffywX3Qudb/5cDAc63izEnX+XLpaLx1wWm2bx5lNn1FJF7+qg4mK52FTrvf75R//ZP6Vivfq4+/q1t1h+8pZBcgfpH38sPw1p9d/1HwaI4190OhhJB1Y6IOnEYvkJlqG484KEJBRWQkES+ovlJ7EMwjvfowl9K6FPEgaL5Sd/6ad3QQgkYWAlDEjCcLH8FCwDuPNSmjC0EoYkYbRYfgqXgX/neTFJGFkJI5IwXiw/RVzC2EoYk4SJLlU/vfPDZBksfbjzYp8gJBZCQhDSxfJTzNVLaiVMKREUL5JlGN+lXkSpYHMIDBIpbqRsWoZHlEigmeSxiW0uASUTKIoAsIltPgElFCiagGAT25wCSipQVAGfTWzzCiixINKNwA/uRCSWECiqxAmtL7BJBpRloLgDYZ94CRELY1MOKOdAk47lDNhsA0o3SMdaJdiEA8o4oUgECdP5CJtxgjJOKBJByqW1GSeMrktxSHhs58X0XpRxQvdffM9nM05QxolgrCsSNuEEJZwIx3ojYfNNUL6JaKxDEjbLBGWZUGwRgnXY5pag3BKKLYJtJcLmlqDcEoouImBztsklKLl8b4yYvk0un5LLhzFi+ja5fEouX4wR07e55RtDo+ZWyJWWz4yOlFt+MMpq3yaXT8nlh6Os9m12+ZRdvu7NItZsm14+pZcfjzUJ32aXT9nlJ2NNwrfJ5VNy+elYk/BtbvmUW4E32iQCm1wBJVcAuO8XMddpBzbNAkqzQPdhydD3i3Qpkrs4oJ4ENuMCyrhAcchnSRPYjAuMgExHZDDY4Is+cKEwTHRGuRcoNvk+a4PNvYByL4hGo0KbegGlXhCPNfPApl5AqRcoNvkBx/nA5l5AuRfoQZNt54FNvoCSL/RGw1mbeyHlXghjDSa0GRdSxoVirMGENs1CSrNQd2wDR5c+G6mENuFCSrhQE46NVEKbZqExCwipDQlrAzMloIQLNeFS1gabcSFlXBj3Nvh3AGIZeEs/vBNeuAyg/0UBbRqGlIahIlbA9kShTcOQ0jBMiTWq/cJdFPjLwGetsakZUmpGmprsgB3Z3IwoNyOgZRMeyibirIlswkaUsJHiYMCyJbIZG1HGRpSxAcuWyGZsRBkb6YCPZUtkMzaijI3Csb4tsmkaGVNXPXdlZ1URM3ulNI1Gx+TIZmREGRmNjsmRTciIEjIaHZMjm3sR5V6s2BSyEUxscy+m3Isp90IxcC9kW0Jscy+m3IsVm0K2JcQ292LKvVhxKAyXENxB6i/DaCnSu0CPF0sR3QVhvAyT/m8U2uZjTPkYBz20uIM0WIbpUsCdF8TLyFuK8E6kywiWQtzFvliq6ET/I83Dpm1MaRuH1Px0KYK7II00YP/LZ823WR1TVsfRmPm21cso6Fyiedjkj421m5jmER+Qw8Ov6PAr5vJgVnloI4mTPo/oLo1Dhdz3vFHC8s1uOTFtOXFKyjxKB8rE3uEX9OSh0HbDimnDSjxia3xoGzHbNhK7sSW0sSXQAQq4A/CXMbv6kdhNLKFNLBHUrsN4EbPjRWI3u4Q2u8QnFR/3VbuMk+FH2v9IPK5lJHbrS2jrSwJicqLrRqTJMmGH/8RuagltaklIijIRbFHazSqhzSqhzerg3jLxB4+D4UfIED6xG1VCG1USU8+HKlomcV8GFNBuQYmxUEpb0AFmmbAtKGGWTWkLStIxwJQFtNtNQttN6pG6ST1udpTarSWlrSUFYpeC6bqKlOVMareblLabVLE+ZUPG1G4jKW0jqSJ0yq7npDb9U0r/VJE3ZedMqU31lFI9VZRNQ9Zsm+ApJXiq2JiyKxSpzd2UcjdVzEtjNrHN05TyNFUsS9ll9dTmZGqs5StGpWz0mDLL+eZ6vl5e9fiVdY9b0zcW9T29DObxq+ses7DvGSv7Xre0z6+we8zivmes7nt6ed/jV9k9ZoHfM1b4Pb3E77GBWPePJoCxyu/pZX6Pnat3/2gCGCv9XqQBWO51/2gCGIv8XkyH9miIAcGLh7EdPDYe7NKa+Mbqv6eX/72hl1sCeMefbB/TJTFhDV3AS7UyM1L3jDbgGfSF0QVc4AQpS5HS5B0RaFhVyiBvp0sB210Bp0yZ0lSvTfHU4dQpU57q9CngqcMpVKZE1WlUEA9hN0ByYAykBx4Jr//AyIFht6ljaUWK5MDALkEAS09O4jI1rk7kgsNwrGGHn4KlJyd5mZpXJ3oJ/0B1ERx/hsoHMMI74MQwUw3TCpcC8MVdKMQSBC/KceKYoY5BJ48JXphjFDIwJDLoNDLBLXACo5KBIZOBVr6UM8yEHBilDAypDLT6BYIXhhm1DAy5DLQEBv6IOMy0AEMzA9GptPwQxuhmYAhnoMUw8PlujBHPwFDPQAtiwC9vAyOggaGggRbFgF9qBkZEA0NFAy2MAb/cDIyQBoaSBlodA5/vhxg1DQw5DTo9zWdDKGAkNTA0NehENZ/fncDoamAIa+D7fVPwo7sggCX4KdsuGZkNDJ0NtHQWH3ZpHFENKIaehuoGWkiDgOc3I7yBobyBFtMgGNkAwdDTUN9AK2oQ8PxmFDgwJDjQshoE/DjLyHBg6HCgtTX19BcLwNDTEOMg8E50U4weB4YgB1pag4BvIIwUB4YWB1pUg4BvIIwIB4YKB1pYg4BvIIwQB4YSB1pSg4BvIIwEB4YGB0HHxHSYXUJ4jAJDWIr4LgxMWIafhjoHWnFTL5uydjH8NCQ66DQ6bNdgzBL4xVlgxDsw1DvQghyEPOkYAQ8MBQ+0KKeMGfbwhCHboTB6HhiCHmiRDkKePoyoB4aqB1qpg5CnD6PsgSHtgZbrIOTpw8h7YOh7oIU6CPmRnhH2wFD2QIt1EPE9ISPugaHugZbpIOJ7QkbWA0PXAy3VQcRTlZH2wND2QEtzEI1sCWNIaWh5oOU5iHhSMnIeGHoeaDkOIr4jY+Q7MPQ70JIcRDwTGQkPDA0PIjCaRcTubwBGvQNDvgOtyEHEk5JR8MCQ8EBrcRDxpGS0OzDEO9B6HMQ8KRn9DgwBD7QoBzFPSkbEA0PFAy3MQcyTkhHywFDyQKtzEPOkZNQ8MOQ8iLrdgTwpGUkPDE0PtE4HMU9KRtcDQ9gDrdVBzJOS0fbAEPdAa3MQx4eNkjGr5gIj64Gh64GW6iDmOcVIe2Boe6AFOUh4TjECHhgKHmi1DQ6iGiRwmNMn4viTVdiAUe/AkO9Aa26QHOfDas2/n3GrhXs9EBuwDJUN6Q60zAYJP0gxshwYuhzE3XadhJ1JMZobGKIbaM0MkpG6Y6hsiGyglTFI2e1SwChpYEhpoJUwSPn+gFHOwJDOIOm2vbKr98BoZmCIZpB02xP5/oDRyMAQyUBLWloY5Sxg+GtoYJB0/OX7A0byAkPzAi1egVrN5yxgmGioXaC1KeBX9IHRssAQs0BrUZDyTGS0KzDEK9DaE6SHNVfhecef/Joro2CBIWGBVqCEN8IOhp+GZAXp+Joro1SBIVVBCifWOhhlCgxpCtJuZzbPTkadAkOeAq04CS847Iv0+LCcEavAUKsg7TbURkcsPpZhtCswxCvQepTwjvs1PX79gZGywNCyQMtTYuTEBCNngaFngZaoxMipCUbSAkPTgrTrSJlhYSmAX5NlxC4w1C7QApaG7YY2AcMgthQQHH+G7NDGKGJgSGJCK1yCX1EXjCQmDElMaIVLANt1CEYSE4YkJrTCxW+4FYwiJgxFTHSKGLsmLBhBTBiCmND6Ft9CBaOHCUMPE1re4s6LCUYME4YYJrS2NdJBCUYME4YYJrR4xZ4eE4zWJQytS2iRaqTwmOMIhqYltETF7z8VjKQlDElLaI2KH7wFo2kJQ9MSWqIaORDBSFrCkLREJ2nxEZRgJC1hSFpCK1T85lfBKFrCULREp2jxAZRgFC1hKFpC60/8flfB6FXC0KuEVpf4HaqCUaOEoUYJLSPxe0oFIzsJQ3YSWi/i94MKRl8Shr4ktEbE73IUjKYkzBNX4sRaqeBOXZnHrnpNiS8B7uiVdfZKjEewgj1+ZXBQnAhABXcEyzyD1YlKfPwouHNY5kGsTlTiwz/BHcYyT2NpjYjfHSq4A1nmiazuSBaMGMDQ0DyVpSUifmOJ4M5lmQezOkmJ31YhuLNZhqQktELE7+YRjKIkDEVJ+N04nB7iKeFx8ZRgxCVhiEtCa0VjpcmIS8Pf9GHu7kKUH7tD3Z8+LYYbbf9c3PcnvdVUXOekDn2ryfabP//663i2+82ff6Hj3erfVGbqbfDjRXQIDCIEBu5gh6uQENbxpbA/F0q3dMIiTzghsDBGYCG4gR1P3B+RVFUekFRlOSF19x4fUZLgCJI4urZvK/1wSk1LHJBjXjIJSt8Jh4wKpxulnpMm9ogAM8DNHut9BYQXpQgv8t3w9o+PtJgixKWO48tFHPb/dXO1Ax2egSPgngnuCvZYZ7QBRagxdva5QumLyrdyk2ctRUT14egpvv0MEd/DTEvcanadlZ+zprvOHZMEV6pwq9S1VB7Srgu1RK9L1jXI5SKI3UD76+uOoLjXCXqmhOkEsMOFLwgTESTwu9Rq6uQOandouD9LBkjHklQXo9+31b3cPBHfU9R7p45csRosqlrRV4Yvuv+6Di/m5YKoJFH7CMLB7QmoHQ5GRO0jcCQ1eUwPDzIJHmQc65dcToqbG24jqVtfcLgt8YiDqNc3ERiKbRImqeQYESVx9RNdHIyKH5V+b17ak6Y3N4i6/0Z9dautlP2HnmvO6vog0iki++O4h/Pcuoz+HlxcUyGuKbc22A8j/TNSx0efMJtw/BO4Nccetn8jgofFA7Qj49mLMXEJYFOTdCCYq83HKymPmMjKvuKHXq7nid/XW9jTIXKtvv4aaBxp4hBYDHxI3WK7Ta7u+jKjREQJ35ERebMrsm9tpd88XFdVvVH9gqS1h7srtZXOEdl+GhMzAvc0oaO1TMSOSNAPctC33eDQ5zhWEnNbKep90Cg14DqWRI/bvGZnHGjkQpSbgCq3u5ZSC1eXY3M4oHVPJr62R0HAHc60Ej2g4vtLURWiluDKLhPZBkUVFjg2qgNo85ztJFcIAg22gdsYZKP2gQYZkcAMAKfj9lffElg05ExsYwfY/r5WAotKIXQb0C3Y4/uqqPtFcUM4lWI9rroWlWAicjmG1BamvvOUgKK2EF1Irv6uUQKLytVx1mnB9ldBYlg8pseu1tJrlFHdo3YVBkNP6FawVk+FQ1e3uOrUS4F4ouLhLtCtQY09cIzXBTBsOAUWvfeHzcSz28itJcmva7kzh348CYjdmCO/trJsDJwI47h1xQccGjME2DXfbRRi6IYn7UE/QIb9QB/2MVo4BGX9wBz1A3/Uf+fIefsmbzRJRU0o7c0QjpQdGfTQIC2GiAIcLe2ePEBgZHBO3VqjRtErOLuq0HPBjqobWo84yvbdOuVHozUmGMNxOv64o3wiHoIbxR93zfO3ppW1bHIDDQffrqW+a/53nxV5+21sVRS76dglPu7UtOmJDttAIjhwizPsZT3UAg/Lj24N0X73Bc+7cNmlbsY9ybZ6+Jdct23VyDrPCmNxDo+nfVvoG7ffz8DCoVG79UrquQ/aQoLpLeTwgOHwg5gcml3ucmSVd3mY7se9M3Hf4JN+Gpn0ziXDFKDHS3q8ZJiN9nhJj5f0eMPsN+3x0h7PdXmBeanRbH9kZchx5sPAdr8o2fGqIhwWXKLhx8UuDJesv2YWY0CQHuBKf9SrNN0t6zgHIktNZByTw/HOeJwJDqGGpU/wh6mw79bZnnr6k9Ee1NkTtJwzVJnj8rfDC+d03ol7/uDicjTfMqWBHeagY0R/4nlTGuRhbMdY5DmrN6bKhWPa2K0Y6Auo2CZcgbFbH06fP8XDO46KHaNP9PYpxYLpoQJ+sY+C4T7fUdliHjDFiKQu3QZT5iFRjEhqwq0fYh70xFoIkczcYlT+YU0MirtLx9V37kVLDInbdTK9qtGjkhiVaFSTakiHOxQMV46j+mi/YkejJxKHTGos3XN0FA2PMemkMjRiTrURd7L0Q16iw8EW7hEcRT38Dh2GwmxO3UaYwzN0FAmH5+mkyuyekaNo/vR4kjwph7FQLarttW5YRs+Eq2+IN4Xj3MF8kwkt96AWEA6hueP0y+zqUjJOHOa8bqzNn8qqll/kw1Mh6FCGqzVy41q+3RVS/cXaaQPYYXBUUfLysSIjNZgjtXsolpeNXtGmRuGSE65Ael2mNWRDxLR+suFsGPvQFVq9RBURDroZuHUkecPULF66Bd+tweaNVrK41WXAE2JwXLcu8oc6q79xU4gQ67luRBnQrLk6VsMu3Co0YA/jT2kqTRGesJIJ6VRsY+jAu6UcA1MDsKgyUlW4TTtGMAYiu94a4w1wboH4ALvL6qwoJOnQYrx1za2jPcDV1VOdbRURnvQHGBZFMMk0Xg2wOVlkR7R3DLNMvP6/BBVX0bS2NKD2syWCipq8Y/A2oPavNdnTgATvG3ELIEzMQcwmsGjAdQwNTVhmOw+eDiTT2tKA2v+XLF+jbp+uETmj78tcvc5Eo1l13RpaFXItXHNbGQ5iJ2Cs9231+MjVDeCtlxC6EunpuS1l09QqKqABGho1+6UV35XzT89t9VnWRbar5WZvbdpQ59BR/DLB/Z0sZattLS2LISZ7AFzpqQKPsQ0beJcoOKqzRV7KjDRGPI90nP3oB7pxCIM55zjnUUohGW9jc+weFmnPQnUvOWNyICx1ts0N5GsnN9HWhMM8x3kA8wwoCskQCyJvCMncmsM2L7mmhYOeHrCfFvh9pBv2cWXk1n1t85IrCrLD3LFQ87quarm5r+VO0okyXhVwnERuK9WyHoq9sTUcN6zQrWGpRiApAVME48hh9uVVVNfIxeggUbr52mkz62pftrauhSdEbhVRlQUxDa82OkY0nAaLKOE4eKmOt843xnY2snXScUNqP1Rbm8pxDAiOjN9lxmkYPCu7XAFRsGykAnjPOjjOyDRaYU9F8VgIjl2JxmKUH4FHaVcvmW0zqE9yXLsnjwojJETUaNjc4igOjbfMEC8HHHphR64wkbdntiYkFDpWSIeqGzydcuPezXc2cSfr9lsfzm+z3c7cN0OWL1xBP+cmX2KyxuVW071kT9sDGWfdqrfONvmeNAUfNX1HWerwQC+hBz5+4+YUp6Km432II95hLxlde8I9nHD1k5MqyQ6OZLBwWB8blqPUVYRdExFuEdCQmbkKB3g7ITjG6/y+L7I27jjNIY9v42LA4as4+Dql4nfds7rEVyKSuoJZYRLy03GF3FKfyK78YQu2cGv1nPCEe6ShuxOOx7dszQlPNYddFcJxRZWVmzAzhm0ZQjiSbezZbtQ54JN0Q1TneC613hsTFXxKyvEQKX3jG4Phc3DD8QXhO9YzJ/Pj1ho4FuCpkyy4qkO3rqTZPNJOFXcgrghiMzxjTRooNsdx63gj2xOLEqihDeUfOLopT54BwrvGwXeGZKoArCo9bBNZDns5ls4bLhrZfs6l2hZBGzXekgyOvG6eM2MExcGF4ySlA8GH6VppbJsix6mcQasvbZ2tpR2fxWSpzLFquB3SeMOL48JHU+1rY2JB5GfHk1d6+023dEfojKActwtzG3lwMOW6IenUwTW8IRoix2bb4an2lZfbvCjyRu1Y3xgjNmZt4Ei41gpNEsKIoY05Dt7MUjHe4cJvM3RF5abwaARKBwHY8chPj2pUDw57HI939EBf8vaZMRHIBg1vmAQ6Br5tXsjtvmjzXZEb4S8+/gmRW9O1997iQdJRdWhpVJyE44RZOm9l6FRgMndGnb3j8jAjAOHVcEflr0fRneU2W9dVaYirZKuGW2DxWZYbYzMZPpwDjme0lAidrylncZzjuF1hGPWs1Sd8bAwcg06tj7dVf/Jz9Mgn9tYxqvtSZzuu0SPCpUPI7RhWKEijeZJN9u6G0XGU7GF3ucHgj+Vil++kEjQWbz798ddf/w/aULu3"; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css new file mode 100644 index 0000000..44328e9 --- /dev/null +++ b/docs/assets/style.css @@ -0,0 +1,1633 @@ +@layer typedoc { + :root { + --dim-toolbar-contents-height: 2.5rem; + --dim-toolbar-border-bottom-width: 1px; + --dim-header-height: calc( + var(--dim-toolbar-border-bottom-width) + + var(--dim-toolbar-contents-height) + ); + + /* 0rem For mobile; unit is required for calculation in `calc` */ + --dim-container-main-margin-y: 0rem; + + --dim-footer-height: 3.5rem; + + --modal-animation-duration: 0.2s; + } + + :root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --light-color-background-active: #d6d8da; + --light-color-background-warning: #e6e600; + --light-color-warning-text: #222; + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-background-active); + --light-color-text: #222; + --light-color-contrast-text: #000; + --light-color-text-aside: #5e5e5e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: #9f5f30; + --light-color-ts-method: #be3989; + --light-color-ts-reference: #ff4d82; + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var( + --light-color-ts-constructor + ); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: #c73c3c; + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-color-alert-note: #0969d9; + --light-color-alert-tip: #1a7f37; + --light-color-alert-important: #8250df; + --light-color-alert-warning: #9a6700; + --light-color-alert-caution: #cf222e; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + } + + :root { + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --dark-color-background-active: #5d5d6a; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: var(--dark-color-background-active); + --dark-color-text: #f5f5f5; + --dark-color-contrast-text: #ffffff; + --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: #ff6060; + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-color-alert-note: #0969d9; + --dark-color-alert-tip: #1a7f37; + --dark-color-alert-important: #8250df; + --dark-color-alert-warning: #9a6700; + --dark-color-alert-caution: #cf222e; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; + } + + @media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var( + --light-color-background-secondary + ); + --color-background-active: var(--light-color-background-active); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); + --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-alert-note: var(--light-color-alert-note); + --color-alert-tip: var(--light-color-alert-tip); + --color-alert-important: var(--light-color-alert-important); + --color-alert-warning: var(--light-color-alert-warning); + --color-alert-caution: var(--light-color-alert-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + } + + @media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var( + --dark-color-background-secondary + ); + --color-background-active: var(--dark-color-background-active); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); + --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-alert-note: var(--dark-color-alert-note); + --color-alert-tip: var(--dark-color-alert-tip); + --color-alert-important: var(--dark-color-alert-important); + --color-alert-warning: var(--dark-color-alert-warning); + --color-alert-caution: var(--dark-color-alert-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + } + + :root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-active: var(--light-color-background-active); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); + --color-text-aside: var(--light-color-text-aside); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-note: var(--light-color-note); + --color-tip: var(--light-color-tip); + --color-important: var(--light-color-important); + --color-warning: var(--light-color-warning); + --color-caution: var(--light-color-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + + :root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-active: var(--dark-color-background-active); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); + --color-text-aside: var(--dark-color-text-aside); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-note: var(--dark-color-note); + --color-tip: var(--dark-color-tip); + --color-important: var(--dark-color-important); + --color-warning: var(--dark-color-warning); + --color-caution: var(--dark-color-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + + html { + color-scheme: var(--color-scheme); + @media (prefers-reduced-motion: no-preference) { + scroll-behavior: smooth; + } + } + + *:focus-visible, + .tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); + } + + .always-visible, + .always-visible .tsd-signatures { + display: inherit !important; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.2; + } + + h1 { + font-size: 1.875rem; + margin: 0.67rem 0; + } + + h2 { + font-size: 1.5rem; + margin: 0.83rem 0; + } + + h3 { + font-size: 1.25rem; + margin: 1rem 0; + } + + h4 { + font-size: 1.05rem; + margin: 1.33rem 0; + } + + h5 { + font-size: 1rem; + margin: 1.5rem 0; + } + + h6 { + font-size: 0.875rem; + margin: 2.33rem 0; + } + + dl, + menu, + ol, + ul { + margin: 1em 0; + } + + dd { + margin: 0 0 0 34px; + } + + .container { + max-width: 1700px; + padding: 0 2rem; + } + + /* Footer */ + footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: var(--dim-footer-height); + } + footer > p { + margin: 0 1em; + } + + .container-main { + margin: var(--dim-container-main-margin-y) auto; + /* toolbar, footer, margin */ + min-height: calc( + 100svh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + } + + @keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } + } + @keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } + } + @keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } + } + @keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } + } + body { + background: var(--color-background); + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); + margin: 0; + } + + a { + color: var(--color-link); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; + } + a.tsd-anchor-link { + color: var(--color-text); + } + :target { + scroll-margin-block: calc(var(--dim-header-height) + 0.5rem); + } + + code, + pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; + } + + pre { + position: relative; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); + margin-bottom: 8px; + } + pre code { + padding: 0; + font-size: 100%; + } + pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; + } + pre:hover > button, + pre > button.visible, + pre > button:focus-visible { + opacity: 1; + } + + blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; + } + + img { + max-width: 100%; + } + + * { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); + } + + *::-webkit-scrollbar { + width: 0.75rem; + } + + *::-webkit-scrollbar-track { + background: var(--color-icon-background); + } + + *::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); + } + + dialog { + border: none; + outline: none; + padding: 0; + background-color: var(--color-background); + } + dialog::backdrop { + display: none; + } + #tsd-overlay { + background-color: rgba(0, 0, 0, 0.5); + position: fixed; + z-index: 9999; + top: 0; + left: 0; + right: 0; + bottom: 0; + animation: fade-in var(--modal-animation-duration) forwards; + } + #tsd-overlay.closing { + animation-name: fade-out; + } + + .tsd-typography { + line-height: 1.333em; + } + .tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; + } + .tsd-typography .tsd-index-panel h3, + .tsd-index-panel .tsd-typography h3, + .tsd-typography h4, + .tsd-typography h5, + .tsd-typography h6 { + font-size: 1em; + } + .tsd-typography h5, + .tsd-typography h6 { + font-weight: normal; + } + .tsd-typography p, + .tsd-typography ul, + .tsd-typography ol { + margin: 1em 0; + } + .tsd-typography table { + border-collapse: collapse; + border: none; + } + .tsd-typography td, + .tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); + } + .tsd-typography thead, + .tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); + } + + .tsd-alert { + padding: 8px 16px; + margin-bottom: 16px; + border-left: 0.25em solid var(--alert-color); + } + .tsd-alert blockquote > :last-child, + .tsd-alert > :last-child { + margin-bottom: 0; + } + .tsd-alert-title { + color: var(--alert-color); + display: inline-flex; + align-items: center; + } + .tsd-alert-title span { + margin-left: 4px; + } + + .tsd-alert-note { + --alert-color: var(--color-alert-note); + } + .tsd-alert-tip { + --alert-color: var(--color-alert-tip); + } + .tsd-alert-important { + --alert-color: var(--color-alert-important); + } + .tsd-alert-warning { + --alert-color: var(--color-alert-warning); + } + .tsd-alert-caution { + --alert-color: var(--color-alert-caution); + } + + .tsd-breadcrumb { + margin: 0; + margin-top: 1rem; + padding: 0; + color: var(--color-text-aside); + } + .tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; + } + .tsd-breadcrumb a:hover { + text-decoration: underline; + } + .tsd-breadcrumb li { + display: inline; + } + .tsd-breadcrumb li:after { + content: " / "; + } + + .tsd-comment-tags { + display: flex; + flex-direction: column; + } + dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; + } + dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; + } + dl.tsd-comment-tag-group dd { + margin: 0; + } + code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; + } + h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; + } + + dl.tsd-comment-tag-group dd:before, + dl.tsd-comment-tag-group dd:after { + content: " "; + } + dl.tsd-comment-tag-group dd pre, + dl.tsd-comment-tag-group dd:after { + clear: both; + } + dl.tsd-comment-tag-group p { + margin: 0; + } + + .tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; + } + .tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; + } + + .tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; + } + .tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; + } + .tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + } + .tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; + } + .tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; + } + .tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; + } + .tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); + } + .tsd-checkbox-background { + fill: var(--color-accent); + } + input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); + } + + .settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; + } + + .tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; + } + + .tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; + } + + .tsd-hierarchy h4 label:hover span { + text-decoration: underline; + } + + .tsd-hierarchy { + list-style: square; + margin: 0; + } + .tsd-hierarchy-target { + font-weight: bold; + } + .tsd-hierarchy-toggle { + color: var(--color-link); + cursor: pointer; + } + + .tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); + } + .tsd-full-hierarchy, + .tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; + } + .tsd-full-hierarchy ul { + padding-left: 1.5rem; + } + .tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-full-hierarchy svg[data-dropdown] { + cursor: pointer; + } + .tsd-full-hierarchy svg[data-dropdown="false"] { + transform: rotate(-90deg); + } + .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { + display: none; + } + + .tsd-panel-group.tsd-index-group { + margin-bottom: 0; + } + .tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; + } + @media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } + } + @media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } + } + .tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; + } + + .tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; + } + + .tsd-anchor { + position: relative; + top: -100px; + } + + .tsd-member { + position: relative; + } + .tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; + } + + .tsd-navigation.settings { + margin: 0; + margin-bottom: 1rem; + } + .tsd-navigation > a, + .tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; + } + .tsd-navigation a, + .tsd-navigation summary > span, + .tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; + } + .tsd-navigation a.current, + .tsd-page-navigation a.current { + background: var(--color-active-menu-item); + color: var(--color-contrast-text); + } + .tsd-navigation a:hover, + .tsd-page-navigation a:hover { + text-decoration: underline; + } + .tsd-navigation ul, + .tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; + } + .tsd-navigation li, + .tsd-page-navigation li { + padding: 0; + max-width: 100%; + } + .tsd-navigation .tsd-nav-link { + display: none; + } + .tsd-nested-navigation { + margin-left: 3rem; + } + .tsd-nested-navigation > li > details { + margin-left: -1.5rem; + } + .tsd-small-nested-navigation { + margin-left: 1.5rem; + } + .tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; + } + + .tsd-page-navigation-section > summary { + padding: 0.25rem; + } + .tsd-page-navigation-section > summary > svg { + margin-right: 0.25rem; + } + .tsd-page-navigation-section > div { + margin-left: 30px; + } + .tsd-page-navigation ul { + padding-left: 1.75rem; + } + + #tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; + } + #tsd-sidebar-links a:last-of-type { + margin-bottom: 0; + } + + a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ + display: flex; + align-items: center; + gap: 0.25rem; + box-sizing: border-box; + } + .tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ + } + .tsd-accordion-summary, + .tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; + } + .tsd-accordion-summary a { + width: calc(100% - 1.5rem); + } + .tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + } + /* + * We need to be careful to target the arrow indicating whether the accordion + * is open, but not any other SVGs included in the details element. + */ + .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child { + transform: rotate(-90deg); + } + .tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; + } + .tsd-index-summary { + margin-top: 1.5rem; + margin-bottom: 0.75rem; + display: flex; + align-content: center; + } + + .tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + .tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; + } + .tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; + } + + .tsd-panel { + margin-bottom: 2.5rem; + } + .tsd-panel.tsd-member { + margin-bottom: 4rem; + } + .tsd-panel:empty { + display: none; + } + .tsd-panel > h1, + .tsd-panel > h2, + .tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; + } + .tsd-panel > h1.tsd-before-signature, + .tsd-panel > h2.tsd-before-signature, + .tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; + } + + .tsd-panel-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group details { + margin: 2rem 0; + } + .tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; + } + + #tsd-search[open] { + animation: fade-in var(--modal-animation-duration) ease-out forwards; + } + #tsd-search[open].closing { + animation-name: fade-out; + } + + /* Avoid setting `display` on closed dialog */ + #tsd-search[open] { + display: flex; + flex-direction: column; + padding: 1rem; + width: 32rem; + max-width: 90vw; + max-height: calc(100vh - env(keyboard-inset-height, 0px) - 25vh); + /* Anchor dialog to top */ + margin-top: 10vh; + border-radius: 6px; + will-change: max-height; + } + #tsd-search-input { + box-sizing: border-box; + width: 100%; + padding: 0 0.625rem; /* 10px */ + outline: 0; + border: 2px solid var(--color-accent); + background-color: transparent; + color: var(--color-text); + border-radius: 4px; + height: 2.5rem; + flex: 0 0 auto; + font-size: 0.875rem; + transition: border-color 0.2s, background-color 0.2s; + } + #tsd-search-input:focus-visible { + background-color: var(--color-background-active); + border-color: transparent; + color: var(--color-contrast-text); + } + #tsd-search-input::placeholder { + color: inherit; + opacity: 0.8; + } + #tsd-search-results { + margin: 0; + padding: 0; + list-style: none; + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow-y: auto; + } + #tsd-search-results:not(:empty) { + margin-top: 0.5rem; + } + #tsd-search-results > li { + background-color: var(--color-background); + line-height: 1.5; + box-sizing: border-box; + border-radius: 4px; + } + #tsd-search-results > li:nth-child(even) { + background-color: var(--color-background-secondary); + } + #tsd-search-results > li:is(:hover, [aria-selected="true"]) { + background-color: var(--color-background-active); + color: var(--color-contrast-text); + } + /* It's important that this takes full size of parent `li`, to capture a click on `li` */ + #tsd-search-results > li > a { + display: flex; + align-items: center; + padding: 0.5rem 0.25rem; + box-sizing: border-box; + width: 100%; + } + #tsd-search-results > li > a > .text { + flex: 1 1 auto; + min-width: 0; + overflow-wrap: anywhere; + } + #tsd-search-results > li > a .parent { + color: var(--color-text-aside); + } + #tsd-search-results > li > a mark { + color: inherit; + background-color: inherit; + font-weight: bold; + } + #tsd-search-status { + flex: 1; + display: grid; + place-content: center; + text-align: center; + overflow-wrap: anywhere; + } + #tsd-search-status:not(:empty) { + min-height: 6rem; + } + + .tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; + } + + .tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; + } + + .tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; + } + + .tsd-signature-type { + font-style: italic; + font-weight: normal; + } + + .tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; + } + .tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; + } + .tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; + } + .tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; + } + .tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; + } + + ul.tsd-parameter-list, + ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; + } + ul.tsd-parameter-list > li.tsd-parameter-signature, + ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; + } + ul.tsd-parameter-list h5, + ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; + } + .tsd-sources { + margin-top: 1rem; + font-size: 0.875em; + } + .tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; + } + .tsd-sources ul { + list-style: none; + padding: 0; + } + + .tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: var(--dim-toolbar-border-bottom-width) + var(--color-accent) solid; + transition: transform 0.3s ease-in-out; + } + .tsd-page-toolbar a { + color: var(--color-text); + } + .tsd-toolbar-contents { + display: flex; + align-items: center; + height: var(--dim-toolbar-contents-height); + margin: 0 auto; + } + .tsd-toolbar-contents > .title { + font-weight: bold; + margin-right: auto; + } + #tsd-toolbar-links { + display: flex; + align-items: center; + gap: 1.5rem; + margin-right: 1rem; + } + + .tsd-widget { + box-sizing: border-box; + display: inline-block; + opacity: 0.8; + height: 2.5rem; + width: 2.5rem; + transition: opacity 0.1s, background-color 0.1s; + text-align: center; + cursor: pointer; + border: none; + background-color: transparent; + } + .tsd-widget:hover { + opacity: 0.9; + } + .tsd-widget:active { + opacity: 1; + background-color: var(--color-accent); + } + #tsd-toolbar-menu-trigger { + display: none; + } + + .tsd-member-summary-name { + display: inline-flex; + align-items: center; + padding: 0.25rem; + text-decoration: none; + } + + .tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + color: var(--color-text); + vertical-align: middle; + } + + .tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; + } + + .tsd-member-summary-name:hover > .tsd-anchor-icon svg, + .tsd-anchor-link:hover > .tsd-anchor-icon svg, + .tsd-anchor-icon:focus-visible svg { + visibility: visible; + } + + .deprecated { + text-decoration: line-through !important; + } + + .warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); + } + + .tsd-kind-project { + color: var(--color-ts-project); + } + .tsd-kind-module { + color: var(--color-ts-module); + } + .tsd-kind-namespace { + color: var(--color-ts-namespace); + } + .tsd-kind-enum { + color: var(--color-ts-enum); + } + .tsd-kind-enum-member { + color: var(--color-ts-enum-member); + } + .tsd-kind-variable { + color: var(--color-ts-variable); + } + .tsd-kind-function { + color: var(--color-ts-function); + } + .tsd-kind-class { + color: var(--color-ts-class); + } + .tsd-kind-interface { + color: var(--color-ts-interface); + } + .tsd-kind-constructor { + color: var(--color-ts-constructor); + } + .tsd-kind-property { + color: var(--color-ts-property); + } + .tsd-kind-method { + color: var(--color-ts-method); + } + .tsd-kind-reference { + color: var(--color-ts-reference); + } + .tsd-kind-call-signature { + color: var(--color-ts-call-signature); + } + .tsd-kind-index-signature { + color: var(--color-ts-index-signature); + } + .tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); + } + .tsd-kind-parameter { + color: var(--color-ts-parameter); + } + .tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); + } + .tsd-kind-accessor { + color: var(--color-ts-accessor); + } + .tsd-kind-get-signature { + color: var(--color-ts-get-signature); + } + .tsd-kind-set-signature { + color: var(--color-ts-set-signature); + } + .tsd-kind-type-alias { + color: var(--color-ts-type-alias); + } + + /* if we have a kind icon, don't color the text by kind */ + .tsd-kind-icon ~ span { + color: var(--color-text); + } + + /* mobile */ + @media (max-width: 769px) { + #tsd-toolbar-menu-trigger { + display: inline-block; + /* temporary fix to vertically align, for compatibility */ + line-height: 2.5; + } + #tsd-toolbar-links { + display: none; + } + + .container-main { + display: flex; + } + .col-content { + float: none; + max-width: 100%; + width: 100%; + } + .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + .col-sidebar > *:last-child { + padding-bottom: 20px; + } + .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } + } + + /* one sidebar */ + @media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + --dim-container-main-margin-y: 2rem; + } + + .tsd-breadcrumb { + margin-top: 0; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } + } + @media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } + .site-menu { + margin-top: 1rem; + } + } + + /* two sidebars */ + @media (min-width: 1200px) { + .container-main { + grid-template-columns: + minmax(0, 1fr) minmax(0, 2.5fr) minmax( + 0, + 20rem + ); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 0rem; + } + + .page-menu, + .site-menu { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } + } +} diff --git a/docs/classes/circlebase.html b/docs/classes/circlebase.html deleted file mode 100644 index 31756e5..0000000 --- a/docs/classes/circlebase.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - CircleBase | SDF-2D - v0.7.6 - - - - - - -
-
-
-
- -
-
- Options -
-
- All -
    -
  • Public
  • -
  • Public/Protected
  • -
  • All
  • -
-
- - -
-
- Menu -
-
-
-
-
-
- -

Class CircleBase

-
-
-
-
-
-
-
-
-
-
-
-

Hierarchy

-
    -
  • - EmptyDrawable -
      -
    • - CircleBase -
    • -
    -
  • -
-
-
-

Index

-
-
-
-

Constructors

- -
-
-

Properties

- -
-
-

Methods

- -
-
-
-
-
-

Constructors

-
- -

constructor

-
    -
  • new CircleBase(center: vec2, radius: number): CircleBase
  • -
- -
-
-
-

Properties

-
- -

center

-
center: vec2
- -
-
- -

radius

-
radius: number
- -
-
- -

Static Readonly descriptor

-
descriptor: DrawableDescriptor
- -
-
-
-

Methods

-
- -

Protected getObjectToSerialize

-
    -
  • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
  • -
- -
-
- -

minDistance

-
    -
  • minDistance(target: vec2): number
  • -
- -
-
-
- -
-
-
-
-

Legend

-
-
    -
  • Constructor
  • -
  • Property
  • -
  • Method
  • -
-
    -
  • Property
  • -
  • Method
  • -
-
    -
  • Inherited property
  • -
  • Inherited method
  • -
-
    -
  • Protected method
  • -
-
    -
  • Static property
  • -
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/classes/circlelight.html b/docs/classes/circlelight.html deleted file mode 100644 index 4d7472e..0000000 --- a/docs/classes/circlelight.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - - CircleLight | SDF-2D - v0.7.6 - - - - - - -
-
-
-
- -
-
- Options -
-
- All -
    -
  • Public
  • -
  • Public/Protected
  • -
  • All
  • -
-
- - -
-
- Menu -
-
-
-
-
-
- -

Class CircleLight

-
-
-
-
-
-
-
-
-
-
-
-

Hierarchy

-
    -
  • - LightDrawable -
      -
    • - CircleLight -
    • -
    -
  • -
-
-
-

Index

-
-
-
-

Constructors

- -
-
-

Properties

- -
-
-

Methods

- -
-
-

Object literals

- -
-
-
-
-
-

Constructors

-
- -

constructor

-
    -
  • new CircleLight(center: vec2, color: vec3, intensity: number): CircleLight
  • -
- -
-
-
-

Properties

-
- -

center

-
center: vec2
- -
-
- -

color

-
color: vec3
- -
-
- -

intensity

-
intensity: number
- -
-
- -

Protected lightnessRatio

-
lightnessRatio: number = 1
- -
-
-
-

Methods

-
- -

Protected getObjectToSerialize

-
    -
  • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
  • -
- -
-
- -

minDistance

-
    -
  • minDistance(target: vec2): number
  • -
- -
-
- -

setLightnessRatio

-
    -
  • setLightnessRatio(ratio: number): void
  • -
- -
-
-
-

Object literals

-
- -

Static Readonly descriptor

-
descriptor: object
- -
- -

empty

-
empty: CircleLight = new CircleLight(vec2.create(), vec3.create(), 0)
- -
-
- -

shaderCombinationSteps

-
shaderCombinationSteps: number[] = [0, 1, 2, 4, 8, 16]
- -
-
- -

uniformCountMacroName

-
uniformCountMacroName: string = "CIRCLE_LIGHT_COUNT"
- -
-
- -

propertyUniformMapping

-
propertyUniformMapping: object
- -
- -

center

-
center: string = "circleLightCenters"
- -
-
- -

color

-
color: string = "circleLightColors"
- -
-
- -

intensity

-
intensity: string = "circleLightIntensities"
- -
-
-
-
-
- -
-
-
-
-

Legend

-
-
    -
  • Constructor
  • -
  • Property
  • -
  • Method
  • -
-
    -
  • Property
  • -
  • Method
  • -
-
    -
  • Inherited property
  • -
  • Inherited method
  • -
-
    -
  • Protected method
  • -
-
    -
  • Static property
  • -
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/classes/colorfulcircle.html b/docs/classes/colorfulcircle.html deleted file mode 100644 index 227834a..0000000 --- a/docs/classes/colorfulcircle.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - - ColorfulCircle | SDF-2D - v0.7.6 - - - - - - -
-
-
-
- -
-
- Options -
-
- All -
    -
  • Public
  • -
  • Public/Protected
  • -
  • All
  • -
-
- - -
-
- Menu -
-
-
-
-
-
- -

Class ColorfulCircle

-
-
-
-
-
-
-
-

Hierarchy

-
    -
  • - Drawable -
      -
    • - ColorfulCircle -
    • -
    -
  • -
-
-
-

Index

-
-
-
-

Constructors

- -
-
-

Properties

- -
-
-

Methods

- -
-
-

Object literals

- -
-
-
-
-
-

Constructors

-
- -

constructor

-
    -
  • new ColorfulCircle(center: vec2, radius: number, colorIndex: number): ColorfulCircle
  • -
- -
-
-
-

Properties

-
- -

center

-
center: vec2
- -
-
- -

colorIndex

-
colorIndex: number
- -
-
- -

radius

-
radius: number
- -
-
-
-

Methods

-
- -

Protected getObjectToSerialize

-
    -
  • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
  • -
- -
-
- -

minDistance

-
    -
  • minDistance(target: vec2): number
  • -
- -
-
-
-

Object literals

-
- -

Static descriptor

-
descriptor: object
- -
- -

empty

-
empty: ColorfulCircle = new ColorfulCircle(vec2.create(), 0, 0)
- -
-
- -

shaderCombinationSteps

-
shaderCombinationSteps: number[] = [0, 1, 2, 3, 8, 16]
- -
-
- -

uniformCountMacroName

-
uniformCountMacroName: string = "COLORFUL_CIRCLE_COUNT"
- -
-
- -

propertyUniformMapping

-
propertyUniformMapping: object
- -
- -

center

-
center: string = "colorfulCircleCenters"
- -
-
- -

colorIndex

-
colorIndex: string = "colorfulCircleColorIndex"
- -
-
- -

radius

-
radius: string = "colorfulCircleRadii"
- -
-
-
- -

sdf

-
sdf: object
- -
- -

distanceFunctionName

-
distanceFunctionName: string = "circleMinDistance"
- -
-
- -

shader

-
shader: string = `uniform vec2 colorfulCircleCenters[COLORFUL_CIRCLE_COUNT];uniform float colorfulCircleRadii[COLORFUL_CIRCLE_COUNT];uniform int colorfulCircleColorIndex[COLORFUL_CIRCLE_COUNT];float circleMinDistance(vec2 target, out vec4 color) {float minDistance = 1000.0;for (int i = 0; i < COLORFUL_CIRCLE_COUNT; i++) {float dist = distance(colorfulCircleCenters[i], target) - colorfulCircleRadii[i];if (dist < minDistance) {color = readFromPalette(colorfulCircleColorIndex[i]);dist = minDistance;}}return minDistance;}`
- -
-
-
-
-
- -
-
-
-
-

Legend

-
-
    -
  • Constructor
  • -
  • Property
  • -
  • Method
  • -
-
    -
  • Property
  • -
  • Method
  • -
-
    -
  • Inherited property
  • -
  • Inherited method
  • -
-
    -
  • Protected method
  • -
-
    -
  • Static property
  • -
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/classes/deltatimecalculator.html b/docs/classes/deltatimecalculator.html deleted file mode 100644 index 8c45e47..0000000 --- a/docs/classes/deltatimecalculator.html +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - DeltaTimeCalculator | SDF-2D - v0.7.6 - - - - - - -
-
-
-
- -
-
- Options -
-
- All -
    -
  • Public
  • -
  • Public/Protected
  • -
  • All
  • -
-
- - -
-
- Menu -
-
-
-
-
-
- -

Class DeltaTimeCalculator

-
-
-
-
-
-
-
-
-
-

A helper class for calculating the elapsed time between frames.

-
-

Handles the case, where the browser tab is not in focus and requestAnimationFrame - does not get called for performance reasons. In this case, the return deltaTime won't be - an unreasonably large value.

-
-
-
-

Hierarchy

-
    -
  • - DeltaTimeCalculator -
  • -
-
-
-

Index

-
-
-
-

Constructors

- -
-
-

Methods

- -
-
-
-
-
-

Constructors

-
- -

constructor

- - -
-
-
-

Methods

-
- -

destroy

-
    -
  • destroy(): void
  • -
- -
-
- -

getNextDeltaTime

-
    -
  • getNextDeltaTime(currentTime: DOMHighResTimeStamp): DOMHighResTimeStamp
  • -
-
    -
  • - -
    -
    -

    Return the elapsed time in milliseconds since the previous call of this - method by subtracting the previously given currentTime argument from the - current currentTime argument.

    -
    -

    Takes visibilitychange events into account.

    -
    -

    Parameters

    -
      -
    • -
      currentTime: DOMHighResTimeStamp
      -
      -

      Current time acquired e.g. with requestAnimationFrame.

      -
      -
    • -
    -

    Returns DOMHighResTimeStamp

    -
  • -
-
-
-
- -
-
-
-
-

Legend

-
-
    -
  • Constructor
  • -
  • Property
  • -
  • Method
  • -
-
    -
  • Property
  • -
  • Method
  • -
-
    -
  • Inherited property
  • -
  • Inherited method
  • -
-
    -
  • Protected method
  • -
-
    -
  • Static property
  • -
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/classes/drawable.html b/docs/classes/drawable.html deleted file mode 100644 index 03f4991..0000000 --- a/docs/classes/drawable.html +++ /dev/null @@ -1,265 +0,0 @@ - - - - - - Drawable | SDF-2D - v0.7.6 - - - - - - -
-
-
-
- -
-
- Options -
-
- All -
    -
  • Public
  • -
  • Public/Protected
  • -
  • All
  • -
-
- - -
-
- Menu -
-
-
-
-
-
- -

Class Drawable

-
-
-
-
-
-
-
-
-
-

Base class of every drawable object.

-
-

To create your own drawables, you need to subclass from this.

-
-

Although lights are also subclasses of Drawable, you cannot create your own light sources.

-
-
-
-
-

Hierarchy

- -
-
-

Index

-
-
-
-

Properties

- -
-
-

Methods

- -
-
-
-
-
-

Properties

-
- -

Static Readonly descriptor

-
descriptor: DrawableDescriptor
- -
-
-

This should be defined in inherited classes.

-
-
-
-
-
-

Methods

-
- -

Protected Abstract getObjectToSerialize

-
    -
  • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
  • -
-
    -
  • - -
    -
    -

    Return the values that should be given to the shaders through uniform inputs.

    -
    -
    -

    Parameters

    -
      -
    • -
      transform2d: mat2d
      -
      -

      position-like properties should be transformed by this matrix - before being returned.

      -
      -
    • -
    • -
      transform1d: number
      -
      -

      scalar properties should be transformed by this number - before being returned.

      -
      -
    • -
    -

    Returns any

    -
  • -
-
-
- -

Abstract minDistance

-
    -
  • minDistance(target: vec2): number
  • -
-
    -
  • - -
    -
    -

    The lower bound of the distance between the target and the object.

    -
    -

    It can return 0 by default, the only consequence of this, is a reduced performance. - Because this object won't benefit from tile-based rendering.

    -
    -

    Parameters

    -
      -
    • -
      target: vec2
      -
      -
      -
    • -
    -

    Returns number

    -
  • -
-
-
-
- -
-
-
-
-

Legend

-
-
    -
  • Constructor
  • -
  • Property
  • -
  • Method
  • -
-
    -
  • Property
  • -
  • Method
  • -
-
    -
  • Inherited property
  • -
  • Inherited method
  • -
-
    -
  • Protected method
  • -
-
    -
  • Static property
  • -
-
-
-
-
- - - \ No newline at end of file diff --git a/docs/classes/drawables_drawable.Drawable.html b/docs/classes/drawables_drawable.Drawable.html new file mode 100644 index 0000000..c82caf3 --- /dev/null +++ b/docs/classes/drawables_drawable.Drawable.html @@ -0,0 +1,19 @@ +Drawable | SDF-2D - v0.7.6
SDF-2D - v0.7.6
    Preparing search index...

    Class DrawableAbstract

    Base class of every drawable object.

    +

    To create your own drawables, you need to subclass from this.

    +
    +

    Although lights are also subclasses of Drawable, you cannot create your own light sources.

    +
    +

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Methods

    Constructors

    Properties

    descriptor: DrawableDescriptor

    This should be defined in inherited classes.

    +

    Methods

    • Return the values that should be given to the shaders through uniform inputs.

      +

      Parameters

      • transform2d: mat2d

        position-like properties should be transformed by this matrix +before being returned.

        +
      • transform1d: number

        scalar properties should be transformed by this number +before being returned.

        +

      Returns any

    • The lower bound of the distance between the target and the object.

      +

      It can return 0 by default, the only consequence of this, is a reduced performance. +Because this object won't benefit from tile-based rendering.

      +

      Parameters

      • target: vec2

      Returns number

    diff --git a/docs/classes/drawables_lights_circle-light.CircleLight.html b/docs/classes/drawables_lights_circle-light.CircleLight.html new file mode 100644 index 0000000..8f13c11 --- /dev/null +++ b/docs/classes/drawables_lights_circle-light.CircleLight.html @@ -0,0 +1,19 @@ +CircleLight | SDF-2D - v0.7.6
    SDF-2D - v0.7.6
      Preparing search index...
      Index

      Constructors

      • Parameters

        • center: vec2
        • color: vec3
        • intensity: number

        Returns CircleLight

      Properties

      center: vec2
      color: vec3
      intensity: number
      lightnessRatio: number = 1
      descriptor: DrawableDescriptor = ...

      This should be defined in inherited classes.

      +

      Methods

      • Return the values that should be given to the shaders through uniform inputs.

        +

        Parameters

        • transform2d: mat2d

          position-like properties should be transformed by this matrix +before being returned.

          +
        • transform1d: number

          scalar properties should be transformed by this number +before being returned.

          +

        Returns any

      • The lower bound of the distance between the target and the object.

        +

        It can return 0 by default, the only consequence of this, is a reduced performance. +Because this object won't benefit from tile-based rendering.

        +

        Parameters

        • target: vec2

        Returns number

      • Parameters

        • ratio: number

        Returns void

      diff --git a/docs/classes/drawables_lights_flashlight.Flashlight.html b/docs/classes/drawables_lights_flashlight.Flashlight.html new file mode 100644 index 0000000..98d3388 --- /dev/null +++ b/docs/classes/drawables_lights_flashlight.Flashlight.html @@ -0,0 +1,16 @@ +Flashlight | SDF-2D - v0.7.6
      SDF-2D - v0.7.6
        Preparing search index...
        Index

        Constructors

        • Parameters

          • center: vec2
          • color: vec3
          • intensity: number
          • direction: vec2
          • startCutoff: number = 0

          Returns Flashlight

        Properties

        center: vec2
        color: vec3
        direction: vec2
        intensity: number
        lightnessRatio: number = 1
        startCutoff: number = 0
        descriptor: DrawableDescriptor = ...

        This should be defined in inherited classes.

        +

        Methods

        • Parameters

          • transform2d: mat2d
          • transform1d: number

          Returns any

        • The lower bound of the distance between the target and the object.

          +

          It can return 0 by default, the only consequence of this, is a reduced performance. +Because this object won't benefit from tile-based rendering.

          +

          Parameters

          • target: vec2

          Returns number

        • Parameters

          • ratio: number

          Returns void

        diff --git a/docs/classes/drawables_shapes_colorful-circle.ColorfulCircle.html b/docs/classes/drawables_shapes_colorful-circle.ColorfulCircle.html new file mode 100644 index 0000000..5e1741e --- /dev/null +++ b/docs/classes/drawables_shapes_colorful-circle.ColorfulCircle.html @@ -0,0 +1,22 @@ +ColorfulCircle | SDF-2D - v0.7.6
        SDF-2D - v0.7.6
          Preparing search index...

          Base class of every drawable object.

          +

          To create your own drawables, you need to subclass from this.

          +
          +

          Although lights are also subclasses of Drawable, you cannot create your own light sources.

          +
          +

          Hierarchy (View Summary)

          Index

          Constructors

          • Parameters

            • center: vec2
            • radius: number
            • colorIndex: number

            Returns ColorfulCircle

          Properties

          center: vec2
          colorIndex: number
          radius: number
          descriptor: DrawableDescriptor = ...

          This should be defined in inherited classes.

          +

          Methods

          • Return the values that should be given to the shaders through uniform inputs.

            +

            Parameters

            • transform2d: mat2d

              position-like properties should be transformed by this matrix +before being returned.

              +
            • transform1d: number

              scalar properties should be transformed by this number +before being returned.

              +

            Returns any

          • The lower bound of the distance between the target and the object.

            +

            It can return 0 by default, the only consequence of this, is a reduced performance. +Because this object won't benefit from tile-based rendering.

            +

            Parameters

            • target: vec2

            Returns number

          diff --git a/docs/classes/drawables_shapes_polygon-factory.PolygonBase.html b/docs/classes/drawables_shapes_polygon-factory.PolygonBase.html new file mode 100644 index 0000000..6937f5e --- /dev/null +++ b/docs/classes/drawables_shapes_polygon-factory.PolygonBase.html @@ -0,0 +1,15 @@ +PolygonBase | SDF-2D - v0.7.6
          SDF-2D - v0.7.6
            Preparing search index...
            Index

            Constructors

            • Parameters

              • vertices: vec2[]

              Returns PolygonBase

            Properties

            vertices: vec2[]
            descriptor: DrawableDescriptor

            This should be defined in inherited classes.

            +

            Methods

            • Return the values that should be given to the shaders through uniform inputs.

              +

              Parameters

              • transform2d: mat2d

                position-like properties should be transformed by this matrix +before being returned.

                +
              • transform1d: number

                scalar properties should be transformed by this number +before being returned.

                +

              Returns any

            • The lower bound of the distance between the target and the object.

              +

              It can return 0 by default, the only consequence of this, is a reduced performance. +Because this object won't benefit from tile-based rendering.

              +

              Parameters

              • target: vec2

              Returns number

            diff --git a/docs/classes/dropletbase.html b/docs/classes/dropletbase.html deleted file mode 100644 index bda9fbd..0000000 --- a/docs/classes/dropletbase.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - DropletBase | SDF-2D - v0.7.6 - - - - - - -
            -
            -
            -
            - -
            -
            - Options -
            -
            - All -
              -
            • Public
            • -
            • Public/Protected
            • -
            • All
            • -
            -
            - - -
            -
            - Menu -
            -
            -
            -
            -
            -
            - -

            Class DropletBase

            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -

            Hierarchy

            -
              -
            • - EmptyDrawable -
                -
              • - DropletBase -
              • -
              -
            • -
            -
            -
            -

            Index

            -
            -
            -
            -

            Constructors

            - -
            -
            -

            Properties

            - -
            -
            -

            Methods

            - -
            -
            -
            -
            -
            -

            Constructors

            -
            - -

            constructor

            -
              -
            • new DropletBase(from: vec2, to: vec2, fromRadius: number, toRadius: number): DropletBase
            • -
            - -
            -
            -
            -

            Properties

            -
            - -

            Readonly from

            -
            from: vec2
            - -
            -
            - -

            Readonly fromRadius

            -
            fromRadius: number
            - -
            -
            - -

            Readonly to

            -
            to: vec2
            - -
            -
            - -

            Readonly toRadius

            -
            toRadius: number
            - -
            -
            - -

            Static Readonly descriptor

            -
            descriptor: DrawableDescriptor
            - -
            -
            -
            -

            Methods

            -
            - -

            Protected getObjectToSerialize

            -
              -
            • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
            • -
            - -
            -
            - -

            minDistance

            -
              -
            • minDistance(target: vec2): number
            • -
            - -
            -
            -
            - -
            -
            -
            -
            -

            Legend

            -
            -
              -
            • Constructor
            • -
            • Property
            • -
            • Method
            • -
            -
              -
            • Property
            • -
            • Method
            • -
            -
              -
            • Inherited property
            • -
            • Inherited method
            • -
            -
              -
            • Protected method
            • -
            -
              -
            • Static property
            • -
            -
            -
            -
            -
            - - - \ No newline at end of file diff --git a/docs/classes/flashlight.html b/docs/classes/flashlight.html deleted file mode 100644 index 54b4906..0000000 --- a/docs/classes/flashlight.html +++ /dev/null @@ -1,497 +0,0 @@ - - - - - - Flashlight | SDF-2D - v0.7.6 - - - - - - -
            -
            -
            -
            - -
            -
            - Options -
            -
            - All -
              -
            • Public
            • -
            • Public/Protected
            • -
            • All
            • -
            -
            - - -
            -
            - Menu -
            -
            -
            -
            -
            -
            - -

            Class Flashlight

            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -
            -

            Hierarchy

            -
              -
            • - LightDrawable -
                -
              • - Flashlight -
              • -
              -
            • -
            -
            -
            -

            Index

            -
            -
            -
            -

            Constructors

            - -
            -
            -

            Properties

            - -
            -
            -

            Methods

            - -
            -
            -

            Object literals

            - -
            -
            -
            -
            -
            -

            Constructors

            -
            - -

            constructor

            -
              -
            • new Flashlight(center: vec2, color: vec3, intensity: number, direction: vec2, startCutoff?: number): Flashlight
            • -
            -
              -
            • - -

              Parameters

              -
                -
              • -
                center: vec2
                -
              • -
              • -
                color: vec3
                -
              • -
              • -
                intensity: number
                -
              • -
              • -
                direction: vec2
                -
              • -
              • -
                Default value startCutoff: number = 0
                -
              • -
              -

              Returns Flashlight

              -
            • -
            -
            -
            -
            -

            Properties

            -
            - -

            center

            -
            center: vec2
            - -
            -
            - -

            color

            -
            color: vec3
            - -
            -
            - -

            direction

            -
            direction: vec2
            - -
            -
            - -

            intensity

            -
            intensity: number
            - -
            -
            - -

            Protected lightnessRatio

            -
            lightnessRatio: number = 1
            - -
            -
            - -

            startCutoff

            -
            startCutoff: number
            - -
            -
            -
            -

            Methods

            -
            - -

            Protected getObjectToSerialize

            -
              -
            • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
            • -
            - -
            -
            - -

            minDistance

            -
              -
            • minDistance(target: vec2): number
            • -
            - -
            -
            - -

            setLightnessRatio

            -
              -
            • setLightnessRatio(ratio: number): void
            • -
            - -
            -
            -
            -

            Object literals

            -
            - -

            Static Readonly descriptor

            -
            descriptor: object
            - -
            - -

            empty

            -
            empty: Flashlight = new Flashlight(vec2.create(), vec3.create(), 0, vec2.create())
            - -
            -
            - -

            shaderCombinationSteps

            -
            shaderCombinationSteps: number[] = [0, 1, 2, 4]
            - -
            -
            - -

            uniformCountMacroName

            -
            uniformCountMacroName: string = "FLASHLIGHT_COUNT"
            - -
            -
            - -

            propertyUniformMapping

            -
            propertyUniformMapping: object
            - -
            - -

            center

            -
            center: string = "flashlightCenters"
            - -
            -
            - -

            color

            -
            color: string = "flashlightColors"
            - -
            -
            - -

            direction

            -
            direction: string = "flashlightDirections"
            - -
            -
            - -

            intensity

            -
            intensity: string = "flashlightIntensities"
            - -
            -
            - -

            startCutoff

            -
            startCutoff: string = "flashlightStartCutoffs"
            - -
            -
            -
            -
            -
            - -
            -
            -
            -
            -

            Legend

            -
            -
              -
            • Constructor
            • -
            • Property
            • -
            • Method
            • -
            -
              -
            • Property
            • -
            • Method
            • -
            -
              -
            • Inherited property
            • -
            • Inherited method
            • -
            -
              -
            • Protected method
            • -
            -
              -
            • Static property
            • -
            -
            -
            -
            -
            - - - \ No newline at end of file diff --git a/docs/classes/fpsqualityautoscaler.html b/docs/classes/fpsqualityautoscaler.html deleted file mode 100644 index 66c5f87..0000000 --- a/docs/classes/fpsqualityautoscaler.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - FpsQualityAutoscaler | SDF-2D - v0.7.6 - - - - - - -
            -
            -
            -
            - -
            -
            - Options -
            -
            - All -
              -
            • Public
            • -
            • Public/Protected
            • -
            • All
            • -
            -
            - - -
            -
            - Menu -
            -
            -
            -
            -
            -
            - -

            Class FpsQualityAutoscaler

            -
            -
            -
            -
            -
            -
            -
            -
            -
            -

            Set the quality of rendering based on FPS values.

            -
            -

            When using this the size of the canvas must be fixed with CSS.

            -

            The addDeltaTime method should be called once every frame.

            -

            Usage:

            -
             const renderer = await compile(...);
            - const autoscaler = new FpsQualityAutoscaler(renderer);
            -
            -
            -
            -
            -

            Hierarchy

            -
              -
            • - FpsQualityAutoscaler -
            • -
            -
            -
            -

            Index

            -
            -
            -
            -

            Constructors

            - -
            -
            -

            Properties

            - -
            -
            -

            Accessors

            - -
            -
            -

            Methods

            - -
            -
            -
            -
            -
            -

            Constructors

            -
            - -

            constructor

            - - -
            -
            -
            -

            Properties

            -
            - -

            fpsHysteresis

            -
            fpsHysteresis: number = 5
            - -
            -
            - -

            Static fpsTarget

            -
            fpsTarget: number = 30
            - -
            -
            -
            -

            Accessors

            -
            - -

            FPS

            -
              -
            • get FPS(): number
            • -
            - -
            -
            -
            -

            Methods

            -
            - -

            addDeltaTime

            -
              -
            • addDeltaTime(deltaTimeInMilliseconds: DOMHighResTimeStamp): void
            • -
            - -
            -
            -
            - -
            -
            -
            -
            -

            Legend

            -
            -
              -
            • Constructor
            • -
            • Property
            • -
            • Method
            • -
            -
              -
            • Property
            • -
            • Method
            • -
            -
              -
            • Inherited property
            • -
            • Inherited method
            • -
            -
              -
            • Protected method
            • -
            -
              -
            • Static property
            • -
            -
            -
            -
            -
            - - - \ No newline at end of file diff --git a/docs/classes/graphics_rendering_fps-quality-autoscaler.FpsQualityAutoscaler.html b/docs/classes/graphics_rendering_fps-quality-autoscaler.FpsQualityAutoscaler.html new file mode 100644 index 0000000..b5bbccf --- /dev/null +++ b/docs/classes/graphics_rendering_fps-quality-autoscaler.FpsQualityAutoscaler.html @@ -0,0 +1,14 @@ +FpsQualityAutoscaler | SDF-2D - v0.7.6
            SDF-2D - v0.7.6
              Preparing search index...

              Set the quality of rendering based on FPS values.

              +

              When using this the size of the canvas must be fixed with CSS.

              +

              The addDeltaTime method should be called once every frame.

              +

              Usage:

              +
               const renderer = await compile(...);
              const autoscaler = new FpsQualityAutoscaler(renderer); +
              + +
              Index

              Constructors

              Properties

              Accessors

              FPS +

              Methods

              Constructors

              Properties

              fpsHysteresis: number = 5
              fpsTarget: number = 30

              Accessors

              • get FPS(): number

                Returns number

              Methods

              • Autoscaling is also done by calling this function

                +

                Parameters

                • deltaTimeInMilliseconds: number

                Returns void

              diff --git a/docs/classes/helper_delta-time-calculator.DeltaTimeCalculator.html b/docs/classes/helper_delta-time-calculator.DeltaTimeCalculator.html new file mode 100644 index 0000000..e0146cf --- /dev/null +++ b/docs/classes/helper_delta-time-calculator.DeltaTimeCalculator.html @@ -0,0 +1,13 @@ +DeltaTimeCalculator | SDF-2D - v0.7.6
              SDF-2D - v0.7.6
                Preparing search index...

                A helper class for calculating the elapsed time between frames.

                +

                Handles the case, where the browser tab is not in focus and requestAnimationFrame +does not get called for performance reasons. In this case, the return deltaTime won't be +an unreasonably large value.

                +
                Index

                Constructors

                Methods

                Constructors

                Methods

                • Returns void

                • Return the elapsed time in milliseconds since the previous call of this +method by subtracting the previously given currentTime argument from the +current currentTime argument.

                  +

                  Takes visibilitychange events into account.

                  +

                  Parameters

                  • currentTime: number

                    Current time acquired e.g. with requestAnimationFrame.

                    +

                  Returns number

                diff --git a/docs/classes/hexagonbase.html b/docs/classes/hexagonbase.html deleted file mode 100644 index 7198d1b..0000000 --- a/docs/classes/hexagonbase.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - HexagonBase | SDF-2D - v0.7.6 - - - - - - -
                -
                -
                -
                - -
                -
                - Options -
                -
                - All -
                  -
                • Public
                • -
                • Public/Protected
                • -
                • All
                • -
                -
                - - -
                -
                - Menu -
                -
                -
                -
                -
                -
                - -

                Class HexagonBase

                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -

                Hierarchy

                -
                  -
                • - EmptyDrawable -
                    -
                  • - HexagonBase -
                  • -
                  -
                • -
                -
                -
                -

                Index

                -
                -
                -
                -

                Constructors

                - -
                -
                -

                Properties

                - -
                -
                -

                Methods

                - -
                -
                -
                -
                -
                -

                Constructors

                -
                - -

                constructor

                -
                  -
                • new HexagonBase(center: vec2, radius: number): HexagonBase
                • -
                - -
                -
                -
                -

                Properties

                -
                - -

                center

                -
                center: vec2
                - -
                -
                - -

                radius

                -
                radius: number
                - -
                -
                - -

                Static Readonly descriptor

                -
                descriptor: DrawableDescriptor
                - -
                -
                -
                -

                Methods

                -
                - -

                Protected getObjectToSerialize

                -
                  -
                • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
                • -
                - -
                -
                - -

                minDistance

                -
                  -
                • minDistance(target: vec2): number
                • -
                - -
                -
                -
                - -
                -
                -
                -
                -

                Legend

                -
                -
                  -
                • Constructor
                • -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Inherited property
                • -
                • Inherited method
                • -
                -
                  -
                • Protected method
                • -
                -
                  -
                • Static property
                • -
                -
                -
                -
                -
                - - - \ No newline at end of file diff --git a/docs/classes/invertedtunnelbase.html b/docs/classes/invertedtunnelbase.html deleted file mode 100644 index 7226372..0000000 --- a/docs/classes/invertedtunnelbase.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - InvertedTunnelBase | SDF-2D - v0.7.6 - - - - - - -
                -
                -
                -
                - -
                -
                - Options -
                -
                - All -
                  -
                • Public
                • -
                • Public/Protected
                • -
                • All
                • -
                -
                - - -
                -
                - Menu -
                -
                -
                -
                -
                -
                - -

                Class InvertedTunnelBase

                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -

                Hierarchy

                -
                  -
                • - EmptyDrawable -
                    -
                  • - InvertedTunnelBase -
                  • -
                  -
                • -
                -
                -
                -

                Index

                -
                -
                -
                -

                Constructors

                - -
                -
                -

                Properties

                - -
                -
                -

                Methods

                - -
                -
                -
                -
                -
                -

                Constructors

                -
                - -

                constructor

                -
                  -
                • new InvertedTunnelBase(from: vec2, to: vec2, fromRadius: number, toRadius: number): InvertedTunnelBase
                • -
                - -
                -
                -
                -

                Properties

                -
                - -

                Readonly from

                -
                from: vec2
                - -
                -
                - -

                Readonly fromRadius

                -
                fromRadius: number
                - -
                -
                - -

                Readonly to

                -
                to: vec2
                - -
                -
                - -

                Readonly toRadius

                -
                toRadius: number
                - -
                -
                - -

                Static Readonly descriptor

                -
                descriptor: DrawableDescriptor
                - -
                -
                -
                -

                Methods

                -
                - -

                Protected getObjectToSerialize

                -
                  -
                • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
                • -
                - -
                -
                - -

                minDistance

                -
                  -
                • minDistance(target: vec2): number
                • -
                - -
                -
                -
                - -
                -
                -
                -
                -

                Legend

                -
                -
                  -
                • Constructor
                • -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Inherited property
                • -
                • Inherited method
                • -
                -
                  -
                • Protected method
                • -
                -
                  -
                • Static property
                • -
                -
                -
                -
                -
                - - - \ No newline at end of file diff --git a/docs/classes/metacirclebase.html b/docs/classes/metacirclebase.html deleted file mode 100644 index 148c870..0000000 --- a/docs/classes/metacirclebase.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - MetaCircleBase | SDF-2D - v0.7.6 - - - - - - -
                -
                -
                -
                - -
                -
                - Options -
                -
                - All -
                  -
                • Public
                • -
                • Public/Protected
                • -
                • All
                • -
                -
                - - -
                -
                - Menu -
                -
                -
                -
                -
                -
                - -

                Class MetaCircleBase

                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -

                Hierarchy

                -
                  -
                • - EmptyDrawable -
                    -
                  • - MetaCircleBase -
                  • -
                  -
                • -
                -
                -
                -

                Index

                -
                -
                -
                -

                Constructors

                - -
                -
                -

                Properties

                - -
                -
                -

                Methods

                - -
                -
                -
                -
                -
                -

                Constructors

                -
                - -

                constructor

                -
                  -
                • new MetaCircleBase(center: vec2, radius: number): MetaCircleBase
                • -
                - -
                -
                -
                -

                Properties

                -
                - -

                center

                -
                center: vec2
                - -
                -
                - -

                radius

                -
                radius: number
                - -
                -
                - -

                Static Readonly descriptor

                -
                descriptor: DrawableDescriptor
                - -
                -
                -
                -

                Methods

                -
                - -

                Protected getObjectToSerialize

                -
                  -
                • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
                • -
                - -
                -
                - -

                minDistance

                -
                  -
                • minDistance(target: vec2): number
                • -
                - -
                -
                -
                - -
                -
                -
                -
                -

                Legend

                -
                -
                  -
                • Constructor
                • -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Inherited property
                • -
                • Inherited method
                • -
                -
                  -
                • Protected method
                • -
                -
                  -
                • Static property
                • -
                -
                -
                -
                -
                - - - \ No newline at end of file diff --git a/docs/classes/polygonbase.html b/docs/classes/polygonbase.html deleted file mode 100644 index 1908c5f..0000000 --- a/docs/classes/polygonbase.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - - PolygonBase | SDF-2D - v0.7.6 - - - - - - -
                -
                -
                -
                - -
                -
                - Options -
                -
                - All -
                  -
                • Public
                • -
                • Public/Protected
                • -
                • All
                • -
                -
                - - -
                -
                - Menu -
                -
                -
                -
                -
                -
                - -

                Class PolygonBase

                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -

                Hierarchy

                - -
                -
                -

                Index

                -
                -
                -
                -

                Constructors

                - -
                -
                -

                Properties

                - -
                -
                -

                Methods

                - -
                -
                -
                -
                -
                -

                Constructors

                -
                - -

                constructor

                - - -
                -
                -
                -

                Properties

                -
                - -

                vertices

                -
                vertices: Array<vec2>
                - -
                -
                - -

                Static Readonly descriptor

                -
                descriptor: DrawableDescriptor
                - -
                -
                -
                -

                Methods

                -
                - -

                Protected getObjectToSerialize

                -
                  -
                • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
                • -
                - -
                -
                - -

                minDistance

                -
                  -
                • minDistance(target: vec2): number
                • -
                - -
                -
                -
                - -
                -
                -
                -
                -

                Legend

                -
                -
                  -
                • Constructor
                • -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Inherited property
                • -
                • Inherited method
                • -
                -
                  -
                • Protected method
                • -
                -
                  -
                • Static property
                • -
                -
                -
                -
                -
                - - - \ No newline at end of file diff --git a/docs/classes/rotatedrectanglebase.html b/docs/classes/rotatedrectanglebase.html deleted file mode 100644 index 240ea62..0000000 --- a/docs/classes/rotatedrectanglebase.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - RotatedRectangleBase | SDF-2D - v0.7.6 - - - - - - -
                -
                -
                -
                - -
                -
                - Options -
                -
                - All -
                  -
                • Public
                • -
                • Public/Protected
                • -
                • All
                • -
                -
                - - -
                -
                - Menu -
                -
                -
                -
                -
                -
                - -

                Class RotatedRectangleBase

                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -
                -

                Hierarchy

                -
                  -
                • - EmptyDrawable -
                    -
                  • - RotatedRectangleBase -
                  • -
                  -
                • -
                -
                -
                -

                Index

                -
                -
                -
                -

                Constructors

                - -
                -
                -

                Properties

                - -
                -
                -

                Methods

                - -
                -
                -
                -
                -
                -

                Constructors

                -
                - -

                constructor

                - - -
                -
                -
                -

                Properties

                -
                - -

                center

                -
                center: vec2
                - -
                -
                - -

                rotation

                -
                rotation: number
                - -
                -
                - -

                size

                -
                size: vec2
                - -
                -
                - -

                Static Readonly descriptor

                -
                descriptor: DrawableDescriptor
                - -
                -
                -
                -

                Methods

                -
                - -

                Protected getObjectToSerialize

                -
                  -
                • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
                • -
                - -
                -
                - -

                minDistance

                -
                  -
                • minDistance(target: vec2): number
                • -
                - -
                -
                -
                - -
                -
                -
                -
                -

                Legend

                -
                -
                  -
                • Constructor
                • -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Inherited property
                • -
                • Inherited method
                • -
                -
                  -
                • Protected method
                • -
                -
                  -
                • Static property
                • -
                -
                -
                -
                -
                - - - \ No newline at end of file diff --git a/docs/enums/filteringoptions.html b/docs/enums/filteringoptions.html deleted file mode 100644 index 72af880..0000000 --- a/docs/enums/filteringoptions.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - FilteringOptions | SDF-2D - v0.7.6 - - - - - - -
                -
                -
                -
                - -
                -
                - Options -
                -
                - All -
                  -
                • Public
                • -
                • Public/Protected
                • -
                • All
                • -
                -
                - - -
                -
                - Menu -
                -
                -
                -
                -
                -
                - -

                Enumeration FilteringOptions

                -
                -
                -
                -
                -
                -
                -
                -

                Index

                -
                -
                -
                -

                Enumeration members

                - -
                -
                -
                -
                -
                -

                Enumeration members

                -
                - -

                LINEAR

                -
                LINEAR: = "LINEAR"
                - -
                -
                - -

                NEAREST

                -
                NEAREST: = "NEAREST"
                - -
                -
                -
                - -
                -
                -
                -
                -

                Legend

                -
                -
                  -
                • Constructor
                • -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Property
                • -
                • Method
                • -
                -
                  -
                • Inherited property
                • -
                • Inherited method
                • -
                -
                  -
                • Protected method
                • -
                -
                  -
                • Static property
                • -
                -
                -
                -
                -
                - - - \ No newline at end of file diff --git a/docs/enums/graphics_graphics-library_texture_texture-options.FilteringOptions.html b/docs/enums/graphics_graphics-library_texture_texture-options.FilteringOptions.html new file mode 100644 index 0000000..8788e1f --- /dev/null +++ b/docs/enums/graphics_graphics-library_texture_texture-options.FilteringOptions.html @@ -0,0 +1,3 @@ +FilteringOptions | SDF-2D - v0.7.6
                SDF-2D - v0.7.6
                  Preparing search index...
                  Index

                  Enumeration Members

                  Enumeration Members

                  LINEAR: "LINEAR"
                  NEAREST: "NEAREST"
                  diff --git a/docs/enums/graphics_graphics-library_texture_texture-options.WrapOptions.html b/docs/enums/graphics_graphics-library_texture_texture-options.WrapOptions.html new file mode 100644 index 0000000..78700b0 --- /dev/null +++ b/docs/enums/graphics_graphics-library_texture_texture-options.WrapOptions.html @@ -0,0 +1,6 @@ +WrapOptions | SDF-2D - v0.7.6
                  SDF-2D - v0.7.6
                    Preparing search index...
                    Index

                    Enumeration Members

                    Enumeration Members

                    CLAMP_TO_EDGE: "CLAMP_TO_EDGE"
                    MIRRORED_REPEAT: "MIRRORED_REPEAT"

                    On WebGL it only work with power of 2 texture sizes.

                    +
                    REPEAT: "REPEAT"

                    On WebGL it only work with power of 2 texture sizes.

                    +
                    diff --git a/docs/enums/wrapoptions.html b/docs/enums/wrapoptions.html deleted file mode 100644 index a357364..0000000 --- a/docs/enums/wrapoptions.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - WrapOptions | SDF-2D - v0.7.6 - - - - - - -
                    -
                    -
                    -
                    - -
                    -
                    - Options -
                    -
                    - All -
                      -
                    • Public
                    • -
                    • Public/Protected
                    • -
                    • All
                    • -
                    -
                    - - -
                    -
                    - Menu -
                    -
                    -
                    -
                    -
                    -
                    - -

                    Enumeration WrapOptions

                    -
                    -
                    -
                    -
                    -
                    -
                    -
                    -

                    Index

                    -
                    -
                    -
                    -

                    Enumeration members

                    - -
                    -
                    -
                    -
                    -
                    -

                    Enumeration members

                    -
                    - -

                    CLAMP_TO_EDGE

                    -
                    CLAMP_TO_EDGE: = "CLAMP_TO_EDGE"
                    - -
                    -
                    - -

                    MIRRORED_REPEAT

                    -
                    MIRRORED_REPEAT: = "MIRRORED_REPEAT"
                    - -
                    -
                    -

                    On WebGL it only work with power of 2 texture sizes.

                    -
                    -
                    -
                    -
                    - -

                    REPEAT

                    -
                    REPEAT: = "REPEAT"
                    - -
                    -
                    -

                    On WebGL it only work with power of 2 texture sizes.

                    -
                    -
                    -
                    -
                    -
                    - -
                    -
                    -
                    -
                    -

                    Legend

                    -
                    -
                      -
                    • Constructor
                    • -
                    • Property
                    • -
                    • Method
                    • -
                    -
                      -
                    • Property
                    • -
                    • Method
                    • -
                    -
                      -
                    • Inherited property
                    • -
                    • Inherited method
                    • -
                    -
                      -
                    • Protected method
                    • -
                    -
                      -
                    • Static property
                    • -
                    -
                    -
                    -
                    -
                    - - - \ No newline at end of file diff --git a/docs/functions/compile.compile.html b/docs/functions/compile.compile.html new file mode 100644 index 0000000..544adec --- /dev/null +++ b/docs/functions/compile.compile.html @@ -0,0 +1,17 @@ +compile | SDF-2D - v0.7.6
                    SDF-2D - v0.7.6
                      Preparing search index...

                      Function compile

                      • Compiles a new renderer instance. There can multiple renderers on a single page.

                        +
                        +

                        Asynchronous behaviour is required for parallel shader compiling. +Trying to draw before the returned promise resolves, results in no action taken. +Settings can be set before promise resolution and they will be applied later.

                        +
                        +

                        The descriptors of every to-be-drawn objects are required before creating the renderer, +allowing the compiler to only create the shaders that will actually be used.

                        +

                        Example usage:

                        +
                         import { compile, hsl, CircleFactory, CircleLight } from 'sdf-2d';

                        const canvas = document.querySelector('canvas');
                        const Circle = CircleFactory(hsl(30, 66, 50));
                        const renderer = await compile(canvas, [Circle.descriptor, CircleLight.descriptor]); +
                        + +

                        Parameters

                        • canvas: HTMLCanvasElement

                          The returned renderer will only be able to draw to this canvas.

                          +
                        • descriptors: DrawableDescriptor[]

                          The descriptor of every single object (and light) that +ever needs to be drawn by this renderer has to be given before compiling.

                          +
                        • settingsOverrides: Partial<StartupSettings> = {}

                          Sensible defaults are provided, but these can be overridden.

                          +

                        Returns Promise<Renderer>

                      diff --git a/docs/functions/drawables_shapes_circle-factory.CircleFactory.html b/docs/functions/drawables_shapes_circle-factory.CircleFactory.html new file mode 100644 index 0000000..dcb5a1e --- /dev/null +++ b/docs/functions/drawables_shapes_circle-factory.CircleFactory.html @@ -0,0 +1 @@ +CircleFactory | SDF-2D - v0.7.6
                      SDF-2D - v0.7.6
                        Preparing search index...
                        • Parameters

                          • color:
                                | number
                                | IndexedCollection
                                | [number, number, number]
                                | [number, number, number, number]

                          Returns typeof CircleBase

                        diff --git a/docs/functions/drawables_shapes_droplet-factory.DropletFactory.html b/docs/functions/drawables_shapes_droplet-factory.DropletFactory.html new file mode 100644 index 0000000..8650a08 --- /dev/null +++ b/docs/functions/drawables_shapes_droplet-factory.DropletFactory.html @@ -0,0 +1 @@ +DropletFactory | SDF-2D - v0.7.6
                        SDF-2D - v0.7.6
                          Preparing search index...
                          • Parameters

                            • color:
                                  | number
                                  | IndexedCollection
                                  | [number, number, number]
                                  | [number, number, number, number]

                            Returns typeof DropletBase

                          diff --git a/docs/functions/drawables_shapes_hexagon-factory.HexagonFactory.html b/docs/functions/drawables_shapes_hexagon-factory.HexagonFactory.html new file mode 100644 index 0000000..4114781 --- /dev/null +++ b/docs/functions/drawables_shapes_hexagon-factory.HexagonFactory.html @@ -0,0 +1 @@ +HexagonFactory | SDF-2D - v0.7.6
                          SDF-2D - v0.7.6
                            Preparing search index...
                            • Parameters

                              • color:
                                    | number
                                    | IndexedCollection
                                    | [number, number, number]
                                    | [number, number, number, number]

                              Returns typeof HexagonBase

                            diff --git a/docs/functions/drawables_shapes_inverted-tunnel-factory.InvertedTunnelFactory.html b/docs/functions/drawables_shapes_inverted-tunnel-factory.InvertedTunnelFactory.html new file mode 100644 index 0000000..20997cf --- /dev/null +++ b/docs/functions/drawables_shapes_inverted-tunnel-factory.InvertedTunnelFactory.html @@ -0,0 +1,2 @@ +InvertedTunnelFactory | SDF-2D - v0.7.6
                            SDF-2D - v0.7.6
                              Preparing search index...
                              • Providing a noise texture is required for this drawable.

                                +

                                Parameters

                                • color:
                                      | number
                                      | IndexedCollection
                                      | [number, number, number]
                                      | [number, number, number, number]

                                Returns typeof InvertedTunnelBase

                              diff --git a/docs/functions/drawables_shapes_meta-circle-factory.MetaCircleFactory.html b/docs/functions/drawables_shapes_meta-circle-factory.MetaCircleFactory.html new file mode 100644 index 0000000..873a7c1 --- /dev/null +++ b/docs/functions/drawables_shapes_meta-circle-factory.MetaCircleFactory.html @@ -0,0 +1 @@ +MetaCircleFactory | SDF-2D - v0.7.6
                              SDF-2D - v0.7.6
                                Preparing search index...
                                • Parameters

                                  • color:
                                        | number
                                        | IndexedCollection
                                        | [number, number, number]
                                        | [number, number, number, number]
                                  • k: number = 32

                                  Returns typeof MetaCircleBase

                                diff --git a/docs/functions/drawables_shapes_noisy-polygon-factory.NoisyPolygonFactory.html b/docs/functions/drawables_shapes_noisy-polygon-factory.NoisyPolygonFactory.html new file mode 100644 index 0000000..d435507 --- /dev/null +++ b/docs/functions/drawables_shapes_noisy-polygon-factory.NoisyPolygonFactory.html @@ -0,0 +1 @@ +NoisyPolygonFactory | SDF-2D - v0.7.6
                                SDF-2D - v0.7.6
                                  Preparing search index...
                                  • Parameters

                                    • vertexCount: number
                                    • color:
                                          | number
                                          | IndexedCollection
                                          | [number, number, number]
                                          | [number, number, number, number]

                                    Returns typeof PolygonBase & NoisyPolygonBase

                                  diff --git a/docs/functions/drawables_shapes_polygon-factory.PolygonFactory.html b/docs/functions/drawables_shapes_polygon-factory.PolygonFactory.html new file mode 100644 index 0000000..5c4f625 --- /dev/null +++ b/docs/functions/drawables_shapes_polygon-factory.PolygonFactory.html @@ -0,0 +1 @@ +PolygonFactory | SDF-2D - v0.7.6
                                  SDF-2D - v0.7.6
                                    Preparing search index...
                                    • Parameters

                                      • vertexCount: number
                                      • color:
                                            | number
                                            | IndexedCollection
                                            | [number, number, number]
                                            | [number, number, number, number]

                                      Returns typeof PolygonBase

                                    diff --git a/docs/functions/drawables_shapes_rotated-rectangle-factory.RotatedRectangleFactory.html b/docs/functions/drawables_shapes_rotated-rectangle-factory.RotatedRectangleFactory.html new file mode 100644 index 0000000..d8898a2 --- /dev/null +++ b/docs/functions/drawables_shapes_rotated-rectangle-factory.RotatedRectangleFactory.html @@ -0,0 +1 @@ +RotatedRectangleFactory | SDF-2D - v0.7.6
                                    SDF-2D - v0.7.6
                                      Preparing search index...
                                      • Parameters

                                        • color:
                                              | number
                                              | IndexedCollection
                                              | [number, number, number]
                                              | [number, number, number, number]

                                        Returns typeof RotatedRectangleBase

                                      diff --git a/docs/functions/graphics_rendering_renderer_noise-renderer.renderNoise.html b/docs/functions/graphics_rendering_renderer_noise-renderer.renderNoise.html new file mode 100644 index 0000000..6119e73 --- /dev/null +++ b/docs/functions/graphics_rendering_renderer_noise-renderer.renderNoise.html @@ -0,0 +1,8 @@ +renderNoise | SDF-2D - v0.7.6
                                      SDF-2D - v0.7.6
                                        Preparing search index...
                                        • Create a renderer, draw a 2D noise texture with it, +then destroy the used resources, +while returning the generated texture in the form of a canvas.

                                          +

                                          Parameters

                                          • textureSize: ReadonlyVec2

                                            The resolution of the end result

                                            +
                                          • scale: number

                                            A starting value can be 15

                                            +
                                          • amplitude: number

                                            A starting value can be 1

                                            +
                                          • ignoreWebGL2: boolean = false

                                            Ignore WebGL2, even when it's available

                                            +

                                          Returns Promise<HTMLCanvasElement>

                                        diff --git a/docs/functions/helper_colors_hex.hex.html b/docs/functions/helper_colors_hex.hex.html new file mode 100644 index 0000000..6882ca9 --- /dev/null +++ b/docs/functions/helper_colors_hex.hex.html @@ -0,0 +1,5 @@ +hex | SDF-2D - v0.7.6
                                        SDF-2D - v0.7.6
                                          Preparing search index...
                                          diff --git a/docs/functions/helper_colors_hsl.hsl.html b/docs/functions/helper_colors_hsl.hsl.html new file mode 100644 index 0000000..6be0d90 --- /dev/null +++ b/docs/functions/helper_colors_hsl.hsl.html @@ -0,0 +1,6 @@ +hsl | SDF-2D - v0.7.6
                                          SDF-2D - v0.7.6
                                            Preparing search index...
                                            • Return a color contained in a vec3.

                                              +

                                              Parameters

                                              Returns vec3

                                            diff --git a/docs/functions/helper_colors_rgb.rgb.html b/docs/functions/helper_colors_rgb.rgb.html new file mode 100644 index 0000000..e503669 --- /dev/null +++ b/docs/functions/helper_colors_rgb.rgb.html @@ -0,0 +1,5 @@ +rgb | SDF-2D - v0.7.6
                                            SDF-2D - v0.7.6
                                              Preparing search index...
                                              • Return a color contained in a vec3.

                                                +

                                                Parameters

                                                • r: number

                                                  Should be between 0 and 1

                                                  +
                                                • g: number

                                                  Should be between 0 and 1

                                                  +
                                                • b: number

                                                  Should be between 0 and 1

                                                  +

                                                Returns vec3

                                              diff --git a/docs/functions/helper_colors_rgb255.rgb255.html b/docs/functions/helper_colors_rgb255.rgb255.html new file mode 100644 index 0000000..95ceca5 --- /dev/null +++ b/docs/functions/helper_colors_rgb255.rgb255.html @@ -0,0 +1,5 @@ +rgb255 | SDF-2D - v0.7.6
                                              SDF-2D - v0.7.6
                                                Preparing search index...
                                                • Return a color contained in a vec3.

                                                  +

                                                  Parameters

                                                  • r: number

                                                    Should be between 0 and 255

                                                    +
                                                  • g: number

                                                    Should be between 0 and 255

                                                    +
                                                  • b: number

                                                    Should be between 0 and 255

                                                    +

                                                  Returns vec3

                                                diff --git a/docs/functions/helper_colors_rgba.rgba.html b/docs/functions/helper_colors_rgba.rgba.html new file mode 100644 index 0000000..d8db834 --- /dev/null +++ b/docs/functions/helper_colors_rgba.rgba.html @@ -0,0 +1,6 @@ +rgba | SDF-2D - v0.7.6
                                                SDF-2D - v0.7.6
                                                  Preparing search index...
                                                  • Return a color with transparency contained in a vec4.

                                                    +

                                                    Parameters

                                                    • r: number

                                                      Should be between 0 and 1

                                                      +
                                                    • g: number

                                                      Should be between 0 and 1

                                                      +
                                                    • b: number

                                                      Should be between 0 and 1

                                                      +
                                                    • a: number

                                                      Should be between 0 and 1

                                                      +

                                                    Returns vec4

                                                  diff --git a/docs/functions/helper_colors_rgba255.rgba255.html b/docs/functions/helper_colors_rgba255.rgba255.html new file mode 100644 index 0000000..f785475 --- /dev/null +++ b/docs/functions/helper_colors_rgba255.rgba255.html @@ -0,0 +1,6 @@ +rgba255 | SDF-2D - v0.7.6
                                                  SDF-2D - v0.7.6
                                                    Preparing search index...
                                                    • Return a color with transparency contained in a vec4.

                                                      +

                                                      Parameters

                                                      • r: number

                                                        Should be between 0 and 255

                                                        +
                                                      • g: number

                                                        Should be between 0 and 255

                                                        +
                                                      • b: number

                                                        Should be between 0 and 255

                                                        +
                                                      • a: number

                                                        Should be between 0 and 255

                                                        +

                                                      Returns vec4

                                                    diff --git a/docs/functions/run-animation.runAnimation.html b/docs/functions/run-animation.runAnimation.html new file mode 100644 index 0000000..6e40b5e --- /dev/null +++ b/docs/functions/run-animation.runAnimation.html @@ -0,0 +1,21 @@ +runAnimation | SDF-2D - v0.7.6
                                                    SDF-2D - v0.7.6
                                                      Preparing search index...

                                                      Function runAnimation

                                                      • Implements the boilerplate code required to run real-time animations +in the browser. An FPS based autoscaler is also used. This creates an additional fps +key in the renderers insights property.

                                                        +

                                                        Example usage:

                                                        +
                                                          <canvas id="main" style="width: 300px; height: 150px"></canvas>
                                                        +
                                                        + +
                                                        +

                                                        The canvas needs to have a fixed size specified by CSS.

                                                        +
                                                        +
                                                        import { CircleFactory, CircleLight, hsl, runAnimation } from 'sdf-2d';

                                                        const canvas = document.querySelector('canvas');
                                                        const Circle = CircleFactory(hsl(180, 100, 40));

                                                        runAnimation(canvas, [Circle.descriptor, CircleLight.descriptor], (renderer, time) => {
                                                        renderer.addDrawable(
                                                        new Circle([150 + 50 * Math.cos(time / 1000), 75 + 50 * Math.sin(time / 1000)], 25)
                                                        );
                                                        renderer.addDrawable(new CircleLight([150, 75], hsl(270, 100, 40), 0.1));
                                                        return true;
                                                        }); +
                                                        + +

                                                        Parameters

                                                        • canvas: HTMLCanvasElement

                                                          The returned renderer will only be able to draw to this canvas.

                                                          +
                                                        • descriptors: DrawableDescriptor[]

                                                          The descriptor of every single object (and light) that +ever needs to be drawn by this renderer has to be given before compiling.

                                                          +
                                                        • animate: (
                                                              renderer: Renderer,
                                                              currentTimeInMilliseconds: number,
                                                              deltaTimeInMilliseconds: number,
                                                          ) => boolean

                                                          This function will be called before rendering each frame. +renderDrawables must not be called by the animate function. It should return true +if the animation should be continued. To break out of the animation loop, a false (falsy) +return value must be given.

                                                          +
                                                        • settings: Partial<StartupSettings & RuntimeSettings> = {}

                                                        Returns Promise<void>

                                                      diff --git a/docs/globals.html b/docs/globals.html deleted file mode 100644 index 686f8be..0000000 --- a/docs/globals.html +++ /dev/null @@ -1,1311 +0,0 @@ - - - - - - SDF-2D - v0.7.6 - - - - - - -
                                                      -
                                                      -
                                                      -
                                                      - -
                                                      -
                                                      - Options -
                                                      -
                                                      - All -
                                                        -
                                                      • Public
                                                      • -
                                                      • Public/Protected
                                                      • -
                                                      • All
                                                      • -
                                                      -
                                                      - - -
                                                      -
                                                      - Menu -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      - -

                                                      SDF-2D - v0.7.6

                                                      -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      -

                                                      Index

                                                      -
                                                      -
                                                      -
                                                      -

                                                      Namespaces

                                                      - -
                                                      -
                                                      -

                                                      Enumerations

                                                      - -
                                                      -
                                                      -

                                                      Drawable Classes

                                                      - -

                                                      Other Classes

                                                      - -
                                                      -
                                                      -

                                                      Interfaces

                                                      - -
                                                      -
                                                      -

                                                      Type aliases

                                                      - -
                                                      -
                                                      -

                                                      Variables

                                                      - -
                                                      -
                                                      -

                                                      Color Functions

                                                      - -

                                                      Drawable Functions

                                                      - -

                                                      Other Functions

                                                      - -
                                                      -
                                                      -

                                                      Object literals

                                                      - -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      -

                                                      Type aliases

                                                      -
                                                      - -

                                                      TextureWithOptions

                                                      -
                                                      TextureWithOptions: { overrides: Partial<TextureOptions>; source: TexImageSource }
                                                      - -
                                                      -

                                                      Type declaration

                                                      -
                                                        -
                                                      • -
                                                        overrides: Partial<TextureOptions>
                                                        -
                                                      • -
                                                      • -
                                                        source: TexImageSource
                                                        -
                                                      • -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      -

                                                      Variables

                                                      -
                                                      - -

                                                      Let _id

                                                      -
                                                      _id: number = 0
                                                      - -
                                                      -
                                                      -
                                                      -

                                                      Color Functions

                                                      -
                                                      - -

                                                      Const hex

                                                      -
                                                        -
                                                      • hex(hex: string): vec3
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const hsl

                                                      -
                                                        -
                                                      • hsl(hue: number, saturation: number, lightness: number): vec3
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const rgb

                                                      -
                                                        -
                                                      • rgb(r: number, g: number, b: number): vec3
                                                      • -
                                                      -
                                                        -
                                                      • - -
                                                        -
                                                        -

                                                        Return a color contained in a vec3.

                                                        -
                                                        -
                                                        -

                                                        Parameters

                                                        -
                                                          -
                                                        • -
                                                          r: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          g: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          b: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        -

                                                        Returns vec3

                                                        -
                                                      • -
                                                      -
                                                      -
                                                      - -

                                                      Const rgb255

                                                      -
                                                        -
                                                      • rgb255(r: number, g: number, b: number): vec3
                                                      • -
                                                      -
                                                        -
                                                      • - -
                                                        -
                                                        -

                                                        Return a color contained in a vec3.

                                                        -
                                                        -
                                                        -

                                                        Parameters

                                                        -
                                                          -
                                                        • -
                                                          r: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 255

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          g: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 255

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          b: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 255

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        -

                                                        Returns vec3

                                                        -
                                                      • -
                                                      -
                                                      -
                                                      - -

                                                      Const rgba

                                                      -
                                                        -
                                                      • rgba(r: number, g: number, b: number, a: number): vec4
                                                      • -
                                                      -
                                                        -
                                                      • - -
                                                        -
                                                        -

                                                        Return a color with transparency contained in a vec4.

                                                        -
                                                        -
                                                        -

                                                        Parameters

                                                        -
                                                          -
                                                        • -
                                                          r: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          g: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          b: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          a: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        -

                                                        Returns vec4

                                                        -
                                                      • -
                                                      -
                                                      -
                                                      - -

                                                      Const rgba255

                                                      -
                                                        -
                                                      • rgba255(r: number, g: number, b: number, a: number): vec4
                                                      • -
                                                      -
                                                        -
                                                      • - -
                                                        -
                                                        -

                                                        Return a color with transparency contained in a vec4.

                                                        -
                                                        -
                                                        -

                                                        Parameters

                                                        -
                                                          -
                                                        • -
                                                          r: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 255

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          g: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 255

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          b: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 255

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          a: number
                                                          -
                                                          -
                                                          -

                                                          Should be between 0 and 255

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        -

                                                        Returns vec4

                                                        -
                                                      • -
                                                      -
                                                      -
                                                      -
                                                      -

                                                      Drawable Functions

                                                      -
                                                      - -

                                                      Const CircleFactory

                                                      -
                                                        -
                                                      • CircleFactory(color: vec3 | vec4 | number): typeof CircleBase
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const DropletFactory

                                                      -
                                                        -
                                                      • DropletFactory(color: vec3 | vec4 | number): typeof DropletBase
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const HexagonFactory

                                                      -
                                                        -
                                                      • HexagonFactory(color: vec3 | vec4 | number): typeof HexagonBase
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const InvertedTunnelFactory

                                                      - - -
                                                      -
                                                      - -

                                                      Const MetaCircleFactory

                                                      -
                                                        -
                                                      • MetaCircleFactory(color: vec3 | vec4 | number, k?: number): typeof MetaCircleBase
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const NoisyPolygonFactory

                                                      -
                                                        -
                                                      • NoisyPolygonFactory(vertexCount: number, color: vec3 | vec4 | number): typeof PolygonBase & NoisyPolygonBase
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const PolygonFactory

                                                      -
                                                        -
                                                      • PolygonFactory(vertexCount: number, color: vec3 | vec4 | number): typeof PolygonBase
                                                      • -
                                                      - -
                                                      -
                                                      - -

                                                      Const RotatedRectangleFactory

                                                      - - -
                                                      -
                                                      -
                                                      -

                                                      Other Functions

                                                      -
                                                      - -

                                                      compile

                                                      - -
                                                        -
                                                      • - -
                                                        -
                                                        -

                                                        Compiles a new renderer instance. There can multiple renderers on a single page.

                                                        -
                                                        -

                                                        Asynchronous behaviour is required for parallel shader compiling. - Trying to draw before the returned promise resolves, results in no action taken. - Settings can be set before promise resolution and they will be applied later.

                                                        -
                                                        -
                                                        -

                                                        The descriptors of every to-be-drawn objects are required before creating the renderer, - allowing the compiler to only create the shaders that will actually be used.

                                                        -

                                                        Example usage:

                                                        -
                                                         import { compile, hsl, CircleFactory, CircleLight } from 'sdf-2d';
                                                        -
                                                        - const canvas = document.querySelector('canvas');
                                                        - const Circle = CircleFactory(hsl(30, 66, 50));
                                                        - const renderer = await compile(canvas, [Circle.descriptor, CircleLight.descriptor]);
                                                        -
                                                        -
                                                        -

                                                        Parameters

                                                        -
                                                          -
                                                        • -
                                                          canvas: HTMLCanvasElement
                                                          -
                                                          -

                                                          The returned renderer will only be able to draw to this canvas.

                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          descriptors: Array<DrawableDescriptor>
                                                          -
                                                          -

                                                          The descriptor of every single object (and light) that - ever needs to be drawn by this renderer has to be given before compiling.

                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          Default value settingsOverrides: Partial<StartupSettings> = {}
                                                          -
                                                          -

                                                          Sensible defaults are provided, but these can be overridden.

                                                          -
                                                          -
                                                        • -
                                                        -

                                                        Returns Promise<Renderer>

                                                        -
                                                      • -
                                                      -
                                                      -
                                                      - -

                                                      Const renderNoise

                                                      -
                                                        -
                                                      • renderNoise(textureSize: ReadonlyVec2, scale: number, amplitude: number, ignoreWebGL2?: boolean): Promise<HTMLCanvasElement>
                                                      • -
                                                      -
                                                        -
                                                      • - -
                                                        -
                                                        -

                                                        Create a renderer, draw a 2D noise texture with it, - then destroy the used resources, - while returning the generated texture in the form of a canvas.

                                                        -
                                                        -
                                                        -

                                                        Parameters

                                                        -
                                                          -
                                                        • -
                                                          textureSize: ReadonlyVec2
                                                          -
                                                          -
                                                          -

                                                          The resolution of the end result

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          scale: number
                                                          -
                                                          -
                                                          -

                                                          A starting value can be 15

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          amplitude: number
                                                          -
                                                          -
                                                          -

                                                          A starting value can be 1

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          Default value ignoreWebGL2: boolean = false
                                                          -
                                                          -
                                                          -

                                                          Ignore WebGL2, even when it's available

                                                          -
                                                          -
                                                          -
                                                        • -
                                                        -

                                                        Returns Promise<HTMLCanvasElement>

                                                        -
                                                      • -
                                                      -
                                                      -
                                                      - -

                                                      runAnimation

                                                      - -
                                                        -
                                                      • - -
                                                        -
                                                        -

                                                        Implements the boilerplate code required to run real-time animations - in the browser. An FPS based autoscaler is also used. This creates an additional fps - key in the renderers insights property.

                                                        -
                                                        -

                                                        Example usage:

                                                        -
                                                          <canvas id="main" style="width: 300px; height: 150px"></canvas>
                                                        -
                                                        -
                                                        -

                                                        The canvas needs to have a fixed size specified by CSS.

                                                        -
                                                        -
                                                        import { CircleFactory, CircleLight, hsl, runAnimation } from 'sdf-2d';
                                                        -
                                                        -const canvas = document.querySelector('canvas');
                                                        -const Circle = CircleFactory(hsl(180, 100, 40));
                                                        -
                                                        -runAnimation(canvas, [Circle.descriptor, CircleLight.descriptor], (renderer, time) => {
                                                        -  renderer.addDrawable(
                                                        -    new Circle([150 + 50 * Math.cos(time / 1000), 75 + 50 * Math.sin(time / 1000)], 25)
                                                        -  );
                                                        -  renderer.addDrawable(new CircleLight([150, 75], hsl(270, 100, 40), 0.1));
                                                        -  return true;
                                                        -});
                                                        -
                                                        -
                                                        -

                                                        Parameters

                                                        -
                                                          -
                                                        • -
                                                          canvas: HTMLCanvasElement
                                                          -
                                                          -

                                                          The returned renderer will only be able to draw to this canvas.

                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          descriptors: Array<DrawableDescriptor>
                                                          -
                                                          -

                                                          The descriptor of every single object (and light) that - ever needs to be drawn by this renderer has to be given before compiling.

                                                          -
                                                          -
                                                        • -
                                                        • -
                                                          animate: (renderer: Renderer, currentTimeInMilliseconds: DOMHighResTimeStamp, deltaTimeInMilliseconds: DOMHighResTimeStamp) => boolean
                                                          -
                                                          -

                                                          This function will be called before rendering each frame. - renderDrawables must not be called by the animate function. It should return true - if the animation should be continued. To break out of the animation loop, a false (falsy) - return value must be given.

                                                          -
                                                          -
                                                            -
                                                          • -
                                                              -
                                                            • (renderer: Renderer, currentTimeInMilliseconds: DOMHighResTimeStamp, deltaTimeInMilliseconds: DOMHighResTimeStamp): boolean
                                                            • -
                                                            -
                                                              -
                                                            • -

                                                              Parameters

                                                              -
                                                                -
                                                              • -
                                                                renderer: Renderer
                                                                -
                                                              • -
                                                              • -
                                                                currentTimeInMilliseconds: DOMHighResTimeStamp
                                                                -
                                                              • -
                                                              • -
                                                                deltaTimeInMilliseconds: DOMHighResTimeStamp
                                                                -
                                                              • -
                                                              -

                                                              Returns boolean

                                                              -
                                                            • -
                                                            -
                                                          • -
                                                          -
                                                        • -
                                                        • -
                                                          Default value settings: Partial<StartupSettings & RuntimeSettings> = {}
                                                          -
                                                        • -
                                                        -

                                                        Returns Promise<void>

                                                        -
                                                      • -
                                                      -
                                                      -
                                                      -
                                                      -

                                                      Object literals

                                                      -
                                                      - -

                                                      Const defaultRuntimeSettings

                                                      -
                                                      defaultRuntimeSettings: object
                                                      - -
                                                      -
                                                      -

                                                      Contains the default values used for RuntimeSettings.

                                                      -
                                                      -
                                                      -
                                                      - -

                                                      ambientLight

                                                      -
                                                      ambientLight: vec3 = vec3.fromValues(0.25, 0.15, 0.25)
                                                      - -
                                                      -
                                                      - -

                                                      colorPalette

                                                      -
                                                      colorPalette: never[] = []
                                                      - -
                                                      -
                                                      - -

                                                      distanceRenderScale

                                                      -
                                                      distanceRenderScale: number = 0.5
                                                      - -
                                                      -
                                                      - -

                                                      enableHighDpiRendering

                                                      -
                                                      enableHighDpiRendering: false = false
                                                      - -
                                                      -
                                                      - -

                                                      isWorldInverted

                                                      -
                                                      isWorldInverted: false = false
                                                      - -
                                                      -
                                                      - -

                                                      lightCutoffDistance

                                                      -
                                                      lightCutoffDistance: number = 400
                                                      - -
                                                      -
                                                      - -

                                                      lightsRenderScale

                                                      -
                                                      lightsRenderScale: number = 1
                                                      - -
                                                      -
                                                      - -

                                                      motionBlur

                                                      -
                                                      motionBlur: number = 0.3
                                                      - -
                                                      -
                                                      - -

                                                      textures

                                                      -
                                                      textures: {}
                                                      - -
                                                      -

                                                      Type declaration

                                                      -
                                                        -
                                                      -
                                                      -
                                                      -
                                                      - -

                                                      tileMultiplier

                                                      -
                                                      tileMultiplier: number = 8
                                                      - -
                                                      -
                                                      -
                                                      - -

                                                      Const defaultStartupSettings

                                                      -
                                                      defaultStartupSettings: object
                                                      - -
                                                      -
                                                      -

                                                      Contains the default values used for StartupSettings.

                                                      -
                                                      -
                                                      -
                                                      - -

                                                      backgroundColor

                                                      -
                                                      backgroundColor: vec4 = vec4.fromValues(1, 1, 1, 1)
                                                      - -
                                                      -
                                                      - -

                                                      enableContextLostSimulator

                                                      -
                                                      enableContextLostSimulator: false = false
                                                      - -
                                                      -
                                                      - -

                                                      enableStopwatch

                                                      -
                                                      enableStopwatch: false = false
                                                      - -
                                                      -
                                                      - -

                                                      ignoreWebGL2

                                                      -
                                                      ignoreWebGL2: false = false
                                                      - -
                                                      -
                                                      - -

                                                      lightPenetrationRatio

                                                      -
                                                      lightPenetrationRatio: number = 0.75
                                                      - -
                                                      -
                                                      - -

                                                      paletteSize

                                                      -
                                                      paletteSize: number = 256
                                                      - -
                                                      -
                                                      - -

                                                      shadowTraceCount

                                                      -
                                                      shadowTraceCount: number = 16
                                                      - -
                                                      -
                                                      -
                                                      -
                                                      - -
                                                      -
                                                      -
                                                      -
                                                      -

                                                      Legend

                                                      -
                                                      -
                                                        -
                                                      • Constructor
                                                      • -
                                                      • Property
                                                      • -
                                                      • Method
                                                      • -
                                                      -
                                                        -
                                                      • Property
                                                      • -
                                                      • Method
                                                      • -
                                                      -
                                                        -
                                                      • Inherited property
                                                      • -
                                                      • Inherited method
                                                      • -
                                                      -
                                                        -
                                                      • Protected method
                                                      • -
                                                      -
                                                        -
                                                      • Static property
                                                      • -
                                                      -
                                                      -
                                                      -
                                                      -
                                                      - - - \ No newline at end of file diff --git a/docs/hierarchy.html b/docs/hierarchy.html new file mode 100644 index 0000000..1a773b0 --- /dev/null +++ b/docs/hierarchy.html @@ -0,0 +1 @@ +SDF-2D - v0.7.6
                                                      SDF-2D - v0.7.6
                                                        Preparing search index...

                                                        SDF-2D - v0.7.6

                                                        Hierarchy Summary

                                                        diff --git a/docs/index.html b/docs/index.html index 4f266ca..8c5d546 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,318 +1,53 @@ - - - - - - SDF-2D - v0.7.6 - - - - - - -
                                                        -
                                                        -
                                                        -
                                                        - -
                                                        -
                                                        - Options -
                                                        -
                                                        - All -
                                                          -
                                                        • Public
                                                        • -
                                                        • Public/Protected
                                                        • -
                                                        • All
                                                        • -
                                                        -
                                                        - - -
                                                        -
                                                        - Menu -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        - -

                                                        SDF-2D - v0.7.6

                                                        -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        - -

                                                        SDF-2D logo Documentation

                                                        -
                                                        -

                                                        The motivation behind this library and more in-depth information about the rendering techniques utilised can be found in my thesis.

                                                        - -

                                                        Links

                                                        -
                                                        - - -

                                                        Usage (1st option)

                                                        -
                                                        -
                                                          -
                                                        • To start using cutting-edge 2D graphics, first you have get a renderer instance. This is possible by calling the compile function. -
                                                        • -
                                                        • After acquiring a renderer, the drawing of objects can be started through the Renderer interface.
                                                        • -
                                                        - -

                                                        Usage (2nd option)

                                                        -
                                                        -

                                                        If you're planning on creating animated content, use the runAnimation function to spare yourself from writing boilerplate code. - Further documentation on its usage is available in its documentation.

                                                        - -

                                                        Extending drawables

                                                        -
                                                        -
                                                        -

                                                        Iñigo Quilez has some great 2D SDF-s

                                                        -
                                                        -
                                                          -
                                                        • Subclass Drawable
                                                        • -
                                                        • Implement its abstract methods
                                                        • -
                                                        • Add a static property to your class called descriptor of type DrawableDescriptors
                                                        • -
                                                        • Follow the instructions given in Usage
                                                        • -
                                                        - -

                                                        Useful to know

                                                        -
                                                        - -

                                                        Math

                                                        -
                                                        -

                                                        The vec2, vec3, and vec4 types seen in the documentation come from the glMatrix library and are equivalent to regular JS Arrays or Float32Arrays. So, feel free to give [x, y] as an input for functions requiring vec2.

                                                        - -

                                                        Coordinates

                                                        -
                                                        -

                                                        Anywhere, where positions need to be specified, the y values grow upwards. That means, when setting the view area, the origin is at the bottom left corner of the display.

                                                        - -

                                                        Tile-based rendering

                                                        -
                                                        -

                                                        For optimising the evaluation of the distance field, the display is divided up into a grid of tiles. The shaders for each tile are compiled to support a fix maximum number of objects on it. When using the built-in drawables it is possible that after a certain number of on-screen objects new ones won't be visible.

                                                        -

                                                        Mitigating this issue is quite easy. Instead of the following code:

                                                        -
                                                        this.renderer = await compile(canvas, [Circle.descriptor, CircleLight.descriptor]);
                                                        -
                                                        -

                                                        Modify it to something similar:

                                                        -
                                                        this.renderer = await compile(canvas, [
                                                        -  {
                                                        -    ...Circle.descriptor,
                                                        -    shaderCombinationSteps: [0, 1, 2, 24, 64],
                                                        -  },
                                                        -  {
                                                        -    ...CircleLight.descriptor,
                                                        -    shaderCombinationSteps: [0, 1, 2, 4],
                                                        -  },
                                                        -]);
                                                        -
                                                        -

                                                        The usage of too large numbers is not advised for compatibility and performance reasons alike.

                                                        -
                                                        -

                                                        Steps are very useful for tile-based rendering, because it is possible for one tile (at a given moment) to be empty or contain just a few objects, while others have a large cluster of objects. The compiled shaders only take into account the necessary number of objects on each tile.

                                                        -
                                                        -
                                                        -
                                                        - -
                                                        -
                                                        -
                                                        -
                                                        -

                                                        Legend

                                                        -
                                                        -
                                                          -
                                                        • Constructor
                                                        • -
                                                        • Property
                                                        • -
                                                        • Method
                                                        • -
                                                        -
                                                          -
                                                        • Property
                                                        • -
                                                        • Method
                                                        • -
                                                        -
                                                          -
                                                        • Inherited property
                                                        • -
                                                        • Inherited method
                                                        • -
                                                        -
                                                          -
                                                        • Protected method
                                                        • -
                                                        -
                                                          -
                                                        • Static property
                                                        • -
                                                        -
                                                        -
                                                        -
                                                        -
                                                        - - - \ No newline at end of file +SDF-2D - v0.7.6
                                                        SDF-2D - v0.7.6
                                                          Preparing search index...

                                                          SDF-2D - v0.7.6

                                                          SDF-2D logo Documentation

                                                          +

                                                          The motivation behind this library and more in-depth information about the rendering techniques utilised can be found in my thesis.

                                                          + + + +
                                                            +
                                                          • To start using cutting-edge 2D graphics, first you have get a renderer instance. This is possible by calling the compile function. + +
                                                          • +
                                                          • After acquiring a renderer, the drawing of objects can be started through the Renderer interface.
                                                          • +
                                                          + +

                                                          If you're planning on creating animated content, use the runAnimation function to spare yourself from writing boilerplate code. +Further documentation on its usage is available in its documentation.

                                                          + +
                                                          +

                                                          Iñigo Quilez has some great 2D SDF-s

                                                          +
                                                          +
                                                            +
                                                          • Subclass Drawable
                                                          • +
                                                          • Implement its abstract methods
                                                          • +
                                                          • Add a static property to your class called descriptor of type DrawableDescriptors
                                                          • +
                                                          • Follow the instructions given in Usage
                                                          • +
                                                          + + +

                                                          The vec2, vec3, and vec4 types seen in the documentation come from the glMatrix library and are equivalent to regular JS Arrays or Float32Arrays. So, feel free to give [x, y] as an input for functions requiring vec2.

                                                          + +

                                                          Anywhere, where positions need to be specified, the y values grow upwards. That means, when setting the view area, the origin is at the bottom left corner of the display.

                                                          + +

                                                          For optimising the evaluation of the distance field, the display is divided up into a grid of tiles. The shaders for each tile are compiled to support a fix maximum number of objects on it. When using the built-in drawables it is possible that after a certain number of on-screen objects new ones won't be visible.

                                                          +

                                                          Mitigating this issue is quite easy. Instead of the following code:

                                                          +
                                                          this.renderer = await compile(canvas, [Circle.descriptor, CircleLight.descriptor]);
                                                          +
                                                          + +

                                                          Modify it to something similar:

                                                          +
                                                          this.renderer = await compile(canvas, [
                                                          {
                                                          ...Circle.descriptor,
                                                          shaderCombinationSteps: [0, 1, 2, 24, 64],
                                                          },
                                                          {
                                                          ...CircleLight.descriptor,
                                                          shaderCombinationSteps: [0, 1, 2, 4],
                                                          },
                                                          ]); +
                                                          + +

                                                          The usage of too large numbers is not advised for compatibility and performance reasons alike.

                                                          +
                                                          +

                                                          Steps are very useful for tile-based rendering, because it is possible for one tile (at a given moment) to be empty or contain just a few objects, while others have a large cluster of objects. The compiled shaders only take into account the necessary number of objects on each tile.

                                                          +
                                                          +
                                                          diff --git a/docs/interfaces/__global.array.html b/docs/interfaces/__global.array.html deleted file mode 100644 index 4a23bb7..0000000 --- a/docs/interfaces/__global.array.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - Array | SDF-2D - v0.7.6 - - - - - - -
                                                          -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          - Options -
                                                          -
                                                          - All -
                                                            -
                                                          • Public
                                                          • -
                                                          • Public/Protected
                                                          • -
                                                          • All
                                                          • -
                                                          -
                                                          - - -
                                                          -
                                                          - Menu -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - -

                                                          Interface Array<T>

                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Type parameters

                                                          -
                                                            -
                                                          • -

                                                            T

                                                            -
                                                          • -
                                                          -
                                                          -
                                                          -

                                                          Hierarchy

                                                          -
                                                            -
                                                          • - Array -
                                                          • -
                                                          -
                                                          -
                                                          -

                                                          Index

                                                          -
                                                          -
                                                          -
                                                          -

                                                          Properties

                                                          -
                                                            -
                                                          • x
                                                          • -
                                                          • y
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Properties

                                                          -
                                                          - -

                                                          x

                                                          -
                                                          x: T
                                                          - -
                                                          -
                                                          - -

                                                          y

                                                          -
                                                          y: T
                                                          - -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Legend

                                                          -
                                                          -
                                                            -
                                                          • Constructor
                                                          • -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Inherited property
                                                          • -
                                                          • Inherited method
                                                          • -
                                                          -
                                                            -
                                                          • Protected method
                                                          • -
                                                          -
                                                            -
                                                          • Static property
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - - - \ No newline at end of file diff --git a/docs/interfaces/__global.float32array.html b/docs/interfaces/__global.float32array.html deleted file mode 100644 index 4f359fb..0000000 --- a/docs/interfaces/__global.float32array.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - Float32Array | SDF-2D - v0.7.6 - - - - - - -
                                                          -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          - Options -
                                                          -
                                                          - All -
                                                            -
                                                          • Public
                                                          • -
                                                          • Public/Protected
                                                          • -
                                                          • All
                                                          • -
                                                          -
                                                          - - -
                                                          -
                                                          - Menu -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - -

                                                          Interface Float32Array

                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Hierarchy

                                                          -
                                                            -
                                                          • - Float32Array -
                                                          • -
                                                          -
                                                          -
                                                          -

                                                          Index

                                                          -
                                                          -
                                                          -
                                                          -

                                                          Properties

                                                          -
                                                            -
                                                          • x
                                                          • -
                                                          • y
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Properties

                                                          -
                                                          - -

                                                          x

                                                          -
                                                          x: number
                                                          - -
                                                          -
                                                          - -

                                                          y

                                                          -
                                                          y: number
                                                          - -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Legend

                                                          -
                                                          -
                                                            -
                                                          • Constructor
                                                          • -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Inherited property
                                                          • -
                                                          • Inherited method
                                                          • -
                                                          -
                                                            -
                                                          • Protected method
                                                          • -
                                                          -
                                                            -
                                                          • Static property
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - - - \ No newline at end of file diff --git a/docs/interfaces/__global.readonlyarray.html b/docs/interfaces/__global.readonlyarray.html deleted file mode 100644 index d0b0471..0000000 --- a/docs/interfaces/__global.readonlyarray.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - ReadonlyArray | SDF-2D - v0.7.6 - - - - - - -
                                                          -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          - Options -
                                                          -
                                                          - All -
                                                            -
                                                          • Public
                                                          • -
                                                          • Public/Protected
                                                          • -
                                                          • All
                                                          • -
                                                          -
                                                          - - -
                                                          -
                                                          - Menu -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - -

                                                          Interface ReadonlyArray<T>

                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Type parameters

                                                          -
                                                            -
                                                          • -

                                                            T

                                                            -
                                                          • -
                                                          -
                                                          -
                                                          -

                                                          Hierarchy

                                                          -
                                                            -
                                                          • - ReadonlyArray -
                                                          • -
                                                          -
                                                          -
                                                          -

                                                          Index

                                                          -
                                                          -
                                                          -
                                                          -

                                                          Properties

                                                          -
                                                            -
                                                          • x
                                                          • -
                                                          • y
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Properties

                                                          -
                                                          - -

                                                          x

                                                          -
                                                          x: T
                                                          - -
                                                          -
                                                          - -

                                                          y

                                                          -
                                                          y: T
                                                          - -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Legend

                                                          -
                                                          -
                                                            -
                                                          • Constructor
                                                          • -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Inherited property
                                                          • -
                                                          • Inherited method
                                                          • -
                                                          -
                                                            -
                                                          • Protected method
                                                          • -
                                                          -
                                                            -
                                                          • Static property
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - - - \ No newline at end of file diff --git a/docs/interfaces/drawabledescriptor.html b/docs/interfaces/drawabledescriptor.html deleted file mode 100644 index fde937a..0000000 --- a/docs/interfaces/drawabledescriptor.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - DrawableDescriptor | SDF-2D - v0.7.6 - - - - - - -
                                                          -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          - Options -
                                                          -
                                                          - All -
                                                            -
                                                          • Public
                                                          • -
                                                          • Public/Protected
                                                          • -
                                                          • All
                                                          • -
                                                          -
                                                          - - -
                                                          -
                                                          - Menu -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - -

                                                          Interface DrawableDescriptor

                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Used for containing the required information to compile drawables into - shader code.

                                                          -
                                                          -

                                                          Each Drawable must have a static property of this type, called descriptor.

                                                          -

                                                          For more information on how to create your own DrawableDescriptor-s, look at the - code of CircleFactory or InvertedTunnelFactory.

                                                          -
                                                          -
                                                          -
                                                          -

                                                          Hierarchy

                                                          -
                                                            -
                                                          • - DrawableDescriptor -
                                                          • -
                                                          -
                                                          -
                                                          -

                                                          Index

                                                          -
                                                          - -
                                                          -
                                                          -
                                                          -

                                                          Properties

                                                          -
                                                          - -

                                                          Readonly empty

                                                          -
                                                          empty: Drawable
                                                          - -
                                                          -
                                                          -

                                                          When no shaderCombinationStep matches the current number of drawables exactly, - the value of empty is used to pad out arrays.

                                                          -
                                                          -
                                                          -
                                                          -
                                                          - -

                                                          Optional objectCountScaler

                                                          -
                                                          objectCountScaler: undefined | number
                                                          - -
                                                          -
                                                          -

                                                          Calculating the number of objects to be drawn is done using the following pseudo-formula:

                                                          -
                                                          -

                                                          objectCountScaler * propertyUniformMapping[0].length

                                                          -

                                                          By default, its value is 1

                                                          -
                                                          -
                                                          -
                                                          - -

                                                          propertyUniformMapping

                                                          -
                                                          propertyUniformMapping: {}
                                                          - -
                                                          -
                                                          -

                                                          An object describing the relationship between the object returned by a Drawable's - getObjectToSerialize and the name of the arrays used in the GLSL code.

                                                          -
                                                          -
                                                          -
                                                          -

                                                          Type declaration

                                                          -
                                                            -
                                                          • -
                                                            [property: string]: string
                                                            -
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          - -

                                                          Optional sdf

                                                          -
                                                          sdf: undefined | { distanceFunctionName: string; isInverted?: undefined | false | true; shader: string }
                                                          - -
                                                          -
                                                          -

                                                          Required property for shapes having physical dimensions.

                                                          -
                                                          -
                                                          -
                                                          -
                                                          - -

                                                          shaderCombinationSteps

                                                          -
                                                          shaderCombinationSteps: Array<number>
                                                          - -
                                                          -
                                                          -

                                                          Number of possible drawables around each tile.

                                                          -
                                                          -

                                                          For each step, a shader will be generated. And at runtime the closes matching - shader will be used to render a given part of the scene.

                                                          -

                                                          Must contain 0 as a value.

                                                          -
                                                          -
                                                          -
                                                          - -

                                                          uniformCountMacroName

                                                          -
                                                          uniformCountMacroName: string
                                                          - -
                                                          -
                                                          -

                                                          The name of the uniform int used in the code to refer to the - number of drawables of this type.

                                                          -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - -
                                                          -
                                                          -
                                                          -
                                                          -

                                                          Legend

                                                          -
                                                          -
                                                            -
                                                          • Constructor
                                                          • -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Property
                                                          • -
                                                          • Method
                                                          • -
                                                          -
                                                            -
                                                          • Inherited property
                                                          • -
                                                          • Inherited method
                                                          • -
                                                          -
                                                            -
                                                          • Protected method
                                                          • -
                                                          -
                                                            -
                                                          • Static property
                                                          • -
                                                          -
                                                          -
                                                          -
                                                          -
                                                          - - - \ No newline at end of file diff --git a/docs/interfaces/drawables_drawable-descriptor.DrawableDescriptor.html b/docs/interfaces/drawables_drawable-descriptor.DrawableDescriptor.html new file mode 100644 index 0000000..6200b4b --- /dev/null +++ b/docs/interfaces/drawables_drawable-descriptor.DrawableDescriptor.html @@ -0,0 +1,34 @@ +DrawableDescriptor | SDF-2D - v0.7.6
                                                          SDF-2D - v0.7.6
                                                            Preparing search index...

                                                            Used for containing the required information to compile drawables into +shader code.

                                                            +

                                                            Each [[Drawable]] must have a static property of this type, called descriptor.

                                                            +

                                                            For more information on how to create your own DrawableDescriptor-s, look at the +code of [[CircleFactory]] or [[InvertedTunnelFactory]].

                                                            +
                                                            interface DrawableDescriptor {
                                                                empty: Drawable;
                                                                objectCountScaler?: number;
                                                                propertyUniformMapping: { [property: string]: string };
                                                                sdf?: {
                                                                    distanceFunctionName: string;
                                                                    isInverted?: boolean;
                                                                    shader: string;
                                                                };
                                                                shaderCombinationSteps: number[];
                                                                uniformCountMacroName: string;
                                                            }
                                                            Index

                                                            Properties

                                                            empty: Drawable

                                                            When no shaderCombinationStep matches the current number of drawables exactly, +the value of empty is used to pad out arrays.

                                                            +
                                                            objectCountScaler?: number

                                                            Calculating the number of objects to be drawn is done using the following pseudo-formula:

                                                            +

                                                            objectCountScaler * propertyUniformMapping[0].length

                                                            +

                                                            By default, its value is 1

                                                            +
                                                            propertyUniformMapping: { [property: string]: string }

                                                            An object describing the relationship between the object returned by a [[Drawable]]'s +getObjectToSerialize and the name of the arrays used in the GLSL code.

                                                            +
                                                            sdf?: { distanceFunctionName: string; isInverted?: boolean; shader: string }

                                                            Required property for shapes having physical dimensions.

                                                            +

                                                            Type Declaration

                                                            • distanceFunctionName: string

                                                              The name of the function defined in the value of shader. +Its signature should look like this:

                                                              +
                                                               float (in vec2 target, out float colorIndex)
                                                              +
                                                              + +
                                                            • OptionalisInverted?: boolean

                                                              By default, drawables are not inverted.

                                                              +
                                                            • shader: string

                                                              The actual GLSL code for observing the drawables represented by this descriptor.

                                                              +

                                                              Your code should work with both version 100 and version 300 es

                                                              +
                                                            shaderCombinationSteps: number[]

                                                            Number of possible drawables around each tile.

                                                            +

                                                            For each step, a shader will be generated. And at runtime the closes matching +shader will be used to render a given part of the scene.

                                                            +

                                                            Must contain 0 as a value.

                                                            +
                                                            uniformCountMacroName: string

                                                            The name of the uniform int used in the code to refer to the +number of drawables of this type.

                                                            +
                                                            diff --git a/docs/interfaces/graphics_graphics-library_texture_texture-options.TextureOptions.html b/docs/interfaces/graphics_graphics-library_texture_texture-options.TextureOptions.html new file mode 100644 index 0000000..7e2c71b --- /dev/null +++ b/docs/interfaces/graphics_graphics-library_texture_texture-options.TextureOptions.html @@ -0,0 +1,5 @@ +TextureOptions | SDF-2D - v0.7.6
                                                            SDF-2D - v0.7.6
                                                              Preparing search index...
                                                              interface TextureOptions {
                                                                  maxFilter: FilteringOptions;
                                                                  minFilter: FilteringOptions;
                                                                  wrapS: WrapOptions;
                                                                  wrapT: WrapOptions;
                                                              }
                                                              Index

                                                              Properties

                                                              maxFilter: FilteringOptions
                                                              minFilter: FilteringOptions
                                                              diff --git a/docs/interfaces/graphics_rendering_renderer_renderer-info.RendererInfo.html b/docs/interfaces/graphics_rendering_renderer_renderer-info.RendererInfo.html new file mode 100644 index 0000000..9d6ef01 --- /dev/null +++ b/docs/interfaces/graphics_rendering_renderer_renderer-info.RendererInfo.html @@ -0,0 +1,10 @@ +RendererInfo | SDF-2D - v0.7.6
                                                              SDF-2D - v0.7.6
                                                                Preparing search index...
                                                                interface RendererInfo {
                                                                    extensions: { [name: string]: boolean };
                                                                    floatInterpolationEnabled?: boolean;
                                                                    isWebGL2: boolean;
                                                                    programCount?: number;
                                                                    renderer?: string;
                                                                    renderPasses: {
                                                                        distance: {
                                                                            drawableCount?: number;
                                                                            drawnDrawableCount?: number;
                                                                            renderScale?: number;
                                                                            tileCount?: number;
                                                                        };
                                                                        lights: { drawnDrawableCount?: number; renderScale?: number };
                                                                    };
                                                                    sdf2dVersion?: string;
                                                                    startupTimeInMilliseconds?: number;
                                                                    vendor?: string;
                                                                    [k: string]: any;
                                                                }

                                                                Indexable

                                                                • [k: string]: any
                                                                Index

                                                                Properties

                                                                extensions: { [name: string]: boolean }
                                                                floatInterpolationEnabled?: boolean
                                                                isWebGL2: boolean
                                                                programCount?: number
                                                                renderer?: string
                                                                renderPasses: {
                                                                    distance: {
                                                                        drawableCount?: number;
                                                                        drawnDrawableCount?: number;
                                                                        renderScale?: number;
                                                                        tileCount?: number;
                                                                    };
                                                                    lights: { drawnDrawableCount?: number; renderScale?: number };
                                                                }
                                                                sdf2dVersion?: string
                                                                startupTimeInMilliseconds?: number
                                                                vendor?: string
                                                                diff --git a/docs/interfaces/graphics_rendering_renderer_renderer.Renderer.html b/docs/interfaces/graphics_rendering_renderer_renderer.Renderer.html new file mode 100644 index 0000000..fd4ae91 --- /dev/null +++ b/docs/interfaces/graphics_rendering_renderer_renderer.Renderer.html @@ -0,0 +1,45 @@ +Renderer | SDF-2D - v0.7.6
                                                                SDF-2D - v0.7.6
                                                                  Preparing search index...

                                                                  The main interface through which rendering can be achieved.

                                                                  +

                                                                  Multiple renderers are permitted on a single page.

                                                                  +
                                                                  interface Renderer {
                                                                      canvasSize: ReadonlyVec2;
                                                                      insights: RendererInfo | null;
                                                                      viewAreaSize: ReadonlyVec2;
                                                                      addDrawable<T extends Drawable>(drawable: T): void;
                                                                      destroy(): void;
                                                                      displayToWorldCoordinates(displayCoordinates: ReadonlyVec2): vec2;
                                                                      renderDrawables(): void;
                                                                      setRuntimeSettings(overrides: Partial<RuntimeSettings>): void;
                                                                      setViewArea(topLeft: ReadonlyVec2, size: ReadonlyVec2): void;
                                                                      worldToDisplayCoordinates(worldCoordinates: ReadonlyVec2): vec2;
                                                                  }
                                                                  Index

                                                                  Properties

                                                                  canvasSize: ReadonlyVec2

                                                                  Get the actual resolution of the canvas without triggering a reflow.

                                                                  +

                                                                  A ResizeObserver is utilised fot achieving this.

                                                                  +
                                                                  insights: RendererInfo | null

                                                                  Get useful information about the hardware and the SDF2D renderer.

                                                                  +

                                                                  Its scheme is subject to change.

                                                                  +

                                                                  During context lost it might be null.

                                                                  +
                                                                  viewAreaSize: ReadonlyVec2

                                                                  Get the viewArea size set by the last setViewArea.

                                                                  +

                                                                  By default, canvasSize is used for the view area size.

                                                                  +

                                                                  Methods

                                                                  • Schedule a drawable to be rendered during the next renderDrawables call.

                                                                    +

                                                                    Type Parameters

                                                                    Parameters

                                                                    • drawable: T

                                                                      Must be a subclass of drawable and its class must contain a +static descriptor property of type [[DrawableDescriptor]].

                                                                      +

                                                                    Returns void

                                                                  • Let go of every GPU resource held by the renderer.

                                                                    +

                                                                    It's up to the browser and driver whether these resources are actually freed. +Nonetheless, when a renderer is no longer needed, this method should be called.

                                                                    +

                                                                    Returns void

                                                                  • The inverse of worldToDisplayCoordinates, returns the world coordinates +from a pixel's position.

                                                                    +

                                                                    The view area coordinates are also given in world coordinates.

                                                                    +

                                                                    Useful for picking.

                                                                    +

                                                                    Parameters

                                                                    • displayCoordinates: ReadonlyVec2

                                                                      The origin is in the display's top left corner. +Just as in mouse events' clientX and clientY.

                                                                      +

                                                                    Returns vec2

                                                                  • Render every drawable added since the last renderDrawables call.

                                                                    +

                                                                    Resizing of framebuffers and the canvas also takes effect +when calling renderDrawables.

                                                                    +

                                                                    Returns void

                                                                  • Patch the current runtime settings with new values.

                                                                    +

                                                                    Parameters

                                                                    Returns void

                                                                  • Set the camera transformation.

                                                                    +

                                                                    Parameters

                                                                    • topLeft: ReadonlyVec2

                                                                      top (!) left. By default, equals to [0, canvasHeight].

                                                                      +
                                                                    • size: ReadonlyVec2

                                                                      need not be equal to the canvas size, though their aspect ratio +should be the same to avoid stretching.

                                                                      +

                                                                    Returns void

                                                                  • The inverse of displayToWorldCoordinates, returns the screen space position +of a point given in world space coordinates.

                                                                    +

                                                                    While the origin for worldCoordinates resides in the bottom-left corner, +the origin of the returned display coordinates is placed in the top left.

                                                                    +

                                                                    Parameters

                                                                    • worldCoordinates: ReadonlyVec2

                                                                      Coordinates used when drawing objects.

                                                                      +

                                                                    Returns vec2

                                                                  diff --git a/docs/interfaces/graphics_rendering_settings_runtime-settings.RuntimeSettings.html b/docs/interfaces/graphics_rendering_settings_runtime-settings.RuntimeSettings.html new file mode 100644 index 0000000..c5516e1 --- /dev/null +++ b/docs/interfaces/graphics_rendering_settings_runtime-settings.RuntimeSettings.html @@ -0,0 +1,46 @@ +RuntimeSettings | SDF-2D - v0.7.6
                                                                  SDF-2D - v0.7.6
                                                                    Preparing search index...

                                                                    Interface for a configuration object containing the settings +that can be changed during runtime.

                                                                    +

                                                                    The default values for RuntimeSettings can be found in [[defaultRuntimeSettings]].

                                                                    +
                                                                    interface RuntimeSettings {
                                                                        ambientLight: vec3;
                                                                        colorPalette: (
                                                                            | IndexedCollection
                                                                            | [number, number, number]
                                                                            | [number, number, number, number]
                                                                        )[];
                                                                        distanceRenderScale: number;
                                                                        enableHighDpiRendering: boolean;
                                                                        isWorldInverted: boolean;
                                                                        lightCutoffDistance: number;
                                                                        lightsRenderScale: number;
                                                                        motionBlur: number;
                                                                        textures: { [textureName: string]: TexImageSource | TextureWithOptions };
                                                                        tileMultiplier: number;
                                                                    }
                                                                    Index

                                                                    Properties

                                                                    ambientLight: vec3

                                                                    A light affecting every pixel (even the ones inside objects).

                                                                    +
                                                                    colorPalette: (
                                                                        | IndexedCollection
                                                                        | [number, number, number]
                                                                        | [number, number, number, number]
                                                                    )[]

                                                                    Its length should be less than the one specified in [[StartupSettings]].paletteSize.

                                                                    +

                                                                    The possible colors for the objects. Each color is referenced by its index in the +palette.

                                                                    +

                                                                    Can have transparency, but only if WebGL2 support is enabled.

                                                                    +
                                                                    distanceRenderScale: number

                                                                    The resolution of the distance field rendering will be scaled up or down with this value.

                                                                    +

                                                                    Because of interpolation, this can be set much lower than the lightsRenderScale, while +maintaining closely the same perceived quality.

                                                                    +

                                                                    Setting this is a great way to balance quality and performance.

                                                                    +
                                                                    enableHighDpiRendering: boolean

                                                                    When set to true rendering will be done on the screen's real resolution.

                                                                    +
                                                                    isWorldInverted: boolean

                                                                    By default, every pixel is outside of objects. Flipping this value to true will +result in every pixel being inside a large object. From then it only makes sense to +draw inverted objects.

                                                                    +
                                                                    lightCutoffDistance: number

                                                                    When lights reach the end of the display, they are slowly faded out. The length +of this phaseout can be set through this value.

                                                                    +
                                                                    lightsRenderScale: number

                                                                    The resolution of the final frame will be scaled by this value.

                                                                    +

                                                                    Setting this is a great way to balance quality and performance.

                                                                    +
                                                                    motionBlur: number

                                                                    Set the extent of the motion blur.

                                                                    +

                                                                    The values must be between 0 and 1. Where 0 means no motion blur, +and values just below 1 mean an extreme amount of motion blur.

                                                                    +
                                                                    textures: { [textureName: string]: TexImageSource | TextureWithOptions }

                                                                    It is possible to use your own textures in your SDF definitions.

                                                                    +

                                                                    The keys of the object should be the name used to reference them in the GLSL code, +and the values should be the textures themselves or a TextureWithOptions specifying +the texture's [[TextureOptions]]. +It can be a canvas, img element, Image and so on.

                                                                    +
                                                                    tileMultiplier: number

                                                                    First, the SDF of the scene is evaluated at every single pixel. +For speeding this process up, the screen is divided up into tiles, +this way each having to deal with a fewer objects.

                                                                    +

                                                                    For each tile, it is decided which objects are near its close vicinity. +This comes with some overhead for the CPU, while saving the GPU from loads of +calculations. The workload can be balanced between the CPU and the GPU by setting +this number.

                                                                    +
                                                                    diff --git a/docs/interfaces/graphics_rendering_settings_startup-settings.StartupSettings.html b/docs/interfaces/graphics_rendering_settings_startup-settings.StartupSettings.html new file mode 100644 index 0000000..8c96868 --- /dev/null +++ b/docs/interfaces/graphics_rendering_settings_startup-settings.StartupSettings.html @@ -0,0 +1,39 @@ +StartupSettings | SDF-2D - v0.7.6
                                                                    SDF-2D - v0.7.6
                                                                      Preparing search index...

                                                                      Interface for a configuration object containing the settings +that need to be given before shader compilation.

                                                                      +

                                                                      The default values for StartupSettings can be found in [[defaultStartupSettings]].

                                                                      +
                                                                      interface StartupSettings {
                                                                          backgroundColor:
                                                                              | IndexedCollection
                                                                              | [number, number, number]
                                                                              | [number, number, number, number];
                                                                          enableContextLostSimulator: boolean;
                                                                          enableStopwatch: boolean;
                                                                          ignoreWebGL2: boolean;
                                                                          lightOverlapReduction: number;
                                                                          lightPenetrationRatio: number;
                                                                          paletteSize: number;
                                                                          shadowTraceCount: number;
                                                                      }
                                                                      Index

                                                                      Properties

                                                                      backgroundColor:
                                                                          | IndexedCollection
                                                                          | [number, number, number]
                                                                          | [number, number, number, number]

                                                                      The default background color of the scene, can have transparency on every platform.

                                                                      +
                                                                      enableContextLostSimulator: boolean

                                                                      Many context lost event will be simulated when enabled.

                                                                      +

                                                                      Useful for testing.

                                                                      +
                                                                      enableStopwatch: boolean

                                                                      Creates a stopwatch used for measuring the GPU render time +when its required extension is available.

                                                                      +

                                                                      You should only have one renderer with enabled stopwatch.

                                                                      +
                                                                      ignoreWebGL2: boolean

                                                                      When set to true, rendering will fall back to WebGL +even when WebGL2 is present.

                                                                      +

                                                                      Useful for testing compatibility.

                                                                      +
                                                                      lightOverlapReduction: number

                                                                      Controls how overlapping lights combine.

                                                                      +

                                                                      At 0 lights are summed additively (the physically-correct default): +two nearby lights brighten their overlap and their glows merge into a +shape larger than either alone. At 1 overlapping lights instead take +the per-channel maximum, so a combination never reads brighter or larger +than its strongest contributor. Values in between blend the two.

                                                                      +

                                                                      A single light looks the same at any value. Should be between 0 and 1.

                                                                      +
                                                                      lightPenetrationRatio: number

                                                                      The illumination is multiplied by this constant where +the distance field is negative (i.e. inside objects).

                                                                      +

                                                                      Should be between 0 and 1, but other values are also permitted.

                                                                      +
                                                                      paletteSize: number

                                                                      Gives the number of possible object colors for the scene.

                                                                      +

                                                                      When using WebGL, only 256 different colors can be used. +On WebGL2, its value should not be larger than 4096 for +maintaining compatibility with low-end devices.

                                                                      +
                                                                      shadowTraceCount: number

                                                                      The raytracing algorithm used for shadows requires a step count. +Sensible values for this are between 8 and 32.

                                                                      +

                                                                      The higher the number, the harder the shadows will get. +Some ambient occlusion like effects can be visible on lower trace counts.

                                                                      +
                                                                      diff --git a/docs/interfaces/noisypolygonbase.html b/docs/interfaces/noisypolygonbase.html deleted file mode 100644 index 6299d75..0000000 --- a/docs/interfaces/noisypolygonbase.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - NoisyPolygonBase | SDF-2D - v0.7.6 - - - - - - -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - Options -
                                                                      -
                                                                      - All -
                                                                        -
                                                                      • Public
                                                                      • -
                                                                      • Public/Protected
                                                                      • -
                                                                      • All
                                                                      • -
                                                                      -
                                                                      - - -
                                                                      -
                                                                      - Menu -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Interface NoisyPolygonBase

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Hierarchy

                                                                      - -
                                                                      -
                                                                      -

                                                                      Index

                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Constructors

                                                                      - -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      - -
                                                                      -
                                                                      -

                                                                      Methods

                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Constructors

                                                                      -
                                                                      - -

                                                                      constructor

                                                                      - - -
                                                                      -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      -
                                                                      - -

                                                                      randomOffset

                                                                      -
                                                                      randomOffset: number
                                                                      - -
                                                                      -
                                                                      - -

                                                                      vertices

                                                                      -
                                                                      vertices: Array<vec2>
                                                                      - -
                                                                      -
                                                                      - -

                                                                      Static Readonly descriptor

                                                                      -
                                                                      descriptor: DrawableDescriptor
                                                                      - -
                                                                      -
                                                                      -
                                                                      -

                                                                      Methods

                                                                      -
                                                                      - -

                                                                      Protected getObjectToSerialize

                                                                      -
                                                                        -
                                                                      • getObjectToSerialize(transform2d: mat2d, transform1d: number): any
                                                                      • -
                                                                      - -
                                                                      -
                                                                      - -

                                                                      minDistance

                                                                      -
                                                                        -
                                                                      • minDistance(target: vec2): number
                                                                      • -
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Legend

                                                                      -
                                                                      -
                                                                        -
                                                                      • Constructor
                                                                      • -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Inherited property
                                                                      • -
                                                                      • Inherited method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Protected method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Static property
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - \ No newline at end of file diff --git a/docs/interfaces/renderer.html b/docs/interfaces/renderer.html deleted file mode 100644 index 8192a07..0000000 --- a/docs/interfaces/renderer.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - Renderer | SDF-2D - v0.7.6 - - - - - - -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - Options -
                                                                      -
                                                                      - All -
                                                                        -
                                                                      • Public
                                                                      • -
                                                                      • Public/Protected
                                                                      • -
                                                                      • All
                                                                      • -
                                                                      -
                                                                      - - -
                                                                      -
                                                                      - Menu -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Interface Renderer

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      The main interface through which rendering can be achieved.

                                                                      -
                                                                      -

                                                                      Multiple renderers are permitted on a single page.

                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Hierarchy

                                                                      -
                                                                        -
                                                                      • - Renderer -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -

                                                                      Index

                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      -
                                                                      - -

                                                                      Readonly canvasSize

                                                                      -
                                                                      canvasSize: ReadonlyVec2
                                                                      - -
                                                                      -
                                                                      -

                                                                      Get the actual resolution of the canvas without triggering a reflow.

                                                                      -
                                                                      -

                                                                      A ResizeObserver is utilised fot achieving this.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Readonly insights

                                                                      -
                                                                      insights: RendererInfo | null
                                                                      - -
                                                                      -
                                                                      -

                                                                      Get useful information about the hardware and the SDF2D renderer.

                                                                      -
                                                                      -

                                                                      Its scheme is subject to change.

                                                                      -

                                                                      During context lost it might be null.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Readonly viewAreaSize

                                                                      -
                                                                      viewAreaSize: ReadonlyVec2
                                                                      - -
                                                                      -
                                                                      -

                                                                      Get the viewArea size set by the last setViewArea.

                                                                      -
                                                                      -

                                                                      By default, canvasSize is used for the view area size.

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Methods

                                                                      -
                                                                      - -

                                                                      addDrawable

                                                                      -
                                                                        -
                                                                      • addDrawable<T>(drawable: T): void
                                                                      • -
                                                                      -
                                                                        -
                                                                      • - -
                                                                        -
                                                                        -

                                                                        Schedule a drawable to be rendered during the next renderDrawables call.

                                                                        -
                                                                        -
                                                                        -

                                                                        Type parameters

                                                                        - -

                                                                        Parameters

                                                                        -
                                                                          -
                                                                        • -
                                                                          drawable: T
                                                                          -
                                                                          -

                                                                          Must be a subclass of drawable and its class must contain a - static descriptor property of type DrawableDescriptor.

                                                                          -
                                                                          -
                                                                        • -
                                                                        -

                                                                        Returns void

                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      - -

                                                                      destroy

                                                                      -
                                                                        -
                                                                      • destroy(): void
                                                                      • -
                                                                      -
                                                                        -
                                                                      • - -
                                                                        -
                                                                        -

                                                                        Let go of every GPU resource held by the renderer.

                                                                        -
                                                                        -

                                                                        It's up to the browser and driver whether these resources are actually freed. - Nonetheless, when a renderer is no longer needed, this method should be called.

                                                                        -
                                                                        -

                                                                        Returns void

                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      - -

                                                                      displayToWorldCoordinates

                                                                      -
                                                                        -
                                                                      • displayToWorldCoordinates(displayCoordinates: ReadonlyVec2): vec2
                                                                      • -
                                                                      -
                                                                        -
                                                                      • - -
                                                                        -
                                                                        -

                                                                        The inverse of worldToDisplayCoordinates, returns the world coordinates - from a pixel's position.

                                                                        -
                                                                        -

                                                                        The view area coordinates are also given in world coordinates.

                                                                        -

                                                                        Useful for picking.

                                                                        -
                                                                        -

                                                                        Parameters

                                                                        -
                                                                          -
                                                                        • -
                                                                          displayCoordinates: ReadonlyVec2
                                                                          -
                                                                          -

                                                                          The origin is in the display's top left corner. - Just as in mouse events' clientX and clientY.

                                                                          -
                                                                          -
                                                                        • -
                                                                        -

                                                                        Returns vec2

                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      - -

                                                                      renderDrawables

                                                                      -
                                                                        -
                                                                      • renderDrawables(): void
                                                                      • -
                                                                      -
                                                                        -
                                                                      • - -
                                                                        -
                                                                        -

                                                                        Render every drawable added since the last renderDrawables call.

                                                                        -
                                                                        -

                                                                        Resizing of framebuffers and the canvas also takes effect - when calling renderDrawables.

                                                                        -
                                                                        -

                                                                        Returns void

                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      - -

                                                                      setRuntimeSettings

                                                                      - - -
                                                                      -
                                                                      - -

                                                                      setViewArea

                                                                      -
                                                                        -
                                                                      • setViewArea(topLeft: ReadonlyVec2, size: ReadonlyVec2): void
                                                                      • -
                                                                      -
                                                                        -
                                                                      • - -
                                                                        -
                                                                        -

                                                                        Set the camera transformation.

                                                                        -
                                                                        -
                                                                        -

                                                                        Parameters

                                                                        -
                                                                          -
                                                                        • -
                                                                          topLeft: ReadonlyVec2
                                                                          -
                                                                          -

                                                                          top (!) left. By default, equals to [0, canvasHeight].

                                                                          -
                                                                          -
                                                                        • -
                                                                        • -
                                                                          size: ReadonlyVec2
                                                                          -
                                                                          -

                                                                          need not be equal to the canvas size, though their aspect ratio - should be the same to avoid stretching.

                                                                          -
                                                                          -
                                                                        • -
                                                                        -

                                                                        Returns void

                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      - -

                                                                      worldToDisplayCoordinates

                                                                      -
                                                                        -
                                                                      • worldToDisplayCoordinates(worldCoordinates: ReadonlyVec2): vec2
                                                                      • -
                                                                      -
                                                                        -
                                                                      • - -
                                                                        -
                                                                        -

                                                                        The inverse of displayToWorldCoordinates, returns the screen space position - of a point given in world space coordinates.

                                                                        -
                                                                        -

                                                                        While the origin for worldCoordinates resides in the bottom-left corner, - the origin of the returned display coordinates is placed in the top left.

                                                                        -
                                                                        -

                                                                        Parameters

                                                                        -
                                                                          -
                                                                        • -
                                                                          worldCoordinates: ReadonlyVec2
                                                                          -
                                                                          -

                                                                          Coordinates used when drawing objects.

                                                                          -
                                                                          -
                                                                        • -
                                                                        -

                                                                        Returns vec2

                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Legend

                                                                      -
                                                                      -
                                                                        -
                                                                      • Constructor
                                                                      • -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Inherited property
                                                                      • -
                                                                      • Inherited method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Protected method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Static property
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - \ No newline at end of file diff --git a/docs/interfaces/rendererinfo.html b/docs/interfaces/rendererinfo.html deleted file mode 100644 index b31724c..0000000 --- a/docs/interfaces/rendererinfo.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - RendererInfo | SDF-2D - v0.7.6 - - - - - - -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - Options -
                                                                      -
                                                                      - All -
                                                                        -
                                                                      • Public
                                                                      • -
                                                                      • Public/Protected
                                                                      • -
                                                                      • All
                                                                      • -
                                                                      -
                                                                      - - -
                                                                      -
                                                                      - Menu -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Interface RendererInfo

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Hierarchy

                                                                      -
                                                                        -
                                                                      • - RendererInfo -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -

                                                                      Indexable

                                                                      -
                                                                      [k: string]: any
                                                                      -
                                                                      -
                                                                      -

                                                                      Index

                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      -
                                                                      - -

                                                                      extensions

                                                                      -
                                                                      extensions: {}
                                                                      - -
                                                                      -

                                                                      Type declaration

                                                                      -
                                                                        -
                                                                      • -
                                                                        [name: string]: boolean
                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Optional floatInterpolationEnabled

                                                                      -
                                                                      floatInterpolationEnabled: undefined | false | true
                                                                      - -
                                                                      -
                                                                      - -

                                                                      isWebGL2

                                                                      -
                                                                      isWebGL2: boolean
                                                                      - -
                                                                      -
                                                                      - -

                                                                      Optional programCount

                                                                      -
                                                                      programCount: undefined | number
                                                                      - -
                                                                      -
                                                                      - -

                                                                      renderPasses

                                                                      -
                                                                      renderPasses: { distance: { drawableCount?: undefined | number; drawnDrawableCount?: undefined | number; renderScale?: undefined | number; tileCount?: undefined | number }; lights: { drawnDrawableCount?: undefined | number; renderScale?: undefined | number } }
                                                                      - -
                                                                      -

                                                                      Type declaration

                                                                      -
                                                                        -
                                                                      • -
                                                                        distance: { drawableCount?: undefined | number; drawnDrawableCount?: undefined | number; renderScale?: undefined | number; tileCount?: undefined | number }
                                                                        -
                                                                          -
                                                                        • -
                                                                          Optional drawableCount?: undefined | number
                                                                          -
                                                                        • -
                                                                        • -
                                                                          Optional drawnDrawableCount?: undefined | number
                                                                          -
                                                                        • -
                                                                        • -
                                                                          Optional renderScale?: undefined | number
                                                                          -
                                                                        • -
                                                                        • -
                                                                          Optional tileCount?: undefined | number
                                                                          -
                                                                        • -
                                                                        -
                                                                      • -
                                                                      • -
                                                                        lights: { drawnDrawableCount?: undefined | number; renderScale?: undefined | number }
                                                                        -
                                                                          -
                                                                        • -
                                                                          Optional drawnDrawableCount?: undefined | number
                                                                          -
                                                                        • -
                                                                        • -
                                                                          Optional renderScale?: undefined | number
                                                                          -
                                                                        • -
                                                                        -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Optional renderer

                                                                      -
                                                                      renderer: undefined | string
                                                                      - -
                                                                      -
                                                                      - -

                                                                      Optional sdf2dVersion

                                                                      -
                                                                      sdf2dVersion: undefined | string
                                                                      - -
                                                                      -
                                                                      - -

                                                                      Optional startupTimeInMilliseconds

                                                                      -
                                                                      startupTimeInMilliseconds: undefined | number
                                                                      - -
                                                                      -
                                                                      - -

                                                                      Optional vendor

                                                                      -
                                                                      vendor: undefined | string
                                                                      - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Legend

                                                                      -
                                                                      -
                                                                        -
                                                                      • Constructor
                                                                      • -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Inherited property
                                                                      • -
                                                                      • Inherited method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Protected method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Static property
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - \ No newline at end of file diff --git a/docs/interfaces/runtimesettings.html b/docs/interfaces/runtimesettings.html deleted file mode 100644 index f35fde9..0000000 --- a/docs/interfaces/runtimesettings.html +++ /dev/null @@ -1,372 +0,0 @@ - - - - - - RuntimeSettings | SDF-2D - v0.7.6 - - - - - - -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - Options -
                                                                      -
                                                                      - All -
                                                                        -
                                                                      • Public
                                                                      • -
                                                                      • Public/Protected
                                                                      • -
                                                                      • All
                                                                      • -
                                                                      -
                                                                      - - -
                                                                      -
                                                                      - Menu -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Interface RuntimeSettings

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Interface for a configuration object containing the settings - that can be changed during runtime.

                                                                      -
                                                                      -

                                                                      The default values for RuntimeSettings can be found in defaultRuntimeSettings.

                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Hierarchy

                                                                      -
                                                                        -
                                                                      • - RuntimeSettings -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -

                                                                      Index

                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      -
                                                                      - -

                                                                      ambientLight

                                                                      -
                                                                      ambientLight: vec3
                                                                      - -
                                                                      -
                                                                      -

                                                                      A light affecting every pixel (even the ones inside objects).

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      colorPalette

                                                                      -
                                                                      colorPalette: Array<vec3 | vec4>
                                                                      - -
                                                                      -
                                                                      -

                                                                      Its length should be less than the one specified in StartupSettings.paletteSize.

                                                                      -
                                                                      -

                                                                      The possible colors for the objects. Each color is referenced by its index in the - palette.

                                                                      -

                                                                      Can have transparency, but only if WebGL2 support is enabled.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      distanceRenderScale

                                                                      -
                                                                      distanceRenderScale: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      The resolution of the distance field rendering will be scaled up or down with this value.

                                                                      -
                                                                      -

                                                                      Because of interpolation, this can be set much lower than the lightsRenderScale, while - maintaining closely the same perceived quality.

                                                                      -

                                                                      Setting this is a great way to balance quality and performance.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      enableHighDpiRendering

                                                                      -
                                                                      enableHighDpiRendering: boolean
                                                                      - -
                                                                      -
                                                                      -

                                                                      When set to true rendering will be done on the screen's real resolution.

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      isWorldInverted

                                                                      -
                                                                      isWorldInverted: boolean
                                                                      - -
                                                                      -
                                                                      -

                                                                      By default, every pixel is outside of objects. Flipping this value to true will - result in every pixel being inside a large object. From then it only makes sense to - draw inverted objects.

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      lightCutoffDistance

                                                                      -
                                                                      lightCutoffDistance: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      When lights reach the end of the display, they are slowly faded out. The length - of this phaseout can be set through this value.

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      lightsRenderScale

                                                                      -
                                                                      lightsRenderScale: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      The resolution of the final frame will be scaled by this value.

                                                                      -
                                                                      -

                                                                      Setting this is a great way to balance quality and performance.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      motionBlur

                                                                      -
                                                                      motionBlur: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      Set the extent of the motion blur.

                                                                      -
                                                                      -

                                                                      The values must be between 0 and 1. Where 0 means no motion blur, - and values just below 1 mean an extreme amount of motion blur.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      textures

                                                                      -
                                                                      textures: {}
                                                                      - -
                                                                      -
                                                                      -

                                                                      It is possible to use your own textures in your SDF definitions.

                                                                      -
                                                                      -

                                                                      The keys of the object should be the name used to reference them in the GLSL code, - and the values should be the textures themselves or a TextureWithOptions specifying - the texture's TextureOptions. - It can be a canvas, img element, Image and so on.

                                                                      -
                                                                      -
                                                                      -

                                                                      Type declaration

                                                                      - -
                                                                      -
                                                                      -
                                                                      - -

                                                                      tileMultiplier

                                                                      -
                                                                      tileMultiplier: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      First, the SDF of the scene is evaluated at every single pixel. - For speeding this process up, the screen is divided up into tiles, - this way each having to deal with a fewer objects.

                                                                      -
                                                                      -

                                                                      For each tile, it is decided which objects are near its close vicinity. - This comes with some overhead for the CPU, while saving the GPU from loads of - calculations. The workload can be balanced between the CPU and the GPU by setting - this number.

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Legend

                                                                      -
                                                                      -
                                                                        -
                                                                      • Constructor
                                                                      • -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Inherited property
                                                                      • -
                                                                      • Inherited method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Protected method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Static property
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - \ No newline at end of file diff --git a/docs/interfaces/startupsettings.html b/docs/interfaces/startupsettings.html deleted file mode 100644 index 00648fa..0000000 --- a/docs/interfaces/startupsettings.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - StartupSettings | SDF-2D - v0.7.6 - - - - - - -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - Options -
                                                                      -
                                                                      - All -
                                                                        -
                                                                      • Public
                                                                      • -
                                                                      • Public/Protected
                                                                      • -
                                                                      • All
                                                                      • -
                                                                      -
                                                                      - - -
                                                                      -
                                                                      - Menu -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Interface StartupSettings

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Interface for a configuration object containing the settings - that need to be given before shader compilation.

                                                                      -
                                                                      -

                                                                      The default values for StartupSettings can be found in defaultStartupSettings.

                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Hierarchy

                                                                      -
                                                                        -
                                                                      • - StartupSettings -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -

                                                                      Index

                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      -
                                                                      - -

                                                                      backgroundColor

                                                                      -
                                                                      backgroundColor: vec3 | vec4
                                                                      - -
                                                                      -
                                                                      -

                                                                      The default background color of the scene, can have transparency on every platform.

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      enableContextLostSimulator

                                                                      -
                                                                      enableContextLostSimulator: boolean
                                                                      - -
                                                                      -
                                                                      -

                                                                      Many context lost event will be simulated when enabled.

                                                                      -
                                                                      -

                                                                      Useful for testing.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      enableStopwatch

                                                                      -
                                                                      enableStopwatch: boolean
                                                                      - -
                                                                      -
                                                                      -

                                                                      Creates a stopwatch used for measuring the GPU render time - when its required extension is available.

                                                                      -
                                                                      -

                                                                      You should only have one renderer with enabled stopwatch.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      ignoreWebGL2

                                                                      -
                                                                      ignoreWebGL2: boolean
                                                                      - -
                                                                      -
                                                                      -

                                                                      When set to true, rendering will fall back to WebGL - even when WebGL2 is present.

                                                                      -
                                                                      -

                                                                      Useful for testing compatibility.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      lightPenetrationRatio

                                                                      -
                                                                      lightPenetrationRatio: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      The illumination is multiplied by this constant where - the distance field is negative (i.e. inside objects).

                                                                      -
                                                                      -

                                                                      Should be between 0 and 1, but other values are also permitted.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      paletteSize

                                                                      -
                                                                      paletteSize: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      Gives the number of possible object colors for the scene.

                                                                      -
                                                                      -

                                                                      When using WebGL, only 256 different colors can be used. - On WebGL2, its value should not be larger than 4096 for - maintaining compatibility with low-end devices.

                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      shadowTraceCount

                                                                      -
                                                                      shadowTraceCount: number
                                                                      - -
                                                                      -
                                                                      -

                                                                      The raytracing algorithm used for shadows requires a step count. - Sensible values for this are between 8 and 32.

                                                                      -
                                                                      -

                                                                      The higher the number, the harder the shadows will get. - Some ambient occlusion like effects can be visible on lower trace counts.

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Legend

                                                                      -
                                                                      -
                                                                        -
                                                                      • Constructor
                                                                      • -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Inherited property
                                                                      • -
                                                                      • Inherited method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Protected method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Static property
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - \ No newline at end of file diff --git a/docs/interfaces/textureoptions.html b/docs/interfaces/textureoptions.html deleted file mode 100644 index 9e54d16..0000000 --- a/docs/interfaces/textureoptions.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - TextureOptions | SDF-2D - v0.7.6 - - - - - - -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      - Options -
                                                                      -
                                                                      - All -
                                                                        -
                                                                      • Public
                                                                      • -
                                                                      • Public/Protected
                                                                      • -
                                                                      • All
                                                                      • -
                                                                      -
                                                                      - - -
                                                                      -
                                                                      - Menu -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - -

                                                                      Interface TextureOptions

                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Hierarchy

                                                                      -
                                                                        -
                                                                      • - TextureOptions -
                                                                      • -
                                                                      -
                                                                      -
                                                                      -

                                                                      Index

                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Properties

                                                                      -
                                                                      - -

                                                                      maxFilter

                                                                      -
                                                                      maxFilter: FilteringOptions
                                                                      - -
                                                                      -
                                                                      - -

                                                                      minFilter

                                                                      -
                                                                      minFilter: FilteringOptions
                                                                      - -
                                                                      -
                                                                      - -

                                                                      wrapS

                                                                      - - -
                                                                      -
                                                                      - -

                                                                      wrapT

                                                                      - - -
                                                                      -
                                                                      -
                                                                      - -
                                                                      -
                                                                      -
                                                                      -
                                                                      -

                                                                      Legend

                                                                      -
                                                                      -
                                                                        -
                                                                      • Constructor
                                                                      • -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Property
                                                                      • -
                                                                      • Method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Inherited property
                                                                      • -
                                                                      • Inherited method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Protected method
                                                                      • -
                                                                      -
                                                                        -
                                                                      • Static property
                                                                      • -
                                                                      -
                                                                      -
                                                                      -
                                                                      -
                                                                      - - - \ No newline at end of file diff --git a/docs/media/circles-screenshot.png b/docs/media/circles-screenshot.png deleted file mode 100644 index 9744afb..0000000 Binary files a/docs/media/circles-screenshot.png and /dev/null differ diff --git a/docs/media/favicon.ico b/docs/media/favicon.ico deleted file mode 100644 index b54e780..0000000 Binary files a/docs/media/favicon.ico and /dev/null differ diff --git a/docs/media/logo-white.svg b/docs/media/logo-white.svg deleted file mode 100644 index f6f9c79..0000000 --- a/docs/media/logo-white.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/media/mobile-screenshots.png b/docs/media/mobile-screenshots.png deleted file mode 100644 index ab459da..0000000 Binary files a/docs/media/mobile-screenshots.png and /dev/null differ diff --git a/docs/media/tunnels-screenshot.png b/docs/media/tunnels-screenshot.png deleted file mode 100644 index 5d0e6cc..0000000 Binary files a/docs/media/tunnels-screenshot.png and /dev/null differ diff --git a/docs/modules.html b/docs/modules.html new file mode 100644 index 0000000..9ee61a9 --- /dev/null +++ b/docs/modules.html @@ -0,0 +1 @@ +SDF-2D - v0.7.6
                                                                      SDF-2D - v0.7.6
                                                                        Preparing search index...

                                                                          SDF-2D - v0.7.6

                                                                          Modules

                                                                          compile
                                                                          drawables/drawable
                                                                          drawables/drawable-descriptor
                                                                          drawables/empty-drawable
                                                                          drawables/lights/circle-light
                                                                          drawables/lights/flashlight
                                                                          drawables/lights/light-drawable
                                                                          drawables/shapes/circle-factory
                                                                          drawables/shapes/colorful-circle
                                                                          drawables/shapes/droplet-factory
                                                                          drawables/shapes/hexagon-factory
                                                                          drawables/shapes/inverted-tunnel-factory
                                                                          drawables/shapes/meta-circle-factory
                                                                          drawables/shapes/noisy-polygon-factory
                                                                          drawables/shapes/polygon-factory
                                                                          drawables/shapes/rotated-rectangle-factory
                                                                          graphics/graphics-library/context-lost-exception
                                                                          graphics/graphics-library/frame-buffer/default-frame-buffer
                                                                          graphics/graphics-library/frame-buffer/frame-buffer
                                                                          graphics/graphics-library/frame-buffer/intermediate-frame-buffer
                                                                          graphics/graphics-library/helper/enable-context-lost-simulator
                                                                          graphics/graphics-library/helper/enable-extension
                                                                          graphics/graphics-library/helper/get-hardware-info
                                                                          graphics/graphics-library/helper/load-uniform
                                                                          graphics/graphics-library/helper/stopwatch
                                                                          graphics/graphics-library/parallel-compiler
                                                                          graphics/graphics-library/program/fragment-shader-only-program
                                                                          graphics/graphics-library/program/i-program
                                                                          graphics/graphics-library/program/program
                                                                          graphics/graphics-library/program/uniform-array-autoscaling-program
                                                                          graphics/graphics-library/texture/color-texture
                                                                          graphics/graphics-library/texture/distance-texture
                                                                          graphics/graphics-library/texture/palette-texture
                                                                          graphics/graphics-library/texture/texture
                                                                          graphics/graphics-library/texture/texture-options
                                                                          graphics/graphics-library/universal-rendering-context
                                                                          graphics/rendering/fps-quality-autoscaler
                                                                          graphics/rendering/render-pass/distance-render-pass
                                                                          graphics/rendering/render-pass/lights-render-pass
                                                                          graphics/rendering/render-pass/render-pass
                                                                          graphics/rendering/renderer/context-aware-renderer
                                                                          graphics/rendering/renderer/noise-renderer
                                                                          graphics/rendering/renderer/renderer
                                                                          graphics/rendering/renderer/renderer-implementation
                                                                          graphics/rendering/renderer/renderer-info
                                                                          graphics/rendering/settings/default-runtime-settings
                                                                          graphics/rendering/settings/default-startup-settings
                                                                          graphics/rendering/settings/runtime-settings
                                                                          graphics/rendering/settings/startup-settings
                                                                          graphics/rendering/uniforms-provider
                                                                          helper/array
                                                                          helper/clamp
                                                                          helper/code-for-color-access
                                                                          helper/color-to-string
                                                                          helper/colors/hex
                                                                          helper/colors/hsl
                                                                          helper/colors/rgb
                                                                          helper/colors/rgb255
                                                                          helper/colors/rgba
                                                                          helper/colors/rgba255
                                                                          helper/delta-time-calculator
                                                                          helper/exponential-decay
                                                                          helper/format-log
                                                                          helper/get-combinations
                                                                          helper/last
                                                                          helper/mix
                                                                          helper/ms-to-string
                                                                          helper/number-to-glsl-float
                                                                          helper/wait
                                                                          main
                                                                          run-animation
                                                                          diff --git a/docs/modules/__global.html b/docs/modules/__global.html deleted file mode 100644 index 95402df..0000000 --- a/docs/modules/__global.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - __global | SDF-2D - v0.7.6 - - - - - - -
                                                                          -
                                                                          -
                                                                          -
                                                                          - -
                                                                          -
                                                                          - Options -
                                                                          -
                                                                          - All -
                                                                            -
                                                                          • Public
                                                                          • -
                                                                          • Public/Protected
                                                                          • -
                                                                          • All
                                                                          • -
                                                                          -
                                                                          - - -
                                                                          -
                                                                          - Menu -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          - -

                                                                          Namespace __global

                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          -

                                                                          Index

                                                                          -
                                                                          -
                                                                          -
                                                                          -

                                                                          Interfaces

                                                                          - -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          - -
                                                                          -
                                                                          -
                                                                          -
                                                                          -

                                                                          Legend

                                                                          -
                                                                          -
                                                                            -
                                                                          • Constructor
                                                                          • -
                                                                          • Property
                                                                          • -
                                                                          • Method
                                                                          • -
                                                                          -
                                                                            -
                                                                          • Property
                                                                          • -
                                                                          • Method
                                                                          • -
                                                                          -
                                                                            -
                                                                          • Inherited property
                                                                          • -
                                                                          • Inherited method
                                                                          • -
                                                                          -
                                                                            -
                                                                          • Protected method
                                                                          • -
                                                                          -
                                                                            -
                                                                          • Static property
                                                                          • -
                                                                          -
                                                                          -
                                                                          -
                                                                          -
                                                                          - - - \ No newline at end of file diff --git a/docs/modules/compile.html b/docs/modules/compile.html new file mode 100644 index 0000000..6563a81 --- /dev/null +++ b/docs/modules/compile.html @@ -0,0 +1 @@ +compile | SDF-2D - v0.7.6
                                                                          SDF-2D - v0.7.6
                                                                            Preparing search index...

                                                                            Module compile

                                                                            Functions

                                                                            compile
                                                                            diff --git a/docs/modules/drawables_drawable-descriptor.html b/docs/modules/drawables_drawable-descriptor.html new file mode 100644 index 0000000..961a848 --- /dev/null +++ b/docs/modules/drawables_drawable-descriptor.html @@ -0,0 +1 @@ +drawables/drawable-descriptor | SDF-2D - v0.7.6
                                                                            SDF-2D - v0.7.6
                                                                              Preparing search index...

                                                                              Module drawables/drawable-descriptor

                                                                              Interfaces

                                                                              DrawableDescriptor
                                                                              diff --git a/docs/modules/drawables_drawable.html b/docs/modules/drawables_drawable.html new file mode 100644 index 0000000..f64a425 --- /dev/null +++ b/docs/modules/drawables_drawable.html @@ -0,0 +1 @@ +drawables/drawable | SDF-2D - v0.7.6
                                                                              SDF-2D - v0.7.6
                                                                                Preparing search index...

                                                                                Module drawables/drawable

                                                                                Classes

                                                                                Drawable
                                                                                diff --git a/docs/modules/drawables_empty-drawable.html b/docs/modules/drawables_empty-drawable.html new file mode 100644 index 0000000..b754cab --- /dev/null +++ b/docs/modules/drawables_empty-drawable.html @@ -0,0 +1 @@ +drawables/empty-drawable | SDF-2D - v0.7.6
                                                                                SDF-2D - v0.7.6
                                                                                  Preparing search index...

                                                                                  Module drawables/empty-drawable

                                                                                  diff --git a/docs/modules/drawables_lights_circle-light.html b/docs/modules/drawables_lights_circle-light.html new file mode 100644 index 0000000..3496e6a --- /dev/null +++ b/docs/modules/drawables_lights_circle-light.html @@ -0,0 +1 @@ +drawables/lights/circle-light | SDF-2D - v0.7.6
                                                                                  SDF-2D - v0.7.6
                                                                                    Preparing search index...

                                                                                    Module drawables/lights/circle-light

                                                                                    Drawable

                                                                                    CircleLight
                                                                                    diff --git a/docs/modules/drawables_lights_flashlight.html b/docs/modules/drawables_lights_flashlight.html new file mode 100644 index 0000000..dae17e9 --- /dev/null +++ b/docs/modules/drawables_lights_flashlight.html @@ -0,0 +1 @@ +drawables/lights/flashlight | SDF-2D - v0.7.6
                                                                                    SDF-2D - v0.7.6
                                                                                      Preparing search index...

                                                                                      Module drawables/lights/flashlight

                                                                                      Drawable

                                                                                      Flashlight
                                                                                      diff --git a/docs/modules/drawables_lights_light-drawable.html b/docs/modules/drawables_lights_light-drawable.html new file mode 100644 index 0000000..9a0df7e --- /dev/null +++ b/docs/modules/drawables_lights_light-drawable.html @@ -0,0 +1 @@ +drawables/lights/light-drawable | SDF-2D - v0.7.6
                                                                                      SDF-2D - v0.7.6
                                                                                        Preparing search index...

                                                                                        Module drawables/lights/light-drawable

                                                                                        diff --git a/docs/modules/drawables_shapes_circle-factory.html b/docs/modules/drawables_shapes_circle-factory.html new file mode 100644 index 0000000..43b6059 --- /dev/null +++ b/docs/modules/drawables_shapes_circle-factory.html @@ -0,0 +1 @@ +drawables/shapes/circle-factory | SDF-2D - v0.7.6
                                                                                        SDF-2D - v0.7.6
                                                                                          Preparing search index...

                                                                                          Module drawables/shapes/circle-factory

                                                                                          Drawable

                                                                                          CircleFactory
                                                                                          diff --git a/docs/modules/drawables_shapes_colorful-circle.html b/docs/modules/drawables_shapes_colorful-circle.html new file mode 100644 index 0000000..8538795 --- /dev/null +++ b/docs/modules/drawables_shapes_colorful-circle.html @@ -0,0 +1 @@ +drawables/shapes/colorful-circle | SDF-2D - v0.7.6
                                                                                          SDF-2D - v0.7.6
                                                                                            Preparing search index...

                                                                                            Module drawables/shapes/colorful-circle

                                                                                            Classes

                                                                                            ColorfulCircle
                                                                                            diff --git a/docs/modules/drawables_shapes_droplet-factory.html b/docs/modules/drawables_shapes_droplet-factory.html new file mode 100644 index 0000000..9245ce8 --- /dev/null +++ b/docs/modules/drawables_shapes_droplet-factory.html @@ -0,0 +1 @@ +drawables/shapes/droplet-factory | SDF-2D - v0.7.6
                                                                                            SDF-2D - v0.7.6
                                                                                              Preparing search index...

                                                                                              Module drawables/shapes/droplet-factory

                                                                                              Drawable

                                                                                              DropletFactory
                                                                                              diff --git a/docs/modules/drawables_shapes_hexagon-factory.html b/docs/modules/drawables_shapes_hexagon-factory.html new file mode 100644 index 0000000..075e979 --- /dev/null +++ b/docs/modules/drawables_shapes_hexagon-factory.html @@ -0,0 +1 @@ +drawables/shapes/hexagon-factory | SDF-2D - v0.7.6
                                                                                              SDF-2D - v0.7.6
                                                                                                Preparing search index...

                                                                                                Module drawables/shapes/hexagon-factory

                                                                                                Drawable

                                                                                                HexagonFactory
                                                                                                diff --git a/docs/modules/drawables_shapes_inverted-tunnel-factory.html b/docs/modules/drawables_shapes_inverted-tunnel-factory.html new file mode 100644 index 0000000..3bd70a4 --- /dev/null +++ b/docs/modules/drawables_shapes_inverted-tunnel-factory.html @@ -0,0 +1 @@ +drawables/shapes/inverted-tunnel-factory | SDF-2D - v0.7.6
                                                                                                SDF-2D - v0.7.6
                                                                                                  Preparing search index...

                                                                                                  Module drawables/shapes/inverted-tunnel-factory

                                                                                                  Drawable

                                                                                                  InvertedTunnelFactory
                                                                                                  diff --git a/docs/modules/drawables_shapes_meta-circle-factory.html b/docs/modules/drawables_shapes_meta-circle-factory.html new file mode 100644 index 0000000..d67a307 --- /dev/null +++ b/docs/modules/drawables_shapes_meta-circle-factory.html @@ -0,0 +1 @@ +drawables/shapes/meta-circle-factory | SDF-2D - v0.7.6
                                                                                                  SDF-2D - v0.7.6
                                                                                                    Preparing search index...

                                                                                                    Module drawables/shapes/meta-circle-factory

                                                                                                    Drawable

                                                                                                    MetaCircleFactory
                                                                                                    diff --git a/docs/modules/drawables_shapes_noisy-polygon-factory.html b/docs/modules/drawables_shapes_noisy-polygon-factory.html new file mode 100644 index 0000000..8d2fcba --- /dev/null +++ b/docs/modules/drawables_shapes_noisy-polygon-factory.html @@ -0,0 +1 @@ +drawables/shapes/noisy-polygon-factory | SDF-2D - v0.7.6
                                                                                                    SDF-2D - v0.7.6
                                                                                                      Preparing search index...

                                                                                                      Module drawables/shapes/noisy-polygon-factory

                                                                                                      Drawable

                                                                                                      NoisyPolygonFactory
                                                                                                      diff --git a/docs/modules/drawables_shapes_polygon-factory.html b/docs/modules/drawables_shapes_polygon-factory.html new file mode 100644 index 0000000..733bc7a --- /dev/null +++ b/docs/modules/drawables_shapes_polygon-factory.html @@ -0,0 +1 @@ +drawables/shapes/polygon-factory | SDF-2D - v0.7.6
                                                                                                      SDF-2D - v0.7.6
                                                                                                        Preparing search index...

                                                                                                        Module drawables/shapes/polygon-factory

                                                                                                        Drawable

                                                                                                        PolygonBase
                                                                                                        PolygonFactory
                                                                                                        diff --git a/docs/modules/drawables_shapes_rotated-rectangle-factory.html b/docs/modules/drawables_shapes_rotated-rectangle-factory.html new file mode 100644 index 0000000..dc96c1e --- /dev/null +++ b/docs/modules/drawables_shapes_rotated-rectangle-factory.html @@ -0,0 +1 @@ +drawables/shapes/rotated-rectangle-factory | SDF-2D - v0.7.6
                                                                                                        SDF-2D - v0.7.6
                                                                                                          Preparing search index...

                                                                                                          Module drawables/shapes/rotated-rectangle-factory

                                                                                                          Drawable

                                                                                                          RotatedRectangleFactory
                                                                                                          diff --git a/docs/modules/graphics_graphics-library_context-lost-exception.html b/docs/modules/graphics_graphics-library_context-lost-exception.html new file mode 100644 index 0000000..1589386 --- /dev/null +++ b/docs/modules/graphics_graphics-library_context-lost-exception.html @@ -0,0 +1 @@ +graphics/graphics-library/context-lost-exception | SDF-2D - v0.7.6
                                                                                                          SDF-2D - v0.7.6
                                                                                                            Preparing search index...

                                                                                                            Module graphics/graphics-library/context-lost-exception

                                                                                                            diff --git a/docs/modules/graphics_graphics-library_frame-buffer_default-frame-buffer.html b/docs/modules/graphics_graphics-library_frame-buffer_default-frame-buffer.html new file mode 100644 index 0000000..a04765d --- /dev/null +++ b/docs/modules/graphics_graphics-library_frame-buffer_default-frame-buffer.html @@ -0,0 +1 @@ +graphics/graphics-library/frame-buffer/default-frame-buffer | SDF-2D - v0.7.6
                                                                                                            SDF-2D - v0.7.6
                                                                                                              Preparing search index...

                                                                                                              Module graphics/graphics-library/frame-buffer/default-frame-buffer

                                                                                                              diff --git a/docs/modules/graphics_graphics-library_frame-buffer_frame-buffer.html b/docs/modules/graphics_graphics-library_frame-buffer_frame-buffer.html new file mode 100644 index 0000000..48015ff --- /dev/null +++ b/docs/modules/graphics_graphics-library_frame-buffer_frame-buffer.html @@ -0,0 +1 @@ +graphics/graphics-library/frame-buffer/frame-buffer | SDF-2D - v0.7.6
                                                                                                              SDF-2D - v0.7.6
                                                                                                                Preparing search index...

                                                                                                                Module graphics/graphics-library/frame-buffer/frame-buffer

                                                                                                                diff --git a/docs/modules/graphics_graphics-library_frame-buffer_intermediate-frame-buffer.html b/docs/modules/graphics_graphics-library_frame-buffer_intermediate-frame-buffer.html new file mode 100644 index 0000000..e4aed8b --- /dev/null +++ b/docs/modules/graphics_graphics-library_frame-buffer_intermediate-frame-buffer.html @@ -0,0 +1 @@ +graphics/graphics-library/frame-buffer/intermediate-frame-buffer | SDF-2D - v0.7.6
                                                                                                                SDF-2D - v0.7.6
                                                                                                                  Preparing search index...

                                                                                                                  Module graphics/graphics-library/frame-buffer/intermediate-frame-buffer

                                                                                                                  diff --git a/docs/modules/graphics_graphics-library_helper_enable-context-lost-simulator.html b/docs/modules/graphics_graphics-library_helper_enable-context-lost-simulator.html new file mode 100644 index 0000000..c3d3285 --- /dev/null +++ b/docs/modules/graphics_graphics-library_helper_enable-context-lost-simulator.html @@ -0,0 +1 @@ +graphics/graphics-library/helper/enable-context-lost-simulator | SDF-2D - v0.7.6
                                                                                                                  SDF-2D - v0.7.6
                                                                                                                    Preparing search index...

                                                                                                                    Module graphics/graphics-library/helper/enable-context-lost-simulator

                                                                                                                    diff --git a/docs/modules/graphics_graphics-library_helper_enable-extension.html b/docs/modules/graphics_graphics-library_helper_enable-extension.html new file mode 100644 index 0000000..09fec11 --- /dev/null +++ b/docs/modules/graphics_graphics-library_helper_enable-extension.html @@ -0,0 +1 @@ +graphics/graphics-library/helper/enable-extension | SDF-2D - v0.7.6
                                                                                                                    SDF-2D - v0.7.6
                                                                                                                      Preparing search index...

                                                                                                                      Module graphics/graphics-library/helper/enable-extension

                                                                                                                      diff --git a/docs/modules/graphics_graphics-library_helper_get-hardware-info.html b/docs/modules/graphics_graphics-library_helper_get-hardware-info.html new file mode 100644 index 0000000..a9932e4 --- /dev/null +++ b/docs/modules/graphics_graphics-library_helper_get-hardware-info.html @@ -0,0 +1 @@ +graphics/graphics-library/helper/get-hardware-info | SDF-2D - v0.7.6
                                                                                                                      SDF-2D - v0.7.6
                                                                                                                        Preparing search index...

                                                                                                                        Module graphics/graphics-library/helper/get-hardware-info

                                                                                                                        diff --git a/docs/modules/graphics_graphics-library_helper_load-uniform.html b/docs/modules/graphics_graphics-library_helper_load-uniform.html new file mode 100644 index 0000000..2efee59 --- /dev/null +++ b/docs/modules/graphics_graphics-library_helper_load-uniform.html @@ -0,0 +1 @@ +graphics/graphics-library/helper/load-uniform | SDF-2D - v0.7.6
                                                                                                                        SDF-2D - v0.7.6
                                                                                                                          Preparing search index...

                                                                                                                          Module graphics/graphics-library/helper/load-uniform

                                                                                                                          diff --git a/docs/modules/graphics_graphics-library_helper_stopwatch.html b/docs/modules/graphics_graphics-library_helper_stopwatch.html new file mode 100644 index 0000000..0bb829f --- /dev/null +++ b/docs/modules/graphics_graphics-library_helper_stopwatch.html @@ -0,0 +1 @@ +graphics/graphics-library/helper/stopwatch | SDF-2D - v0.7.6
                                                                                                                          SDF-2D - v0.7.6
                                                                                                                            Preparing search index...

                                                                                                                            Module graphics/graphics-library/helper/stopwatch

                                                                                                                            diff --git a/docs/modules/graphics_graphics-library_parallel-compiler.html b/docs/modules/graphics_graphics-library_parallel-compiler.html new file mode 100644 index 0000000..458077d --- /dev/null +++ b/docs/modules/graphics_graphics-library_parallel-compiler.html @@ -0,0 +1 @@ +graphics/graphics-library/parallel-compiler | SDF-2D - v0.7.6
                                                                                                                            SDF-2D - v0.7.6
                                                                                                                              Preparing search index...

                                                                                                                              Module graphics/graphics-library/parallel-compiler

                                                                                                                              diff --git a/docs/modules/graphics_graphics-library_program_fragment-shader-only-program.html b/docs/modules/graphics_graphics-library_program_fragment-shader-only-program.html new file mode 100644 index 0000000..88d19ea --- /dev/null +++ b/docs/modules/graphics_graphics-library_program_fragment-shader-only-program.html @@ -0,0 +1 @@ +graphics/graphics-library/program/fragment-shader-only-program | SDF-2D - v0.7.6
                                                                                                                              SDF-2D - v0.7.6
                                                                                                                                Preparing search index...

                                                                                                                                Module graphics/graphics-library/program/fragment-shader-only-program

                                                                                                                                diff --git a/docs/modules/graphics_graphics-library_program_i-program.html b/docs/modules/graphics_graphics-library_program_i-program.html new file mode 100644 index 0000000..2552cd4 --- /dev/null +++ b/docs/modules/graphics_graphics-library_program_i-program.html @@ -0,0 +1 @@ +graphics/graphics-library/program/i-program | SDF-2D - v0.7.6
                                                                                                                                SDF-2D - v0.7.6
                                                                                                                                  Preparing search index...

                                                                                                                                  Module graphics/graphics-library/program/i-program

                                                                                                                                  diff --git a/docs/modules/graphics_graphics-library_program_program.html b/docs/modules/graphics_graphics-library_program_program.html new file mode 100644 index 0000000..1eeaf07 --- /dev/null +++ b/docs/modules/graphics_graphics-library_program_program.html @@ -0,0 +1 @@ +graphics/graphics-library/program/program | SDF-2D - v0.7.6
                                                                                                                                  SDF-2D - v0.7.6
                                                                                                                                    Preparing search index...

                                                                                                                                    Module graphics/graphics-library/program/program

                                                                                                                                    diff --git a/docs/modules/graphics_graphics-library_program_uniform-array-autoscaling-program.html b/docs/modules/graphics_graphics-library_program_uniform-array-autoscaling-program.html new file mode 100644 index 0000000..b47358b --- /dev/null +++ b/docs/modules/graphics_graphics-library_program_uniform-array-autoscaling-program.html @@ -0,0 +1 @@ +graphics/graphics-library/program/uniform-array-autoscaling-program | SDF-2D - v0.7.6
                                                                                                                                    SDF-2D - v0.7.6
                                                                                                                                      Preparing search index...

                                                                                                                                      Module graphics/graphics-library/program/uniform-array-autoscaling-program

                                                                                                                                      diff --git a/docs/modules/graphics_graphics-library_texture_color-texture.html b/docs/modules/graphics_graphics-library_texture_color-texture.html new file mode 100644 index 0000000..e9557c3 --- /dev/null +++ b/docs/modules/graphics_graphics-library_texture_color-texture.html @@ -0,0 +1 @@ +graphics/graphics-library/texture/color-texture | SDF-2D - v0.7.6
                                                                                                                                      SDF-2D - v0.7.6
                                                                                                                                        Preparing search index...

                                                                                                                                        Module graphics/graphics-library/texture/color-texture

                                                                                                                                        diff --git a/docs/modules/graphics_graphics-library_texture_distance-texture.html b/docs/modules/graphics_graphics-library_texture_distance-texture.html new file mode 100644 index 0000000..f0a4a82 --- /dev/null +++ b/docs/modules/graphics_graphics-library_texture_distance-texture.html @@ -0,0 +1 @@ +graphics/graphics-library/texture/distance-texture | SDF-2D - v0.7.6
                                                                                                                                        SDF-2D - v0.7.6
                                                                                                                                          Preparing search index...

                                                                                                                                          Module graphics/graphics-library/texture/distance-texture

                                                                                                                                          diff --git a/docs/modules/graphics_graphics-library_texture_palette-texture.html b/docs/modules/graphics_graphics-library_texture_palette-texture.html new file mode 100644 index 0000000..8f4bf67 --- /dev/null +++ b/docs/modules/graphics_graphics-library_texture_palette-texture.html @@ -0,0 +1 @@ +graphics/graphics-library/texture/palette-texture | SDF-2D - v0.7.6
                                                                                                                                          SDF-2D - v0.7.6
                                                                                                                                            Preparing search index...

                                                                                                                                            Module graphics/graphics-library/texture/palette-texture

                                                                                                                                            diff --git a/docs/modules/graphics_graphics-library_texture_texture-options.html b/docs/modules/graphics_graphics-library_texture_texture-options.html new file mode 100644 index 0000000..79a7b74 --- /dev/null +++ b/docs/modules/graphics_graphics-library_texture_texture-options.html @@ -0,0 +1 @@ +graphics/graphics-library/texture/texture-options | SDF-2D - v0.7.6
                                                                                                                                            SDF-2D - v0.7.6
                                                                                                                                              Preparing search index...

                                                                                                                                              Module graphics/graphics-library/texture/texture-options

                                                                                                                                              Enumerations

                                                                                                                                              FilteringOptions
                                                                                                                                              WrapOptions

                                                                                                                                              Interfaces

                                                                                                                                              TextureOptions

                                                                                                                                              Type Aliases

                                                                                                                                              TextureWithOptions
                                                                                                                                              diff --git a/docs/modules/graphics_graphics-library_texture_texture.html b/docs/modules/graphics_graphics-library_texture_texture.html new file mode 100644 index 0000000..e60bca3 --- /dev/null +++ b/docs/modules/graphics_graphics-library_texture_texture.html @@ -0,0 +1 @@ +graphics/graphics-library/texture/texture | SDF-2D - v0.7.6
                                                                                                                                              SDF-2D - v0.7.6
                                                                                                                                                Preparing search index...

                                                                                                                                                Module graphics/graphics-library/texture/texture

                                                                                                                                                diff --git a/docs/modules/graphics_graphics-library_universal-rendering-context.html b/docs/modules/graphics_graphics-library_universal-rendering-context.html new file mode 100644 index 0000000..02938de --- /dev/null +++ b/docs/modules/graphics_graphics-library_universal-rendering-context.html @@ -0,0 +1 @@ +graphics/graphics-library/universal-rendering-context | SDF-2D - v0.7.6
                                                                                                                                                SDF-2D - v0.7.6
                                                                                                                                                  Preparing search index...

                                                                                                                                                  Module graphics/graphics-library/universal-rendering-context

                                                                                                                                                  diff --git a/docs/modules/graphics_rendering_fps-quality-autoscaler.html b/docs/modules/graphics_rendering_fps-quality-autoscaler.html new file mode 100644 index 0000000..87d27f7 --- /dev/null +++ b/docs/modules/graphics_rendering_fps-quality-autoscaler.html @@ -0,0 +1 @@ +graphics/rendering/fps-quality-autoscaler | SDF-2D - v0.7.6
                                                                                                                                                  SDF-2D - v0.7.6
                                                                                                                                                    Preparing search index...

                                                                                                                                                    Module graphics/rendering/fps-quality-autoscaler

                                                                                                                                                    Classes

                                                                                                                                                    FpsQualityAutoscaler
                                                                                                                                                    diff --git a/docs/modules/graphics_rendering_render-pass_distance-render-pass.html b/docs/modules/graphics_rendering_render-pass_distance-render-pass.html new file mode 100644 index 0000000..1087bcf --- /dev/null +++ b/docs/modules/graphics_rendering_render-pass_distance-render-pass.html @@ -0,0 +1 @@ +graphics/rendering/render-pass/distance-render-pass | SDF-2D - v0.7.6
                                                                                                                                                    SDF-2D - v0.7.6
                                                                                                                                                      Preparing search index...

                                                                                                                                                      Module graphics/rendering/render-pass/distance-render-pass

                                                                                                                                                      diff --git a/docs/modules/graphics_rendering_render-pass_lights-render-pass.html b/docs/modules/graphics_rendering_render-pass_lights-render-pass.html new file mode 100644 index 0000000..3dbae76 --- /dev/null +++ b/docs/modules/graphics_rendering_render-pass_lights-render-pass.html @@ -0,0 +1 @@ +graphics/rendering/render-pass/lights-render-pass | SDF-2D - v0.7.6
                                                                                                                                                      SDF-2D - v0.7.6
                                                                                                                                                        Preparing search index...

                                                                                                                                                        Module graphics/rendering/render-pass/lights-render-pass

                                                                                                                                                        diff --git a/docs/modules/graphics_rendering_render-pass_render-pass.html b/docs/modules/graphics_rendering_render-pass_render-pass.html new file mode 100644 index 0000000..eb52374 --- /dev/null +++ b/docs/modules/graphics_rendering_render-pass_render-pass.html @@ -0,0 +1 @@ +graphics/rendering/render-pass/render-pass | SDF-2D - v0.7.6
                                                                                                                                                        SDF-2D - v0.7.6
                                                                                                                                                          Preparing search index...

                                                                                                                                                          Module graphics/rendering/render-pass/render-pass

                                                                                                                                                          diff --git a/docs/modules/graphics_rendering_renderer_context-aware-renderer.html b/docs/modules/graphics_rendering_renderer_context-aware-renderer.html new file mode 100644 index 0000000..5972e94 --- /dev/null +++ b/docs/modules/graphics_rendering_renderer_context-aware-renderer.html @@ -0,0 +1 @@ +graphics/rendering/renderer/context-aware-renderer | SDF-2D - v0.7.6
                                                                                                                                                          SDF-2D - v0.7.6
                                                                                                                                                            Preparing search index...

                                                                                                                                                            Module graphics/rendering/renderer/context-aware-renderer

                                                                                                                                                            diff --git a/docs/modules/graphics_rendering_renderer_noise-renderer.html b/docs/modules/graphics_rendering_renderer_noise-renderer.html new file mode 100644 index 0000000..72f2af9 --- /dev/null +++ b/docs/modules/graphics_rendering_renderer_noise-renderer.html @@ -0,0 +1 @@ +graphics/rendering/renderer/noise-renderer | SDF-2D - v0.7.6
                                                                                                                                                            SDF-2D - v0.7.6
                                                                                                                                                              Preparing search index...

                                                                                                                                                              Module graphics/rendering/renderer/noise-renderer

                                                                                                                                                              Functions

                                                                                                                                                              renderNoise
                                                                                                                                                              diff --git a/docs/modules/graphics_rendering_renderer_renderer-implementation.html b/docs/modules/graphics_rendering_renderer_renderer-implementation.html new file mode 100644 index 0000000..d80f5c8 --- /dev/null +++ b/docs/modules/graphics_rendering_renderer_renderer-implementation.html @@ -0,0 +1 @@ +graphics/rendering/renderer/renderer-implementation | SDF-2D - v0.7.6
                                                                                                                                                              SDF-2D - v0.7.6
                                                                                                                                                                Preparing search index...

                                                                                                                                                                Module graphics/rendering/renderer/renderer-implementation

                                                                                                                                                                diff --git a/docs/modules/graphics_rendering_renderer_renderer-info.html b/docs/modules/graphics_rendering_renderer_renderer-info.html new file mode 100644 index 0000000..a5f12c7 --- /dev/null +++ b/docs/modules/graphics_rendering_renderer_renderer-info.html @@ -0,0 +1 @@ +graphics/rendering/renderer/renderer-info | SDF-2D - v0.7.6
                                                                                                                                                                SDF-2D - v0.7.6
                                                                                                                                                                  Preparing search index...

                                                                                                                                                                  Module graphics/rendering/renderer/renderer-info

                                                                                                                                                                  Interfaces

                                                                                                                                                                  RendererInfo
                                                                                                                                                                  diff --git a/docs/modules/graphics_rendering_renderer_renderer.html b/docs/modules/graphics_rendering_renderer_renderer.html new file mode 100644 index 0000000..af0a111 --- /dev/null +++ b/docs/modules/graphics_rendering_renderer_renderer.html @@ -0,0 +1 @@ +graphics/rendering/renderer/renderer | SDF-2D - v0.7.6
                                                                                                                                                                  SDF-2D - v0.7.6
                                                                                                                                                                    Preparing search index...

                                                                                                                                                                    Module graphics/rendering/renderer/renderer

                                                                                                                                                                    Interfaces

                                                                                                                                                                    Renderer
                                                                                                                                                                    diff --git a/docs/modules/graphics_rendering_settings_default-runtime-settings.html b/docs/modules/graphics_rendering_settings_default-runtime-settings.html new file mode 100644 index 0000000..a11bdae --- /dev/null +++ b/docs/modules/graphics_rendering_settings_default-runtime-settings.html @@ -0,0 +1 @@ +graphics/rendering/settings/default-runtime-settings | SDF-2D - v0.7.6
                                                                                                                                                                    SDF-2D - v0.7.6
                                                                                                                                                                      Preparing search index...

                                                                                                                                                                      Module graphics/rendering/settings/default-runtime-settings

                                                                                                                                                                      Variables

                                                                                                                                                                      defaultRuntimeSettings
                                                                                                                                                                      diff --git a/docs/modules/graphics_rendering_settings_default-startup-settings.html b/docs/modules/graphics_rendering_settings_default-startup-settings.html new file mode 100644 index 0000000..415558b --- /dev/null +++ b/docs/modules/graphics_rendering_settings_default-startup-settings.html @@ -0,0 +1 @@ +graphics/rendering/settings/default-startup-settings | SDF-2D - v0.7.6
                                                                                                                                                                      SDF-2D - v0.7.6
                                                                                                                                                                        Preparing search index...

                                                                                                                                                                        Module graphics/rendering/settings/default-startup-settings

                                                                                                                                                                        Variables

                                                                                                                                                                        defaultStartupSettings
                                                                                                                                                                        diff --git a/docs/modules/graphics_rendering_settings_runtime-settings.html b/docs/modules/graphics_rendering_settings_runtime-settings.html new file mode 100644 index 0000000..092c743 --- /dev/null +++ b/docs/modules/graphics_rendering_settings_runtime-settings.html @@ -0,0 +1 @@ +graphics/rendering/settings/runtime-settings | SDF-2D - v0.7.6
                                                                                                                                                                        SDF-2D - v0.7.6
                                                                                                                                                                          Preparing search index...

                                                                                                                                                                          Module graphics/rendering/settings/runtime-settings

                                                                                                                                                                          Interfaces

                                                                                                                                                                          RuntimeSettings
                                                                                                                                                                          diff --git a/docs/modules/graphics_rendering_settings_startup-settings.html b/docs/modules/graphics_rendering_settings_startup-settings.html new file mode 100644 index 0000000..00a0699 --- /dev/null +++ b/docs/modules/graphics_rendering_settings_startup-settings.html @@ -0,0 +1 @@ +graphics/rendering/settings/startup-settings | SDF-2D - v0.7.6
                                                                                                                                                                          SDF-2D - v0.7.6
                                                                                                                                                                            Preparing search index...

                                                                                                                                                                            Module graphics/rendering/settings/startup-settings

                                                                                                                                                                            Interfaces

                                                                                                                                                                            StartupSettings
                                                                                                                                                                            diff --git a/docs/modules/graphics_rendering_uniforms-provider.html b/docs/modules/graphics_rendering_uniforms-provider.html new file mode 100644 index 0000000..f1b1e22 --- /dev/null +++ b/docs/modules/graphics_rendering_uniforms-provider.html @@ -0,0 +1 @@ +graphics/rendering/uniforms-provider | SDF-2D - v0.7.6
                                                                                                                                                                            SDF-2D - v0.7.6
                                                                                                                                                                              Preparing search index...

                                                                                                                                                                              Module graphics/rendering/uniforms-provider

                                                                                                                                                                              diff --git a/docs/modules/helper_array.html b/docs/modules/helper_array.html new file mode 100644 index 0000000..9e1cb77 --- /dev/null +++ b/docs/modules/helper_array.html @@ -0,0 +1 @@ +helper/array | SDF-2D - v0.7.6
                                                                                                                                                                              SDF-2D - v0.7.6
                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                Module helper/array

                                                                                                                                                                                diff --git a/docs/modules/helper_clamp.html b/docs/modules/helper_clamp.html new file mode 100644 index 0000000..5617992 --- /dev/null +++ b/docs/modules/helper_clamp.html @@ -0,0 +1 @@ +helper/clamp | SDF-2D - v0.7.6
                                                                                                                                                                                SDF-2D - v0.7.6
                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                  Module helper/clamp

                                                                                                                                                                                  diff --git a/docs/modules/helper_code-for-color-access.html b/docs/modules/helper_code-for-color-access.html new file mode 100644 index 0000000..3745b72 --- /dev/null +++ b/docs/modules/helper_code-for-color-access.html @@ -0,0 +1 @@ +helper/code-for-color-access | SDF-2D - v0.7.6
                                                                                                                                                                                  SDF-2D - v0.7.6
                                                                                                                                                                                    Preparing search index...

                                                                                                                                                                                    Module helper/code-for-color-access

                                                                                                                                                                                    diff --git a/docs/modules/helper_color-to-string.html b/docs/modules/helper_color-to-string.html new file mode 100644 index 0000000..92485d1 --- /dev/null +++ b/docs/modules/helper_color-to-string.html @@ -0,0 +1 @@ +helper/color-to-string | SDF-2D - v0.7.6
                                                                                                                                                                                    SDF-2D - v0.7.6
                                                                                                                                                                                      Preparing search index...

                                                                                                                                                                                      Module helper/color-to-string

                                                                                                                                                                                      diff --git a/docs/modules/helper_colors_hex.html b/docs/modules/helper_colors_hex.html new file mode 100644 index 0000000..8e901f1 --- /dev/null +++ b/docs/modules/helper_colors_hex.html @@ -0,0 +1 @@ +helper/colors/hex | SDF-2D - v0.7.6
                                                                                                                                                                                      SDF-2D - v0.7.6
                                                                                                                                                                                        Preparing search index...

                                                                                                                                                                                        Module helper/colors/hex

                                                                                                                                                                                        Color

                                                                                                                                                                                        hex
                                                                                                                                                                                        diff --git a/docs/modules/helper_colors_hsl.html b/docs/modules/helper_colors_hsl.html new file mode 100644 index 0000000..2392354 --- /dev/null +++ b/docs/modules/helper_colors_hsl.html @@ -0,0 +1 @@ +helper/colors/hsl | SDF-2D - v0.7.6
                                                                                                                                                                                        SDF-2D - v0.7.6
                                                                                                                                                                                          Preparing search index...

                                                                                                                                                                                          Module helper/colors/hsl

                                                                                                                                                                                          Color

                                                                                                                                                                                          hsl
                                                                                                                                                                                          diff --git a/docs/modules/helper_colors_rgb.html b/docs/modules/helper_colors_rgb.html new file mode 100644 index 0000000..aad7184 --- /dev/null +++ b/docs/modules/helper_colors_rgb.html @@ -0,0 +1 @@ +helper/colors/rgb | SDF-2D - v0.7.6
                                                                                                                                                                                          SDF-2D - v0.7.6
                                                                                                                                                                                            Preparing search index...

                                                                                                                                                                                            Module helper/colors/rgb

                                                                                                                                                                                            Color

                                                                                                                                                                                            rgb
                                                                                                                                                                                            diff --git a/docs/modules/helper_colors_rgb255.html b/docs/modules/helper_colors_rgb255.html new file mode 100644 index 0000000..db15503 --- /dev/null +++ b/docs/modules/helper_colors_rgb255.html @@ -0,0 +1 @@ +helper/colors/rgb255 | SDF-2D - v0.7.6
                                                                                                                                                                                            SDF-2D - v0.7.6
                                                                                                                                                                                              Preparing search index...

                                                                                                                                                                                              Module helper/colors/rgb255

                                                                                                                                                                                              Color

                                                                                                                                                                                              rgb255
                                                                                                                                                                                              diff --git a/docs/modules/helper_colors_rgba.html b/docs/modules/helper_colors_rgba.html new file mode 100644 index 0000000..04b985d --- /dev/null +++ b/docs/modules/helper_colors_rgba.html @@ -0,0 +1 @@ +helper/colors/rgba | SDF-2D - v0.7.6
                                                                                                                                                                                              SDF-2D - v0.7.6
                                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                                Module helper/colors/rgba

                                                                                                                                                                                                Color

                                                                                                                                                                                                rgba
                                                                                                                                                                                                diff --git a/docs/modules/helper_colors_rgba255.html b/docs/modules/helper_colors_rgba255.html new file mode 100644 index 0000000..d55954f --- /dev/null +++ b/docs/modules/helper_colors_rgba255.html @@ -0,0 +1 @@ +helper/colors/rgba255 | SDF-2D - v0.7.6
                                                                                                                                                                                                SDF-2D - v0.7.6
                                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                                  Module helper/colors/rgba255

                                                                                                                                                                                                  Color

                                                                                                                                                                                                  rgba255
                                                                                                                                                                                                  diff --git a/docs/modules/helper_delta-time-calculator.html b/docs/modules/helper_delta-time-calculator.html new file mode 100644 index 0000000..fd14ac7 --- /dev/null +++ b/docs/modules/helper_delta-time-calculator.html @@ -0,0 +1 @@ +helper/delta-time-calculator | SDF-2D - v0.7.6
                                                                                                                                                                                                  SDF-2D - v0.7.6
                                                                                                                                                                                                    Preparing search index...

                                                                                                                                                                                                    Module helper/delta-time-calculator

                                                                                                                                                                                                    Classes

                                                                                                                                                                                                    DeltaTimeCalculator
                                                                                                                                                                                                    diff --git a/docs/modules/helper_exponential-decay.html b/docs/modules/helper_exponential-decay.html new file mode 100644 index 0000000..364b370 --- /dev/null +++ b/docs/modules/helper_exponential-decay.html @@ -0,0 +1 @@ +helper/exponential-decay | SDF-2D - v0.7.6
                                                                                                                                                                                                    SDF-2D - v0.7.6
                                                                                                                                                                                                      Preparing search index...

                                                                                                                                                                                                      Module helper/exponential-decay

                                                                                                                                                                                                      diff --git a/docs/modules/helper_format-log.html b/docs/modules/helper_format-log.html new file mode 100644 index 0000000..93b3873 --- /dev/null +++ b/docs/modules/helper_format-log.html @@ -0,0 +1 @@ +helper/format-log | SDF-2D - v0.7.6
                                                                                                                                                                                                      SDF-2D - v0.7.6
                                                                                                                                                                                                        Preparing search index...

                                                                                                                                                                                                        Module helper/format-log

                                                                                                                                                                                                        diff --git a/docs/modules/helper_get-combinations.html b/docs/modules/helper_get-combinations.html new file mode 100644 index 0000000..a3166d9 --- /dev/null +++ b/docs/modules/helper_get-combinations.html @@ -0,0 +1 @@ +helper/get-combinations | SDF-2D - v0.7.6
                                                                                                                                                                                                        SDF-2D - v0.7.6
                                                                                                                                                                                                          Preparing search index...

                                                                                                                                                                                                          Module helper/get-combinations

                                                                                                                                                                                                          diff --git a/docs/modules/helper_last.html b/docs/modules/helper_last.html new file mode 100644 index 0000000..b1eba42 --- /dev/null +++ b/docs/modules/helper_last.html @@ -0,0 +1 @@ +helper/last | SDF-2D - v0.7.6
                                                                                                                                                                                                          SDF-2D - v0.7.6
                                                                                                                                                                                                            Preparing search index...

                                                                                                                                                                                                            Module helper/last

                                                                                                                                                                                                            diff --git a/docs/modules/helper_mix.html b/docs/modules/helper_mix.html new file mode 100644 index 0000000..626ec0d --- /dev/null +++ b/docs/modules/helper_mix.html @@ -0,0 +1 @@ +helper/mix | SDF-2D - v0.7.6
                                                                                                                                                                                                            SDF-2D - v0.7.6
                                                                                                                                                                                                              Preparing search index...

                                                                                                                                                                                                              Module helper/mix

                                                                                                                                                                                                              diff --git a/docs/modules/helper_ms-to-string.html b/docs/modules/helper_ms-to-string.html new file mode 100644 index 0000000..611250e --- /dev/null +++ b/docs/modules/helper_ms-to-string.html @@ -0,0 +1 @@ +helper/ms-to-string | SDF-2D - v0.7.6
                                                                                                                                                                                                              SDF-2D - v0.7.6
                                                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                                                Module helper/ms-to-string

                                                                                                                                                                                                                diff --git a/docs/modules/helper_number-to-glsl-float.html b/docs/modules/helper_number-to-glsl-float.html new file mode 100644 index 0000000..eeced11 --- /dev/null +++ b/docs/modules/helper_number-to-glsl-float.html @@ -0,0 +1 @@ +helper/number-to-glsl-float | SDF-2D - v0.7.6
                                                                                                                                                                                                                SDF-2D - v0.7.6
                                                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                                                  Module helper/number-to-glsl-float

                                                                                                                                                                                                                  diff --git a/docs/modules/helper_wait.html b/docs/modules/helper_wait.html new file mode 100644 index 0000000..46bfdca --- /dev/null +++ b/docs/modules/helper_wait.html @@ -0,0 +1 @@ +helper/wait | SDF-2D - v0.7.6
                                                                                                                                                                                                                  SDF-2D - v0.7.6
                                                                                                                                                                                                                    Preparing search index...

                                                                                                                                                                                                                    Module helper/wait

                                                                                                                                                                                                                    diff --git a/docs/modules/main.html b/docs/modules/main.html new file mode 100644 index 0000000..35320d5 --- /dev/null +++ b/docs/modules/main.html @@ -0,0 +1,4 @@ +main | SDF-2D - v0.7.6
                                                                                                                                                                                                                    SDF-2D - v0.7.6
                                                                                                                                                                                                                      Preparing search index...

                                                                                                                                                                                                                      Module main

                                                                                                                                                                                                                      Importing this file gives arrays (Array and Float32Array instances) +two new properties: x and y. The former refers to their 0th element, +and the latter to their 1st.

                                                                                                                                                                                                                      +

                                                                                                                                                                                                                      References

                                                                                                                                                                                                                      CircleFactory → CircleFactory
                                                                                                                                                                                                                      CircleLight → CircleLight
                                                                                                                                                                                                                      ColorfulCircle → ColorfulCircle
                                                                                                                                                                                                                      compile → compile
                                                                                                                                                                                                                      DeltaTimeCalculator → DeltaTimeCalculator
                                                                                                                                                                                                                      Drawable → Drawable
                                                                                                                                                                                                                      DrawableDescriptor → DrawableDescriptor
                                                                                                                                                                                                                      DropletFactory → DropletFactory
                                                                                                                                                                                                                      FilteringOptions → FilteringOptions
                                                                                                                                                                                                                      Flashlight → Flashlight
                                                                                                                                                                                                                      hex → hex
                                                                                                                                                                                                                      HexagonFactory → HexagonFactory
                                                                                                                                                                                                                      hsl → hsl
                                                                                                                                                                                                                      InvertedTunnelFactory → InvertedTunnelFactory
                                                                                                                                                                                                                      MetaCircleFactory → MetaCircleFactory
                                                                                                                                                                                                                      NoisyPolygonFactory → NoisyPolygonFactory
                                                                                                                                                                                                                      PolygonBase → PolygonBase
                                                                                                                                                                                                                      PolygonFactory → PolygonFactory
                                                                                                                                                                                                                      Renderer → Renderer
                                                                                                                                                                                                                      renderNoise → renderNoise
                                                                                                                                                                                                                      rgb → rgb
                                                                                                                                                                                                                      rgb255 → rgb255
                                                                                                                                                                                                                      rgba → rgba
                                                                                                                                                                                                                      rgba255 → rgba255
                                                                                                                                                                                                                      RotatedRectangleFactory → RotatedRectangleFactory
                                                                                                                                                                                                                      runAnimation → runAnimation
                                                                                                                                                                                                                      TextureOptions → TextureOptions
                                                                                                                                                                                                                      TextureWithOptions → TextureWithOptions
                                                                                                                                                                                                                      WrapOptions → WrapOptions
                                                                                                                                                                                                                      diff --git a/docs/modules/run-animation.html b/docs/modules/run-animation.html new file mode 100644 index 0000000..7104140 --- /dev/null +++ b/docs/modules/run-animation.html @@ -0,0 +1 @@ +run-animation | SDF-2D - v0.7.6
                                                                                                                                                                                                                      SDF-2D - v0.7.6
                                                                                                                                                                                                                        Preparing search index...

                                                                                                                                                                                                                        Module run-animation

                                                                                                                                                                                                                        Functions

                                                                                                                                                                                                                        runAnimation
                                                                                                                                                                                                                        diff --git a/docs/types/graphics_graphics-library_texture_texture-options.TextureWithOptions.html b/docs/types/graphics_graphics-library_texture_texture-options.TextureWithOptions.html new file mode 100644 index 0000000..3c1aca6 --- /dev/null +++ b/docs/types/graphics_graphics-library_texture_texture-options.TextureWithOptions.html @@ -0,0 +1,3 @@ +TextureWithOptions | SDF-2D - v0.7.6
                                                                                                                                                                                                                        SDF-2D - v0.7.6
                                                                                                                                                                                                                          Preparing search index...
                                                                                                                                                                                                                          type TextureWithOptions = {
                                                                                                                                                                                                                              overrides: Partial<TextureOptions>;
                                                                                                                                                                                                                              source: TexImageSource;
                                                                                                                                                                                                                          }
                                                                                                                                                                                                                          Index

                                                                                                                                                                                                                          Properties

                                                                                                                                                                                                                          Properties

                                                                                                                                                                                                                          overrides: Partial<TextureOptions>
                                                                                                                                                                                                                          source: TexImageSource
                                                                                                                                                                                                                          diff --git a/docs/variables/graphics_rendering_settings_default-runtime-settings.defaultRuntimeSettings.html b/docs/variables/graphics_rendering_settings_default-runtime-settings.defaultRuntimeSettings.html new file mode 100644 index 0000000..109a036 --- /dev/null +++ b/docs/variables/graphics_rendering_settings_default-runtime-settings.defaultRuntimeSettings.html @@ -0,0 +1,2 @@ +defaultRuntimeSettings | SDF-2D - v0.7.6
                                                                                                                                                                                                                          SDF-2D - v0.7.6
                                                                                                                                                                                                                            Preparing search index...
                                                                                                                                                                                                                            defaultRuntimeSettings: RuntimeSettings = ...

                                                                                                                                                                                                                            Contains the default values used for [[RuntimeSettings]].

                                                                                                                                                                                                                            +
                                                                                                                                                                                                                            diff --git a/docs/variables/graphics_rendering_settings_default-startup-settings.defaultStartupSettings.html b/docs/variables/graphics_rendering_settings_default-startup-settings.defaultStartupSettings.html new file mode 100644 index 0000000..13687a7 --- /dev/null +++ b/docs/variables/graphics_rendering_settings_default-startup-settings.defaultStartupSettings.html @@ -0,0 +1,2 @@ +defaultStartupSettings | SDF-2D - v0.7.6
                                                                                                                                                                                                                            SDF-2D - v0.7.6
                                                                                                                                                                                                                              Preparing search index...
                                                                                                                                                                                                                              defaultStartupSettings: StartupSettings = ...

                                                                                                                                                                                                                              Contains the default values used for [[StartupSettings]].

                                                                                                                                                                                                                              +
                                                                                                                                                                                                                              diff --git a/documentation-readme.md b/documentation-readme.md index dbc37d1..deda653 100644 --- a/documentation-readme.md +++ b/documentation-readme.md @@ -12,46 +12,46 @@ The motivation behind this library and more in-depth information about the rende ## Usage (1st option) -- To start using cutting-edge 2D graphics, first you have get a renderer instance. This is possible by calling the [compile function](globals.html#compile). - - For this, some [DrawableDescriptors](interfaces/drawabledescriptor.html) has to be provided. - - Optionally, default compile settings can overridden using [StartupSettings](interfaces/startupsettings.html). -- After acquiring a renderer, the drawing of objects can be started through the [Renderer](interfaces/renderer.html) interface. +- To start using cutting-edge 2D graphics, you first need a renderer instance. You can get one by calling the [compile function](globals.html#compile). + - For this, you have to provide one or more [DrawableDescriptors](interfaces/drawabledescriptor.html). + - Optionally, the default compile settings can be overridden using [StartupSettings](interfaces/startupsettings.html). +- Once you have a renderer, you can start drawing objects through the [Renderer](interfaces/renderer.html) interface. ## Usage (2nd option) -If you're planning on creating animated content, use the [runAnimation function](globals.html#runanimation) to spare yourself from writing boilerplate code. -Further documentation on its usage is available in its [documentation](globals.html#runanimation). +If you're planning to create animated content, use the [runAnimation function](globals.html#runanimation) to save yourself from writing boilerplate code. +See its [documentation](globals.html#runanimation) for more details. ## Extending drawables -> Iñigo Quilez has some great [2D SDF-s](https://iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm) +> Iñigo Quilez has a great collection of [2D SDFs](https://iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm) - Subclass [Drawable](classes/drawable.html) - Implement its abstract methods -- Add a static property to your class called `descriptor` of type [DrawableDescriptors](interfaces/drawabledescriptor.html) -- Follow the instructions given in [Usage](#usage) +- Add a static `descriptor` property of type [DrawableDescriptor](interfaces/drawabledescriptor.html) to your class +- Follow the instructions given in [Usage](#usage-1st-option) ## Useful to know ### Math -The `vec2`, `vec3`, and `vec4` types seen in the documentation come from the [glMatrix](http://glmatrix.net/) library and are equivalent to regular JS Arrays or Float32Arrays. So, feel free to give `[x, y]` as an input for functions requiring `vec2`. +The `vec2`, `vec3`, and `vec4` types seen in the documentation come from the [glMatrix](http://glmatrix.net/) library and are equivalent to regular JS Arrays or Float32Arrays, so feel free to pass `[x, y]` to functions that expect a `vec2`. ### Coordinates -Anywhere, where positions need to be specified, the `y` values grow upwards. That means, when setting the view area, the origin is at the bottom left corner of the display. +Wherever positions need to be specified, the `y` axis grows upwards. This means that when you set the view area, the origin is at the bottom-left corner of the display. ### Tile-based rendering -For optimising the evaluation of the distance field, the display is divided up into a grid of tiles. The shaders for each tile are compiled to support a fix maximum number of objects on it. When using the built-in drawables it is possible that after a certain number of on-screen objects new ones won't be visible. +To optimise the evaluation of the distance field, the display is divided into a grid of tiles. The shaders for each tile are compiled to support a fixed maximum number of objects. When using the built-in drawables, this means that beyond a certain number of on-screen objects, new ones may stop appearing. -Mitigating this issue is quite easy. Instead of the following code: +Mitigating this is easy. Instead of the following code: ```js this.renderer = await compile(canvas, [Circle.descriptor, CircleLight.descriptor]); ``` -Modify it to something similar: +modify it to something like this: ```js this.renderer = await compile(canvas, [ @@ -66,6 +66,6 @@ this.renderer = await compile(canvas, [ ]); ``` -The usage of too large numbers is not advised for compatibility and performance reasons alike. +Using very large numbers is not advised, for both compatibility and performance reasons. -> Steps are very useful for tile-based rendering, because it is possible for one tile (at a given moment) to be empty or contain just a few objects, while others have a large cluster of objects. The compiled shaders only take into account the necessary number of objects on each tile. +> Steps are especially useful for tile-based rendering: at any given moment, one tile may be empty or contain just a few objects, while another holds a large cluster. The compiled shaders only account for the number of objects actually present on each tile. diff --git a/package.json b/package.json index a03c6f7..9a6ae02 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,10 @@ "license": "ISC", "exports": { ".": { - "import": "./lib/main.js" + "types": "./lib/src/main.d.ts", + "import": "./lib/main.js", + "require": "./lib/main.js", + "default": "./lib/main.js" } }, "scripts": { diff --git a/src/drawables/shapes/circle-factory.ts b/src/drawables/shapes/circle-factory.ts index b88b5cd..ad6c8b1 100644 --- a/src/drawables/shapes/circle-factory.ts +++ b/src/drawables/shapes/circle-factory.ts @@ -15,6 +15,10 @@ class CircleBase extends EmptyDrawable { } } +// Suffixing the GLSL names with a per-factory-invocation id lets multiple +// circle types (e.g. different colors) coexist in one compiled shader. +let _id = 0; + /** * @category Drawable */ @@ -23,27 +27,27 @@ export const CircleFactory = (color: vec3 | vec4 | number): typeof CircleBase => public static descriptor: DrawableDescriptor = { sdf: { shader: ` - uniform vec2 circleCenters[CIRCLE_COUNT]; - uniform float circleRadii[CIRCLE_COUNT]; - - float circleMinDistance(vec2 target, out vec4 color) { + uniform vec2 circleCenters${_id}[CIRCLE_COUNT${_id}]; + uniform float circleRadii${_id}[CIRCLE_COUNT${_id}]; + + float circleMinDistance${_id}(vec2 target, out vec4 color) { color = ${codeForColorAccess(color)}; float minDistance = 1000.0; - for (int i = 0; i < CIRCLE_COUNT; i++) { - float dist = distance(circleCenters[i], target) - circleRadii[i]; + for (int i = 0; i < CIRCLE_COUNT${_id}; i++) { + float dist = distance(circleCenters${_id}[i], target) - circleRadii${_id}[i]; minDistance = min(minDistance, dist); } - + return minDistance; } `, - distanceFunctionName: 'circleMinDistance', + distanceFunctionName: `circleMinDistance${_id}`, }, propertyUniformMapping: { - center: 'circleCenters', - radius: 'circleRadii', + center: `circleCenters${_id}`, + radius: `circleRadii${_id}`, }, - uniformCountMacroName: 'CIRCLE_COUNT', + uniformCountMacroName: `CIRCLE_COUNT${_id}`, shaderCombinationSteps: [0, 1, 2, 3, 8, 16], empty: new Circle(vec2.create(), 0), }; @@ -60,5 +64,7 @@ export const CircleFactory = (color: vec3 | vec4 | number): typeof CircleBase => } } + _id++; + return Circle; }; diff --git a/src/drawables/shapes/colorful-circle.ts b/src/drawables/shapes/colorful-circle.ts index 1a2e8d9..dbcf125 100644 --- a/src/drawables/shapes/colorful-circle.ts +++ b/src/drawables/shapes/colorful-circle.ts @@ -10,20 +10,20 @@ export class ColorfulCircle extends Drawable { uniform float colorfulCircleRadii[COLORFUL_CIRCLE_COUNT]; uniform int colorfulCircleColorIndex[COLORFUL_CIRCLE_COUNT]; - float circleMinDistance(vec2 target, out vec4 color) { + float colorfulCircleMinDistance(vec2 target, out vec4 color) { float minDistance = 1000.0; for (int i = 0; i < COLORFUL_CIRCLE_COUNT; i++) { float dist = distance(colorfulCircleCenters[i], target) - colorfulCircleRadii[i]; if (dist < minDistance) { color = readFromPalette(colorfulCircleColorIndex[i]); - dist = minDistance; + minDistance = dist; } } return minDistance; } `, - distanceFunctionName: 'circleMinDistance', + distanceFunctionName: 'colorfulCircleMinDistance', }, propertyUniformMapping: { center: 'colorfulCircleCenters', diff --git a/src/drawables/shapes/droplet-factory.ts b/src/drawables/shapes/droplet-factory.ts index 76289a3..1c8c7ad 100644 --- a/src/drawables/shapes/droplet-factory.ts +++ b/src/drawables/shapes/droplet-factory.ts @@ -41,7 +41,7 @@ export const DropletFactory = (color: vec3 | vec4 | number): typeof DropletBase float h = clamp( dot(targetFromDelta, toFromDeltas[i]) - / dot(toFromDeltas[i], toFromDeltas[i]), + / max(dot(toFromDeltas[i], toFromDeltas[i]), 0.00000001), 0.0, 1.0 ); diff --git a/src/drawables/shapes/inverted-tunnel-factory.ts b/src/drawables/shapes/inverted-tunnel-factory.ts index e219576..9fe2d01 100644 --- a/src/drawables/shapes/inverted-tunnel-factory.ts +++ b/src/drawables/shapes/inverted-tunnel-factory.ts @@ -36,7 +36,12 @@ export const InvertedTunnelFactory = ( uniform float fromRadii[INVERTED_TUNNEL_COUNT]; uniform float toRadii[INVERTED_TUNNEL_COUNT]; - uniform sampler2D noiseTexture; + // Other drawables share this declaration; the include guard keeps + // the combined shader from declaring it twice. + #ifndef NOISE_TEXTURE_DECLARED + #define NOISE_TEXTURE_DECLARED + uniform sampler2D noiseTexture; + #endif #ifdef WEBGL2_IS_AVAILABLE float invertedTunnelTerrain(float h) { @@ -63,7 +68,7 @@ export const InvertedTunnelFactory = ( vec2 targetFromDelta = target - froms[i]; float h = dot(targetFromDelta, toFromDeltas[i]) - / dot(toFromDeltas[i], toFromDeltas[i]); + / max(dot(toFromDeltas[i], toFromDeltas[i]), 0.00000001); float clampedH = clamp(h, 0.0, 1.0); diff --git a/src/drawables/shapes/noisy-polygon-factory.ts b/src/drawables/shapes/noisy-polygon-factory.ts index 3ca55fa..e021f2a 100644 --- a/src/drawables/shapes/noisy-polygon-factory.ts +++ b/src/drawables/shapes/noisy-polygon-factory.ts @@ -24,23 +24,33 @@ export const NoisyPolygonFactory = ( uniform float noisyPolygon${vertexCount}Lengths[NOISY_POLYGON${vertexCount}_COUNT]; uniform float noisyPolygon${vertexCount}Randoms[NOISY_POLYGON${vertexCount}_COUNT]; - uniform sampler2D noiseTexture; + // Other drawables (and other vertex-count variants of this one) + // share these declarations; the include guards keep the combined + // shader from declaring them twice. + #ifndef NOISE_TEXTURE_DECLARED + #define NOISE_TEXTURE_DECLARED + uniform sampler2D noiseTexture; + #endif - #ifdef WEBGL2_IS_AVAILABLE - float myTerrain(vec2 h) { - return texture(noiseTexture, h)[0] - 0.5; - } - #else - float myTerrain(vec2 h) { - return texture2D(noiseTexture, h)[0] - 0.5; - } + #ifndef MY_TERRAIN_DECLARED + #define MY_TERRAIN_DECLARED + #ifdef WEBGL2_IS_AVAILABLE + float myTerrain(vec2 h) { + return texture(noiseTexture, h)[0] - 0.5; + } + #else + float myTerrain(vec2 h) { + return texture2D(noiseTexture, h)[0] - 0.5; + } + #endif #endif vec2 noisyPolygon${vertexCount}LineDistance(vec2 target, vec2 from, vec2 to) { vec2 targetFromDelta = target - from; vec2 toFromDelta = to - from; float h = clamp( - dot(targetFromDelta, toFromDelta) / dot(toFromDelta, toFromDelta), + dot(targetFromDelta, toFromDelta) + / max(dot(toFromDelta, toFromDelta), 0.00000001), 0.0, 1.0 ); @@ -135,9 +145,13 @@ export const NoisyPolygonFactory = ( vec2.scale(center, center, 1 / transformedVertices.length); let length = 0; - for (let i = 1; i < this.vertices.length; i++) { + for (let i = 1; i < transformedVertices.length; i++) { length += vec2.distance(transformedVertices[i - 1], transformedVertices[i]); } + length += vec2.distance( + transformedVertices[transformedVertices.length - 1], + transformedVertices[0] + ); return { vertices: transformedVertices, diff --git a/src/drawables/shapes/polygon-factory.ts b/src/drawables/shapes/polygon-factory.ts index c093ea9..375d9a6 100644 --- a/src/drawables/shapes/polygon-factory.ts +++ b/src/drawables/shapes/polygon-factory.ts @@ -31,7 +31,8 @@ export const PolygonFactory = ( vec2 targetFromDelta = target - from; vec2 toFromDelta = to - from; float h = clamp( - dot(targetFromDelta, toFromDelta) / dot(toFromDelta, toFromDelta), + dot(targetFromDelta, toFromDelta) + / max(dot(toFromDelta, toFromDelta), 0.00000001), 0.0, 1.0 ); @@ -93,6 +94,10 @@ export const PolygonFactory = ( constructor(vertices: Array) { super(vertices); + if (vertices.length === 0) { + throw new Error('Polygons must have at least one vertex'); + } + if (vertices.length > vertexCount) { throw new Error( `Too many vertices, expected ${vertexCount}, got ${vertices.length}` @@ -104,7 +109,7 @@ export const PolygonFactory = ( const startEnd = this.vertices[0]; let vb = startEnd; - let d = vec2.squaredDistance(target, vb); + let d = vec2.distance(target, vb); let sign = 1; for (let i = 1; i <= this.vertices.length; i++) { diff --git a/src/drawables/shapes/rotated-rectangle-factory.ts b/src/drawables/shapes/rotated-rectangle-factory.ts index 1672669..83e0506 100644 --- a/src/drawables/shapes/rotated-rectangle-factory.ts +++ b/src/drawables/shapes/rotated-rectangle-factory.ts @@ -39,7 +39,7 @@ export const RotatedRectangleFactory = ( vec2 top = rotatedRectangleTopCenters[i]; vec2 bottom = rotatedRectangleBottomCenters[i]; float height = length(bottom - top); - vec2 d = (bottom - top) / height; + vec2 d = height > 0.00000001 ? (bottom - top) / height : vec2(0.0, 1.0); vec2 q = (target - (top + bottom) * 0.5); q = mat2(d.x, -d.y, d.y, d.x) * q; diff --git a/src/graphics/graphics-library/frame-buffer/intermediate-frame-buffer.ts b/src/graphics/graphics-library/frame-buffer/intermediate-frame-buffer.ts index dd00eba..3a0a1a2 100644 --- a/src/graphics/graphics-library/frame-buffer/intermediate-frame-buffer.ts +++ b/src/graphics/graphics-library/frame-buffer/intermediate-frame-buffer.ts @@ -26,10 +26,8 @@ export class IntermediateFrameBuffer extends FrameBuffer { } public destroy(): void { - if (this.distanceTexture) { - this.gl.deleteTexture(this.distanceTexture); - } - this.gl.deleteTexture(this.colorTexture); + this.distanceTexture?.destroy(); + this.colorTexture.destroy(); this.gl.deleteFramebuffer(this.frameBuffer); } diff --git a/src/graphics/graphics-library/parallel-compiler.ts b/src/graphics/graphics-library/parallel-compiler.ts index bb170cb..997b4a2 100644 --- a/src/graphics/graphics-library/parallel-compiler.ts +++ b/src/graphics/graphics-library/parallel-compiler.ts @@ -79,11 +79,16 @@ export class ParallelCompiler { let replaceHappened: boolean; do { replaceHappened = false; - processedSource = processedSource.replace(/{(.+)}/gm, (_, name: string): string => { - replaceHappened = true; - const value = substitutions[name]; - return numberToGlslFloat(value); - }); + processedSource = processedSource.replace( + /{(\w+)}/gm, + (_, name: string): string => { + replaceHappened = true; + if (!(name in substitutions)) { + throw new Error(`Unknown shader substitution: '{${name}}'`); + } + return numberToGlslFloat(substitutions[name]); + } + ); } while (replaceHappened); const shader = this.gl.createShader(type)!; diff --git a/src/graphics/graphics-library/program/fragment-shader-only-program.ts b/src/graphics/graphics-library/program/fragment-shader-only-program.ts index 18c53e0..a43ba9d 100644 --- a/src/graphics/graphics-library/program/fragment-shader-only-program.ts +++ b/src/graphics/graphics-library/program/fragment-shader-only-program.ts @@ -28,7 +28,7 @@ export class FragmentShaderOnlyProgram extends Program { if (this.gl.isWebGL2) { this.gl.bindVertexArray(this.vao!); } else { - this.vertexArrayExtension.createVertexArrayOES(); + this.vertexArrayExtension.bindVertexArrayOES(this.vao!); } } diff --git a/src/graphics/graphics-library/program/uniform-array-autoscaling-program.ts b/src/graphics/graphics-library/program/uniform-array-autoscaling-program.ts index e0bc264..cd0d86c 100644 --- a/src/graphics/graphics-library/program/uniform-array-autoscaling-program.ts +++ b/src/graphics/graphics-library/program/uniform-array-autoscaling-program.ts @@ -9,6 +9,11 @@ import { IProgram } from './i-program'; /** @internal */ export class UniformArrayAutoScalingProgram implements IProgram { + private static readonly farAwayTransform = mat2d.fromTranslation( + mat2d.create(), + vec2.fromValues(-10000, -10000) + ); + private programs: Array<{ program: FragmentShaderOnlyProgram; values: Array; @@ -48,6 +53,13 @@ export class UniformArrayAutoScalingProgram implements IProgram { } await Promise.all(promises); + + // draw() takes the first program with enough capacity; ordering by total + // capacity makes that the cheapest sufficient variant instead of an + // arbitrary one full of phantom objects. + this.programs.sort( + (a, b) => a.values.reduce((s, v) => s + v, 0) - b.values.reduce((s, v) => s + v, 0) + ); } private checkDescriptorValidity(descriptors: Array) { @@ -94,7 +106,7 @@ export class UniformArrayAutoScalingProgram implements IProgram { for (let i = 0; i < difference; i++) { d.empty.serializeToUniforms( uniforms, - mat2d.fromTranslation(mat2d.create(), vec2.fromValues(-10000, -10000)), + UniformArrayAutoScalingProgram.farAwayTransform, 0 ); } diff --git a/src/graphics/graphics-library/texture/palette-texture.ts b/src/graphics/graphics-library/texture/palette-texture.ts index faee8a1..b60699e 100644 --- a/src/graphics/graphics-library/texture/palette-texture.ts +++ b/src/graphics/graphics-library/texture/palette-texture.ts @@ -14,21 +14,27 @@ export class PaletteTexture extends Texture { } public setPalette(colors: Array) { - const canvas = document.createElement('canvas'); - canvas.width = this.paletteSize; - canvas.height = 1; - - const ctx = canvas.getContext('2d')!; - const imageData = ctx.createImageData(this.paletteSize, 1); + const data = new Uint8Array(this.paletteSize * 4); + const toByte = (v: number) => Math.min(255, Math.max(0, Math.round(v * 255))); colors.forEach((c, i) => { - imageData.data[4 * i + 0] = c[0] * 255; - imageData.data[4 * i + 1] = c[1] * 255; - imageData.data[4 * i + 2] = c[2] * 255; - imageData.data[4 * i + 3] = c.length == 4 ? c[3] * 255 : 255; + data[4 * i + 0] = toByte(c[0]); + data[4 * i + 1] = toByte(c[1]); + data[4 * i + 2] = toByte(c[2]); + data[4 * i + 3] = c.length == 4 ? toByte(c[3]) : 255; }); - ctx.putImageData(imageData, 0, 0); - this.setImage(canvas); + this.bind(); + this.gl.texImage2D( + this.gl.TEXTURE_2D, + 0, + this.gl.RGBA, + this.paletteSize, + 1, + 0, + this.gl.RGBA, + this.gl.UNSIGNED_BYTE, + data + ); } } diff --git a/src/graphics/graphics-library/universal-rendering-context.ts b/src/graphics/graphics-library/universal-rendering-context.ts index 98d8707..2a94882 100644 --- a/src/graphics/graphics-library/universal-rendering-context.ts +++ b/src/graphics/graphics-library/universal-rendering-context.ts @@ -31,11 +31,11 @@ export const getUniversalRenderingContext = ( result.isWebGL2 = true; } } else { - result = (canvas.getContext('webgl') || - canvas.getContext('experimental-webgl', { - ...contextAttributes, - alpha: false, - })) as UniversalRenderingContext; + result = (canvas.getContext('webgl', contextAttributes) || + canvas.getContext( + 'experimental-webgl', + contextAttributes + )) as UniversalRenderingContext; if (!result) { throw new Error('Neither WebGL nor WebGL2 is supported'); @@ -64,8 +64,10 @@ export const getUniversalRenderingContext = ( }; canvas.addEventListener('webglcontextlost', handleContextLost, false); + const boundFunctions = new Map(); + const contextLostHandler = { - get: function (target: UniversalRenderingContext, prop: string) { + get: function (target: UniversalRenderingContext, prop: string | symbol) { const value = (target as any)[prop]; if (typeof value === 'function') { @@ -74,7 +76,13 @@ export const getUniversalRenderingContext = ( throw new ContextLostException(); } - return value.bind(target); + let bound = boundFunctions.get(prop); + if (bound === undefined) { + bound = value.bind(target); + boundFunctions.set(prop, bound); + } + + return bound; } return value; diff --git a/src/graphics/rendering/fps-quality-autoscaler.ts b/src/graphics/rendering/fps-quality-autoscaler.ts index e4371b8..56f16aa 100644 --- a/src/graphics/rendering/fps-quality-autoscaler.ts +++ b/src/graphics/rendering/fps-quality-autoscaler.ts @@ -1,5 +1,7 @@ import { clamp } from '../../helper/clamp'; import { Renderer } from './renderer/renderer'; +import { defaultRuntimeSettings } from './settings/default-runtime-settings'; +import { RuntimeSettings } from './settings/runtime-settings'; /** * Set the quality of rendering based on FPS values. @@ -23,7 +25,24 @@ export class FpsQualityAutoscaler { public static fpsTarget = 30; public fpsHysteresis = 5; - constructor(private readonly renderer: Renderer) {} + /** + * When `false`, FPS is still measured but the render scales are left alone. + */ + public scalingEnabled = true; + + constructor( + private readonly renderer: Renderer, + initialScales: Partial< + Pick + > = {} + ) { + // Starting from the renderer's actual scales avoids a quality jump on + // the first adjustment. + this.distanceScale = + initialScales.distanceRenderScale ?? defaultRuntimeSettings.distanceRenderScale; + this.lightsScale = + initialScales.lightsRenderScale ?? defaultRuntimeSettings.lightsRenderScale; + } public get FPS(): number { return this.fps; @@ -59,10 +78,14 @@ export class FpsQualityAutoscaler { this.fps = 1000 / ninetiethPercentile; } - private distanceScale = 0.33; - private lightsScale = 1; + private distanceScale: number; + private lightsScale: number; private adjustQuality() { + if (!this.scalingEnabled) { + return; + } + if (this.fps >= FpsQualityAutoscaler.fpsTarget + this.fpsHysteresis) { this.distanceScale = this.distanceScale + 0.1; this.lightsScale = this.lightsScale + 0.1; diff --git a/src/graphics/rendering/render-pass/distance-render-pass.ts b/src/graphics/rendering/render-pass/distance-render-pass.ts index 864251a..ae3ad76 100644 --- a/src/graphics/rendering/render-pass/distance-render-pass.ts +++ b/src/graphics/rendering/render-pass/distance-render-pass.ts @@ -29,13 +29,24 @@ export class DistanceRenderPass extends RenderPass { const radiusInNDC = worldR * commonUniforms.scaleWorldLengthToNDC; const stepsInNDC = 2 * stepsInUV; + const maxMinDistance = radiusInNDC * (this.isWorldInverted ? -1 : 1); + + const serializedDrawables = this.drawables.map((drawable) => { + const drawableUniforms: { [name: string]: Array } = {}; + drawable.serializeToUniforms( + drawableUniforms, + commonUniforms.transformWorldToNDC, + commonUniforms.scaleWorldLengthToNDC + ); + return { drawable, drawableUniforms }; + }); let drawnDrawablesCount = 0; for (let x = -1; x < 1; x += stepsInNDC) { for (let y = -1; y < 1; y += stepsInNDC) { - const uniforms = { + const uniforms: any = { ...commonUniforms, - maxMinDistance: radiusInNDC * (this.isWorldInverted ? -1 : 1), + maxMinDistance, }; const uvBottomLeft = vec2.fromValues(x / 2 + 0.5, y / 2 + 0.5); @@ -55,19 +66,20 @@ export class DistanceRenderPass extends RenderPass { uniforms.uvToWorld ); - const drawablesNearTile = this.drawables.filter( - (d) => d.minDistance(tileCenterWorldCoordinates) < 2 * worldR - ); + for (const { drawable, drawableUniforms } of serializedDrawables) { + if (drawable.minDistance(tileCenterWorldCoordinates) >= 2 * worldR) { + continue; + } - drawnDrawablesCount += drawablesNearTile.length; + drawnDrawablesCount++; - drawablesNearTile.forEach((p) => - p.serializeToUniforms( - uniforms, - uniforms.transformWorldToNDC, - uniforms.scaleWorldLengthToNDC - ) - ); + for (const name in drawableUniforms) { + if (!Object.prototype.hasOwnProperty.call(uniforms, name)) { + uniforms[name] = []; + } + uniforms[name].push(...drawableUniforms[name]); + } + } this.program.draw(uniforms); } diff --git a/src/graphics/rendering/render-pass/lights-render-pass.ts b/src/graphics/rendering/render-pass/lights-render-pass.ts index 8adcb29..ac1eaa1 100644 --- a/src/graphics/rendering/render-pass/lights-render-pass.ts +++ b/src/graphics/rendering/render-pass/lights-render-pass.ts @@ -22,18 +22,14 @@ export class LightsRenderPass extends RenderPass { commonUniforms.uvToWorld ); + const halfViewAreaX = commonUniforms.worldAreaInView.x / 2; + const halfViewAreaY = commonUniforms.worldAreaInView.y / 2; + const drawablesNearTile = this.drawables.filter((l) => { - const d = vec2.subtract( - vec2.create(), - [ - Math.abs(l.center.x - tileCenterWorldCoordinates.x), - Math.abs(l.center.y - tileCenterWorldCoordinates.y), - ], - vec2.scale(vec2.create(), commonUniforms.worldAreaInView, 0.5) - ); + const dX = Math.abs(l.center.x - tileCenterWorldCoordinates.x) - halfViewAreaX; + const dY = Math.abs(l.center.y - tileCenterWorldCoordinates.y) - halfViewAreaY; const distance = - vec2.length([Math.max(d.x, 0), Math.max(d.y, 0)]) + - Math.min(Math.max(d.x, d.y), 0.0); + Math.hypot(Math.max(dX, 0), Math.max(dY, 0)) + Math.min(Math.max(dX, dY), 0); l.setLightnessRatio(clamp01(1 - distance / this.lightCutoffDistance)); return distance < this.lightCutoffDistance; diff --git a/src/graphics/rendering/renderer/noise-renderer.ts b/src/graphics/rendering/renderer/noise-renderer.ts index ef4ac3a..e1f8a6c 100644 --- a/src/graphics/rendering/renderer/noise-renderer.ts +++ b/src/graphics/rendering/renderer/noise-renderer.ts @@ -1,5 +1,6 @@ import { ReadonlyVec2 } from 'gl-matrix'; import { DefaultFrameBuffer } from '../../graphics-library/frame-buffer/default-frame-buffer'; +import { tryEnableExtension } from '../../graphics-library/helper/enable-extension'; import { ParallelCompiler } from '../../graphics-library/parallel-compiler'; import { FragmentShaderOnlyProgram } from '../../graphics-library/program/fragment-shader-only-program'; import { getUniversalRenderingContext } from '../../graphics-library/universal-rendering-context'; @@ -48,5 +49,12 @@ export const renderNoise = async ( frameBuffer.destroy(); program.destroy(); - return canvas; + const result = document.createElement('canvas'); + result.width = canvas.width; + result.height = canvas.height; + result.getContext('2d')!.drawImage(canvas, 0, 0); + + tryEnableExtension(gl, 'WEBGL_lose_context')?.loseContext(); + + return result; }; diff --git a/src/graphics/rendering/renderer/renderer-implementation.ts b/src/graphics/rendering/renderer/renderer-implementation.ts index f5b8480..9a1ff21 100644 --- a/src/graphics/rendering/renderer/renderer-implementation.ts +++ b/src/graphics/rendering/renderer/renderer-implementation.ts @@ -51,6 +51,7 @@ export class RendererImplementation implements Renderer { private _canvasSize: vec2; private blendFactor!: number; private canvasResizeObserver!: ResizeObserver; + private frameIndex = 0; private applyRuntimeSettings: { [key in keyof RuntimeSettings]: (value: any) => void; @@ -167,6 +168,7 @@ export class RendererImplementation implements Renderer { { shadowTraceCount: settings.shadowTraceCount.toString(), intensityInsideRatio: settings.lightPenetrationRatio, + lightOverlapReduction: settings.lightOverlapReduction, floatLinearEnabled: this.gl.insights.floatInterpolationEnabled ? '1' : '0', backgroundColor: colorToString(settings.backgroundColor), } @@ -192,6 +194,7 @@ export class RendererImplementation implements Renderer { private setTextures(v: { [textureName: string]: TexImageSource | TextureWithOptions }) { this.textures.forEach((t) => t.destroy()); this.textures = []; + this.uniformsProvider.textures = {}; let id = 3; for (const key in v) { @@ -246,6 +249,18 @@ export class RendererImplementation implements Renderer { distanceNdcPixelSize: 2 / Math.max(...this.distanceFieldFrameBuffer.getSize()), shadingNdcPixelSize: 2 / Math.max(...this.lightingFrameBuffer.getSize()), + + // The motion-blur blend multiplies the lights pass' output by + // blendFactor before it reaches the 8-bit canvas, which would attenuate + // the anti-banding dither below the quantization step it has to mask. + // Pre-scale the dither to arrive at full strength after blending; the + // clamp keeps extreme motion-blur values from injecting visible grain. + ditherStrength: lightsSizeChanged ? 1 : 1 / Math.max(this.blendFactor, 0.125), + + // Scroll the dither pattern every frame (golden-ratio offset), so the + // motion-blur blend averages independently dithered frames instead of + // freezing into a banded fixed point. + ditherSeed: (this.frameIndex = (this.frameIndex + 1) & 63) * 5.588238, }; this.distancePass.render(this.uniformsProvider.getUniforms(common), [ diff --git a/src/graphics/rendering/settings/default-startup-settings.ts b/src/graphics/rendering/settings/default-startup-settings.ts index 85b2a94..0493cdd 100644 --- a/src/graphics/rendering/settings/default-startup-settings.ts +++ b/src/graphics/rendering/settings/default-startup-settings.ts @@ -10,6 +10,7 @@ export const defaultStartupSettings: StartupSettings = { ignoreWebGL2: false, backgroundColor: vec4.fromValues(1, 1, 1, 1), lightPenetrationRatio: 0.75, + lightOverlapReduction: 0, enableStopwatch: false, enableContextLostSimulator: false, }; diff --git a/src/graphics/rendering/settings/startup-settings.ts b/src/graphics/rendering/settings/startup-settings.ts index 5cee633..6447fbb 100644 --- a/src/graphics/rendering/settings/startup-settings.ts +++ b/src/graphics/rendering/settings/startup-settings.ts @@ -32,6 +32,19 @@ export interface StartupSettings { */ lightPenetrationRatio: number; + /** + * Controls how overlapping lights combine. + * + * At `0` lights are summed additively (the physically-correct default): + * two nearby lights brighten their overlap and their glows merge into a + * shape larger than either alone. At `1` overlapping lights instead take + * the per-channel maximum, so a combination never reads brighter or larger + * than its strongest contributor. Values in between blend the two. + * + * A single light looks the same at any value. Should be between 0 and 1. + */ + lightOverlapReduction: number; + /** * Gives the number of possible object colors for the scene. * diff --git a/src/graphics/rendering/shaders/distance-fs-100.glsl b/src/graphics/rendering/shaders/distance-fs-100.glsl index f1442cc..2c676c9 100644 --- a/src/graphics/rendering/shaders/distance-fs-100.glsl +++ b/src/graphics/rendering/shaders/distance-fs-100.glsl @@ -1,6 +1,10 @@ #version 100 -precision lowp float; +#ifdef GL_FRAGMENT_PRECISION_HIGH + precision highp float; +#else + precision mediump float; +#endif uniform float maxMinDistance; uniform float distanceNdcPixelSize; @@ -24,5 +28,5 @@ void main() { {functionCalls} - gl_FragColor = vec4(color.rgb, minDistance * 8.0); + gl_FragColor = vec4(color.rgb, minDistance * 8.0 + 0.125); } diff --git a/src/graphics/rendering/shaders/distance-fs.glsl b/src/graphics/rendering/shaders/distance-fs.glsl index 5f56e11..a0c16fc 100644 --- a/src/graphics/rendering/shaders/distance-fs.glsl +++ b/src/graphics/rendering/shaders/distance-fs.glsl @@ -1,6 +1,6 @@ #version 300 es -precision lowp float; +precision highp float; #define FLOAT_LINEAR_ENABLED {floatLinearEnabled} @@ -33,7 +33,7 @@ void main() { #if FLOAT_LINEAR_ENABLED distanceValue = minDistance; #else - distanceValue = minDistance * 8.0; + distanceValue = minDistance * 8.0 + 0.125; #endif fragmentColor = color; diff --git a/src/graphics/rendering/shaders/distance-vs-100.glsl b/src/graphics/rendering/shaders/distance-vs-100.glsl index 4f5c453..0f46c00 100644 --- a/src/graphics/rendering/shaders/distance-vs-100.glsl +++ b/src/graphics/rendering/shaders/distance-vs-100.glsl @@ -1,6 +1,6 @@ #version 100 -precision lowp float; +precision highp float; uniform mat3 modelTransform; uniform vec2 squareToAspectRatio; diff --git a/src/graphics/rendering/shaders/distance-vs.glsl b/src/graphics/rendering/shaders/distance-vs.glsl index 0e54025..1ddfbb8 100644 --- a/src/graphics/rendering/shaders/distance-vs.glsl +++ b/src/graphics/rendering/shaders/distance-vs.glsl @@ -1,6 +1,6 @@ #version 300 es -precision lowp float; +precision highp float; uniform mat3 modelTransform; uniform vec2 squareToAspectRatio; diff --git a/src/graphics/rendering/shaders/shading-fs-100.glsl b/src/graphics/rendering/shaders/shading-fs-100.glsl index 34be6a7..4ef90cf 100644 --- a/src/graphics/rendering/shaders/shading-fs-100.glsl +++ b/src/graphics/rendering/shaders/shading-fs-100.glsl @@ -1,13 +1,22 @@ #version 100 -precision lowp float; +#ifdef GL_FRAGMENT_PRECISION_HIGH + precision highp float; +#else + precision mediump float; +#endif #define INTENSITY_INSIDE_RATIO {intensityInsideRatio} #define SHADOW_TRACE_COUNT {shadowTraceCount} +// 0.0 == lights add (overlaps brighten & merge); 1.0 == lights take the +// per-channel max (overlaps never exceed the brighter light). See main(). +#define LIGHT_OVERLAP_REDUCTION float({lightOverlapReduction}) {macroDefinitions} uniform float shadingNdcPixelSize; +uniform float ditherStrength; +uniform float ditherSeed; uniform vec2 squareToAspectRatioTimes2; uniform vec3 ambientLight; @@ -19,19 +28,22 @@ varying vec2 uvCoordinates; float getDistance(in vec2 target, out vec4 color) { vec4 values = texture2D(colorTexture, target); color = vec4(values.rgb, 1.0); - return values[3] / 8.0; + return (values[3] - 0.125) / 8.0; } float getDistance(in vec2 target) { - return texture2D(colorTexture, target)[3] / 8.0; + return (texture2D(colorTexture, target)[3] - 0.125) / 8.0; } float shadowTransparency(float startingDistance, float lightCenterDistance, vec2 direction) { - float rayLength = startingDistance; + float rayLength = max(0.0, startingDistance); for (int j = 0; j < SHADOW_TRACE_COUNT; j++) { + if (rayLength >= lightCenterDistance) { + break; + } rayLength += max(0.0, getDistance(uvCoordinates + direction * rayLength)); } - return min(1.0, pow(rayLength / lightCenterDistance, 0.3)); + return min(1.0, pow(rayLength / max(lightCenterDistance, 0.00000001), 0.3)); } #ifdef CIRCLE_LIGHT_COUNT @@ -59,14 +71,29 @@ float shadowTransparency(float startingDistance, float lightCenterDistance, vec2 #endif #endif +float ditherNoise() { + float ign = fract(52.9829189 * fract( + dot(gl_FragCoord.xy + ditherSeed, vec2(0.06711056, 0.00583715)) + )); + float t = 2.0 * ign - 1.0; + return sign(t) * (1.0 - sqrt(1.0 - abs(t))); +} + void main() { vec4 rgbaColorAtPosition; float startingDistance = getDistance(uvCoordinates, rgbaColorAtPosition); vec3 colorAtPosition = rgbaColorAtPosition.rgb; - vec3 lighting = ambientLight; - vec3 lightingInside = ambientLight; + // Each light contributes to two accumulators: an additive sum (overlaps + // brighten and glows bridge into one another) and a per-channel max + // (overlaps read as just the brightest light). LIGHT_OVERLAP_REDUCTION + // blends between them. Ambient stays a separate additive base, so a single + // light is identical to pure-additive (sum == max for one light). + vec3 lightSum = vec3(0.0); + vec3 lightMax = vec3(0.0); + vec3 lightSumInside = vec3(0.0); + vec3 lightMaxInside = vec3(0.0); #ifdef CIRCLE_LIGHT_COUNT #if CIRCLE_LIGHT_COUNT > 0 @@ -77,14 +104,21 @@ void main() { lightCenterDistance / circleLightIntensities[i] + 1.0, 2.0 ); + if (dot(lightColorAtPosition, lightColorAtPosition) < 0.000001) { + continue; + } + vec2 direction = normalize(circleLightCenters[i] - position) / squareToAspectRatioTimes2; - lighting += lightColorAtPosition * shadowTransparency( - startingDistance, - lightCenterDistance, + vec3 shadowed = lightColorAtPosition * shadowTransparency( + startingDistance, + lightCenterDistance, direction ); - lightingInside += lightColorAtPosition; + lightSum += shadowed; + lightMax = max(lightMax, shadowed); + lightSumInside += lightColorAtPosition; + lightMaxInside = max(lightMaxInside, lightColorAtPosition); } #endif #endif @@ -96,35 +130,42 @@ void main() { float lightCenterDistance = distance(flashlightCenters[i], position); - vec3 lightColorAtPosition = intensityInDirection(flashlightDirections[i], originalDirection) + vec3 lightColorAtPosition = intensityInDirection(flashlightDirections[i], originalDirection) * flashlightColors[i] / pow( lightCenterDistance / flashlightIntensities[i] + 1.0, 2.0 ); - vec2 direction = originalDirection / squareToAspectRatioTimes2; - - if (length(lightColorAtPosition) < 0.0) { + if (dot(lightColorAtPosition, lightColorAtPosition) < 0.000001) { continue; } - lighting += lightColorAtPosition * shadowTransparency( - startingDistance, - lightCenterDistance, + vec2 direction = originalDirection / squareToAspectRatioTimes2; + + vec3 shadowed = lightColorAtPosition * shadowTransparency( + startingDistance, + lightCenterDistance, direction ); - lightingInside += lightColorAtPosition; + lightSum += shadowed; + lightMax = max(lightMax, shadowed); + lightSumInside += lightColorAtPosition; + lightMaxInside = max(lightMaxInside, lightColorAtPosition); } #endif #endif + vec3 lighting = ambientLight + mix(lightSum, lightMax, LIGHT_OVERLAP_REDUCTION); + vec3 lightingInside = + ambientLight + mix(lightSumInside, lightMaxInside, LIGHT_OVERLAP_REDUCTION); + vec3 outsideColor = {backgroundColor}.rgb * lighting; vec3 insideColor = colorAtPosition * lightingInside * INTENSITY_INSIDE_RATIO; - float edge = clamp(startingDistance / shadingNdcPixelSize, 0.0, 1.0); + float edge = clamp(startingDistance / shadingNdcPixelSize + 0.5, 0.0, 1.0); vec3 antialiasedColor = mix(insideColor, outsideColor, edge); gl_FragColor = vec4( - antialiasedColor, + antialiasedColor + ditherNoise() * ditherStrength / 255.0, rgbaColorAtPosition.a ); } diff --git a/src/graphics/rendering/shaders/shading-fs.glsl b/src/graphics/rendering/shaders/shading-fs.glsl index 71077ee..55c821b 100644 --- a/src/graphics/rendering/shaders/shading-fs.glsl +++ b/src/graphics/rendering/shaders/shading-fs.glsl @@ -1,15 +1,21 @@ #version 300 es -precision lowp float; +precision highp float; +precision highp sampler2D; #define INTENSITY_INSIDE_RATIO {intensityInsideRatio} #define SHADOW_TRACE_COUNT {shadowTraceCount} #define FLOAT_LINEAR_ENABLED {floatLinearEnabled} +// 0.0 == lights add (overlaps brighten & merge); 1.0 == lights take the +// per-channel max (overlaps never exceed the brighter light). See main(). +#define LIGHT_OVERLAP_REDUCTION float({lightOverlapReduction}) {macroDefinitions} uniform float shadingNdcPixelSize; uniform float distanceNdcPixelSize; +uniform float ditherStrength; +uniform float ditherSeed; uniform vec2 squareToAspectRatioTimes2; uniform vec3 ambientLight; @@ -27,16 +33,19 @@ float getDistance(vec2 target) { #if FLOAT_LINEAR_ENABLED return texture(distanceTexture, target)[0]; #else - return texture(distanceTexture, target)[0] / 8.0; + return (texture(distanceTexture, target)[0] - 0.125) / 8.0; #endif } float shadowTransparency(float startingDistance, float lightCenterDistance, vec2 direction) { - float rayLength = startingDistance; + float rayLength = max(0.0, startingDistance); for (int i = 0; i < SHADOW_TRACE_COUNT; i++) { + if (rayLength >= lightCenterDistance) { + break; + } rayLength += max(0.0, getDistance(uvCoordinates + direction * rayLength)); } - return min(1.0, pow(rayLength / lightCenterDistance, 0.3)); + return min(1.0, pow(rayLength / max(lightCenterDistance, 0.00000001), 0.3)); } #ifdef CIRCLE_LIGHT_COUNT @@ -80,6 +89,14 @@ float shadowTransparency(float startingDistance, float lightCenterDistance, vec2 #endif #endif +float ditherNoise() { + float ign = fract(52.9829189 * fract( + dot(gl_FragCoord.xy + ditherSeed, vec2(0.06711056, 0.00583715)) + )); + float t = 2.0 * ign - 1.0; + return sign(t) * (1.0 - sqrt(1.0 - abs(t))); +} + out vec4 fragmentColor; void main() { vec4 rgbaColorAtPosition = getColor(uvCoordinates); @@ -87,23 +104,37 @@ void main() { float startingDistance = getDistance(uvCoordinates); - vec3 lighting = ambientLight; - vec3 lightingInside = ambientLight; - + // Each light contributes to two accumulators: an additive sum (overlaps + // brighten and glows bridge into one another) and a per-channel max + // (overlaps read as just the brightest light). LIGHT_OVERLAP_REDUCTION + // blends between them. Ambient stays a separate additive base, so a single + // light is identical to pure-additive (sum == max for one light). + vec3 lightSum = vec3(0.0); + vec3 lightMax = vec3(0.0); + vec3 lightSumInside = vec3(0.0); + vec3 lightMaxInside = vec3(0.0); + #ifdef CIRCLE_LIGHT_COUNT #if CIRCLE_LIGHT_COUNT > 0 for (int i = 0; i < CIRCLE_LIGHT_COUNT; i++) { float lightCenterDistance; vec3 lightColorAtPosition = colorInPosition(i, lightCenterDistance); + if (dot(lightColorAtPosition, lightColorAtPosition) < 0.000001) { + continue; + } + vec2 direction = normalize(circleLightCenters[i] - position) / squareToAspectRatioTimes2; - lighting += lightColorAtPosition * shadowTransparency( - startingDistance, - lightCenterDistance, + vec3 shadowed = lightColorAtPosition * shadowTransparency( + startingDistance, + lightCenterDistance, direction ); - - lightingInside += lightColorAtPosition; + + lightSum += shadowed; + lightMax = max(lightMax, shadowed); + lightSumInside += lightColorAtPosition; + lightMaxInside = max(lightMaxInside, lightColorAtPosition); } #endif #endif @@ -119,35 +150,42 @@ void main() { originalDirection, lightCenterDistance ); - + if (lightCenterDistance < flashlightStartCutoffs[i]) { continue; } + if (dot(lightColorAtPosition, lightColorAtPosition) < 0.000001) { + continue; + } + vec2 direction = originalDirection / squareToAspectRatioTimes2; - if (length(lightColorAtPosition) < 0.0) { - continue; - } - - lighting += lightColorAtPosition * shadowTransparency( - startingDistance, - lightCenterDistance, + vec3 shadowed = lightColorAtPosition * shadowTransparency( + startingDistance, + lightCenterDistance, direction ); - lightingInside += lightColorAtPosition; + lightSum += shadowed; + lightMax = max(lightMax, shadowed); + lightSumInside += lightColorAtPosition; + lightMaxInside = max(lightMaxInside, lightColorAtPosition); } #endif #endif + vec3 lighting = ambientLight + mix(lightSum, lightMax, LIGHT_OVERLAP_REDUCTION); + vec3 lightingInside = + ambientLight + mix(lightSumInside, lightMaxInside, LIGHT_OVERLAP_REDUCTION); + vec3 outsideColor = {backgroundColor}.rgb * lighting; vec3 insideColor = colorAtPosition * lightingInside * INTENSITY_INSIDE_RATIO; - float edge = clamp(startingDistance / shadingNdcPixelSize, 0.0, 1.0); + float edge = clamp(startingDistance / shadingNdcPixelSize + 0.5, 0.0, 1.0); vec3 antialiasedColor = mix(insideColor, outsideColor, edge); fragmentColor = vec4( - antialiasedColor, + antialiasedColor + ditherNoise() * ditherStrength / 255.0, rgbaColorAtPosition.a ); } diff --git a/src/graphics/rendering/shaders/shading-vs-100.glsl b/src/graphics/rendering/shaders/shading-vs-100.glsl index c35ff4d..a71ed6b 100644 --- a/src/graphics/rendering/shaders/shading-vs-100.glsl +++ b/src/graphics/rendering/shaders/shading-vs-100.glsl @@ -1,6 +1,6 @@ #version 100 -precision lowp float; +precision highp float; {macroDefinitions} diff --git a/src/graphics/rendering/shaders/shading-vs.glsl b/src/graphics/rendering/shaders/shading-vs.glsl index 0f17bf1..d699081 100644 --- a/src/graphics/rendering/shaders/shading-vs.glsl +++ b/src/graphics/rendering/shaders/shading-vs.glsl @@ -1,6 +1,6 @@ #version 300 es -precision lowp float; +precision highp float; {macroDefinitions} diff --git a/src/helper/number-to-glsl-float.ts b/src/helper/number-to-glsl-float.ts index 8f2ec3d..5495c0f 100644 --- a/src/helper/number-to-glsl-float.ts +++ b/src/helper/number-to-glsl-float.ts @@ -3,5 +3,13 @@ * * Returns non-numbers as is. */ -export const numberToGlslFloat = (value: number | string): string => - Number.isInteger(value) ? `${value}.0` : value.toString(); +export const numberToGlslFloat = (value: number | string): string => { + if (typeof value !== 'number') { + return String(value); + } + + const asString = value.toString(); + + // Very large integers stringify in exponent notation (1e21) + return Number.isInteger(value) && !asString.includes('e') ? `${asString}.0` : asString; +}; diff --git a/src/run-animation.ts b/src/run-animation.ts index 47a4b0b..f426438 100644 --- a/src/run-animation.ts +++ b/src/run-animation.ts @@ -42,6 +42,8 @@ import { DrawableDescriptor, Renderer } from './main'; * return value must be given. * @param startupSettingOverrides Sensible defaults are provided, but these can be overridden. * @param initialRuntimeSettingOverrides Sensible defaults are provided, but these can be overridden. + * Set `enableAutoscaler` to `false` to keep the render scales exactly as configured + * instead of letting the FPS-based autoscaler adjust them. */ export async function runAnimation( canvas: HTMLCanvasElement, @@ -51,7 +53,9 @@ export async function runAnimation( currentTimeInMilliseconds: DOMHighResTimeStamp, deltaTimeInMilliseconds: DOMHighResTimeStamp ) => boolean, - settings: Partial = {} + settings: Partial & { + enableAutoscaler?: boolean; + } = {} ): Promise { if (settings.enableContextLostSimulator) { enableContextLostSimulator(canvas); @@ -62,7 +66,11 @@ export async function runAnimation( let triggerIsOver: () => void; const isOver = new Promise((resolve) => (triggerIsOver = resolve)); renderer.setRuntimeSettings(settings); - const autoscaler = new FpsQualityAutoscaler(renderer); + const autoscaler = new FpsQualityAutoscaler(renderer, { + distanceRenderScale: settings.distanceRenderScale, + lightsRenderScale: settings.lightsRenderScale, + }); + autoscaler.scalingEnabled = settings.enableAutoscaler !== false; await renderer.initializedPromise;