diff --git a/index.html b/index.html deleted file mode 100644 index 2b76444..0000000 --- a/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - Spectacular AI - - - Redirecting to Spectacular AI website. - - diff --git a/sdk/_static/_sphinx_javascript_frameworks_compat.js b/sdk/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000..8141580 --- /dev/null +++ b/sdk/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/sdk/python/latest/_static/basic.css b/sdk/_static/basic.css similarity index 99% rename from sdk/python/latest/_static/basic.css rename to sdk/_static/basic.css index 30fee9d..cfc60b8 100644 --- a/sdk/python/latest/_static/basic.css +++ b/sdk/_static/basic.css @@ -237,10 +237,6 @@ a.headerlink { visibility: hidden; } -a:visited { - color: #551A8B; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, diff --git a/sdk/_static/css/badge_only.css b/sdk/_static/css/badge_only.css new file mode 100644 index 0000000..c718cee --- /dev/null +++ b/sdk/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/sdk/_static/css/fonts/Roboto-Slab-Bold.woff b/sdk/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 0000000..6cb6000 Binary files /dev/null and b/sdk/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/sdk/_static/css/fonts/Roboto-Slab-Bold.woff2 b/sdk/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 0000000..7059e23 Binary files /dev/null and b/sdk/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/sdk/_static/css/fonts/Roboto-Slab-Regular.woff b/sdk/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 0000000..f815f63 Binary files /dev/null and b/sdk/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/sdk/_static/css/fonts/Roboto-Slab-Regular.woff2 b/sdk/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 0000000..f2c76e5 Binary files /dev/null and b/sdk/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/sdk/_static/css/fonts/fontawesome-webfont.eot b/sdk/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/sdk/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/sdk/_static/css/fonts/fontawesome-webfont.svg b/sdk/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/sdk/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sdk/_static/css/fonts/fontawesome-webfont.ttf b/sdk/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/sdk/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/sdk/_static/css/fonts/fontawesome-webfont.woff b/sdk/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/sdk/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/sdk/_static/css/fonts/fontawesome-webfont.woff2 b/sdk/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/sdk/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/sdk/_static/css/fonts/lato-bold-italic.woff b/sdk/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 0000000..88ad05b Binary files /dev/null and b/sdk/_static/css/fonts/lato-bold-italic.woff differ diff --git a/sdk/_static/css/fonts/lato-bold-italic.woff2 b/sdk/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 0000000..c4e3d80 Binary files /dev/null and b/sdk/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/sdk/_static/css/fonts/lato-bold.woff b/sdk/_static/css/fonts/lato-bold.woff new file mode 100644 index 0000000..c6dff51 Binary files /dev/null and b/sdk/_static/css/fonts/lato-bold.woff differ diff --git a/sdk/_static/css/fonts/lato-bold.woff2 b/sdk/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 0000000..bb19504 Binary files /dev/null and b/sdk/_static/css/fonts/lato-bold.woff2 differ diff --git a/sdk/_static/css/fonts/lato-normal-italic.woff b/sdk/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 0000000..76114bc Binary files /dev/null and b/sdk/_static/css/fonts/lato-normal-italic.woff differ diff --git a/sdk/_static/css/fonts/lato-normal-italic.woff2 b/sdk/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 0000000..3404f37 Binary files /dev/null and b/sdk/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/sdk/_static/css/fonts/lato-normal.woff b/sdk/_static/css/fonts/lato-normal.woff new file mode 100644 index 0000000..ae1307f Binary files /dev/null and b/sdk/_static/css/fonts/lato-normal.woff differ diff --git a/sdk/_static/css/fonts/lato-normal.woff2 b/sdk/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 0000000..3bf9843 Binary files /dev/null and b/sdk/_static/css/fonts/lato-normal.woff2 differ diff --git a/sdk/_static/css/theme.css b/sdk/_static/css/theme.css new file mode 100644 index 0000000..19a446a --- /dev/null +++ b/sdk/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/sdk/_static/custom.css b/sdk/_static/custom.css new file mode 100644 index 0000000..130d479 --- /dev/null +++ b/sdk/_static/custom.css @@ -0,0 +1,74 @@ +dl.property { + /* https://github.com/readthedocs/sphinx_rtd_theme/issues/1301 */ + display: block !important; +} + +/* ----------- Customize theme */ + +.wy-side-nav-search { + background: none !important; +} + +/* Hide certain elements in CSS */ +footer, .wy-breadcrumbs-aside { + display: none !important; +} + +/* ----------- Uncollapse menu with CSS violence */ +.wy-menu-vertical li ul { + display: block !important; +} + +.wy-menu-vertical li.toctree-l2 a { + color: #d9d9d9 !important; +} + +.toctree-l1, .toctree-l2, .toctree-l1 > a, .toctree-l2 > a { + /*background: none !important; */ + border: none !important; +} + +.wy-menu-vertical li.current > a, .wy-menu-vertical li.current > ul > li > a { + /* color: #d9d9d9 !important; */ + color: black !important; +} + +li.toctree-l2 > a { + padding: .4045em 2.427em; +} + +button.toctree-expand { + display: none !important; +} + +.logo { + filter: drop-shadow(2px 2px 5px rgba(0, 0, 0, 0.5)); +} + +.wy-form { + opacity: 0.5; +} + +.wy-nav-side, .wy-nav-top { + background-color: rgb(76, 76, 76); + background: url('https://spectacularai.github.io/docs/jpg/spectacular-menu-bg.jpg'); + background-size: cover; +} + +.wy-menu-vertical { + /*background-color: rgb(38, 38, 38); + box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);*/ + padding-top: 1em; + padding-bottom: 1em; + font-size: large; + color: white; +} + +.wy-menu-vertical > ul > .toctree-l1 { + margin-bottom: 0.75em; +} + +.wy-menu-vertical > ul > .toctree-l1 > a { + font-weight: bold; + color: white; +} diff --git a/sdk/python/latest/_static/doctools.js b/sdk/_static/doctools.js similarity index 100% rename from sdk/python/latest/_static/doctools.js rename to sdk/_static/doctools.js diff --git a/sdk/python/latest/_static/documentation_options.js b/sdk/_static/documentation_options.js similarity index 70% rename from sdk/python/latest/_static/documentation_options.js rename to sdk/_static/documentation_options.js index 7e4c114..b57ae3b 100644 --- a/sdk/python/latest/_static/documentation_options.js +++ b/sdk/_static/documentation_options.js @@ -1,4 +1,5 @@ -const DOCUMENTATION_OPTIONS = { +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), VERSION: '', LANGUAGE: 'en', COLLAPSE_INDEX: false, diff --git a/sdk/python/latest/_static/file.png b/sdk/_static/file.png similarity index 100% rename from sdk/python/latest/_static/file.png rename to sdk/_static/file.png diff --git a/sdk/_static/jquery.js b/sdk/_static/jquery.js new file mode 100644 index 0000000..c4c6022 --- /dev/null +++ b/sdk/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/sdk/_static/js/html5shiv.min.js b/sdk/_static/js/html5shiv.min.js new file mode 100644 index 0000000..cd1c674 --- /dev/null +++ b/sdk/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/sdk/_static/js/theme.js b/sdk/_static/js/theme.js new file mode 100644 index 0000000..1fddb6e --- /dev/null +++ b/sdk/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, searchTerms, highlightTerms) => { +const _displayItem = (item, searchTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const contentRoot = document.documentElement.dataset.content_root; const [docName, title, anchor, descr, score, _filename] = item; @@ -75,24 +75,20 @@ const _displayItem = (item, searchTerms, highlightTerms) => { if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; - requestUrl = contentRoot + dirname; + requestUrl = docUrlRoot + dirname; linkUrl = requestUrl; } else { // normal html builders - requestUrl = contentRoot + docName + docFileSuffix; + requestUrl = docUrlRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; linkEl.innerHTML = title; - if (descr) { + if (descr) listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; - // highlight search terms in the description - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); - } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) @@ -101,9 +97,6 @@ const _displayItem = (item, searchTerms, highlightTerms) => { listItem.appendChild( Search.makeSearchSummary(data, searchTerms) ); - // highlight search terms in the summary - if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js - highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); }; @@ -122,15 +115,14 @@ const _finishSearch = (resultCount) => { const _displayNextItem = ( results, resultCount, - searchTerms, - highlightTerms, + searchTerms ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), searchTerms, highlightTerms); + _displayItem(results.pop(), searchTerms); setTimeout( - () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + () => _displayNextItem(results, resultCount, searchTerms), 5 ); } @@ -368,7 +360,7 @@ const Search = { // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, searchTerms, highlightTerms); + _displayNextItem(results, results.length, searchTerms); }, /** diff --git a/sdk/python/latest/_static/sphinx_highlight.js b/sdk/_static/sphinx_highlight.js similarity index 88% rename from sdk/python/latest/_static/sphinx_highlight.js rename to sdk/_static/sphinx_highlight.js index 8a96c69..aae669d 100644 --- a/sdk/python/latest/_static/sphinx_highlight.js +++ b/sdk/_static/sphinx_highlight.js @@ -29,19 +29,14 @@ const _highlight = (node, addItems, text, className) => { } span.appendChild(document.createTextNode(val.substr(pos, text.length))); - const rest = document.createTextNode(val.substr(pos + text.length)); parent.insertBefore( span, parent.insertBefore( - rest, + document.createTextNode(val.substr(pos + text.length)), node.nextSibling ) ); node.nodeValue = val.substr(0, pos); - /* There may be more occurrences of search term in this node. So call this - * function recursively on the remaining fragment. - */ - _highlight(rest, addItems, text, className); if (isInSVG) { const rect = document.createElementNS( @@ -145,10 +140,5 @@ const SphinxHighlight = { }, }; -_ready(() => { - /* Do not call highlightSearchWords() when we are on the search page. - * It will highlight words from the *previous* search query. - */ - if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); - SphinxHighlight.initEscapeListener(); -}); +_ready(SphinxHighlight.highlightSearchWords); +_ready(SphinxHighlight.initEscapeListener); diff --git a/sdk/_static/tabs.css b/sdk/_static/tabs.css new file mode 100644 index 0000000..957ba60 --- /dev/null +++ b/sdk/_static/tabs.css @@ -0,0 +1,89 @@ +.sphinx-tabs { + margin-bottom: 1rem; +} + +[role="tablist"] { + border-bottom: 1px solid #a0b3bf; +} + +.sphinx-tabs-tab { + position: relative; + font-family: Lato,'Helvetica Neue',Arial,Helvetica,sans-serif; + color: #1D5C87; + line-height: 24px; + margin: 0; + font-size: 16px; + font-weight: 400; + background-color: rgba(255, 255, 255, 0); + border-radius: 5px 5px 0 0; + border: 0; + padding: 1rem 1.5rem; + margin-bottom: 0; +} + +.sphinx-tabs-tab[aria-selected="true"] { + font-weight: 700; + border: 1px solid #a0b3bf; + border-bottom: 1px solid white; + margin: -1px; + background-color: white; +} + +.sphinx-tabs-tab:focus { + z-index: 1; + outline-offset: 1px; +} + +.sphinx-tabs-panel { + position: relative; + padding: 1rem; + border: 1px solid #a0b3bf; + margin: 0px -1px -1px -1px; + border-radius: 0 0 5px 5px; + border-top: 0; + background: white; +} + +.sphinx-tabs-panel.code-tab { + padding: 0.4rem; +} + +.sphinx-tab img { + margin-bottom: 24 px; +} + +/* Dark theme preference styling */ + +@media (prefers-color-scheme: dark) { + body[data-theme="auto"] .sphinx-tabs-panel { + color: white; + background-color: rgb(50, 50, 50); + } + + body[data-theme="auto"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); + } + + body[data-theme="auto"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 1px solid rgb(50, 50, 50); + background-color: rgb(50, 50, 50); + } +} + +/* Explicit dark theme styling */ + +body[data-theme="dark"] .sphinx-tabs-panel { + color: white; + background-color: rgb(50, 50, 50); +} + +body[data-theme="dark"] .sphinx-tabs-tab { + color: white; + background-color: rgba(255, 255, 255, 0.05); +} + +body[data-theme="dark"] .sphinx-tabs-tab[aria-selected="true"] { + border-bottom: 2px solid rgb(50, 50, 50); + background-color: rgb(50, 50, 50); +} diff --git a/sdk/_static/tabs.js b/sdk/_static/tabs.js new file mode 100644 index 0000000..48dc303 --- /dev/null +++ b/sdk/_static/tabs.js @@ -0,0 +1,145 @@ +try { + var session = window.sessionStorage || {}; +} catch (e) { + var session = {}; +} + +window.addEventListener("DOMContentLoaded", () => { + const allTabs = document.querySelectorAll('.sphinx-tabs-tab'); + const tabLists = document.querySelectorAll('[role="tablist"]'); + + allTabs.forEach(tab => { + tab.addEventListener("click", changeTabs); + }); + + tabLists.forEach(tabList => { + tabList.addEventListener("keydown", keyTabs); + }); + + // Restore group tab selection from session + const lastSelected = session.getItem('sphinx-tabs-last-selected'); + if (lastSelected != null) selectNamedTabs(lastSelected); +}); + +/** + * Key focus left and right between sibling elements using arrows + * @param {Node} e the element in focus when key was pressed + */ +function keyTabs(e) { + const tab = e.target; + let nextTab = null; + if (e.keyCode === 39 || e.keyCode === 37) { + tab.setAttribute("tabindex", -1); + // Move right + if (e.keyCode === 39) { + nextTab = tab.nextElementSibling; + if (nextTab === null) { + nextTab = tab.parentNode.firstElementChild; + } + // Move left + } else if (e.keyCode === 37) { + nextTab = tab.previousElementSibling; + if (nextTab === null) { + nextTab = tab.parentNode.lastElementChild; + } + } + } + + if (nextTab !== null) { + nextTab.setAttribute("tabindex", 0); + nextTab.focus(); + } +} + +/** + * Select or deselect clicked tab. If a group tab + * is selected, also select tab in other tabLists. + * @param {Node} e the element that was clicked + */ +function changeTabs(e) { + // Use this instead of the element that was clicked, in case it's a child + const notSelected = this.getAttribute("aria-selected") === "false"; + const positionBefore = this.parentNode.getBoundingClientRect().top; + const notClosable = !this.parentNode.classList.contains("closeable"); + + deselectTabList(this); + + if (notSelected || notClosable) { + selectTab(this); + const name = this.getAttribute("name"); + selectNamedTabs(name, this.id); + + if (this.classList.contains("group-tab")) { + // Persist during session + session.setItem('sphinx-tabs-last-selected', name); + } + } + + const positionAfter = this.parentNode.getBoundingClientRect().top; + const positionDelta = positionAfter - positionBefore; + // Scroll to offset content resizing + window.scrollTo(0, window.scrollY + positionDelta); +} + +/** + * Select tab and show associated panel. + * @param {Node} tab tab to select + */ +function selectTab(tab) { + tab.setAttribute("aria-selected", true); + + // Show the associated panel + document + .getElementById(tab.getAttribute("aria-controls")) + .removeAttribute("hidden"); +} + +/** + * Hide the panels associated with all tabs within the + * tablist containing this tab. + * @param {Node} tab a tab within the tablist to deselect + */ +function deselectTabList(tab) { + const parent = tab.parentNode; + const grandparent = parent.parentNode; + + Array.from(parent.children) + .forEach(t => t.setAttribute("aria-selected", false)); + + Array.from(grandparent.children) + .slice(1) // Skip tablist + .forEach(panel => panel.setAttribute("hidden", true)); +} + +/** + * Select grouped tabs with the same name, but no the tab + * with the given id. + * @param {Node} name name of grouped tab to be selected + * @param {Node} clickedId id of clicked tab + */ +function selectNamedTabs(name, clickedId=null) { + const groupedTabs = document.querySelectorAll(`.sphinx-tabs-tab[name="${name}"]`); + const tabLists = Array.from(groupedTabs).map(tab => tab.parentNode); + + tabLists + .forEach(tabList => { + // Don't want to change the tabList containing the clicked tab + const clickedTab = tabList.querySelector(`[id="${clickedId}"]`); + if (clickedTab === null ) { + // Select first tab with matching name + const tab = tabList.querySelector(`.sphinx-tabs-tab[name="${name}"]`); + deselectTabList(tab); + selectTab(tab); + } + }) +} + +if (typeof exports === 'undefined') { + exports = {}; +} + +exports.keyTabs = keyTabs; +exports.changeTabs = changeTabs; +exports.selectTab = selectTab; +exports.deselectTabList = deselectTabList; +exports.selectNamedTabs = selectNamedTabs; diff --git a/sdk/api.html b/sdk/api.html new file mode 100644 index 0000000..dc9aa21 --- /dev/null +++ b/sdk/api.html @@ -0,0 +1,141 @@ + + + + + + + API Reference — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

API Reference

+

Full API reference on a single page

+
+

Latest version

+
+ +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/core.html b/sdk/core.html new file mode 100644 index 0000000..4538aa4 --- /dev/null +++ b/sdk/core.html @@ -0,0 +1,143 @@ + + + + + + + Core SDK — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Core SDK

+

The Spectacular AI Core SDK is a platform-independent software solution for real-time 3D mapping and +6-DoF pose tracking. The core SDK includes the following public modules, which can be used with any device supported by the SDK.

+ +

The core SDK is easiest used through the wrappers for out-of-the-box supported devices, +but can also be used on other devices through the core SDK Input API. Contact us +for more information and access to the full functionality of the core SDK.

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/cpp/latest/index.html b/sdk/cpp/latest/index.html new file mode 100644 index 0000000..53cabdc --- /dev/null +++ b/sdk/cpp/latest/index.html @@ -0,0 +1,3006 @@ + + + + + + + C++ — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

C++

+
+
+namespace spectacularAI
+
+

Typedefs

+
+
+using VioOutputPtr = std::shared_ptr<const VioOutput>
+
+ +
+
+using FrameSet = std::vector<std::shared_ptr<const Frame>>
+
+ +
+
+using Matrix3d = std::array<std::array<double, 3>, 3>
+

A 3x3 matrix, row major (accessed as m[row][col]). Also note that when the matrix is symmetric (like covariance matrices), there is no difference between row-major and column-major orderings.

+
+ +
+
+using Matrix4d = std::array<std::array<double, 4>, 4>
+

A 4x4 matrix, row major (accessed as m[row][col]). Typically used with homogeneous coordinates.

+
+ +
+
+

Enums

+
+
+enum class TrackingStatus
+

6-DoF pose tracking status

+

Values:

+
+
+enumerator INIT
+

Initial status when tracking starts and is still initializing

+
+ +
+
+enumerator TRACKING
+

Tracking is accurate (but not globally referenced)

+
+ +
+
+enumerator LOST_TRACKING
+

Tracking has failed. Outputs are no longer produced until the system recovers, which will be reported as another tracking state

+
+ +
+ +
+
+enum class ColorFormat
+

Specifies the pixel format of a bitmap

+

Values:

+
+
+enumerator NONE
+
+ +
+
+enumerator GRAY
+
+ +
+
+enumerator RGB
+
+ +
+
+enumerator RGBA
+
+ +
+
+enumerator RGBA_EXTERNAL_OES
+
+ +
+
+enumerator BGR
+
+ +
+
+enumerator BGRA
+
+ +
+
+enumerator GRAY16
+
+ +
+
+enumerator FLOAT32
+
+ +
+
+enumerator ENCODED_H264
+
+ +
+ +
+
+

Functions

+
+
+double getHorizontalUncertainty(const Matrix3d &covariance)
+

Get a scalar horizontal uncertainty value in meters from a covariance matrix.

+

This is an RMS (“1-sigma”) value. In the the general anisotropic case, where the covariance matrix is a rotated version of diag(sx^2, sy^2), it is defined as sqrt(sx^2 + sy^2). This is also equivalent to the Frobenius norm of the 2x2 horizontal part of the covariance matrix. If the horizontal uncertainty is isotropic, this is the same as the 1D standard deviation along the X or Y axis.

+
+ +
+
+double getVerticalUncertainty(const Matrix3d &covariance)
+

Vertical uncertainty (standard deviation / p67) from a covariance matrix

+
+ +
+
+Matrix3d buildCovarianceMatrix(double horizontalSigma, double verticalSigma)
+

Construct a covariance matrix from vertical and horizontal uncertainty components specified as 1-sigma values (i.e., 1D standard deviations). The resulting covariance is isotropic in the XY plane.

+
+ +
+
+double getQuaternionHeading(const Quaternion &q)
+

Get the yaw/heading angle of a local-to-world quaternion in degrees

+
+ +
+
+double getQuaternionPitch(const Quaternion &q)
+

Pitch angle of a local-to-world quaternion in degrees

+
+ +
+
+double getQuaternionRoll(const Quaternion &q)
+

Roll angle of a local-to-world quaternion in degrees

+
+ +
+
+
+struct AutoExposureOutput
+

Auto exposure output structure. Each auto exposure output corresponds to a specific image with timestamp and (optional) tag. Contains exposure information that can be used to implement different auto exposure control algorithms, depending on the device.

+
+

Public Members

+
+
+int deltaBrightness
+

Determines how much brightness should be changed (±0-255)

+
+ +
+
+uint8_t brightness
+

Approx. image brightness (0-255)

+
+ +
+
+uint32_t minExposureTime
+

Minimum exposure time for auto exposure (microseconds)

+
+ +
+
+uint32_t maxExposureTime
+

Maximum exposure time for auto exposure (microseconds)

+
+ +
+
+uint32_t minGain
+

Minimum auto exposure gain (ISO)

+
+ +
+
+uint32_t maxGain
+

Maximum auto exposure gain (ISO)

+
+ +
+
+double timestamp
+

Image timestamp (seconds)

+
+ +
+
+int tag
+

Input frame tag (optional)

+
+ +
+
+ +
+
+struct Bitmap
+

Simple wrapper for a bitmap in RAM (not GPU RAM).

+
+

Public Functions

+
+
+cv::Mat asOpenCV(bool flipColors = true)
+

Create an OpenCV matrix that may refer to this image as a shallow copy. use .clone() to make a deep copy if needed. If flipColors = true (default) automatically converts from RGB to BGR if necessary.

+
+ +
+
+virtual ~Bitmap()
+
+ +
+
+virtual int getWidth() const = 0
+

Image width in pixels

+
+ +
+
+virtual int getHeight() const = 0
+

Image height in pixels

+
+ +
+
+virtual ColorFormat getColorFormat() const = 0
+

Pixel color format / channel configuration

+
+ +
+
+virtual const std::uint8_t *getDataReadOnly() const = 0
+

Data in row major order. Rows must be contiguous. 8-32 bits per pixel, as defined by ColorFormat.

+
+ +
+
+virtual std::uint8_t *getDataReadWrite() = 0
+
+ +
+
+

Public Static Functions

+
+
+static std::unique_ptr<Bitmap> create(int width, int height, ColorFormat colorFormat)
+

Create an bitmap with undefined contents

+
+ +
+
+static std::unique_ptr<Bitmap> createReference(int width, int height, ColorFormat colorFormat, std::uint8_t *data, int rowStride = 0)
+

Create bitmap wrapper for plain data (not copied)

+
+ +
+
+static std::unique_ptr<Bitmap> createReference(cv::Mat &mat)
+

Create a bitmap wrapper from an OpenCV matrix

+
+ +
+
+ +
+
+struct Camera
+
+

Public Functions

+
+
+virtual bool pixelToRay(const PixelCoordinates &pixel, Vector3d &ray) const = 0
+

Convert pixel coordinates to camera coordinates

+
+
Parameters:
+
    +
  • pixel

  • +
  • ray

  • +
+
+
Returns:
+

true if conversion succeeded

+
+
+
+ +
+
+virtual bool rayToPixel(const Vector3d &ray, PixelCoordinates &pixel) const = 0
+

Convert camera coordinates to pixel coordinates

+
+
Parameters:
+
    +
  • ray

  • +
  • pixel

  • +
+
+
Returns:
+

true if conversion succeeded

+
+
+
+ +
+
+virtual Matrix3d getIntrinsicMatrix() const = 0
+

Defined as the rectified intrinsic matrix if there’s distortion.

+
+
Returns:
+

OpenCV convention fx 0 ppx 0 fy ppy 0 0 1

+
+
+
+ +
+
+virtual Matrix4d getProjectionMatrixOpenGL(double nearClip, double farClip) const = 0
+

Project from camera coordinates to normalized device coordinates (NDC).

+
+
Parameters:
+
    +
  • nearClip

  • +
  • farClip

  • +
+
+
+
+ +
+
+virtual ~Camera()
+
+ +
+
+

Public Static Functions

+
+
+static std::unique_ptr<Camera> buildPinhole(const Matrix3d &intrinsicMatrix, int width, int height)
+
+ +
+
+ +
+
+struct CameraPose
+

Pose of camera and conversions between world, camera, and pixel coordinates.

+
+

Public Functions

+
+
+Matrix4d getWorldToCameraMatrix() const
+

Matrix that converts homogeneous world coordinates to homogeneous camera coordinates

+
+ +
+
+Matrix4d getCameraToWorldMatrix() const
+

Matrix that converts homogeneous camera coordinates to homogeneous world coordinates

+
+ +
+
+Vector3d getPosition() const
+

Position in world coordinates

+
+ +
+
+bool pixelToWorld(const PixelCoordinates &pixel, Vector3d &origin, Vector3d &ray) const
+

Convert pixel coordinates to rays in world coordinates.

+
+
Parameters:
+
    +
  • pixel

  • +
  • origin – current camera position in world coordinates

  • +
  • ray – direction of ray from the origin

  • +
+
+
Returns:
+

true if conversion succeeded

+
+
+
+ +
+
+bool worldToPixel(const Vector3d &point, PixelCoordinates &pixel) const
+

Convert world coordinates to pixel coordinates

+
+
Parameters:
+
    +
  • point

  • +
  • pixel

  • +
+
+
Returns:
+

true if conversion succeeded

+
+
+
+ +
+
+

Public Members

+
+
+Pose pose
+

Camera pose

+
+ +
+
+std::shared_ptr<const Camera> camera
+

Camera intrinsic transformations

+
+ +
+
+ +
+
+struct CameraRayTo3DMatch
+

3D ray from camera to 3D point in world coodinates match

+
+

Public Members

+
+
+Vector3d ray
+
+ +
+
+Vector3d point
+
+ +
+
+ +
+
+struct FeaturePoint
+

Sparse 3D feature point observed from a certain camera frame.

+
+

Public Members

+
+
+int64_t id
+

An integer ID to identify same points in different revisions of the point cloud, e.g., the same point observed from a different camera frame.

+
+ +
+
+PixelCoordinates pixelCoordinates
+

Pixel coordinates of the observation in the camera frame. If the pixel coordinates are not available, set to { -1, -1 }.

+

The coordinates are not available in case of trigger outputs that do not correspond to any camera frame.

+
+ +
+
+Vector3d position
+

Global position of the feature point

+
+ +
+
+int status = 0
+

Implementation-defined status/type

+
+ +
+
+ +
+
+struct Frame
+
+

Public Members

+
+
+int index
+
+ +
+
+CameraPose cameraPose
+
+ +
+
+std::shared_ptr<Bitmap> image
+
+ +
+
+ +
+
+struct GnssVioOutput
+
+

Public Functions

+
+
+virtual CameraPose getEnuCameraPose(int cameraId, WgsCoordinates enuOrigin) const = 0
+

Get the global pose of a particular camera. The “world” coordinate system of the camera pose is an East-North-Up system, whose origin is at the given WGS84 coordinates.

+
+
Parameters:
+
    +
  • cameraId – index of the camera whose pose is returned

  • +
  • enuOrigin – the origin of the ENU coordinate system

  • +
+
+
+
+ +
+
+virtual ~GnssVioOutput()
+
+ +
+
+

Public Members

+
+
+WgsCoordinates coordinates
+

Position in global coordinates in WGS84 (mean)

+
+ +
+
+Quaternion orientation
+

Orientation of the device as quaternion representing camera-to-ENU transformation, i.e., a camera-to-world where the world coordinates are defined in an East-North-Up coordinate system. Note that the origin of the ENU coordinates system does not matter in this context.

+

See the helper methods for obtaining the Euler angles.

+
+ +
+
+Vector3d velocity
+

Velocity in ENU coordinates (m/s)

+
+ +
+
+Matrix3d enuPositionCovariance
+

Uncertainty of the estimate as a covariance in an East-North Up (ENU) coordiante system. See the helper methods for obtaining a single vertical and horizontal number.

+
+ +
+
+Matrix3d velocityCovariance
+

Uncertainty of velocity as a 3x3 covariance matrix (in ENU coordinates)

+
+ +
+
+ +
+
+struct PixelCoordinates
+

Coordinates of an image pixel, subpixel accuracy

+
+

Public Members

+
+
+float x
+
+ +
+
+float y
+
+ +
+
+ +
+
+struct Pose
+

Represents the pose (position & orientation) of a device at a given time

+
+

Public Functions

+
+
+Matrix4d asMatrix() const
+

Matrix that converts homogeneous local coordinates to homogeneous world coordinates

+
+ +
+
+

Public Members

+
+
+double time
+

Timestamp in seconds. Monotonically increasing

+
+ +
+
+Vector3d position
+

3D position in a right-handed metric coordinate system where the z-axis points up

+
+ +
+
+Quaternion orientation
+

Orientation quaternion in the same coordinate system as position

+
+ +
+
+

Public Static Functions

+
+
+static Pose fromMatrix(double t, const Matrix4d &localToWorld)
+

Create a pose from a timestamp and local-to-world matrix

+
+ +
+
+ +
+
+struct Quaternion
+

Quaternion representation of a rotation. Hamilton convention.

+
+

Public Members

+
+
+double x
+
+ +
+
+double y
+
+ +
+
+double z
+
+ +
+
+double w
+
+ +
+
+ +
+
+struct Replay
+

Visual-Inertial Odometry API Replay

+
+

Public Functions

+
+
+virtual ~Replay()
+

Destructor. Stops nay worker threads and frees other resources

+
+ +
+
+virtual void startReplay() = 0
+

Starts replaying data in the background until replay is closed or entire session has been played.

+
+ +
+
+virtual void runReplay() = 0
+

Starts replaying data and blocks until replay is closed or entire session has been played.

+
+ +
+
+virtual bool replayOneLine() = 0
+

Plays a single line of data and returns false when there is no more data.

+
+ +
+
+virtual void setPlaybackSpeed(double speed) = 0
+

Sets playbacks speed, 1.0 == real time, 2.0 == fast forward 2x, 0.5 == at half speed, -1.0 == unlimited. Defaults to 1.0.

+
+ +
+
+virtual void setDryRun(bool isDryRun) = 0
+

If enabled, read and parse recorded data, but do not feed it to the algorithm. This is useful for performance measurements: a dry run can be used to estimate the data parsing time which does not happen in the real-time use case.

+
+ +
+
+virtual void setOutputCallback(const std::function<void(VioOutputPtr)> &onOutput) = 0
+

Set output callback, called whenever new output is available.

+

The output remains valid as long as the shared pointer is alive. Can be passed to different threads and the last reference can be destructed in another thread. However, these should not be stored long term to avoid memory leaks.

+

Will be called fromt the same thread where gyroscope samples are added.

+
+ +
+
+virtual void setExtendedOutputCallback(const std::function<void(VioOutputPtr, const FrameSet&)> &onOutput) = 0
+

Experimental!

+
+ +
+
+virtual void close() = 0
+

Do not use this!

+
+ +
+
+

Public Static Functions

+
+
+static Builder builder(const std::string &dataFolder, Vio::Builder vioBuilder)
+

Setup a Replay.

+
+
Parameters:
+
    +
  • dataFolder – Path to folder containing sensor data, and optionally calibration and VIO configuration.

  • +
  • vioBuilder – Vio builder. If Vio sets a calibration path, it will replace any calibration Replay reads from the data folder. If Vio sets a configuration, it will be appended to configuration Replay reads from the data folder, if any.

  • +
+
+
+
+ +
+
+
+struct Builder
+
+

Public Functions

+
+
+Builder setFfmpeg(bool enabled)
+

Optional. Set whether to use ffmpeg to read file or not. Default is true.

+
+ +
+
+std::unique_ptr<Replay> build()
+

Construct Replay implementation with the settings configured in this Builder

+
+ +
+
+

Public Members

+
+
+std::shared_ptr<Data> _data
+
+ +
+
+
+struct Data
+
+

Public Functions

+
+
+virtual ~Data()
+
+ +
+
+ +
+ +
+ +
+
+struct Vector3d
+

Vector in R^3, can represent, e.g., velocity, position or angular velocity

+
+

Public Members

+
+
+double x
+
+ +
+
+double y
+
+ +
+
+double z
+
+ +
+
+ +
+
+struct Vector3f
+

Vector in R^3 (single precision)

+
+

Public Members

+
+
+float x
+
+ +
+
+float y
+
+ +
+
+float z
+
+ +
+
+ +
+
+struct VioOutput
+

Main output structure

+
+

Public Functions

+
+
+virtual CameraPose getCameraPose(int cameraId) const = 0
+

Current pose in camera coordinates

+
+
Parameters:
+

cameraId – 0 for primary, 1 for secondary camera

+
+
+
+ +
+
+virtual std::string asJson() const
+

Returns the output to a JSON string if supported. Otherwise returns an empty string.

+
+ +
+
+virtual ~VioOutput()
+
+ +
+
+

Public Members

+
+
+TrackingStatus status
+

Current tracking status

+
+ +
+
+Pose pose
+

The current pose, with the timestamp in the clock used for input sensor data and camera frames.

+
+ +
+
+Vector3d velocity
+

Velocity vector (xyz) in m/s in the coordinate system used by pose.

+
+ +
+
+Vector3d angularVelocity
+

Angular velocity vector in SI units (rad/s) and the coordinate system used by pose.

+
+ +
+
+Vector3d acceleration
+

Linear acceleration in SI units (m/s^2).

+
+ +
+
+Matrix3d positionCovariance
+

Uncertainty of the current position as a 3x3 covariance matrix

+
+ +
+
+Matrix3d velocityCovariance
+

Uncertainty of velocity as a 3x3 covariance matrix

+
+ +
+
+std::vector<Pose> poseTrail
+

List of poses, where the first element corresponds to current pose and the following (zero or more) values are the recent smoothed historical positions

+
+ +
+
+std::vector<FeaturePoint> pointCloud
+

Point cloud (list of FeaturePoints) that correspond to features currently seen in the primary camera frame.

+
+ +
+
+int tag
+

The input frame tag. This is the value given in addFrame… methods

+
+ +
+
+std::shared_ptr<const GnssVioOutput> globalPose
+

GNSS-VIO output if available, otherwise {} (nullptr)

+
+ +
+
+ +
+
+struct Visualization
+

Experimental visualization API (TODO: improve documentation)

+
+

Public Functions

+
+
+virtual std::unique_ptr<Bitmap> createRenderTarget() = 0
+

If supported, creates a default image with correct dimensions and type supported by Visualization.

+
+ +
+
+virtual void update(VioOutputPtr output) = 0
+

Update the visualization based on VioOutput

+
+ +
+
+virtual void render(Bitmap &bitmap) = 0
+

Render to a given bitmap that is either created with createRenderTarget or otherwise supported (implementation-specific)

+
+ +
+
+virtual bool ready() const = 0
+

Check if the visualization is ready to be rendered

+
+ +
+
+virtual ~Visualization()
+
+ +
+
+ +
+
+struct WgsCoordinates
+

Global coordinates, WGS-84

+
+

Public Members

+
+
+double latitude
+

Latitude in degrees

+
+ +
+
+double longitude
+

Longitude in degrees

+
+ +
+
+double altitude
+

Altitude in meters

+
+ +
+
+ +
+
+namespace daiPlugin
+
+

Typedefs

+
+
+using DaiPipelineAdapter = DaiPipeline
+
+ +
+
+using DaiDeviceAdapter = DaiDevice
+
+ +
+
+using DaiImgFrameAdapter = std::shared_ptr<dai::ImgFrame>
+
+ +
+
+using DaiDataInputQueueAdapter = std::shared_ptr<dai::DataInputQueue>
+
+ +
+
+using DaiDataOutputQueueAdapter = std::shared_ptr<dai::DataOutputQueue>
+
+ +
+
+using DaiIMUDataAdapter = std::shared_ptr<dai::IMUData>
+
+ +
+
+using DaiTrackedFeaturesAdapter = std::shared_ptr<dai::TrackedFeatures>
+
+ +
+
+using DaiCalibrationHandlerAdapter = dai::CalibrationHandler
+
+ +
+
+using DaiCameraControlAdapter = dai::CameraControl
+
+ +
+
+using DaiInputResolutionAdapter = SPECTACULAR_AI_MAYBE_PYTHON_TYPE(dai::MonoCameraProperties::SensorResolution)
+
+ +
+
+using DaiColorInputResolutionAdapter = SPECTACULAR_AI_MAYBE_PYTHON_TYPE(dai::ColorCameraProperties::SensorResolution)
+
+ +
+
+

Functions

+
+
+inline std::string getJsonStringOrEmptyValueSafe(const nlohmann::json &json, const char *key)
+
+ +
+
+inline int getDaiUsbSpeedValue(dai::UsbSpeed usbSpeed)
+
+ +
+
+inline std::string getDaiUsbSpeedName(dai::UsbSpeed usbSpeed)
+
+ +
+
+inline const std::uint8_t *getDaiImageRawData(dai::ImgFrame &img)
+
+ +
+
+inline std::size_t getDaiImageRawDataSize(dai::ImgFrame &img)
+
+ +
+
+inline double getDaiImuTimestampDevice(const dai::IMUReport &imuReport)
+
+ +
+
+inline double getDaiImageTimestampDevice(const dai::ImgFrame &img)
+
+ +
+
+inline double getDaiFeaturesTimestampDevice(const dai::TrackedFeatures &features)
+
+ +
+
+inline double getDaiImageExposureTime(const dai::ImgFrame &img)
+
+ +
+
+inline std::string getDaiImageType(const dai::ImgFrame &img)
+
+ +
+
+
+struct Configuration
+

Plugin and Spectacular AI VIO SDK configuration variables.

+
+

Public Members

+
+
+bool useStereo = true
+
+ +
+
+bool useSlam = false
+
+ +
+
+bool useFeatureTracker = true
+
+ +
+
+bool fastVio = false
+
+ +
+
+bool forceRectified = false
+
+ +
+
+bool forceUnrectified = false
+
+ +
+
+bool useColor = false
+
+ +
+
+bool useColorStereoCameras = false
+
+ +
+
+bool useEncodedVideo = false
+
+ +
+
+bool useGrayDepth = false
+
+ +
+
+std::string mapSavePath = ""
+
+ +
+
+std::string mapLoadPath = ""
+
+ +
+
+bool useVioAutoExposure = false
+
+ +
+
+std::string aprilTagPath = ""
+
+ +
+
+bool meshRectification = false
+
+ +
+
+bool depthScaleCorrection = false
+
+ +
+
+bool extendedDisparity = false
+
+ +
+
+bool fastImu = false
+
+ +
+
+bool useReaderThread = true
+
+ +
+
+unsigned imuFrequencyHz = 0
+
+ +
+
+unsigned accFrequencyHz = 500
+
+ +
+
+unsigned gyroFrequencyHz = 400
+
+ +
+
+bool ensureSufficientUsbSpeed = true
+
+ +
+
+bool silenceUsbWarnings = false
+
+ +
+
+unsigned monoQueueSize = 8
+
+ +
+
+unsigned depthQueueSize = 20
+
+ +
+
+unsigned imuQueueSize = 50
+
+ +
+
+int keyframeCandidateEveryNthFrame = 6
+
+ +
+
+std::string inputResolution = "400p"
+
+ +
+
+std::string recordingFolder = ""
+
+ +
+
+bool recordingOnly = false
+
+ +
+
+bool disableCameras = false
+
+ +
+
+std::shared_ptr<Vector3d> imuToGnss
+
+ +
+
+std::map<std::string, std::string> internalParameters
+

Internal SDK parameter overrides (key-value pairs). Not safe for unsanitized user input.

+
+ +
+
+ +
+
+struct Hooks
+

When the plugin pulls something from the Depth AI API, those intermediary outputs can also be accessed through these hooks. Note that an input is not used by the plugin with the given Configuration, the corresponding hook is never triggered.

+

Depending on the configuration, the hooks may not be invoked from the same thread in which they were created.

+
+

Public Members

+
+
+std::function<void(std::shared_ptr<dai::IMUData>)> imu
+
+ +
+
+std::function<void(std::shared_ptr<dai::ImgFrame>)> monoPrimary
+
+ +
+
+std::function<void(std::shared_ptr<dai::ImgFrame>)> monoSecondary
+
+ +
+
+std::function<void(std::shared_ptr<dai::ImgFrame>)> depth
+
+ +
+
+std::function<void(std::shared_ptr<dai::ImgFrame>)> color
+
+ +
+
+std::function<void(std::shared_ptr<dai::TrackedFeatures>)> trackedFeatures
+
+ +
+
+ +
+
+struct Pipeline
+

Spectacular AI pipeline for Depth AI API. It is recommended to build this using the constructors provided, but it is also possible to replace or configure all parts manually.

+
+

Public Functions

+
+
+Pipeline(DaiPipeline daiPipeline)
+

Create a pipeline with the default configuration.

+
+ +
+
+Pipeline(DaiPipeline daiPipeline, const Configuration &config)
+

Create a pipeline with custom configuration

+
+ +
+
+Pipeline(DaiPipeline daiPipeline, const Configuration &config, std::function<void(mapping::MapperOutputPtr)> onMapperOutput)
+

Create a pipeline with custom configuration with Mapping API enabled

+
+ +
+
+std::unique_ptr<Session> startSession(DaiDevice device)
+

Start a new VIO session on the given Depth AI device.

+
+ +
+
+

Public Members

+
+
+const Configuration configuration
+

Spectacular AI VIO SDK configuration

+
+ +
+
+IMUNode imu
+
+ +
+
+MonoCameraNode monoLeft
+
+ +
+
+MonoCameraNode monoRight
+
+ +
+
+MonoCameraNode monoPrimary
+
+ +
+
+MonoCameraNode monoSecondary
+
+ +
+
+ColorCameraNode colorLeft
+
+ +
+
+ColorCameraNode colorRight
+
+ +
+
+ColorCameraNode colorPrimary
+
+ +
+
+ColorCameraNode colorSecondary
+
+ +
+
+ColorCameraNode color
+
+ +
+
+ImageManipNode colorImageManip
+
+ +
+
+StereoDepthNode stereo
+
+ +
+
+FeatureTrackerNode featureTracker
+
+ +
+
+ScriptNode scriptPrimary
+
+ +
+
+ScriptNode scriptSecondary
+
+ +
+
+VideoEncoderNode videoEncoderPrimary
+
+ +
+
+VideoEncoderNode videoEncoderSecondary
+
+ +
+
+XLinkInNode xinControl
+
+ +
+
+XLinkOutNode xoutImu
+
+ +
+
+XLinkOutNode xoutLeft
+
+ +
+
+XLinkOutNode xoutRight
+
+ +
+
+XLinkOutNode xoutScriptPrimary
+
+ +
+
+XLinkOutNode xoutScriptSecondary
+
+ +
+
+XLinkOutNode xoutPrimary
+
+ +
+
+XLinkOutNode xoutSecondary
+
+ +
+
+XLinkOutNode xoutFeatures
+
+ +
+
+XLinkOutNode xoutDepth
+
+ +
+
+Matrix4d imuToCameraLeft
+
+ +
+
+std::string spectacularAIConfigurationYAML
+
+ +
+
+Hooks hooks
+
+ +
+
+const std::function<void(mapping::MapperOutputPtr)> onMapperOutput
+
+ +
+
+ +
+
+struct PipelineExtensions
+
+

Public Members

+
+
+PipelineRAE rae
+
+ +
+
+ +
+
+struct PipelineRAE
+
+

Public Members

+
+
+RAECameraNode front
+
+ +
+
+RAECameraNode back
+
+ +
+
+ +
+
+struct RAECameraNode
+
+

Public Members

+
+
+ColorCameraNode colorLeft
+
+ +
+
+ColorCameraNode colorRight
+
+ +
+
+StereoDepthNode stereoDepth
+
+ +
+
+FeatureTrackerNode featureTracker
+
+ +
+
+ScriptNode scriptLeft
+
+ +
+
+ScriptNode scriptRight
+
+ +
+
+XLinkInNode xinControl
+
+ +
+
+XLinkOutNode xoutLeft
+
+ +
+
+XLinkOutNode xoutRight
+
+ +
+
+XLinkOutNode xoutScriptLeft
+
+ +
+
+XLinkOutNode xoutScriptRight
+
+ +
+
+XLinkOutNode xoutFeatures
+
+ +
+
+XLinkOutNode xoutDepth
+
+ +
+
+ +
+
+class RawImgFrameTypeConverter
+
+

Public Static Functions

+
+
+static inline std::string getStringType(const dai::RawImgFrame::Type &type)
+
+ +
+
+ +
+
+struct Session
+

VIO session. Should be created via Pipeline::startSession.

+
+

Public Functions

+
+
+virtual bool hasOutput() const = 0
+

Check if new output is available

+
+ +
+
+virtual std::shared_ptr<const VioOutput> getOutput() = 0
+

Get output from the queue, if available. If not, returns {}

+
+ +
+
+virtual std::shared_ptr<const VioOutput> waitForOutput() = 0
+

Wait until new output is available and then return it.

+
+ +
+
+virtual bool work() = 0
+

DEPRECATED, do not use.

+
+ +
+
+virtual void addTrigger(double t, int tag) = 0
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+
Parameters:
+
    +
  • t – timestamp, monotonic float seconds

  • +
  • tag – additonal tag to indentify this particular trigger event. The default outputs corresponding to input camera frames have a tag 0.

  • +
+
+
+
+ +
+
+virtual void addAbsolutePose(const Pose &pose, const Matrix3d &positionCovariance, double orientationVariance = -1) = 0
+

Add external pose information. VIO will correct its estimates to match the pose.

+
+
Parameters:
+
    +
  • pose – pose of the output coordinates in the external world coordinates

  • +
  • positionCovariance – position uncertainty as a covariance matrix in the external world coordinates

  • +
  • orientationVariance – optional orientation uncertainty as variance of angle

  • +
+
+
+
+ +
+
+virtual void addGnss(double timestamp, const WgsCoordinates &coordinates, const Matrix3d &enuPositionCovariance) = 0
+

Add GNSS input (for GNSS-VIO fusion)

+
+
Parameters:
+
    +
  • timestamp – timestamp of the GNSS fix

  • +
  • coordinates – position mean

  • +
  • enuPositionCovariance – position uncertainty as a covariance matrix in an East-North-Up (ENU) coordinate system

  • +
+
+
+
+ +
+
+virtual CameraPose getRgbCameraPose(const VioOutput &vioOut) const = 0
+
+ +
+
+virtual ~Session()
+
+ +
+
+ +
+
+namespace internal
+
+

Functions

+
+
+Resolution getSupportedVideoResolution(const Configuration &config)
+
+ +
+
+MonoResolution convertInputResolution(const std::string &reso)
+
+ +
+
+ColorInputResolution convertColorInputResolution(const std::string &reso)
+
+ +
+
+ColorResolution selectNearbyColorResolution(int monoHeight, const std::string &colorInputResolution)
+
+ +
+
+std::string getYAMLConfiguration(const Configuration &config)
+
+ +
+
+CameraCalibration getCalibration(const Configuration &config, const Matrix4d &imuToCamera, DaiDeviceAdapter device)
+
+ +
+
+Matrix4d matrixMul(const Matrix4d &a, const Matrix4d &b)
+
+ +
+
+bool isDeviceRAE(const Configuration &config)
+
+ +
+
+bool useRaeBackCameras(const Configuration &config)
+
+ +
+
+

Variables

+
+
+const char *STREAM_TAG
+
+ +
+
+
+struct CameraCalibration
+
+

Public Members

+
+
+std::string json
+
+ +
+
+Matrix4d colorToPrimary
+
+ +
+
+spectacularAI::Matrix3d colorIntrinsics
+
+ +
+
+std::vector<float> colorCameraDistortionCoeffs
+
+ +
+
+Resolution stereoResolution
+
+ +
+
+ColorResolution colorResolution
+
+ +
+
+double depthScale
+
+ +
+
+ +
+
+struct ColorInputResolution
+
+

Public Members

+
+
+Resolution resolution
+
+ +
+
+DaiColorInputResolutionAdapter daiReso
+
+ +
+
+ +
+
+struct ColorResolution
+
+

Public Members

+
+
+ColorInputResolution input
+
+ +
+
+Resolution preview
+
+ +
+
+ +
+
+struct MonoResolution
+
+

Public Members

+
+
+Resolution resolution
+
+ +
+
+DaiInputResolutionAdapter daiReso
+
+ +
+
+ +
+
+struct Resolution
+
+

Public Members

+
+
+int width
+
+ +
+
+int height
+
+ +
+
+ +
+ +
+ +
+
+namespace k4aPlugin
+
+

Functions

+
+
+std::string getCalibration(const k4a_calibration_t &calibration, const Configuration &config)
+
+ +
+
+k4a_device_configuration_t getK4AConfiguration(const std::string &colorResolution = "720p", int depthMode = K4A_DEPTH_MODE_WFOV_2X2BINNED, int frameRate = 30, bool useStereo = true)
+
+ +
+
+std::string getYAMLConfiguration(const Configuration &config)
+
+ +
+
+
+struct Configuration
+

Plugin and Spectacular AI VIO SDK configuration variables.

+
+

Public Members

+
+
+bool useStereo = true
+
+ +
+
+bool useSlam = true
+
+ +
+
+bool fastVio = false
+
+ +
+
+bool alignedDepth = false
+
+ +
+
+bool distortionEnabled = true
+
+ +
+
+std::string recordingFolder = ""
+
+ +
+
+bool recordingOnly = false
+
+ +
+
+bool postProcessFinalMap = true
+
+ +
+
+std::string aprilTagPath = ""
+
+ +
+
+k4a_device_configuration_t k4aConfig = getK4AConfiguration()
+
+ +
+
+std::map<std::string, std::string> internalParameters
+

Internal SDK parameter overrides (key-value pairs). Not safe for unsanitized user input.

+
+ +
+
+ +
+
+class Pipeline
+

The Pipeline object stores information about the device and also sets the default configuration, e.g., enables and configures necessary Azure Kinect streams and sensors. The actual VIO reading is started with startSession.

+
+

Public Functions

+
+
+Pipeline()
+

Create a pipeline with the default configuration.

+
+ +
+
+Pipeline(const Configuration &config)
+

Create a pipeline with custom configuration

+
+ +
+
+Pipeline(const Configuration &config, std::function<void(mapping::MapperOutputPtr)> onMapperOutput)
+

Create a pipeline with custom configuration with Mapping API enabled

+
+ +
+
+std::unique_ptr<Session> startSession()
+

Start a new VIO session on the background. Internally starts the k4a device and creates threads for camera and imu.

+
+ +
+
+k4a_device_t getDeviceHandle()
+

Get an handle to the Azure Kinect device, can be used to adjust device settings. Note that adjusting some settings, e.g. device FPS can affect VIO performance.

+
+ +
+
+~Pipeline()
+
+ +
+
+ +
+
+struct Session
+
+

Public Functions

+
+
+virtual bool hasOutput() const = 0
+

Check if new output is available.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> getOutput() = 0
+

Get output from the queue, if available. If not returns {}.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> waitForOutput() = 0
+

Wait until new output is available and then return it.

+
+ +
+
+virtual void ignoreOutputs(bool ignore) = 0
+

Set whether new outputs are added to the queue. Useful when the user is not interested in VIO outputs: e.g. when using mapping API or recording.

+
+
Parameters:
+

ignore – If true, new outputs are not added to the queue. Otherwise, the user has make sure the outputs are pulled from the queue.

+
+
+
+ +
+
+virtual void addTrigger(double t, int tag) = 0
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+
Parameters:
+
    +
  • t – timestamp, monotonic float seconds

  • +
  • tag – additonal tag to indentify this particular trigger event. The default outputs corresponding to input camera frames have a tag 0.

  • +
+
+
+
+ +
+
+virtual ~Session()
+
+ +
+
+ +
+ +
+
+namespace mapping
+
+

Typedefs

+
+
+using MapperOutputPtr = std::shared_ptr<const MapperOutput>
+
+ +
+
+
+struct Frame
+
+

Public Members

+
+
+CameraPose cameraPose
+

Camera pose information

+
+ +
+
+std::shared_ptr<const Bitmap> image
+

Image data from the camera, might not always exist

+
+ +
+
+double depthScale
+

Set when image type is depth. Depth image values are multiplied by this number to to make their unit meters (e.g., if depth is integer mm, this will be set to 1.0 / 1000)

+
+ +
+
+std::vector<FeaturePoint> sparseFeatures
+

2D-to-3D sparse feature matches in this frame. Empty if not available for this frame type, e.g., depth frames.

+
+ +
+
+ +
+
+struct FrameSet
+
+

Public Functions

+
+
+virtual std::shared_ptr<Frame> getAlignedDepthFrame(const std::shared_ptr<Frame> target) const = 0
+

Compute the depth map at the camera pose of the given frame (for example rgbFrame). If depthFrame is already aligned to the the given camera, returns a pointer to depthFrame.

+
+ +
+
+virtual std::shared_ptr<Frame> getUndistortedFrame(const std::shared_ptr<Frame> distortedFrame) const = 0
+

Returns an undistorted version of the given frame (i.e., with camera model = undistorted pinhole). If the given frame is not distorted, returns a pointer to distortedFrame.

+
+ +
+
+inline virtual ~FrameSet()
+
+ +
+
+

Public Members

+
+
+std::shared_ptr<Frame> primaryFrame
+

Primary camera frame used for tracking

+
+ +
+
+std::shared_ptr<Frame> secondaryFrame
+

Secondary camera frame used for tracking when using stereo cameras

+
+ +
+
+std::shared_ptr<Frame> rgbFrame
+

RGB color frame if such exists. When using RGB-D this is the same as primaryFrame

+
+ +
+
+std::shared_ptr<Frame> depthFrame
+

Depth frame

+
+ +
+
+ +
+
+struct KeyFrame
+
+

Public Members

+
+
+int64_t id
+

Unique ID for this keyframe. Monotonically increasing.

+
+ +
+
+std::shared_ptr<FrameSet> frameSet
+

Set of frames available for this keyframe.

+
+ +
+
+std::shared_ptr<PointCloud> pointCloud
+

(Optional) Dense point cloud for this keyframe in primary frame coordinates.

+
+ +
+
+ +
+
+struct Map
+
+

Public Members

+
+
+std::map<int64_t, std::shared_ptr<const KeyFrame>> keyFrames
+

ID to KeyFrame map. The shared_ptr objects are always non-empty. May be changed to a similar associative container in the future, do not rely on this being std::map.

+
+ +
+
+std::map<int64_t, spectacularAI::Vector3d> mapPoints
+

List of sparse 3D map points (a.k.a. landmarks). These are observed from one or more KeyFrames, where the corresponding 2D pixel coordinates are stored in the sparseFeatures fields.

+
+ +
+
+ +
+
+struct MapperOutput
+
+

Public Members

+
+
+std::shared_ptr<const Map> map
+

Up to date map. Always non-empty

+
+ +
+
+std::vector<int64_t> updatedKeyFrames
+

List of keyframes that were modified or deleted. Ordered from oldest to newest

+
+ +
+
+std::vector<int64_t> updatedMapPoints
+

List of sparse map points that were modified, added or deleted.

+
+ +
+
+std::shared_ptr<Mesh> mesh
+

(Optional) dense reconstruction of the map.

+
+ +
+
+bool finalMap
+

True for the last update before program exit

+
+ +
+
+ +
+
+struct Mesh
+

A generic 3D mesh with a few optional properties (e.g., normals, colors, textures) Flexible enough to support both vertex-specific and face specific normals / colors.

+
+

Public Types

+
+
+using IndexFace = std::array<std::uint32_t, 3>
+
+ +
+
+

Public Functions

+
+
+virtual bool empty() const = 0
+

Returns true if the mesh has 0 vertices (and triangles).

+
+ +
+
+virtual bool hasNormals() const = 0
+

Returns true if the mesh has optional normal data.

+
+ +
+
+virtual std::size_t vertexCount() const = 0
+

Returns the number of vertices in the mesh.

+
+ +
+
+virtual std::size_t normalCount() const = 0
+

Returns the number of normals in the mesh.

+
+ +
+
+virtual std::size_t faceCount() const = 0
+

Returns the number of triangles in the mesh.

+
+ +
+
+virtual Triangle getTriangle(std::size_t faceIndex) const = 0
+

Helper function to get a single triangle, yields an error if index >= size().

+
+ +
+
+virtual const Vector3f *getPositionData() = 0
+

Efficient way to get all vertex positions, returns nullptr if the mesh is empty.

+
+ +
+
+virtual const Vector3f *getNormalData() = 0
+

Efficient way to get all normals, returns nullptr if the mesh is empty or hasNormals() is false.

+
+ +
+
+virtual const IndexFace *getFaceVertices() = 0
+

Efficient way to get all face vertice indices, returns nullptr if the mesh is empty.

+
+ +
+
+virtual const IndexFace *getFaceNormals() = 0
+

Efficient way to get all face normal indices, returns nullptr if the mesh is empty or hasNormals() is false.

+
+ +
+
+virtual void serializeToObj(const std::string &filename) const = 0
+

Save mesh as .obj file to a path specified by filename.

+
+
Parameters:
+

filename – For instance, path/to/output/mesh.obj.

+
+
+
+ +
+
+inline virtual ~Mesh()
+
+ +
+
+
+struct Triangle
+
+

Public Members

+
+
+std::array<Vector3f, 3> vertices
+
+ +
+
+std::array<Vector3f, 3> normals
+
+ +
+
+ +
+ +
+
+struct PointCloud
+

Container for point clouds, where the points may have optional properties such as colors and normals.

+
+

Public Functions

+
+
+virtual std::size_t size() const = 0
+

Returns the number of points in the point cloud.

+
+ +
+
+virtual bool empty() const = 0
+

Returns true if the point cloud has 0 points.

+
+ +
+
+virtual bool hasNormals() const = 0
+

Returns true if the point cloud has optional normal data.

+
+ +
+
+virtual bool hasColors() const = 0
+

Returns true if the the point cloud has optional color data.

+
+ +
+
+virtual Vector3f getPosition(std::size_t index) const = 0
+

Helper function to get a single point position vector, yields an error if index >= size().

+
+ +
+
+virtual Vector3f getNormal(std::size_t index) const = 0
+

Helper function to get a single point normal vector, yields an error if hasNormals() is false or index >= size().

+
+ +
+
+virtual std::array<std::uint8_t, 3> getRGB24(std::size_t index) const = 0
+

Helper function to get a single point color array, yields an error if hasColors() is false or index >= size().

+
+ +
+
+virtual const Vector3f *getPositionData() = 0
+

Efficient way to get all point positions, returns nullptr if the point cloud is empty.

+
+ +
+
+virtual const Vector3f *getNormalData() = 0
+

Efficient way to get all point normals, returns nullptr if the point cloud is empty or hasNormals() is false.

+
+ +
+
+virtual const std::uint8_t *getRGB24Data() = 0
+

Efficient way to get all point colors, returns nullptr if the point cloud is empty or hasColors() is false.

+
+ +
+
+inline virtual ~PointCloud()
+
+ +
+
+ +
+ +
+
+namespace orbbecPlugin
+
+
+struct Configuration
+

Plugin and Spectacular AI SDK configuration variables.

+
+

Public Functions

+
+
+Configuration()
+
+ +
+
+Configuration(ob::Pipeline &obPipeline)
+
+ +
+
+

Public Members

+
+
+bool useSlam = true
+
+ +
+
+bool fastVio = false
+
+ +
+
+bool alignedDepth = false
+
+ +
+
+std::string recordingFolder = ""
+
+ +
+
+bool recordingOnly = false
+
+ +
+
+bool postProcessFinalMap = true
+
+ +
+
+std::string aprilTagPath = ""
+
+ +
+
+std::pair<int, int> rgbResolution = std::make_pair(1280, 720)
+
+ +
+
+std::pair<int, int> depthResolution = std::make_pair(512, 512)
+
+ +
+
+int cameraFps = 30
+
+ +
+
+OBAccelSampleRate accFrequencyHz = OBAccelSampleRate::OB_SAMPLE_RATE_1_KHZ
+
+ +
+
+OBGyroSampleRate gyroFrequencyHz = OBGyroSampleRate::OB_SAMPLE_RATE_1_KHZ
+
+ +
+
+OBAccelFullScaleRange accRange = OBAccelFullScaleRange::OB_ACCEL_FS_4g
+
+ +
+
+OBGyroFullScaleRange gyroRange = OBGyroFullScaleRange::OB_GYRO_FS_1000dps
+
+ +
+
+std::map<std::string, std::string> internalParameters
+

Internal SDK parameter overrides (key-value pairs). Not safe for unsanitized user input.

+
+ +
+
+ +
+
+class Pipeline
+

The Pipeline object stores information about the device and also sets the default configuration, e.g., enables and configures necessary Orbbec streams and sensors. The actual VIO reading is started with startSession.

+
+

Public Functions

+
+
+Pipeline(ob::Pipeline &obPipeline)
+

Create a pipeline with the default configuration.

+
+ +
+
+Pipeline(ob::Pipeline &obPipeline, const Configuration &config)
+

Create a pipeline with custom configuration

+
+ +
+
+Pipeline(ob::Pipeline &obPipeline, const Configuration &config, std::function<void(mapping::MapperOutputPtr)> onMapperOutput)
+

Create a pipeline with custom configuration with Mapping API enabled

+
+ +
+
+std::unique_ptr<Session> startSession()
+

Start a new VIO session on the background.

+
+ +
+
+~Pipeline()
+
+ +
+
+ +
+
+struct Session
+
+

Public Functions

+
+
+virtual bool hasOutput() const = 0
+

Check if new output is available.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> getOutput() = 0
+

Get output from the queue, if available. If not returns {}.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> waitForOutput() = 0
+

Wait until new output is available and then return it.

+
+ +
+
+virtual void ignoreOutputs(bool ignore) = 0
+

Set whether new outputs are added to the queue. Useful when the user is not interested in VIO outputs: e.g. when using mapping API or recording.

+
+
Parameters:
+

ignore – If true, new outputs are not added to the queue. Otherwise, the user has make sure the outputs are pulled from the queue.

+
+
+
+ +
+
+virtual void addTrigger(double t, int tag) = 0
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+
Parameters:
+
    +
  • t – timestamp, monotonic float seconds

  • +
  • tag – additonal tag to indentify this particular trigger event. The default outputs corresponding to input camera frames have a tag 0.

  • +
+
+
+
+ +
+
+virtual ~Session()
+
+ +
+
+ +
+
+namespace internal
+
+

Functions

+
+
+std::string getCalibration(const OBCameraParam &calibration, const Configuration &config, const std::string &deviceName)
+
+ +
+
+std::string getYAMLConfiguration(const Configuration &config, const std::string &deviceName)
+
+ +
+
+ +
+ +
+
+namespace rsPlugin
+
+
+struct Configuration
+

Plugin and Spectacular AI VIO SDK configuration variables.

+
+

Public Members

+
+
+bool useStereo = true
+
+ +
+
+bool useRgb = true
+
+ +
+
+bool fastVio = false
+
+ +
+
+bool alignedDepth = false
+
+ +
+
+bool useSlam = true
+
+ +
+
+bool useIcp = false
+
+ +
+
+std::string inputResolution = "400p"
+
+ +
+
+std::string mapSavePath = ""
+
+ +
+
+std::string mapLoadPath = ""
+
+ +
+
+std::string aprilTagPath = ""
+
+ +
+
+std::string recordingFolder = ""
+
+ +
+
+bool recordingOnly = false
+
+ +
+
+bool postProcessFinalMap = true
+
+ +
+
+std::map<std::string, std::string> internalParameters
+

Internal SDK parameter overrides (key-value pairs). Not safe for unsanitized user input.

+
+ +
+
+ +
+
+class Pipeline
+

The Pipeline object stores information about the device and also sets the default configuration, e.g., enables and configures necessary RealSense streams and sensors. The actual VIO reading is started with startSession. It is possible to change the RealSense configuration between calling configureX and startSession, but the VIO tracking is not guaranteed to be compatible with such customized configurations.

+
+

Public Functions

+
+
+Pipeline()
+

Create a pipeline with the default configuration.

+
+ +
+
+Pipeline(const Configuration &config)
+

Create a pipeline with custom configuration

+
+ +
+
+void configureDevice(rs2::device &device)
+

Configure the RealSense device for VIO

+
+ +
+
+void configureStreams(rs2::config &config)
+

Set up the RealSense config for VIO

+
+ +
+
+void setMapperCallback(const std::function<void(spectacularAI::mapping::MapperOutputPtr)> &onMapperOutput)
+

Set a mapping callback

+
+ +
+
+std::unique_ptr<Session> startSession(rs2::config &config)
+

Start a new VIO session on the background. Internally creates an rs2::pipeline and starts it.

+
+ +
+
+std::unique_ptr<Session> startSession(rs2::config &config, const std::function<void(const rs2::frame &frame)> &callback)
+

Start a new VIO session on the background. Also invoke the given callback on each rs2::frame. Performing heavy computations directly in the callback is not recommended.

+
+ +
+
+~Pipeline()
+
+ +
+
+ +
+
+struct Session
+

VIO session.

+
+

Public Functions

+
+
+virtual bool hasOutput() const = 0
+

Check if new output is available

+
+ +
+
+virtual std::shared_ptr<const VioOutput> getOutput() = 0
+

Get output from the queue, if available. If not, returns {}

+
+ +
+
+virtual std::shared_ptr<const VioOutput> waitForOutput() = 0
+

Wait until new output is available and then return it. Do not use with useReaderThread=false.

+
+ +
+
+virtual void addTrigger(double t, int tag) = 0
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+
Parameters:
+
    +
  • t – timestamp, monotonic float seconds

  • +
  • tag – additonal tag to indentify this particular trigger event. The default outputs corresponding to input camera frames have a tag 0.

  • +
+
+
+
+ +
+
+virtual ~Session()
+
+ +
+
+ +
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/index.html b/sdk/index.html new file mode 100644 index 0000000..e6f2d16 --- /dev/null +++ b/sdk/index.html @@ -0,0 +1,141 @@ + + + + + + + Spectacular AI SDK documentation — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Spectacular AI SDK documentation

+

Spectacular AI SDK fuses data from cameras and IMU sensors (accelerometer and gyroscope) and outputs an accurate 6-degree-of-freedom pose of a device. This is called Visual-Inertial SLAM (VISLAM) and it can be used in, among other cases, tracking (autonomous) robots and vehicles, as well as Augmented, Mixed and Virtual Reality.

+

The SDK also includes a Mapping API that can be used to access the full SLAM map for both real-time and offline 3D reconstruction use cases.

+
+

SDK architecture

+

The main parts of the SDK are documented on their own pages:

+
    +
  • Core SDK: device-indepencent APIs shared between all devices supported by the SDK.

  • +
  • Wrappers: for devices supported out-of-the-box.

  • +
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/mapping.html b/sdk/mapping.html new file mode 100644 index 0000000..84406db --- /dev/null +++ b/sdk/mapping.html @@ -0,0 +1,787 @@ + + + + + + + Mapping API — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Mapping API

+

The Mapping API gives access to fast real-time 3D reconstructions. +It can also be used together with Replay API for high-quality +post-processed results, which can also be given as inputs +to other tools such as Nerfstudio.

+
+
+
+class spectacularAI.mapping.Frame
+

A single camera frame with a pose and bitmap image

+
+
+property cameraPose
+

Camera pose information

+
+ +
+
+property depthScale
+

Scale of depth image, for non-depth images this is -1.0

+
+ +
+
+property image
+

Image data if it exists

+
+ +
+
+property sparseFeatures
+

2D-to-3D sparse feature matches in this frame. Empty if not available for this frame type, e.g., depth frames.

+
+ +
+ +
+
+class spectacularAI.mapping.FrameSet
+

A set of camera frames from multiple cameras at a moment of time.

+
+
+property depthFrame
+

The depth camera

+
+ +
+
+getAlignedDepthFrame(self: spectacularAI.mapping.FrameSet, arg0: spectacularAI::mapping::Frame) spectacularAI::mapping::Frame
+

Compute the depth map at the camera pose of the input frame (for example rgbFrame). If depthFrame is already aligned to the the input camera, returns depthFrame.

+
+ +
+
+getUndistortedFrame(self: spectacularAI.mapping.FrameSet, arg0: spectacularAI::mapping::Frame) spectacularAI::mapping::Frame
+

Returns an undistorted version of the input frame (i.e., with camera model = undistorted pinhole). If the input frame is not distorted, returns the input frame.

+
+ +
+
+property primaryFrame
+

The primary camera

+
+ +
+
+property rgbFrame
+

The RGB camera

+
+ +
+
+property secondaryFrame
+

The secondary camera

+
+ +
+ +
+
+class spectacularAI.mapping.KeyFrame
+

A SLAM KeyFrame

+
+
+property frameSet
+

Cameras for this key frame

+
+ +
+
+property id
+

Unique identifier for this key frame

+
+ +
+
+property pointCloud
+

Point cloud for this key frame in primary frame coordinates

+
+ +
+ +
+
+class spectacularAI.mapping.Map
+

A map generated by SLAM

+
+
+property keyFrames
+

All key frames belonging to this map. Contains the entire map from start to this moment.

+
+ +
+
+property mapPoints
+

All sparse map points currently in the map.

+
+ +
+ +
+
+class spectacularAI.mapping.MapperOutput
+

Main mapping output structure

+
+
+property finalMap
+

A boolean that indicates the map is now final and won’t be updated any longer. This is true the when the programm exits.

+
+ +
+
+property map
+

The current map

+
+ +
+
+property mesh
+

(Optional) dense reconstruction of the map.

+
+ +
+
+property updatedKeyFrames
+

Key Frames that were updated (created, modified or deleted) since the last callback

+
+ +
+
+property updatedMapPoints
+

Map points that were updated (created, modified or deleted) since the last callback

+
+ +
+ +
+
+class spectacularAI.mapping.Mesh
+

A generic 3D mesh with a few optional properties (e.g., normals).

+
+
+empty(self: spectacularAI.mapping.Mesh) bool
+

True when mesh has no vertices

+
+ +
+
+faceCount(self: spectacularAI.mapping.Mesh) int
+

Number of faces (L)

+
+ +
+
+getFaceNormals(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.uint32]
+

A numpy array of size Lx3 that contains all face normals indices if they exist

+
+ +
+
+getFaceVertices(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.uint32]
+

A numpy array of size Lx3 that contains all face vertex indices.

+
+ +
+
+getNormalData(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.float32]
+

A numpy array of size Mx3 that contains all vertex normals if they exist

+
+ +
+
+getPositionData(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.float32]
+

A numpy array of size Nx3 that contains all vertex positions

+
+ +
+
+hasNormals(self: spectacularAI.mapping.Mesh) bool
+

True when mesh has normal data

+
+ +
+
+normalCount(self: spectacularAI.mapping.Mesh) int
+

Number of normals (M)

+
+ +
+
+vertexCount(self: spectacularAI.mapping.Mesh) int
+

Number of vertices (N)

+
+ +
+ +
+
+class spectacularAI.mapping.PointCloud
+

Point cloud with position, and optional point normal and color data

+
+
+empty(self: spectacularAI.mapping.PointCloud) bool
+

True when point cloud has no points

+
+ +
+
+getNormal(self: spectacularAI.mapping.PointCloud, arg0: int) spectacularAI.Vector3f
+

Get normal of a single point. Check first that normal data exists for this point cloud

+
+ +
+
+getNormalData(self: spectacularAI.mapping.PointCloud) numpy.ndarray[numpy.float32]
+

A numpy array of size Nx3 that contains all point normals if they exist

+
+ +
+
+getPosition(self: spectacularAI.mapping.PointCloud, arg0: int) spectacularAI.Vector3f
+

Get position of a single point

+
+ +
+
+getPositionData(self: spectacularAI.mapping.PointCloud) numpy.ndarray[numpy.float32]
+

A numpy array of size Nx3 that contains all point positions

+
+ +
+
+getRGB24(self: spectacularAI.mapping.PointCloud, arg0: int) List[int[3]]
+

Get color of a single point. Check first that color data exists for this point cloud

+
+ +
+
+getRGB24Data(self: spectacularAI.mapping.PointCloud) numpy.ndarray[numpy.uint8]
+

A numpy array of size Nx3 that contains all point colors if they exist

+
+ +
+
+hasColors(self: spectacularAI.mapping.PointCloud) bool
+

True when point cloud has color data

+
+ +
+
+hasNormals(self: spectacularAI.mapping.PointCloud) bool
+

True when point cloud has normal data

+
+ +
+
+size(self: spectacularAI.mapping.PointCloud) int
+

Number of points

+
+ +
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/python/latest/_static/alabaster.css b/sdk/python/latest/_static/alabaster.css deleted file mode 100644 index 523fa4f..0000000 --- a/sdk/python/latest/_static/alabaster.css +++ /dev/null @@ -1,703 +0,0 @@ -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: Georgia, serif; - font-size: 17px; - background-color: #fff; - color: #000; - margin: 0; - padding: 0; -} - - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; - font-size: 14px; - line-height: 1.5; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #fff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.body > .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: rgba(255,255,255,0.0); - text-align: right; -} - -div.footer a { - color: rgba(255,255,255,0.0); -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Georgia, serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: Georgia, serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -div.sphinxsidebar .badge { - border-bottom: none; -} - -div.sphinxsidebar .badge:hover { - border-bottom: none; -} - -/* To address an issue with donation coming after search */ -div.sphinxsidebar h3.donation { - margin-top: 10px; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Georgia, serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: Georgia, serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: #fff; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin-left: 0; - margin-right: 0; - margin-top: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - - -/* relbar */ - -.related { - line-height: 30px; - width: 100%; - font-size: 0.9rem; -} - -.related.top { - border-bottom: 1px solid #EEE; - margin-bottom: 20px; -} - -.related.bottom { - border-top: 1px solid #EEE; -} - -.related ul { - padding: 0; - margin: 0; - list-style: none; -} - -.related li { - display: inline; -} - -nav#rellinks { - float: right; -} - -nav#rellinks li+li:before { - content: "|"; -} - -nav#breadcrumbs li+li:before { - content: "\00BB"; -} - -/* Hide certain items when printing */ -@media print { - div.related { - display: none; - } -} \ No newline at end of file diff --git a/sdk/python/latest/_static/custom.css b/sdk/python/latest/_static/custom.css deleted file mode 100644 index 12aeb46..0000000 --- a/sdk/python/latest/_static/custom.css +++ /dev/null @@ -1,8 +0,0 @@ -body { - margin-top: 5%; -} - -.class { - margin-top: 1em; - margin-bottom: 2em; -} diff --git a/sdk/python/latest/index.html b/sdk/python/latest/index.html index 353a883..ca633da 100644 --- a/sdk/python/latest/index.html +++ b/sdk/python/latest/index.html @@ -1,263 +1,168 @@ + + + - - - - - - Spectacular AI SDK for OAK-D — spectacularAI documentation - - - - - - - - - - - - - + + Python — spectacularAI documentation + + + + - + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Python

-
-class spectacularAI.CameraPose
-

Represents the pose (position & orientation) and other parameters of a particular camera.

+
+class spectacularAI.VioOutput
+

Main output structure

-
-property camera
-

Camera: camera parameteres

-
- -
-
-getCameraToWorldMatrix(self: spectacularAI.CameraPose) numpy.ndarray
-

4x4 homogeneous camera-to-world matrix

+
+property angularVelocity
+

angular velocity vector in SI units (Vector3d)

-
-getPosition(self: spectacularAI.CameraPose) spectacularAI.Vector3d
-

Vector3d position of the camera

+
+asJson(self: spectacularAI.VioOutput) str
+

a JSON representation of this object

-
-getWorldToCameraMatrix(self: spectacularAI.CameraPose) numpy.ndarray
-

4x4 homogeneous world-to-camera matrix

-
- -
-
-property pose
-

latest Pose

-
- -
- -
-
-class spectacularAI.ColorFormat(self: spectacularAI.ColorFormat, value: int)
-

Members:

-

NONE

-

GRAY

-

RGB

-

RGBA

-

GRAY16

-
-
-GRAY = <ColorFormat.GRAY: 1>
-
- -
-
-GRAY16 = <ColorFormat.GRAY16: 7>
-
- -
-
-NONE = <ColorFormat.NONE: 0>
-
- -
-
-RGB = <ColorFormat.RGB: 2>
-
- -
-
-RGBA = <ColorFormat.RGBA: 3>
-
- -
-
-property name
-
- -
-
-property value
-
- +
+getCameraPose(self: spectacularAI.VioOutput, arg0: int) spectacularAI.CameraPose
+

CameraPose corresponding to a camera whose index is given as the parameter. Index 0 corresponds to the primary camera and index 1 the secondary camera.

-
-
-class spectacularAI.Frame
-

A camera frame with a pose

-
-property cameraPose
-

CameraPose corresponding this camera

+
+property globalPose
+

Global pose, only returned if GNSS information is provided via Session.addGnss(…)

-
-property image
-

Bitmap that will contain bitmap image if it’s available

+
+property pose
+

latest Pose

-
-property index
-

Camera index

-
- +
+property poseTrail
+

trail of smoothed historical poses (list of Pose objects)

-
-
-class spectacularAI.GnssVioOutput
-

GNSS-VIO output

-
-property coordinates
-

current WgsCoordinates

+
+property positionCovariance
+

position uncertainty, 3x3 covariance matrix

-
-property enuPositionCovariance
-

enu position uncertainty, 3x3 covariance matrix

-
- -
-
-getEnuCameraPose(self: spectacularAI.GnssVioOutput, arg0: int, arg1: spectacularAI.WgsCoordinates) spectacularAI::CameraPose
-

Get the global pose of a particular camera. The “world” coordinate system of the camera pose is an East-North-Up system, whose origin is at the given WGS84 coordinates.

+
+property status
+

current TrackingStatus

-
-property orientation
-

current Quaternion

+
+property tag
+

input tag from addTrigger. Set to 0 for other outputs.

-
-property velocity
-

current Vector3d

+
+property velocity
+

current velocity (Vector3d)

-
-property velocityCovariance
+
+property velocityCovariance

velocity uncertainty, 3x3 covariance matrix

@@ -265,154 +170,97 @@

Spectacular AI SDK for OAK-D
-class spectacularAI.Pose
-

Represents the pose (position & orientation) of a device at a given time. This typically corresponds the pose of the IMU (configurable). See CameraPose for exact poses of the cameras.

+class spectacularAI.Pose +

Represents the pose (position & orientation) of a device at a given time. This typically corresponds the pose of the IMU (configurable). See CameraPose for exact poses of the cameras.

-asMatrix(self: spectacularAI.Pose) numpy.ndarray
+asMatrix(self: spectacularAI.Pose) numpy.ndarray

4x4 matrix that converts homogeneous local coordinates to homogeneous world coordinates

-fromMatrix(self: float, arg0: List[List[float[4]][4]]) spectacularAI.Pose
+fromMatrix(self: float, arg0: List[List[float[4]][4]]) spectacularAI.Pose

Create a pose from a timestamp and 4x4 local-to-world matrix

-property orientation
-

Quaternion orientation of the IMU / camera, local-to-world

+property orientation +

Quaternion orientation of the IMU / camera, local-to-world

-property position
-

Vector3d position of the IMU / camera

+property position +

Vector3d position of the IMU / camera

-property time
+property time

float timestamp in seconds, synchronized with device monotonic time (not host)

-
-class spectacularAI.Quaternion
-

Quaternion representation of a rotation. Hamilton convention. Each property is a float.

-
-
-property w
-
- -
-
-property x
-
- -
-
-property y
-
- -
-
-property z
-
- -
- -
-
-class spectacularAI.Replay(*args, **kwargs)
-

Replay previously recorded data

-

Overloaded function.

-
    -
  1. __init__(self: spectacularAI.Replay, folder: str, *, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None] = None, configuration: dict = {}) -> None

  2. -
-

Build a replay from a given folder containing the dataset

-
    -
  1. __init__(self: spectacularAI.Replay, folder: str, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None], *, configuration: dict = {}) -> None

  2. -
-

Build a replay from a given folder containing the dataset with a mapping callback

+
+class spectacularAI.Camera
+

Represents the intrinsic parameters of a particular camera. If the input image is distorted, the camera and projection matrices correspond to the undistorted / rectified image.

-
-close(self: spectacularAI.Replay) None
-

Closes replay.

+
+getIntrinsicMatrix(self: spectacularAI.Camera) numpy.ndarray
+

3x3 intrinsic camera matrix (OpenCV convention, undistorted).

-
-runReplay(self: spectacularAI.Replay) None
-

Starts replaying the data and blocks until close() is called or the entire session has played out

+
+getProjectionMatrixOpenGL(self: spectacularAI.Camera, arg0: float, arg1: float) numpy.ndarray
+

4x4 projection matrix for OpenGL (undistorted)

-
-
-setExtendedOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput, List[spectacularAI.Frame]], None]) None
-

Set a callback that’s called for new output

-
-
-setOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput], None]) None
-

Set a callback that’s called for new output

+
+
+class spectacularAI.CameraPose
+

Represents the pose (position & orientation) and other parameters of a particular camera.

+
+
+property camera
+

Camera: camera parameteres

-
-setPlaybackSpeed(self: spectacularAI.Replay, arg0: float) None
-

Sets playbacks speed, 1.0 == real time, 2.0 == fast forward 2x, 0.5 == at half speed, -1.0 == unlimited. Defaults to 1.0.

+
+getCameraToWorldMatrix(self: spectacularAI.CameraPose) numpy.ndarray
+

4x4 homogeneous camera-to-world matrix

-
-startReplay(self: spectacularAI.Replay) None
-

Starts replaying the data in the background until close() is called or entire session has been played.

+
+getPosition(self: spectacularAI.CameraPose) spectacularAI.Vector3d
+

Vector3d position of the camera

+
+
+getWorldToCameraMatrix(self: spectacularAI.CameraPose) numpy.ndarray
+

4x4 homogeneous world-to-camera matrix

-
-
-class spectacularAI.TrackingStatus(self: spectacularAI.TrackingStatus, value: int)
-

Members:

-

INIT

-

TRACKING

-

LOST_TRACKING

-
-
-INIT = <TrackingStatus.INIT: 0>
-
- -
-
-LOST_TRACKING = <TrackingStatus.LOST_TRACKING: 2>
-
- -
-
-TRACKING = <TrackingStatus.TRACKING: 1>
-
- -
-
-property name
-
-
-
-property value
-
+
+property pose
+

latest Pose

+
-class spectacularAI.Vector3d(*args, **kwargs)
+class spectacularAI.Vector3d(*args, **kwargs)

Vector in R^3. Can represent, e.g., velocity, position or angular velocity. Each property is a float.

Overloaded function.

    @@ -421,24 +269,24 @@

    Spectacular AI SDK for OAK-D
    -property x
    +property x

-property y
+property y
-property z
+property z
-class spectacularAI.Vector3f(*args, **kwargs)
+class spectacularAI.Vector3f(*args, **kwargs)

Vector in R^3. Single precision.

Overloaded function.

    @@ -447,818 +295,326 @@

    Spectacular AI SDK for OAK-D
    -property x
    +property x

-property y
+property y
-property z
+property z
-
-class spectacularAI.VioOutput
-

Main output structure

+
+class spectacularAI.Quaternion
+

Quaternion representation of a rotation. Hamilton convention. Each property is a float.

-
-property angularVelocity
-

angular velocity vector in SI units (Vector3d)

-
- -
-
-asJson(self: spectacularAI.VioOutput) str
-

a JSON representation of this object

-
- -
-
-getCameraPose(self: spectacularAI.VioOutput, arg0: int) spectacularAI.CameraPose
-

CameraPose corresponding to a camera whose index is given as the parameter. Index 0 corresponds to the primary camera and index 1 the secondary camera.

-
+
+property w
+
-
-property globalPose
-

Global pose, only returned if GNSS information is provided via Session.addGnss(…)

-
+
+property x
+
-
-property pose
-

latest Pose

-
+
+property y
+
-
-property poseTrail
-

trail of smoothed historical poses (list of Pose objects)

-
- -
-
-property positionCovariance
-

position uncertainty, 3x3 covariance matrix

-
- -
-
-property status
-

current TrackingStatus

-
- -
-
-property tag
-

input tag from addTrigger. Set to 0 for other outputs.

-
- -
-
-property velocity
-

current velocity (Vector3d)

-
- -
-
-property velocityCovariance
-

velocity uncertainty, 3x3 covariance matrix

-
- - - -
-
-class spectacularAI.WgsCoordinates(self: spectacularAI.WgsCoordinates)
-

Represents the pose (position & orientation) of a device at a given time.

-
-
-property altitude
-
- -
-
-property latitude
-
- -
-
-property longitude
+
+property z
-
-
-

Depth AI plugin class reference

-
-class spectacularAI.depthai.Configuration(*args, **kwargs)
-

Plugin and Spectacular AI VIO SDK configuration variables.

-

Overloaded function.

-
    -
  1. __init__(self: spectacularAI.depthai.Configuration) -> None

  2. -
  3. __init__(self: spectacularAI.depthai.Configuration, **kwargs) -> None

  4. -
-
-
-property accFrequencyHz
+
+class spectacularAI.TrackingStatus(self: spectacularAI.TrackingStatus, value: int)
+

Members:

+

INIT

+

TRACKING

+

LOST_TRACKING

+
+
+INIT = <TrackingStatus.INIT: 0>
-
-
-property aprilTagPath
-

Path to .json file with AprilTag information. AprilTag detection is enabled when not empty. For the file format see: https://github.com/SpectacularAI/docs/blob/main/pdf/april_tag_instructions.pdf. Note: sets useSlam=true

-
- -
-
-asDict(self: object) dict
-

Dictionary representation of this configuration.

-
- -
-
-property depthQueueSize
+
+
+LOST_TRACKING = <TrackingStatus.LOST_TRACKING: 2>
-
-
-property depthScaleCorrection
-

DEPRECATED

-
- -
-
-property disableCameras
-

Disables cameras + VIO, only useful for recording.

-
- -
-
-property ensureSufficientUsbSpeed
+
+
+TRACKING = <TrackingStatus.TRACKING: 1>
-
-property extendedDisparity
-

Use DepthAI extended disparity mode

-
+
+property name
+
-
-property fastImu
+
+property value
-
-
-property fastVio
-

Use more light-weight VIO settings

-
-
-property forceRectified
-
- -
-
-property forceUnrectified
+
+
+class spectacularAI.ColorFormat(self: spectacularAI.ColorFormat, value: int)
+

Members:

+

NONE

+

GRAY

+

RGB

+

RGBA

+

GRAY16

+
+
+GRAY = <ColorFormat.GRAY: 1>
-
-
-property gyroFrequencyHz
+
+
+GRAY16 = <ColorFormat.GRAY16: 7>
-
-
-property imuFrequencyHz
-

DEPRECATED, use accFrequencyHz and gyroFrequencyHz instead

-
- -
-
-property imuQueueSize
+
+
+NONE = <ColorFormat.NONE: 0>
-
-
-property imuToGnss
+
+
+RGB = <ColorFormat.RGB: 2>
-
-
-property inputResolution
+
+
+RGBA = <ColorFormat.RGBA: 3>
-
-property internalParameters
-

Internal SDK parameters (key-value pairs converted to string-string). Not safe for unsanitized user input

-
- -
-
-property keyframeCandidateEveryNthFrame
-

When useSlam = True, useFeatureTracker = True and keyframeCandidateEveryNthFrame > 0, a mono gray image is captured every N frames for SLAM.

-
- -
-
-property mapLoadPath
-

Load existing SLAM map (.bin format required)

-
- -
-
-property mapSavePath
-

Output filename. Supported outputs types: .ply, .csv and .pcd (point cloud), and .bin (Spectacular AI SLAM map).

-
- -
-
-property meshRectification
-

DEPRECATED

-
- -
-
-property monoQueueSize
+
+property name
-
-property recordingFolder
+
+property value
-
-
-property recordingOnly
-

Disables VIO and only records session when recordingFolder is set.

-
-
-property silenceUsbWarnings
-
- +
+
+class spectacularAI.Bitmap
+

Represents a grayscale or RGB bitmap

-
-update(self: object, **kwargs) None
-

Update the contents of this object with kwargs corresponding to a subset of the member names

-
- -
-
-property useColor
-

Use DepthAI color camera for tracking. Only supported for OAK-D series 2.

-
- -
-
-property useFeatureTracker
-

Use Movidius VPU-accelelerated feature tracking

-
- -
-
-property useGrayDepth
-

Use one gray frame and depth for tracking

-
- -
-
-property useReaderThread
-

DEPRECATED

+
+getColorFormat(self: spectacularAI.Bitmap) spectacularAI.ColorFormat
+

ColorFormat

-
-
-property useSlam
-

Enable the SLAM module

+
+
+getHeight(self: spectacularAI.Bitmap) int
+

int bitmap height

-
-
-property useStereo
-

Use stereo vision. Set to false for monocular mode (i.e., using one camera only).

+
+
+getWidth(self: spectacularAI.Bitmap) int
+

int bitmap width

-
-
-property useVioAutoExposure
-

Enable SpectacularAI auto exposure which optimizes exposure parameters for VIO performance (BETA)

+
+
+toArray(self: spectacularAI.Bitmap) numpy.ndarray
+

Returns array representation of the bitmap

-
-class spectacularAI.depthai.Hooks
-

DepthAI data hooks

-
-
-property color
-

DepthAI color images

-
- -
-
-property depth
-

DepthAI depth images

-
- -
-
-property imu
-

DepthAI IMU data

-
- +
+class spectacularAI.Frame
+

A camera frame with a pose

-
-property monoPrimary
-

DepthAI primary monocular camera images

+
+property cameraPose
+

CameraPose corresponding this camera

-
-property monoSecondary
-

DepthAI secondary monocular camera images

+
+property image
+

Bitmap that will contain bitmap image if it’s available

-
-property trackedFeatures
-

DepthAI tracked features

+
+property index
+

Camera index

-
-class spectacularAI.depthai.Pipeline(*args, **kwargs)
-

Spectacular AI pipeline for Depth AI API. It is recommended to build this using the constructors provided, but it is also possible to replace or configure all parts manually. The class properties correspond to Depth AI objects created by the Spetacular AI SDK and it is possbile to share them, e.g., by creating new output links from them, but modifying their settings (e.g., changing camera FPS), might affect VIO performance.

+
+class spectacularAI.Replay(*args, **kwargs)
+

Replay previously recorded data

Overloaded function.

    -
  1. __init__(self: spectacularAI.depthai.Pipeline, arg0: object) -> None

  2. -
  3. __init__(self: spectacularAI.depthai.Pipeline, arg0: object, arg1: spectacularAI.depthai.Configuration) -> None

  4. -
-

Initialize with a depthai.Pipeline and custom Configuration

-
    -
  1. __init__(self: spectacularAI.depthai.Pipeline, arg0: object, arg1: spectacularAI.depthai.Configuration, arg2: Callable[[spectacularAI.mapping.MapperOutput], None]) -> None

  2. +
  3. __init__(self: spectacularAI.Replay, folder: str, *, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None] = None, configuration: dict = {}) -> None

-

Initialize with a depthai.Pipeline and custom Configuration with a mapper callback function

-
    -
  1. __init__(self: spectacularAI.depthai.Pipeline, arg0: object, **kwargs) -> None

  2. +

    Build a replay from a given folder containing the dataset

    +
      +
    1. __init__(self: spectacularAI.Replay, folder: str, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None], *, configuration: dict = {}) -> None

    -

    Initialize with a depthai.Pipeline and custom kwargs (see Configuration)

    -
    -
    -property color
    -

    DepthAI color camera node. Requires OAK-D Series 2 and useColor=true (see Configuration).

    -
    - -
    -
    -property featureTracker
    -

    DepthAI feature tracker node

    -
    - -
    -
    -property hooks
    -

    Hooks to access raw data received from DepthAI such as IMU, tracked features and depth frames

    -
    - -
    -
    -property imu
    -

    DepthAI IMU node

    -
    - -
    -
    -property imuToCameraLeft
    -

    IMU to left camera extrinsic matrix

    -
    - -
    -
    -property monoLeft
    -

    DepthAI left monocular camera node

    -
    - -
    -
    -property monoPrimary
    -

    DepthAI primary monocular camera node

    -
    - -
    -
    -property monoRight
    -

    DepthAI right monocular camera node

    -
    - -
    -
    -property monoSecondary
    -

    DepthAI secondary monocular camera node

    -
    - -
    -
    -property spectacularAIConfigurationYAML
    -

    SDK internal override parameters (do not touch)

    -
    - -
    -
    -startSession(self: spectacularAI.depthai.Pipeline, arg0: object) spectacularAI::daiPlugin::Session
    -

    Start a VIO session. The argument must be a depthai.Device

    -
    - -
    -
    -property stereo
    -

    DepthAI stereo depth node

    -
    - -
    -
    -property xoutDepth
    -
    - -
    -
    -property xoutFeatures
    -
    - -
    -
    -property xoutImu
    -
    - -
    -
    -property xoutLeft
    -
    - -
    -
    -property xoutRight
    -
    - -
- -
-
-class spectacularAI.depthai.Session
-

VIO session. Should be created via spectacularAI.depthai.Pipeline.startSession()

-
-
-addAbsolutePose(self: spectacularAI.depthai.Session, arg0: spectacularAI.Pose, arg1: List[List[float[3]][3]], arg2: float) None
-

Add external pose information.VIO will correct its estimates to match the pose.

-
- -
-
-addGnss(self: spectacularAI.depthai.Session, arg0: float, arg1: spectacularAI.WgsCoordinates, arg2: List[List[float[3]][3]]) None
-

Add GNSS input (for GNSS-VIO fusion)

-
- -
-
-addTrigger(self: spectacularAI.depthai.Session, arg0: float, arg1: int) None
-

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

-
- +

Build a replay from a given folder containing the dataset with a mapping callback

-
-close(self: spectacularAI.depthai.Session) None
-

Close VIO session and free resources. Also consider using the with statement

+
+close(self: spectacularAI.Replay) None
+

Closes replay.

-
-getOutput(self: spectacularAI.depthai.Session) spectacularAI.VioOutput
-

Removes the first unread output from an internal queue and returns it

+
+runReplay(self: spectacularAI.Replay) None
+

Starts replaying the data and blocks until close() is called or the entire session has played out

-
-getRgbCameraPose(self: spectacularAI.depthai.Session, arg0: spectacularAI.VioOutput) spectacularAI.CameraPose
-

Get the CameraPose corresponding to the OAK RGB camera at a certain VioOutput.

+
+setExtendedOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput, List[spectacularAI.Frame]], None]) None
+

Set a callback that’s called for new output

-
-hasOutput(self: spectacularAI.depthai.Session) bool
-

Check if there is new output available

+
+setOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput], None]) None
+

Set a callback that’s called for new output

-
-waitForOutput(self: spectacularAI.depthai.Session) spectacularAI.VioOutput
-

Waits until there is new output available and returns it

+
+setPlaybackSpeed(self: spectacularAI.Replay, arg0: float) None
+

Sets playbacks speed, 1.0 == real time, 2.0 == fast forward 2x, 0.5 == at half speed, -1.0 == unlimited. Defaults to 1.0.

-
-work(self: spectacularAI.depthai.Session) bool
-

DEPRECATED

-
- -
- -
-
-

Mapping API reference

-
-
-class spectacularAI.mapping.Frame
-

A single camera frame with a pose and bitmap image

-
-
-property cameraPose
-

Camera pose information

-
- -
-
-property depthScale
-

Scale of depth image, for non-depth images this is -1.0

-
- -
-
-property image
-

Image data if it exists

+
+startReplay(self: spectacularAI.Replay) None
+

Starts replaying the data in the background until close() is called or entire session has been played.

-
-class spectacularAI.mapping.FrameSet
-

A set of camera frames from multiple cameras at a moment of time.

-
-
-property depthFrame
-

The depth camera

-
- -
-
-getAlignedDepthFrame(self: spectacularAI.mapping.FrameSet, arg0: spectacularAI::mapping::Frame) spectacularAI::mapping::Frame
-

Compute the depth map at the camera pose of the input frame (for example rgbFrame). If depthFrame is already aligned to the the input camera, returns depthFrame.

-
- -
-
-getUndistortedFrame(self: spectacularAI.mapping.FrameSet, arg0: spectacularAI::mapping::Frame) spectacularAI::mapping::Frame
-

Returns an undistorted version of the input frame (i.e., with camera model = undistorted pinhole). If the input frame is not distorted, returns the input frame.

-
- +
+class spectacularAI.WgsCoordinates(self: spectacularAI.WgsCoordinates)
+

Represents the pose (position & orientation) of a device at a given time.

-
-property primaryFrame
-

The primary camera

-
+
+property altitude
+
-
-property rgbFrame
-

The RGB camera

-
+
+property latitude
+
-
-property secondaryFrame
-

The secondary camera

-
+
+property longitude
+
-
-class spectacularAI.mapping.KeyFrame
-

A SLAM KeyFrame

-
-
-property frameSet
-

Cameras for this key frame

-
- -
-
-property id
-

Unique identifier for this key frame

-
- +
+class spectacularAI.GnssVioOutput
+

GNSS-VIO output

-
-property pointCloud
-

Point cloud for this key frame in primary frame coordinates

-
- +
+property coordinates
+

current WgsCoordinates

-
-
-class spectacularAI.mapping.Map
-

A map generated by SLAM

-
-property keyFrames
-

All key frames belonging to this map. Contains the entire map from start to this moment.

-
- +
+property enuPositionCovariance
+

enu position uncertainty, 3x3 covariance matrix

-
-
-class spectacularAI.mapping.MapperOutput
-

Main mapping output structure

-
-
-property finalMap
-

A boolean that indicates the map is now final and won’t be updated any longer. This is true the when the programm exits.

+
+
+getEnuCameraPose(self: spectacularAI.GnssVioOutput, arg0: int, arg1: spectacularAI.WgsCoordinates) spectacularAI::CameraPose
+

Get the global pose of a particular camera. The “world” coordinate system of the camera pose is an East-North-Up system, whose origin is at the given WGS84 coordinates.

-
-property map
-

The current map

+
+property orientation
+

current Quaternion

-
-property mesh
-

(Optional) dense reconstruction of the map.

+
+property velocity
+

current Vector3d

-
-property updatedKeyFrames
-

Key Frames that were updated (created, modified or deleted) since the last callback

-
- -
- -
-
-class spectacularAI.mapping.Mesh
-

A generic 3D mesh with a few optional properties (e.g., normals).

-
-
-empty(self: spectacularAI.mapping.Mesh) bool
-

True when mesh has no vertices

-
- -
-
-faceCount(self: spectacularAI.mapping.Mesh) int
-

Number of faces (L)

-
- -
-
-getFaceNormals(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.uint32]
-

A numpy array of size Lx3 that contains all face normals indices if they exist

-
- -
-
-getFaceVertices(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.uint32]
-

A numpy array of size Lx3 that contains all face vertex indices.

-
- -
-
-getNormalData(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.float32]
-

A numpy array of size Mx3 that contains all vertex normals if they exist

-
- -
-
-getPositionData(self: spectacularAI.mapping.Mesh) numpy.ndarray[numpy.float32]
-

A numpy array of size Nx3 that contains all vertex positions

-
- -
-
-hasNormals(self: spectacularAI.mapping.Mesh) bool
-

True when mesh has normal data

-
- -
-
-normalCount(self: spectacularAI.mapping.Mesh) int
-

Number of normals (M)

-
- -
-
-vertexCount(self: spectacularAI.mapping.Mesh) int
-

Number of vertices (N)

-
- -
- -
-
-class spectacularAI.mapping.PointCloud
-

Point cloud with position, and optional point normal and color data

-
-
-empty(self: spectacularAI.mapping.PointCloud) bool
-

True when point cloud has no points

-
- -
-
-getNormal(self: spectacularAI.mapping.PointCloud, arg0: int) spectacularAI.Vector3f
-

Get normal of a single point. Check first that normal data exists for this point cloud

-
- -
-
-getNormalData(self: spectacularAI.mapping.PointCloud) numpy.ndarray[numpy.float32]
-

A numpy array of size Nx3 that contains all point normals if they exist

-
- -
-
-getPosition(self: spectacularAI.mapping.PointCloud, arg0: int) spectacularAI.Vector3f
-

Get position of a single point

-
- -
-
-getPositionData(self: spectacularAI.mapping.PointCloud) numpy.ndarray[numpy.float32]
-

A numpy array of size Nx3 that contains all point positions

-
- -
-
-getRGB24(self: spectacularAI.mapping.PointCloud, arg0: int) List[int[3]]
-

Get color of a single point. Check first that color data exists for this point cloud

-
- -
-
-getRGB24Data(self: spectacularAI.mapping.PointCloud) numpy.ndarray[numpy.uint8]
-

A numpy array of size Nx3 that contains all point colors if they exist

-
- -
-
-hasColors(self: spectacularAI.mapping.PointCloud) bool
-

True when point cloud has color data

-
- -
-
-hasNormals(self: spectacularAI.mapping.PointCloud) bool
-

True when point cloud has normal data

-
- -
-
-size(self: spectacularAI.mapping.PointCloud) int
-

Number of points

+
+property velocityCovariance
+

velocity uncertainty, 3x3 covariance matrix

-
+
- - -
- - + + + + + + \ No newline at end of file diff --git a/sdk/python/v1.26/index.html b/sdk/python/v1.26/index.html new file mode 100644 index 0000000..ca633da --- /dev/null +++ b/sdk/python/v1.26/index.html @@ -0,0 +1,620 @@ + + + + + + + Python — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Python

+
+
+class spectacularAI.VioOutput
+

Main output structure

+
+
+property angularVelocity
+

angular velocity vector in SI units (Vector3d)

+
+ +
+
+asJson(self: spectacularAI.VioOutput) str
+

a JSON representation of this object

+
+ +
+
+getCameraPose(self: spectacularAI.VioOutput, arg0: int) spectacularAI.CameraPose
+

CameraPose corresponding to a camera whose index is given as the parameter. Index 0 corresponds to the primary camera and index 1 the secondary camera.

+
+ +
+
+property globalPose
+

Global pose, only returned if GNSS information is provided via Session.addGnss(…)

+
+ +
+
+property pose
+

latest Pose

+
+ +
+
+property poseTrail
+

trail of smoothed historical poses (list of Pose objects)

+
+ +
+
+property positionCovariance
+

position uncertainty, 3x3 covariance matrix

+
+ +
+
+property status
+

current TrackingStatus

+
+ +
+
+property tag
+

input tag from addTrigger. Set to 0 for other outputs.

+
+ +
+
+property velocity
+

current velocity (Vector3d)

+
+ +
+
+property velocityCovariance
+

velocity uncertainty, 3x3 covariance matrix

+
+ +
+ +
+
+class spectacularAI.Pose
+

Represents the pose (position & orientation) of a device at a given time. This typically corresponds the pose of the IMU (configurable). See CameraPose for exact poses of the cameras.

+
+
+asMatrix(self: spectacularAI.Pose) numpy.ndarray
+

4x4 matrix that converts homogeneous local coordinates to homogeneous world coordinates

+
+ +
+
+fromMatrix(self: float, arg0: List[List[float[4]][4]]) spectacularAI.Pose
+

Create a pose from a timestamp and 4x4 local-to-world matrix

+
+ +
+
+property orientation
+

Quaternion orientation of the IMU / camera, local-to-world

+
+ +
+
+property position
+

Vector3d position of the IMU / camera

+
+ +
+
+property time
+

float timestamp in seconds, synchronized with device monotonic time (not host)

+
+ +
+ +
+
+class spectacularAI.Camera
+

Represents the intrinsic parameters of a particular camera. If the input image is distorted, the camera and projection matrices correspond to the undistorted / rectified image.

+
+
+getIntrinsicMatrix(self: spectacularAI.Camera) numpy.ndarray
+

3x3 intrinsic camera matrix (OpenCV convention, undistorted).

+
+ +
+
+getProjectionMatrixOpenGL(self: spectacularAI.Camera, arg0: float, arg1: float) numpy.ndarray
+

4x4 projection matrix for OpenGL (undistorted)

+
+ +
+ +
+
+class spectacularAI.CameraPose
+

Represents the pose (position & orientation) and other parameters of a particular camera.

+
+
+property camera
+

Camera: camera parameteres

+
+ +
+
+getCameraToWorldMatrix(self: spectacularAI.CameraPose) numpy.ndarray
+

4x4 homogeneous camera-to-world matrix

+
+ +
+
+getPosition(self: spectacularAI.CameraPose) spectacularAI.Vector3d
+

Vector3d position of the camera

+
+ +
+
+getWorldToCameraMatrix(self: spectacularAI.CameraPose) numpy.ndarray
+

4x4 homogeneous world-to-camera matrix

+
+ +
+
+property pose
+

latest Pose

+
+ +
+ +
+
+class spectacularAI.Vector3d(*args, **kwargs)
+

Vector in R^3. Can represent, e.g., velocity, position or angular velocity. Each property is a float.

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.Vector3d) -> None

  2. +
  3. __init__(self: spectacularAI.Vector3d, arg0: float, arg1: float, arg2: float) -> None

  4. +
+
+
+property x
+
+ +
+
+property y
+
+ +
+
+property z
+
+ +
+ +
+
+class spectacularAI.Vector3f(*args, **kwargs)
+

Vector in R^3. Single precision.

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.Vector3f) -> None

  2. +
  3. __init__(self: spectacularAI.Vector3f, arg0: float, arg1: float, arg2: float) -> None

  4. +
+
+
+property x
+
+ +
+
+property y
+
+ +
+
+property z
+
+ +
+ +
+
+class spectacularAI.Quaternion
+

Quaternion representation of a rotation. Hamilton convention. Each property is a float.

+
+
+property w
+
+ +
+
+property x
+
+ +
+
+property y
+
+ +
+
+property z
+
+ +
+ +
+
+class spectacularAI.TrackingStatus(self: spectacularAI.TrackingStatus, value: int)
+

Members:

+

INIT

+

TRACKING

+

LOST_TRACKING

+
+
+INIT = <TrackingStatus.INIT: 0>
+
+ +
+
+LOST_TRACKING = <TrackingStatus.LOST_TRACKING: 2>
+
+ +
+
+TRACKING = <TrackingStatus.TRACKING: 1>
+
+ +
+
+property name
+
+ +
+
+property value
+
+ +
+ +
+
+class spectacularAI.ColorFormat(self: spectacularAI.ColorFormat, value: int)
+

Members:

+

NONE

+

GRAY

+

RGB

+

RGBA

+

GRAY16

+
+
+GRAY = <ColorFormat.GRAY: 1>
+
+ +
+
+GRAY16 = <ColorFormat.GRAY16: 7>
+
+ +
+
+NONE = <ColorFormat.NONE: 0>
+
+ +
+
+RGB = <ColorFormat.RGB: 2>
+
+ +
+
+RGBA = <ColorFormat.RGBA: 3>
+
+ +
+
+property name
+
+ +
+
+property value
+
+ +
+ +
+
+class spectacularAI.Bitmap
+

Represents a grayscale or RGB bitmap

+
+
+getColorFormat(self: spectacularAI.Bitmap) spectacularAI.ColorFormat
+

ColorFormat

+
+ +
+
+getHeight(self: spectacularAI.Bitmap) int
+

int bitmap height

+
+ +
+
+getWidth(self: spectacularAI.Bitmap) int
+

int bitmap width

+
+ +
+
+toArray(self: spectacularAI.Bitmap) numpy.ndarray
+

Returns array representation of the bitmap

+
+ +
+ +
+
+class spectacularAI.Frame
+

A camera frame with a pose

+
+
+property cameraPose
+

CameraPose corresponding this camera

+
+ +
+
+property image
+

Bitmap that will contain bitmap image if it’s available

+
+ +
+
+property index
+

Camera index

+
+ +
+ +
+
+class spectacularAI.Replay(*args, **kwargs)
+

Replay previously recorded data

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.Replay, folder: str, *, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None] = None, configuration: dict = {}) -> None

  2. +
+

Build a replay from a given folder containing the dataset

+
    +
  1. __init__(self: spectacularAI.Replay, folder: str, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None], *, configuration: dict = {}) -> None

  2. +
+

Build a replay from a given folder containing the dataset with a mapping callback

+
+
+close(self: spectacularAI.Replay) None
+

Closes replay.

+
+ +
+
+runReplay(self: spectacularAI.Replay) None
+

Starts replaying the data and blocks until close() is called or the entire session has played out

+
+ +
+
+setExtendedOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput, List[spectacularAI.Frame]], None]) None
+

Set a callback that’s called for new output

+
+ +
+
+setOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput], None]) None
+

Set a callback that’s called for new output

+
+ +
+
+setPlaybackSpeed(self: spectacularAI.Replay, arg0: float) None
+

Sets playbacks speed, 1.0 == real time, 2.0 == fast forward 2x, 0.5 == at half speed, -1.0 == unlimited. Defaults to 1.0.

+
+ +
+
+startReplay(self: spectacularAI.Replay) None
+

Starts replaying the data in the background until close() is called or entire session has been played.

+
+ +
+ +
+
+class spectacularAI.WgsCoordinates(self: spectacularAI.WgsCoordinates)
+

Represents the pose (position & orientation) of a device at a given time.

+
+
+property altitude
+
+ +
+
+property latitude
+
+ +
+
+property longitude
+
+ +
+ +
+
+class spectacularAI.GnssVioOutput
+

GNSS-VIO output

+
+
+property coordinates
+

current WgsCoordinates

+
+ +
+
+property enuPositionCovariance
+

enu position uncertainty, 3x3 covariance matrix

+
+ +
+
+getEnuCameraPose(self: spectacularAI.GnssVioOutput, arg0: int, arg1: spectacularAI.WgsCoordinates) spectacularAI::CameraPose
+

Get the global pose of a particular camera. The “world” coordinate system of the camera pose is an East-North-Up system, whose origin is at the given WGS84 coordinates.

+
+ +
+
+property orientation
+

current Quaternion

+
+ +
+
+property velocity
+

current Vector3d

+
+ +
+
+property velocityCovariance
+

velocity uncertainty, 3x3 covariance matrix

+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/replay.html b/sdk/replay.html new file mode 100644 index 0000000..d2ae8b4 --- /dev/null +++ b/sdk/replay.html @@ -0,0 +1,350 @@ + + + + + + + Replay API — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Replay API

+

The Replay API allows simulating real-time SDK behavior with previously recorded data, +or rerunning recorded sequences with high-quality postprocessing settings, which is +especially useful when used together with the Mapping API.

+

The replay API can be used with data recorded from any of the devices supported by the SDK.

+
+
+
+class spectacularAI.Replay(*args, **kwargs)
+

Replay previously recorded data

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.Replay, folder: str, *, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None] = None, configuration: dict = {}) -> None

  2. +
+

Build a replay from a given folder containing the dataset

+
    +
  1. __init__(self: spectacularAI.Replay, folder: str, mapperCallback: Callable[[spectacularAI::mapping::MapperOutput], None], *, configuration: dict = {}) -> None

  2. +
+

Build a replay from a given folder containing the dataset with a mapping callback

+
+
+close(self: spectacularAI.Replay) None
+

Closes replay.

+
+ +
+
+runReplay(self: spectacularAI.Replay) None
+

Starts replaying the data and blocks until close() is called or the entire session has played out

+
+ +
+
+setExtendedOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput, List[spectacularAI.Frame]], None]) None
+

Set a callback that’s called for new output

+
+ +
+
+setOutputCallback(self: spectacularAI.Replay, arg0: Callable[[spectacularAI.VioOutput], None]) None
+

Set a callback that’s called for new output

+
+ +
+
+setPlaybackSpeed(self: spectacularAI.Replay, arg0: float) None
+

Sets playbacks speed, 1.0 == real time, 2.0 == fast forward 2x, 0.5 == at half speed, -1.0 == unlimited. Defaults to 1.0.

+
+ +
+
+startReplay(self: spectacularAI.Replay) None
+

Starts replaying the data in the background until close() is called or entire session has been played.

+
+ +
+ +
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/search.html b/sdk/search.html new file mode 100644 index 0000000..68c113a --- /dev/null +++ b/sdk/search.html @@ -0,0 +1,143 @@ + + + + + + Search — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023 Spectacular AI Ltd.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/sdk/searchindex.js b/sdk/searchindex.js new file mode 100644 index 0000000..3bd072e --- /dev/null +++ b/sdk/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["api", "core", "cpp/latest/index", "index", "mapping", "python/latest/index", "replay", "tracking", "wrappers", "wrappers/k4a", "wrappers/oak", "wrappers/orbbec", "wrappers/realsense"], "filenames": ["api.md", "core.rst", "cpp/latest/index.rst", "index.md", "mapping.rst", "python/latest/index.rst", "replay.rst", "tracking.rst", "wrappers.md", "wrappers/k4a.md", "wrappers/oak.rst", "wrappers/orbbec.md", "wrappers/realsense.md"], "titles": ["API Reference", "Core SDK", "C++", "Spectacular AI SDK documentation", "Mapping API", "Python", "Replay API", "Tracking API", "Wrappers", "Azure Kinect", "OAK-D", "ORBBEC", "RealSense"], "terms": {"full": [0, 1, 3], "singl": [0, 2, 4, 5, 6, 7], "page": [0, 3], "python": [0, 4, 6, 7, 10], "c": [0, 4, 6, 7, 9, 10, 11, 12], "The": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "spectacular": [1, 2, 7, 9, 10, 11, 12], "ai": [1, 2, 7, 9, 10, 11, 12], "i": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12], "platform": 1, "independ": 1, "softwar": 1, "solut": 1, "real": [1, 2, 3, 4, 5, 6, 7], "time": [1, 2, 3, 4, 5, 6, 7, 10], "3d": [1, 2, 3, 4, 7], "map": [1, 2, 3, 5, 6, 9, 10, 11, 12], "6": [1, 2, 3, 10], "dof": [1, 2, 10], "pose": [1, 2, 3, 4, 5, 10], "track": [1, 2, 3, 4, 5, 10, 12], "includ": [1, 3, 4, 6, 7, 9, 10, 11, 12], "follow": [1, 2, 7, 8], "public": [1, 2, 4, 6, 7, 9, 10, 11, 12], "modul": [1, 10], "which": [1, 2, 4, 6, 7, 10], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "us": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12], "ani": [1, 2, 4, 6, 7, 8], "devic": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12], "support": [1, 2, 3, 4, 6, 7, 8, 10, 11], "api": [1, 2, 3], "replai": [1, 2, 4, 5], "easiest": 1, "through": [1, 2, 10], "wrapper": [1, 2, 3, 7], "out": [1, 3, 5, 6, 8, 10], "box": [1, 3, 8], "also": [1, 2, 3, 4, 7, 9, 10, 11, 12], "other": [1, 2, 3, 4, 5, 6, 7, 10], "input": [1, 2, 4, 5, 7, 9, 10, 11, 12], "contact": 1, "u": 1, "more": [1, 2, 4, 6, 7, 10], "inform": [1, 2, 4, 5, 7, 9, 10, 11, 12], "access": [1, 2, 3, 4, 7, 10], "function": [1, 2, 4, 5, 6, 7, 9, 10, 11, 12], "namespac": [2, 4, 6, 7, 9, 10, 11, 12], "spectacularai": [2, 4, 5, 6, 7, 9, 10, 11, 12], "typedef": [2, 4, 6, 7], "viooutputptr": [2, 6, 7], "std": [2, 4, 6, 7, 9, 10, 11, 12], "shared_ptr": [2, 4, 6, 7, 9, 10, 11, 12], "const": [2, 4, 6, 7, 9, 10, 11, 12], "viooutput": [2, 5, 6, 7, 9, 10, 11, 12], "frameset": [2, 4, 6], "vector": [2, 4, 5, 6, 7], "frame": [2, 4, 5, 6, 7, 9, 10, 11, 12], "matrix3d": [2, 7, 10], "arrai": [2, 4, 5, 7], "doubl": [2, 4, 6, 7, 9, 10, 11, 12], "3": [2, 4, 5, 7, 10], "A": [2, 4, 5, 7], "3x3": [2, 5, 7], "matrix": [2, 5, 7, 10], "row": [2, 7], "major": [2, 7], "m": [2, 4, 7], "col": [2, 7], "note": [2, 7, 9, 10], "when": [2, 4, 6, 7, 9, 10, 11], "symmetr": [2, 7], "like": [2, 7], "covari": [2, 5, 7, 10], "matric": [2, 5, 7], "differ": [2, 6, 7], "between": [2, 3, 7, 12], "column": [2, 7], "order": [2, 4, 7], "matrix4d": [2, 7, 10], "4": [2, 5, 7, 10], "4x4": [2, 5, 7], "typic": [2, 5, 7], "homogen": [2, 5, 7], "coordin": [2, 4, 5, 7, 10], "enum": [2, 7], "class": [2, 4, 5, 6, 7, 9, 10, 11, 12], "trackingstatu": [2, 5, 7], "statu": [2, 5, 7], "valu": [2, 4, 5, 7, 9, 10, 11, 12], "enumer": [2, 7], "init": [2, 5, 7], "initi": [2, 7, 10], "start": [2, 4, 5, 6, 7, 9, 10, 11, 12], "still": [2, 7], "accur": [2, 3, 7], "global": [2, 5, 7], "referenc": [2, 7], "lost_track": [2, 5, 7], "ha": [2, 4, 5, 6, 7, 9, 10, 11], "fail": [2, 7], "output": [2, 3, 4, 5, 6, 9, 10, 11, 12], "ar": [2, 3, 4, 6, 7, 8, 9, 10, 11], "longer": [2, 4, 7], "produc": [2, 7], "until": [2, 5, 6, 7, 9, 10, 11, 12], "system": [2, 5, 7, 10], "recov": [2, 7], "report": [2, 7], "anoth": [2, 6, 7], "state": [2, 7], "colorformat": [2, 5, 7], "specifi": [2, 4, 7], "pixel": [2, 4, 7], "format": [2, 7, 10], "bitmap": [2, 4, 5, 6, 7], "none": [2, 5, 6, 7, 10], "grai": [2, 5, 7, 10], "rgb": [2, 4, 5, 7, 10], "rgba": [2, 5, 7], "rgba_external_o": [2, 7], "bgr": [2, 7], "bgra": [2, 7], "gray16": [2, 5, 7], "float32": [2, 4, 7], "encoded_h264": [2, 7], "gethorizontaluncertainti": [2, 7], "get": [2, 4, 5, 7, 9, 10, 11, 12], "scalar": [2, 7], "horizont": [2, 7], "uncertainti": [2, 5, 7, 10], "meter": [2, 4, 7], "from": [2, 3, 4, 5, 6, 7, 9, 10, 11, 12], "thi": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], "an": [2, 3, 4, 5, 7, 9, 10, 11, 12], "rm": [2, 7], "1": [2, 4, 5, 6, 7, 10], "sigma": [2, 7], "In": [2, 7], "gener": [2, 4, 7, 9, 10, 11, 12], "anisotrop": [2, 7], "case": [2, 3, 6, 7], "where": [2, 4, 6, 7, 10], "rotat": [2, 5, 7], "version": [2, 4, 7], "diag": [2, 7], "sx": [2, 7], "2": [2, 5, 6, 7, 10, 11], "sy": [2, 7], "defin": [2, 4, 6, 7, 9, 10, 11, 12], "sqrt": [2, 7], "equival": [2, 7], "frobeniu": [2, 7], "norm": [2, 7], "2x2": [2, 7], "part": [2, 3, 7, 10], "If": [2, 4, 5, 6, 7, 9, 10, 11, 12], "isotrop": [2, 7], "same": [2, 4, 6, 7, 10], "1d": [2, 7], "standard": [2, 7], "deviat": [2, 7], "along": [2, 7], "x": [2, 5, 7], "y": [2, 5, 7], "axi": [2, 7], "getverticaluncertainti": [2, 7], "vertic": [2, 4, 7], "p67": [2, 7], "buildcovariancematrix": [2, 7], "horizontalsigma": [2, 7], "verticalsigma": [2, 7], "construct": [2, 6, 7], "compon": [2, 7], "e": [2, 4, 5, 7, 9, 10, 11, 12], "result": [2, 4, 7], "xy": [2, 7], "plane": [2, 7], "getquaternionhead": [2, 7], "quaternion": [2, 5, 7], "q": [2, 7], "yaw": [2, 7], "head": [2, 7], "angl": [2, 7, 10], "local": [2, 5, 7], "world": [2, 5, 7, 10], "degre": [2, 3, 7], "getquaternionpitch": [2, 7], "pitch": [2, 7], "getquaternionrol": [2, 7], "roll": [2, 7], "struct": [2, 4, 6, 7, 9, 10, 11, 12], "autoexposureoutput": [2, 7], "auto": [2, 7, 10], "exposur": [2, 7, 10], "structur": [2, 4, 5, 7], "each": [2, 5, 7, 12], "correspond": [2, 4, 5, 7, 9, 10, 11, 12], "specif": [2, 4, 7], "imag": [2, 4, 5, 6, 7, 10], "timestamp": [2, 5, 7, 9, 10, 11, 12], "option": [2, 4, 6, 7, 10], "tag": [2, 5, 7, 9, 10, 11, 12], "contain": [2, 4, 5, 6, 7], "implement": [2, 6, 7], "control": [2, 7], "algorithm": [2, 6, 7], "depend": [2, 7, 10], "member": [2, 4, 5, 6, 7, 9, 10, 11, 12], "int": [2, 4, 5, 6, 7, 9, 10, 11, 12], "deltabright": [2, 7], "determin": [2, 7], "how": [2, 7], "much": [2, 7], "bright": [2, 7], "should": [2, 6, 7, 10], "chang": [2, 4, 7, 10, 12], "0": [2, 4, 5, 6, 7, 9, 10, 11, 12], "255": [2, 7], "uint8_t": [2, 4, 7], "approx": [2, 7], "uint32_t": [2, 4, 7], "minexposuretim": [2, 7], "minimum": [2, 7], "microsecond": [2, 7], "maxexposuretim": [2, 7], "maximum": [2, 7], "mingain": [2, 7], "gain": [2, 7], "iso": [2, 7], "maxgain": [2, 7], "second": [2, 5, 7, 9, 10, 11, 12], "simpl": [2, 7], "ram": [2, 7], "gpu": [2, 7], "cv": [2, 7], "mat": [2, 7], "asopencv": [2, 7], "bool": [2, 4, 6, 7, 9, 10, 11, 12], "flipcolor": [2, 7], "true": [2, 4, 6, 7, 9, 10, 11, 12], "creat": [2, 4, 5, 7, 9, 10, 11, 12], "opencv": [2, 5, 7], "mai": [2, 4, 7, 10], "refer": [2, 6, 7], "shallow": [2, 7], "copi": [2, 7], "clone": [2, 7], "make": [2, 4, 7, 9, 11], "deep": [2, 7], "need": [2, 7], "default": [2, 5, 6, 7, 9, 10, 11, 12], "automat": [2, 7], "convert": [2, 5, 7, 10], "necessari": [2, 7, 9, 11, 12], "virtual": [2, 3, 4, 6, 7, 9, 10, 11, 12], "getwidth": [2, 5, 7], "width": [2, 5, 7], "getheight": [2, 5, 7], "height": [2, 5, 7], "getcolorformat": [2, 5, 7], "color": [2, 4, 7, 10], "channel": [2, 7], "configur": [2, 5, 6, 7], "getdatareadonli": [2, 7], "data": [2, 3, 4, 5, 6, 7, 10], "must": [2, 7, 10], "contigu": [2, 7], "8": [2, 7, 10], "32": [2, 7], "bit": [2, 7], "per": [2, 7], "getdatareadwrit": [2, 7], "static": [2, 6, 7], "unique_ptr": [2, 6, 7, 9, 10, 11, 12], "undefin": [2, 7], "content": [2, 7, 10], "createrefer": [2, 7], "rowstrid": [2, 7], "plain": [2, 7], "camera": [2, 3, 4, 5, 7, 9, 10, 11, 12], "pixeltorai": [2, 7], "pixelcoordin": [2, 7], "vector3d": [2, 4, 5, 7, 10], "rai": [2, 7], "paramet": [2, 4, 5, 6, 7, 8, 9, 10, 11, 12], "return": [2, 4, 5, 6, 7, 9, 10, 11, 12], "convers": [2, 7], "succeed": [2, 7], "raytopixel": [2, 7], "getintrinsicmatrix": [2, 5, 7], "rectifi": [2, 5, 7], "intrins": [2, 5, 7], "": [2, 5, 6, 7], "distort": [2, 4, 5, 7], "convent": [2, 5, 7], "fx": [2, 7], "ppx": [2, 7], "fy": [2, 7], "ppy": [2, 7], "getprojectionmatrixopengl": [2, 5, 7], "nearclip": [2, 7], "farclip": [2, 7], "project": [2, 5, 7], "normal": [2, 4, 7], "ndc": [2, 7], "buildpinhol": [2, 7], "intrinsicmatrix": [2, 7], "camerapos": [2, 4, 5, 6, 7, 10], "getworldtocameramatrix": [2, 5, 7], "getcameratoworldmatrix": [2, 5, 7], "getposit": [2, 4, 5, 7], "posit": [2, 4, 5, 7, 10], "pixeltoworld": [2, 7], "origin": [2, 5, 7], "current": [2, 4, 5, 7], "direct": [2, 7], "worldtopixel": [2, 7], "point": [2, 4, 7, 10], "transform": [2, 7], "camerarayto3dmatch": [2, 7], "coodin": [2, 7], "match": [2, 4, 7, 10], "featurepoint": [2, 4, 7], "spars": [2, 4, 7], "featur": [2, 4, 7, 10], "observ": [2, 4, 7], "certain": [2, 7, 9, 10, 11, 12], "int64_t": [2, 4, 7], "id": [2, 4, 7], "integ": [2, 4, 7], "identifi": [2, 4, 7], "revis": [2, 7], "cloud": [2, 4, 7, 10], "g": [2, 4, 5, 7, 9, 10, 11, 12], "avail": [2, 4, 5, 6, 7, 9, 10, 11, 12], "set": [2, 4, 5, 6, 7, 9, 10, 11, 12], "trigger": [2, 7, 9, 10, 11, 12], "do": [2, 4, 6, 7, 10, 12], "type": [2, 4, 10], "index": [2, 4, 5, 6, 7], "gnssviooutput": [2, 5, 7], "getenucamerapos": [2, 5, 7], "cameraid": [2, 7], "wgscoordin": [2, 5, 7, 10], "enuorigin": [2, 7], "particular": [2, 5, 7, 9, 10, 11, 12], "east": [2, 5, 7, 10], "north": [2, 5, 7, 10], "up": [2, 4, 5, 7, 10, 12], "whose": [2, 5, 7], "given": [2, 4, 5, 6, 7, 10, 12], "wgs84": [2, 5, 7], "enu": [2, 5, 7, 10], "mean": [2, 7, 8, 10], "orient": [2, 5, 7, 10], "repres": [2, 5, 7], "doe": [2, 6, 7], "matter": [2, 7], "context": [2, 7], "see": [2, 5, 7, 10], "helper": [2, 4, 7], "method": [2, 7], "obtain": [2, 7], "euler": [2, 7], "veloc": [2, 5, 7], "enupositioncovari": [2, 5, 7, 10], "estim": [2, 6, 7, 10], "coordiant": [2, 7], "number": [2, 4, 7], "velocitycovari": [2, 5, 7], "subpixel": [2, 7], "accuraci": [2, 7], "float": [2, 5, 6, 7, 9, 10, 11, 12], "asmatrix": [2, 5, 7], "monoton": [2, 4, 5, 7, 9, 10, 11, 12], "increas": [2, 4, 7], "right": [2, 7, 10], "hand": [2, 7], "metric": [2, 7], "z": [2, 5, 7], "frommatrix": [2, 5, 7], "t": [2, 4, 7, 9, 10, 11, 12], "localtoworld": [2, 7], "represent": [2, 5, 7, 10], "hamilton": [2, 5, 7], "w": [2, 5, 7], "visual": [2, 3, 6], "inerti": [2, 3, 6], "odometri": [2, 6], "destructor": [2, 6], "stop": [2, 6], "nai": [2, 6], "worker": [2, 6], "thread": [2, 6, 9, 10], "free": [2, 6, 10], "resourc": [2, 6, 10], "void": [2, 4, 6, 9, 10, 11, 12], "startreplai": [2, 5, 6], "background": [2, 5, 6, 9, 11, 12], "close": [2, 5, 6, 10], "entir": [2, 4, 5, 6], "session": [2, 5, 6, 7], "been": [2, 5, 6], "plai": [2, 5, 6], "runreplai": [2, 5, 6], "block": [2, 5, 6], "replayonelin": [2, 6], "line": [2, 6], "fals": [2, 4, 6, 9, 10, 11, 12], "setplaybackspe": [2, 5, 6], "speed": [2, 5, 6], "playback": [2, 5, 6], "fast": [2, 4, 5, 6], "forward": [2, 5, 6], "2x": [2, 5, 6], "5": [2, 5, 6, 10], "half": [2, 5, 6], "unlimit": [2, 5, 6], "setdryrun": [2, 6], "isdryrun": [2, 6], "enabl": [2, 6, 9, 10, 11, 12], "read": [2, 6, 9, 11, 12], "pars": [2, 6], "record": [2, 5, 6, 9, 10, 11], "feed": [2, 6], "perform": [2, 6, 9, 10, 12], "measur": [2, 6], "dry": [2, 6], "run": [2, 6], "happen": [2, 6], "setoutputcallback": [2, 5, 6], "onoutput": [2, 6], "callback": [2, 4, 5, 6, 10, 12], "call": [2, 3, 5, 6, 10, 12], "whenev": [2, 6], "new": [2, 5, 6, 9, 10, 11, 12], "remain": [2, 6], "valid": [2, 6], "long": [2, 6], "share": [2, 3, 6, 10], "pointer": [2, 4, 6], "aliv": [2, 6], "pass": [2, 6], "last": [2, 4, 6], "destruct": [2, 6], "howev": [2, 6], "store": [2, 4, 6, 9, 11, 12], "term": [2, 6], "avoid": [2, 6], "memori": [2, 6], "leak": [2, 6], "Will": [2, 6], "fromt": [2, 6], "gyroscop": [2, 3, 6], "sampl": [2, 6], "ad": [2, 4, 6, 9, 11], "setextendedoutputcallback": [2, 5, 6], "experiment": [2, 6], "builder": [2, 6], "string": [2, 4, 6, 7, 9, 10, 11, 12], "datafold": [2, 6], "vio": [2, 5, 6, 7, 9, 10, 11, 12], "viobuild": [2, 6], "setup": [2, 6], "path": [2, 4, 6, 10], "folder": [2, 5, 6], "sensor": [2, 3, 6, 7, 9, 11, 12], "calibr": [2, 6, 8], "replac": [2, 6, 10], "append": [2, 6], "setffmpeg": [2, 6], "whether": [2, 6, 9, 11], "ffmpeg": [2, 6], "file": [2, 4, 6, 10], "build": [2, 5, 6, 10], "_data": [2, 6], "r": [2, 5, 7], "angular": [2, 5, 7], "vector3f": [2, 4, 5, 7], "precis": [2, 5, 7], "main": [2, 3, 4, 5, 7, 10], "getcamerapos": [2, 5, 7], "primari": [2, 4, 5, 7, 10], "secondari": [2, 4, 5, 7, 10], "asjson": [2, 5, 7, 10], "json": [2, 5, 7, 10], "otherwis": [2, 7, 9, 11], "empti": [2, 4, 7, 10], "clock": [2, 7], "xyz": [2, 7], "angularveloc": [2, 5, 7], "si": [2, 5, 7], "unit": [2, 4, 5, 7], "rad": [2, 7], "acceler": [2, 7], "linear": [2, 7], "positioncovari": [2, 5, 7, 10], "posetrail": [2, 5, 7], "list": [2, 4, 5, 6, 7, 10], "first": [2, 4, 7, 10], "element": [2, 7], "zero": [2, 7], "recent": [2, 7], "smooth": [2, 5, 7], "histor": [2, 5, 7], "pointcloud": [2, 4, 7], "seen": [2, 7], "addfram": [2, 7], "globalpos": [2, 5, 7], "gnss": [2, 5, 7, 10], "nullptr": [2, 4, 7], "todo": 2, "improv": 2, "document": [2, 10], "createrendertarget": 2, "correct": [2, 10], "dimens": 2, "updat": [2, 4, 10], "base": 2, "render": 2, "either": 2, "readi": 2, "check": [2, 4, 9, 10, 11, 12], "wg": [2, 7], "84": [2, 7], "latitud": [2, 5, 7], "longitud": [2, 5, 7], "altitud": [2, 5, 7], "daiplugin": [2, 10], "daipipelineadapt": 2, "daipipelin": [2, 10], "daideviceadapt": 2, "daidevic": [2, 10], "daiimgframeadapt": 2, "dai": [2, 10], "imgfram": [2, 10], "daidatainputqueueadapt": 2, "datainputqueu": 2, "daidataoutputqueueadapt": 2, "dataoutputqueu": 2, "daiimudataadapt": 2, "imudata": [2, 10], "daitrackedfeaturesadapt": 2, "trackedfeatur": [2, 10], "daicalibrationhandleradapt": 2, "calibrationhandl": 2, "daicameracontroladapt": 2, "cameracontrol": 2, "daiinputresolutionadapt": 2, "spectacular_ai_maybe_python_typ": 2, "monocameraproperti": 2, "sensorresolut": 2, "daicolorinputresolutionadapt": 2, "colorcameraproperti": 2, "inlin": [2, 4], "getjsonstringoremptyvaluesaf": 2, "nlohmann": 2, "char": 2, "kei": [2, 4, 9, 10, 11, 12], "getdaiusbspeedvalu": 2, "usbspe": 2, "getdaiusbspeednam": 2, "getdaiimagerawdata": 2, "img": 2, "size_t": [2, 4], "getdaiimagerawdatas": 2, "getdaiimutimestampdevic": 2, "imureport": 2, "getdaiimagetimestampdevic": 2, "getdaifeaturestimestampdevic": 2, "getdaiimageexposuretim": 2, "getdaiimagetyp": 2, "plugin": [2, 9, 10, 11, 12], "sdk": [2, 6, 8, 9, 10, 11, 12], "variabl": [2, 9, 10, 11, 12], "usestereo": [2, 9, 10, 12], "useslam": [2, 9, 10, 11, 12], "usefeaturetrack": [2, 10], "fastvio": [2, 9, 10, 11, 12], "forcerectifi": [2, 10], "forceunrectifi": [2, 10], "usecolor": [2, 10], "usecolorstereocamera": [2, 10], "useencodedvideo": [2, 10], "usegraydepth": [2, 10], "mapsavepath": [2, 10, 12], "maploadpath": [2, 10, 12], "usevioautoexposur": [2, 10], "apriltagpath": [2, 9, 10, 11, 12], "meshrectif": [2, 10], "depthscalecorrect": [2, 10], "extendeddispar": [2, 10], "fastimu": [2, 10], "usereaderthread": [2, 10, 12], "unsign": [2, 10], "imufrequencyhz": [2, 10], "accfrequencyhz": [2, 10, 11], "500": [2, 10], "gyrofrequencyhz": [2, 10, 11], "400": [2, 10], "ensuresufficientusbspe": [2, 10], "silenceusbwarn": [2, 10], "monoqueues": [2, 10], "depthqueues": [2, 10], "20": [2, 10], "imuqueues": [2, 10], "50": [2, 10], "keyframecandidateeverynthfram": [2, 10], "inputresolut": [2, 10, 12], "400p": [2, 10, 12], "recordingfold": [2, 9, 10, 11, 12], "recordingonli": [2, 9, 10, 11, 12], "disablecamera": [2, 10], "imutognss": [2, 10], "internalparamet": [2, 9, 10, 11, 12], "intern": [2, 9, 10, 11, 12], "overrid": [2, 9, 10, 11, 12], "pair": [2, 9, 10, 11, 12], "Not": [2, 9, 10, 11, 12], "safe": [2, 9, 10, 11, 12], "unsanit": [2, 9, 10, 11, 12], "user": [2, 9, 10, 11, 12], "hook": 2, "pull": [2, 9, 10, 11], "someth": [2, 10], "depth": [2, 4, 10], "those": [2, 10], "intermediari": [2, 10], "never": [2, 10], "invok": [2, 10, 12], "thei": [2, 4, 10], "were": [2, 4, 10], "imu": [2, 3, 5, 7, 9, 10], "monoprimari": [2, 10], "monosecondari": [2, 10], "pipelin": 2, "It": [2, 4, 10, 12], "recommend": [2, 10, 12], "constructor": [2, 10], "provid": [2, 5, 7, 10], "possibl": [2, 10, 12], "all": [2, 3, 4, 10], "manual": [2, 8, 10], "config": [2, 9, 10, 11, 12], "custom": [2, 9, 10, 11, 12], "mapperoutputptr": [2, 4, 9, 10, 11, 12], "onmapperoutput": [2, 9, 10, 11, 12], "startsess": [2, 9, 10, 11, 12], "imunod": [2, 10], "monocameranod": [2, 10], "monoleft": [2, 10], "monoright": [2, 10], "colorcameranod": [2, 10], "colorleft": [2, 10], "colorright": [2, 10], "colorprimari": [2, 10], "colorsecondari": [2, 10], "imagemanipnod": [2, 10], "colorimagemanip": [2, 10], "stereodepthnod": [2, 10], "stereo": [2, 4, 10], "featuretrackernod": [2, 10], "featuretrack": [2, 10], "scriptnod": [2, 10], "scriptprimari": [2, 10], "scriptsecondari": [2, 10], "videoencodernod": [2, 10], "videoencoderprimari": [2, 10], "videoencodersecondari": [2, 10], "xlinkinnod": [2, 10], "xincontrol": [2, 10], "xlinkoutnod": [2, 10], "xoutimu": [2, 10], "xoutleft": [2, 10], "xoutright": [2, 10], "xoutscriptprimari": [2, 10], "xoutscriptsecondari": [2, 10], "xoutprimari": [2, 10], "xoutsecondari": [2, 10], "xoutfeatur": [2, 10], "xoutdepth": [2, 10], "imutocameraleft": [2, 10], "spectacularaiconfigurationyaml": [2, 10], "pipelineextens": 2, "pipelinera": 2, "rae": 2, "raecameranod": 2, "front": 2, "back": 2, "stereodepth": 2, "scriptleft": 2, "scriptright": 2, "xoutscriptleft": 2, "xoutscriptright": 2, "rawimgframetypeconvert": 2, "getstringtyp": 2, "rawimgfram": 2, "via": [2, 5, 7, 10], "hasoutput": [2, 9, 10, 11, 12], "getoutput": [2, 9, 10, 11, 12], "queue": [2, 9, 10, 11, 12], "waitforoutput": [2, 9, 10, 11, 12], "wait": [2, 9, 10, 11, 12], "work": [2, 10], "deprec": [2, 10], "addtrigg": [2, 5, 7, 9, 10, 11, 12], "add": [2, 9, 10, 11, 12], "extern": [2, 9, 10, 11, 12], "caus": [2, 9, 10, 11, 12], "addit": [2, 7, 9, 10, 11, 12], "additon": [2, 9, 10, 11, 12], "indentifi": [2, 9, 10, 11, 12], "event": [2, 9, 10, 11, 12], "have": [2, 4, 9, 10, 11, 12], "addabsolutepos": [2, 10], "orientationvari": [2, 10], "its": [2, 10], "varianc": [2, 10], "addgnss": [2, 5, 7, 10], "fusion": [2, 10], "fix": [2, 10], "getrgbcamerapos": [2, 10], "vioout": [2, 10], "resolut": 2, "getsupportedvideoresolut": 2, "monoresolut": 2, "convertinputresolut": 2, "reso": 2, "colorinputresolut": 2, "convertcolorinputresolut": 2, "colorresolut": [2, 9], "selectnearbycolorresolut": 2, "monoheight": 2, "getyamlconfigur": [2, 9], "cameracalibr": 2, "getcalibr": 2, "imutocamera": 2, "matrixmul": 2, "b": 2, "isdevicera": 2, "useraebackcamera": 2, "stream_tag": 2, "colortoprimari": 2, "colorintrins": 2, "colorcameradistortioncoeff": 2, "stereoresolut": 2, "depthscal": [2, 4], "daireso": 2, "preview": 2, "k4aplugin": [2, 9], "k4a_calibration_t": 2, "k4a_device_configuration_t": [2, 9], "getk4aconfigur": [2, 9], "720p": [2, 9], "depthmod": [2, 9], "k4a_depth_mode_wfov_2x2bin": [2, 9], "framer": [2, 9], "30": [2, 9, 11], "aligneddepth": [2, 9, 11, 12], "distortionen": [2, 9], "postprocessfinalmap": [2, 9, 11, 12], "k4aconfig": [2, 9], "object": [2, 4, 5, 7, 9, 10, 11, 12], "about": [2, 9, 11, 12], "azur": [2, 8], "kinect": [2, 8], "stream": [2, 9, 11, 12], "actual": [2, 9, 11, 12], "k4a": [2, 9], "k4a_device_t": [2, 9], "getdevicehandl": [2, 9], "handl": [2, 9], "adjust": [2, 9], "some": [2, 9], "fp": [2, 9, 10], "affect": [2, 9, 10], "ignoreoutput": [2, 9, 11], "ignor": [2, 9, 11], "interest": [2, 9, 11], "sure": [2, 9, 11], "mapperoutput": [2, 4, 5, 6, 10], "might": [2, 4, 10], "alwai": [2, 4], "exist": [2, 4, 10], "multipli": [2, 4], "mm": [2, 4], "1000": [2, 4], "sparsefeatur": [2, 4], "2d": [2, 4], "getaligneddepthfram": [2, 4], "target": [2, 4], "comput": [2, 4, 12], "exampl": [2, 4, 10], "rgbframe": [2, 4], "depthfram": [2, 4], "alreadi": [2, 4], "align": [2, 4], "getundistortedfram": [2, 4], "distortedfram": [2, 4], "undistort": [2, 4, 5, 7], "model": [2, 4], "pinhol": [2, 4], "primaryfram": [2, 4], "secondaryfram": [2, 4], "d": [2, 4, 8], "keyfram": [2, 4], "uniqu": [2, 4], "dens": [2, 4], "non": [2, 4], "similar": [2, 4], "associ": [2, 4], "futur": [2, 4], "reli": [2, 4], "being": [2, 4], "mappoint": [2, 4], "k": [2, 4, 7], "landmark": [2, 4], "These": [2, 4], "one": [2, 4, 10], "field": [2, 4], "date": [2, 4], "updatedkeyfram": [2, 4], "modifi": [2, 4, 10], "delet": [2, 4], "oldest": [2, 4], "newest": [2, 4], "updatedmappoint": [2, 4], "mesh": [2, 4], "reconstruct": [2, 3, 4], "finalmap": [2, 4], "befor": [2, 4], "program": [2, 4], "exit": [2, 4], "few": [2, 4], "properti": [2, 4, 5, 7, 10], "textur": [2, 4], "flexibl": [2, 4], "enough": [2, 4], "both": [2, 3, 4], "vertex": [2, 4], "face": [2, 4], "indexfac": [2, 4], "triangl": [2, 4], "hasnorm": [2, 4], "vertexcount": [2, 4], "normalcount": [2, 4], "facecount": [2, 4], "gettriangl": [2, 4], "faceindex": [2, 4], "yield": [2, 4], "error": [2, 4], "size": [2, 4], "getpositiondata": [2, 4], "effici": [2, 4], "wai": [2, 4], "getnormaldata": [2, 4], "getfacevertic": [2, 4], "indic": [2, 4], "getfacenorm": [2, 4], "serializetoobj": [2, 4], "filenam": [2, 4, 10], "save": [2, 4], "obj": [2, 4], "For": [2, 4, 10], "instanc": [2, 4], "hascolor": [2, 4], "getnorm": [2, 4], "getrgb24": [2, 4], "getrgb24data": [2, 4], "orbbecplugin": [2, 11], "ob": [2, 11], "obpipelin": [2, 11], "rgbresolut": [2, 11], "make_pair": [2, 11], "1280": [2, 11], "720": [2, 11], "depthresolut": [2, 11], "512": [2, 11], "camerafp": [2, 11], "obaccelsampler": [2, 11], "ob_sample_rate_1_khz": [2, 11], "obgyrosampler": [2, 11], "obaccelfullscalerang": [2, 11], "accrang": [2, 11], "ob_accel_fs_4g": [2, 11], "obgyrofullscalerang": [2, 11], "gyrorang": [2, 11], "ob_gyro_fs_1000dp": [2, 11], "orbbec": [2, 8], "obcameraparam": 2, "devicenam": 2, "rsplugin": [2, 12], "usergb": [2, 12], "useicp": [2, 12], "realsens": [2, 8], "configurex": [2, 12], "guarante": [2, 12], "compat": [2, 12], "configuredevic": [2, 12], "rs2": [2, 12], "configurestream": [2, 12], "setmappercallback": [2, 12], "heavi": [2, 12], "directli": [2, 12], "fuse": 3, "acceleromet": 3, "freedom": [3, 7], "slam": [3, 4, 10], "vislam": 3, "among": 3, "autonom": 3, "robot": 3, "vehicl": 3, "well": 3, "augment": 3, "mix": 3, "realiti": 3, "offlin": 3, "own": 3, "core": [3, 7], "indepenc": 3, "give": 4, "togeth": [4, 6], "high": [4, 6], "qualiti": [4, 6], "post": 4, "process": 4, "tool": 4, "nerfstudio": 4, "scale": 4, "multipl": 4, "moment": 4, "self": [4, 5, 6, 7, 10], "arg0": [4, 5, 6, 7, 10], "belong": 4, "boolean": 4, "now": 4, "final": 4, "won": 4, "programm": 4, "sinc": 4, "l": 4, "numpi": [4, 5, 7], "ndarrai": [4, 5, 7], "uint32": 4, "lx3": 4, "mx3": 4, "nx3": 4, "n": [4, 10], "uint8": 4, "hpp": [4, 6, 7, 9, 10, 11, 12], "str": [5, 6, 7], "onli": [5, 7, 10], "latest": [5, 7], "trail": [5, 7], "exact": [5, 7], "synchron": [5, 7], "host": [5, 7], "arg1": [5, 7, 10], "opengl": [5, 7], "parameter": [5, 7], "arg": [5, 6, 7, 10], "kwarg": [5, 6, 7, 10], "overload": [5, 6, 7, 10], "__init__": [5, 6, 7, 10], "arg2": [5, 7, 10], "name": [5, 7, 10], "7": [5, 7], "grayscal": [5, 7], "toarrai": [5, 7], "previous": [5, 6], "mappercallback": [5, 6], "callabl": [5, 6, 10], "dict": [5, 6, 10], "dataset": [5, 6], "allow": 6, "simul": 6, "behavior": 6, "rerun": 6, "sequenc": 6, "postprocess": 6, "especi": 6, "consist": 7, "relev": 7, "spectacular_ai_api": 7, "spectacular_ai_core_api": 7, "util": [7, 10], "without": 8, "integr": 8, "tune": 8, "oak": 8, "dk": 9, "privat": [9, 11, 12], "impl": [9, 11, 12], "pimpl": [9, 11, 12], "luxoni": 10, "depthaai": 10, "step": 10, "depthai": 10, "info": 10, "keyword": 10, "argument": 10, "poll": 10, "loop": 10, "period": 10, "code": 10, "import": 10, "vio_pipelin": 10, "vio_sess": 10, "while": 10, "print": 10, "els": 10, "sleep": 10, "005": 10, "iostream": 10, "viopipelin": 10, "viosess": 10, "cout": 10, "endl": 10, "apriltag": 10, "detect": 10, "http": 10, "github": 10, "com": 10, "doc": 10, "blob": 10, "pdf": 10, "april_tag_instruct": 10, "asdict": 10, "dictionari": 10, "disabl": 10, "extend": 10, "dispar": 10, "mode": 10, "light": 10, "weight": 10, "instead": 10, "mono": 10, "captur": 10, "everi": 10, "load": 10, "bin": 10, "requir": 10, "ply": 10, "csv": 10, "pcd": 10, "subset": 10, "seri": 10, "encod": 10, "video": 10, "cannot": 10, "live": 10, "movidiu": 10, "vpu": 10, "acceleler": 10, "vision": 10, "monocular": 10, "optim": 10, "beta": 10, "spetacular": 10, "possbil": 10, "them": 10, "link": 10, "mapper": 10, "node": 10, "left": 10, "tracker": 10, "raw": 10, "receiv": 10, "extrins": 10, "touch": 10, "consid": 10, "statement": 10, "remov": 10, "unread": 10, "imagehook": 10, "imuhook": 10, "featurehook": 10, "femto": 11, "mega": 11, "astra": 11, "d455": 12, "d435i": 12}, "objects": {"": [[10, 0, 1, "c.FeatureHook", "FeatureHook"], [10, 0, 1, "c.ImageHook", "ImageHook"], [10, 0, 1, "c.ImuHook", "ImuHook"], [7, 0, 1, "c.SPECTACULAR_AI_API", "SPECTACULAR_AI_API"], [7, 0, 1, "c.SPECTACULAR_AI_CORE_API", "SPECTACULAR_AI_CORE_API"], [7, 1, 1, "_CPPv42cv", "cv"], [10, 1, 1, "_CPPv43dai", "dai"], [12, 1, 1, "_CPPv43rs2", "rs2"], [2, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [4, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [6, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [7, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [7, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [7, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [9, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [9, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [9, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [10, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [10, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [10, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [10, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [11, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [11, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [11, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [12, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [12, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [12, 1, 1, "_CPPv413spectacularAI", "spectacularAI"], [2, 2, 1, "_CPPv4N13spectacularAI18AutoExposureOutputE", "spectacularAI::AutoExposureOutput"], [7, 2, 1, "_CPPv4N13spectacularAI18AutoExposureOutputE", "spectacularAI::AutoExposureOutput"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput10brightnessE", "spectacularAI::AutoExposureOutput::brightness"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput10brightnessE", "spectacularAI::AutoExposureOutput::brightness"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput15deltaBrightnessE", "spectacularAI::AutoExposureOutput::deltaBrightness"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput15deltaBrightnessE", "spectacularAI::AutoExposureOutput::deltaBrightness"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput15maxExposureTimeE", "spectacularAI::AutoExposureOutput::maxExposureTime"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput15maxExposureTimeE", "spectacularAI::AutoExposureOutput::maxExposureTime"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput7maxGainE", "spectacularAI::AutoExposureOutput::maxGain"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput7maxGainE", "spectacularAI::AutoExposureOutput::maxGain"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput15minExposureTimeE", "spectacularAI::AutoExposureOutput::minExposureTime"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput15minExposureTimeE", "spectacularAI::AutoExposureOutput::minExposureTime"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput7minGainE", "spectacularAI::AutoExposureOutput::minGain"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput7minGainE", "spectacularAI::AutoExposureOutput::minGain"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput3tagE", "spectacularAI::AutoExposureOutput::tag"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput3tagE", "spectacularAI::AutoExposureOutput::tag"], [2, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput9timestampE", "spectacularAI::AutoExposureOutput::timestamp"], [7, 3, 1, "_CPPv4N13spectacularAI18AutoExposureOutput9timestampE", "spectacularAI::AutoExposureOutput::timestamp"], [2, 2, 1, "_CPPv4N13spectacularAI6BitmapE", "spectacularAI::Bitmap"], [7, 2, 1, "_CPPv4N13spectacularAI6BitmapE", "spectacularAI::Bitmap"], [2, 4, 1, "_CPPv4N13spectacularAI6Bitmap8asOpenCVEb", "spectacularAI::Bitmap::asOpenCV"], [7, 4, 1, "_CPPv4N13spectacularAI6Bitmap8asOpenCVEb", "spectacularAI::Bitmap::asOpenCV"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap8asOpenCVEb", "spectacularAI::Bitmap::asOpenCV::flipColors"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap8asOpenCVEb", "spectacularAI::Bitmap::asOpenCV::flipColors"], [2, 4, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create"], [7, 4, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create::colorFormat"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create::colorFormat"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create::height"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create::height"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create::width"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat", "spectacularAI::Bitmap::create::width"], [2, 4, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceERN2cv3MatE", "spectacularAI::Bitmap::createReference"], [2, 4, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference"], [7, 4, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceERN2cv3MatE", "spectacularAI::Bitmap::createReference"], [7, 4, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::colorFormat"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::colorFormat"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::data"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::data"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::height"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::height"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceERN2cv3MatE", "spectacularAI::Bitmap::createReference::mat"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceERN2cv3MatE", "spectacularAI::Bitmap::createReference::mat"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::rowStride"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::rowStride"], [2, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::width"], [7, 5, 1, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi", "spectacularAI::Bitmap::createReference::width"], [2, 4, 1, "_CPPv4NK13spectacularAI6Bitmap14getColorFormatEv", "spectacularAI::Bitmap::getColorFormat"], [7, 4, 1, "_CPPv4NK13spectacularAI6Bitmap14getColorFormatEv", "spectacularAI::Bitmap::getColorFormat"], [2, 4, 1, "_CPPv4NK13spectacularAI6Bitmap15getDataReadOnlyEv", "spectacularAI::Bitmap::getDataReadOnly"], [7, 4, 1, "_CPPv4NK13spectacularAI6Bitmap15getDataReadOnlyEv", "spectacularAI::Bitmap::getDataReadOnly"], [2, 4, 1, "_CPPv4N13spectacularAI6Bitmap16getDataReadWriteEv", "spectacularAI::Bitmap::getDataReadWrite"], [7, 4, 1, "_CPPv4N13spectacularAI6Bitmap16getDataReadWriteEv", "spectacularAI::Bitmap::getDataReadWrite"], [2, 4, 1, "_CPPv4NK13spectacularAI6Bitmap9getHeightEv", "spectacularAI::Bitmap::getHeight"], [7, 4, 1, "_CPPv4NK13spectacularAI6Bitmap9getHeightEv", "spectacularAI::Bitmap::getHeight"], [2, 4, 1, "_CPPv4NK13spectacularAI6Bitmap8getWidthEv", "spectacularAI::Bitmap::getWidth"], [7, 4, 1, "_CPPv4NK13spectacularAI6Bitmap8getWidthEv", "spectacularAI::Bitmap::getWidth"], [2, 4, 1, "_CPPv4N13spectacularAI6BitmapD0Ev", "spectacularAI::Bitmap::~Bitmap"], [7, 4, 1, "_CPPv4N13spectacularAI6BitmapD0Ev", "spectacularAI::Bitmap::~Bitmap"], [2, 2, 1, "_CPPv4N13spectacularAI6CameraE", "spectacularAI::Camera"], [7, 2, 1, "_CPPv4N13spectacularAI6CameraE", "spectacularAI::Camera"], [2, 4, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole"], [7, 4, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole"], [2, 5, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole::height"], [7, 5, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole::height"], [2, 5, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole::intrinsicMatrix"], [7, 5, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole::intrinsicMatrix"], [2, 5, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole::width"], [7, 5, 1, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii", "spectacularAI::Camera::buildPinhole::width"], [2, 4, 1, "_CPPv4NK13spectacularAI6Camera18getIntrinsicMatrixEv", "spectacularAI::Camera::getIntrinsicMatrix"], [7, 4, 1, "_CPPv4NK13spectacularAI6Camera18getIntrinsicMatrixEv", "spectacularAI::Camera::getIntrinsicMatrix"], [2, 4, 1, "_CPPv4NK13spectacularAI6Camera25getProjectionMatrixOpenGLEdd", "spectacularAI::Camera::getProjectionMatrixOpenGL"], [7, 4, 1, "_CPPv4NK13spectacularAI6Camera25getProjectionMatrixOpenGLEdd", "spectacularAI::Camera::getProjectionMatrixOpenGL"], [2, 5, 1, "_CPPv4NK13spectacularAI6Camera25getProjectionMatrixOpenGLEdd", "spectacularAI::Camera::getProjectionMatrixOpenGL::farClip"], [7, 5, 1, "_CPPv4NK13spectacularAI6Camera25getProjectionMatrixOpenGLEdd", "spectacularAI::Camera::getProjectionMatrixOpenGL::farClip"], [2, 5, 1, "_CPPv4NK13spectacularAI6Camera25getProjectionMatrixOpenGLEdd", "spectacularAI::Camera::getProjectionMatrixOpenGL::nearClip"], [7, 5, 1, "_CPPv4NK13spectacularAI6Camera25getProjectionMatrixOpenGLEdd", "spectacularAI::Camera::getProjectionMatrixOpenGL::nearClip"], [2, 4, 1, "_CPPv4NK13spectacularAI6Camera10pixelToRayERK16PixelCoordinatesR8Vector3d", "spectacularAI::Camera::pixelToRay"], [7, 4, 1, "_CPPv4NK13spectacularAI6Camera10pixelToRayERK16PixelCoordinatesR8Vector3d", "spectacularAI::Camera::pixelToRay"], [2, 5, 1, "_CPPv4NK13spectacularAI6Camera10pixelToRayERK16PixelCoordinatesR8Vector3d", "spectacularAI::Camera::pixelToRay::pixel"], [7, 5, 1, "_CPPv4NK13spectacularAI6Camera10pixelToRayERK16PixelCoordinatesR8Vector3d", "spectacularAI::Camera::pixelToRay::pixel"], [2, 5, 1, "_CPPv4NK13spectacularAI6Camera10pixelToRayERK16PixelCoordinatesR8Vector3d", "spectacularAI::Camera::pixelToRay::ray"], [7, 5, 1, "_CPPv4NK13spectacularAI6Camera10pixelToRayERK16PixelCoordinatesR8Vector3d", "spectacularAI::Camera::pixelToRay::ray"], [2, 4, 1, "_CPPv4NK13spectacularAI6Camera10rayToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::Camera::rayToPixel"], [7, 4, 1, "_CPPv4NK13spectacularAI6Camera10rayToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::Camera::rayToPixel"], [2, 5, 1, "_CPPv4NK13spectacularAI6Camera10rayToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::Camera::rayToPixel::pixel"], [7, 5, 1, "_CPPv4NK13spectacularAI6Camera10rayToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::Camera::rayToPixel::pixel"], [2, 5, 1, "_CPPv4NK13spectacularAI6Camera10rayToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::Camera::rayToPixel::ray"], [7, 5, 1, "_CPPv4NK13spectacularAI6Camera10rayToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::Camera::rayToPixel::ray"], [2, 4, 1, "_CPPv4N13spectacularAI6CameraD0Ev", "spectacularAI::Camera::~Camera"], [7, 4, 1, "_CPPv4N13spectacularAI6CameraD0Ev", "spectacularAI::Camera::~Camera"], [2, 2, 1, "_CPPv4N13spectacularAI10CameraPoseE", "spectacularAI::CameraPose"], [7, 2, 1, "_CPPv4N13spectacularAI10CameraPoseE", "spectacularAI::CameraPose"], [2, 3, 1, "_CPPv4N13spectacularAI10CameraPose6cameraE", "spectacularAI::CameraPose::camera"], [7, 3, 1, "_CPPv4N13spectacularAI10CameraPose6cameraE", "spectacularAI::CameraPose::camera"], [2, 4, 1, "_CPPv4NK13spectacularAI10CameraPose22getCameraToWorldMatrixEv", "spectacularAI::CameraPose::getCameraToWorldMatrix"], [7, 4, 1, "_CPPv4NK13spectacularAI10CameraPose22getCameraToWorldMatrixEv", "spectacularAI::CameraPose::getCameraToWorldMatrix"], [2, 4, 1, "_CPPv4NK13spectacularAI10CameraPose11getPositionEv", "spectacularAI::CameraPose::getPosition"], [7, 4, 1, "_CPPv4NK13spectacularAI10CameraPose11getPositionEv", "spectacularAI::CameraPose::getPosition"], [2, 4, 1, "_CPPv4NK13spectacularAI10CameraPose22getWorldToCameraMatrixEv", "spectacularAI::CameraPose::getWorldToCameraMatrix"], [7, 4, 1, "_CPPv4NK13spectacularAI10CameraPose22getWorldToCameraMatrixEv", "spectacularAI::CameraPose::getWorldToCameraMatrix"], [2, 4, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld"], [7, 4, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld"], [2, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld::origin"], [7, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld::origin"], [2, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld::pixel"], [7, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld::pixel"], [2, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld::ray"], [7, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d", "spectacularAI::CameraPose::pixelToWorld::ray"], [2, 3, 1, "_CPPv4N13spectacularAI10CameraPose4poseE", "spectacularAI::CameraPose::pose"], [7, 3, 1, "_CPPv4N13spectacularAI10CameraPose4poseE", "spectacularAI::CameraPose::pose"], [2, 4, 1, "_CPPv4NK13spectacularAI10CameraPose12worldToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::CameraPose::worldToPixel"], [7, 4, 1, "_CPPv4NK13spectacularAI10CameraPose12worldToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::CameraPose::worldToPixel"], [2, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12worldToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::CameraPose::worldToPixel::pixel"], [7, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12worldToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::CameraPose::worldToPixel::pixel"], [2, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12worldToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::CameraPose::worldToPixel::point"], [7, 5, 1, "_CPPv4NK13spectacularAI10CameraPose12worldToPixelERK8Vector3dR16PixelCoordinates", "spectacularAI::CameraPose::worldToPixel::point"], [2, 2, 1, "_CPPv4N13spectacularAI18CameraRayTo3DMatchE", "spectacularAI::CameraRayTo3DMatch"], [7, 2, 1, "_CPPv4N13spectacularAI18CameraRayTo3DMatchE", "spectacularAI::CameraRayTo3DMatch"], [2, 3, 1, "_CPPv4N13spectacularAI18CameraRayTo3DMatch5pointE", "spectacularAI::CameraRayTo3DMatch::point"], [7, 3, 1, "_CPPv4N13spectacularAI18CameraRayTo3DMatch5pointE", "spectacularAI::CameraRayTo3DMatch::point"], [2, 3, 1, "_CPPv4N13spectacularAI18CameraRayTo3DMatch3rayE", "spectacularAI::CameraRayTo3DMatch::ray"], [7, 3, 1, "_CPPv4N13spectacularAI18CameraRayTo3DMatch3rayE", "spectacularAI::CameraRayTo3DMatch::ray"], [2, 6, 1, "_CPPv4N13spectacularAI11ColorFormatE", "spectacularAI::ColorFormat"], [7, 6, 1, "_CPPv4N13spectacularAI11ColorFormatE", "spectacularAI::ColorFormat"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat3BGRE", "spectacularAI::ColorFormat::BGR"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat3BGRE", "spectacularAI::ColorFormat::BGR"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4BGRAE", "spectacularAI::ColorFormat::BGRA"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4BGRAE", "spectacularAI::ColorFormat::BGRA"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat12ENCODED_H264E", "spectacularAI::ColorFormat::ENCODED_H264"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat12ENCODED_H264E", "spectacularAI::ColorFormat::ENCODED_H264"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat7FLOAT32E", "spectacularAI::ColorFormat::FLOAT32"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat7FLOAT32E", "spectacularAI::ColorFormat::FLOAT32"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4GRAYE", "spectacularAI::ColorFormat::GRAY"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4GRAYE", "spectacularAI::ColorFormat::GRAY"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat6GRAY16E", "spectacularAI::ColorFormat::GRAY16"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat6GRAY16E", "spectacularAI::ColorFormat::GRAY16"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4NONEE", "spectacularAI::ColorFormat::NONE"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4NONEE", "spectacularAI::ColorFormat::NONE"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat3RGBE", "spectacularAI::ColorFormat::RGB"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat3RGBE", "spectacularAI::ColorFormat::RGB"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4RGBAE", "spectacularAI::ColorFormat::RGBA"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat4RGBAE", "spectacularAI::ColorFormat::RGBA"], [2, 7, 1, "_CPPv4N13spectacularAI11ColorFormat17RGBA_EXTERNAL_OESE", "spectacularAI::ColorFormat::RGBA_EXTERNAL_OES"], [7, 7, 1, "_CPPv4N13spectacularAI11ColorFormat17RGBA_EXTERNAL_OESE", "spectacularAI::ColorFormat::RGBA_EXTERNAL_OES"], [2, 2, 1, "_CPPv4N13spectacularAI12FeaturePointE", "spectacularAI::FeaturePoint"], [7, 2, 1, "_CPPv4N13spectacularAI12FeaturePointE", "spectacularAI::FeaturePoint"], [2, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint2idE", "spectacularAI::FeaturePoint::id"], [7, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint2idE", "spectacularAI::FeaturePoint::id"], [2, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint16pixelCoordinatesE", "spectacularAI::FeaturePoint::pixelCoordinates"], [7, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint16pixelCoordinatesE", "spectacularAI::FeaturePoint::pixelCoordinates"], [2, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint8positionE", "spectacularAI::FeaturePoint::position"], [7, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint8positionE", "spectacularAI::FeaturePoint::position"], [2, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint6statusE", "spectacularAI::FeaturePoint::status"], [7, 3, 1, "_CPPv4N13spectacularAI12FeaturePoint6statusE", "spectacularAI::FeaturePoint::status"], [2, 2, 1, "_CPPv4N13spectacularAI5FrameE", "spectacularAI::Frame"], [6, 2, 1, "_CPPv4N13spectacularAI5FrameE", "spectacularAI::Frame"], [2, 3, 1, "_CPPv4N13spectacularAI5Frame10cameraPoseE", "spectacularAI::Frame::cameraPose"], [6, 3, 1, "_CPPv4N13spectacularAI5Frame10cameraPoseE", "spectacularAI::Frame::cameraPose"], [2, 3, 1, "_CPPv4N13spectacularAI5Frame5imageE", "spectacularAI::Frame::image"], [6, 3, 1, "_CPPv4N13spectacularAI5Frame5imageE", "spectacularAI::Frame::image"], [2, 3, 1, "_CPPv4N13spectacularAI5Frame5indexE", "spectacularAI::Frame::index"], [6, 3, 1, "_CPPv4N13spectacularAI5Frame5indexE", "spectacularAI::Frame::index"], [2, 1, 1, "_CPPv4N13spectacularAI8FrameSetE", "spectacularAI::FrameSet"], [6, 1, 1, "_CPPv4N13spectacularAI8FrameSetE", "spectacularAI::FrameSet"], [2, 2, 1, "_CPPv4N13spectacularAI13GnssVioOutputE", "spectacularAI::GnssVioOutput"], [7, 2, 1, "_CPPv4N13spectacularAI13GnssVioOutputE", "spectacularAI::GnssVioOutput"], [2, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput11coordinatesE", "spectacularAI::GnssVioOutput::coordinates"], [7, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput11coordinatesE", "spectacularAI::GnssVioOutput::coordinates"], [2, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput21enuPositionCovarianceE", "spectacularAI::GnssVioOutput::enuPositionCovariance"], [7, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput21enuPositionCovarianceE", "spectacularAI::GnssVioOutput::enuPositionCovariance"], [2, 4, 1, "_CPPv4NK13spectacularAI13GnssVioOutput16getEnuCameraPoseEi14WgsCoordinates", "spectacularAI::GnssVioOutput::getEnuCameraPose"], [7, 4, 1, "_CPPv4NK13spectacularAI13GnssVioOutput16getEnuCameraPoseEi14WgsCoordinates", "spectacularAI::GnssVioOutput::getEnuCameraPose"], [2, 5, 1, "_CPPv4NK13spectacularAI13GnssVioOutput16getEnuCameraPoseEi14WgsCoordinates", "spectacularAI::GnssVioOutput::getEnuCameraPose::cameraId"], [7, 5, 1, "_CPPv4NK13spectacularAI13GnssVioOutput16getEnuCameraPoseEi14WgsCoordinates", "spectacularAI::GnssVioOutput::getEnuCameraPose::cameraId"], [2, 5, 1, "_CPPv4NK13spectacularAI13GnssVioOutput16getEnuCameraPoseEi14WgsCoordinates", "spectacularAI::GnssVioOutput::getEnuCameraPose::enuOrigin"], [7, 5, 1, "_CPPv4NK13spectacularAI13GnssVioOutput16getEnuCameraPoseEi14WgsCoordinates", "spectacularAI::GnssVioOutput::getEnuCameraPose::enuOrigin"], [2, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput11orientationE", "spectacularAI::GnssVioOutput::orientation"], [7, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput11orientationE", "spectacularAI::GnssVioOutput::orientation"], [2, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput8velocityE", "spectacularAI::GnssVioOutput::velocity"], [7, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput8velocityE", "spectacularAI::GnssVioOutput::velocity"], [2, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput18velocityCovarianceE", "spectacularAI::GnssVioOutput::velocityCovariance"], [7, 3, 1, "_CPPv4N13spectacularAI13GnssVioOutput18velocityCovarianceE", "spectacularAI::GnssVioOutput::velocityCovariance"], [2, 4, 1, "_CPPv4N13spectacularAI13GnssVioOutputD0Ev", "spectacularAI::GnssVioOutput::~GnssVioOutput"], [7, 4, 1, "_CPPv4N13spectacularAI13GnssVioOutputD0Ev", "spectacularAI::GnssVioOutput::~GnssVioOutput"], [2, 1, 1, "_CPPv4N13spectacularAI8Matrix3dE", "spectacularAI::Matrix3d"], [7, 1, 1, "_CPPv4N13spectacularAI8Matrix3dE", "spectacularAI::Matrix3d"], [2, 1, 1, "_CPPv4N13spectacularAI8Matrix4dE", "spectacularAI::Matrix4d"], [7, 1, 1, "_CPPv4N13spectacularAI8Matrix4dE", "spectacularAI::Matrix4d"], [2, 2, 1, "_CPPv4N13spectacularAI16PixelCoordinatesE", "spectacularAI::PixelCoordinates"], [7, 2, 1, "_CPPv4N13spectacularAI16PixelCoordinatesE", "spectacularAI::PixelCoordinates"], [2, 3, 1, "_CPPv4N13spectacularAI16PixelCoordinates1xE", "spectacularAI::PixelCoordinates::x"], [7, 3, 1, "_CPPv4N13spectacularAI16PixelCoordinates1xE", "spectacularAI::PixelCoordinates::x"], [2, 3, 1, "_CPPv4N13spectacularAI16PixelCoordinates1yE", "spectacularAI::PixelCoordinates::y"], [7, 3, 1, "_CPPv4N13spectacularAI16PixelCoordinates1yE", "spectacularAI::PixelCoordinates::y"], [2, 2, 1, "_CPPv4N13spectacularAI4PoseE", "spectacularAI::Pose"], [7, 2, 1, "_CPPv4N13spectacularAI4PoseE", "spectacularAI::Pose"], [2, 4, 1, "_CPPv4NK13spectacularAI4Pose8asMatrixEv", "spectacularAI::Pose::asMatrix"], [7, 4, 1, "_CPPv4NK13spectacularAI4Pose8asMatrixEv", "spectacularAI::Pose::asMatrix"], [2, 4, 1, "_CPPv4N13spectacularAI4Pose10fromMatrixEdRK8Matrix4d", "spectacularAI::Pose::fromMatrix"], [7, 4, 1, "_CPPv4N13spectacularAI4Pose10fromMatrixEdRK8Matrix4d", "spectacularAI::Pose::fromMatrix"], [2, 5, 1, "_CPPv4N13spectacularAI4Pose10fromMatrixEdRK8Matrix4d", "spectacularAI::Pose::fromMatrix::localToWorld"], [7, 5, 1, "_CPPv4N13spectacularAI4Pose10fromMatrixEdRK8Matrix4d", "spectacularAI::Pose::fromMatrix::localToWorld"], [2, 5, 1, "_CPPv4N13spectacularAI4Pose10fromMatrixEdRK8Matrix4d", "spectacularAI::Pose::fromMatrix::t"], [7, 5, 1, "_CPPv4N13spectacularAI4Pose10fromMatrixEdRK8Matrix4d", "spectacularAI::Pose::fromMatrix::t"], [2, 3, 1, "_CPPv4N13spectacularAI4Pose11orientationE", "spectacularAI::Pose::orientation"], [7, 3, 1, "_CPPv4N13spectacularAI4Pose11orientationE", "spectacularAI::Pose::orientation"], [2, 3, 1, "_CPPv4N13spectacularAI4Pose8positionE", "spectacularAI::Pose::position"], [7, 3, 1, "_CPPv4N13spectacularAI4Pose8positionE", "spectacularAI::Pose::position"], [2, 3, 1, "_CPPv4N13spectacularAI4Pose4timeE", "spectacularAI::Pose::time"], [7, 3, 1, "_CPPv4N13spectacularAI4Pose4timeE", "spectacularAI::Pose::time"], [2, 2, 1, "_CPPv4N13spectacularAI10QuaternionE", "spectacularAI::Quaternion"], [7, 2, 1, "_CPPv4N13spectacularAI10QuaternionE", "spectacularAI::Quaternion"], [2, 3, 1, "_CPPv4N13spectacularAI10Quaternion1wE", "spectacularAI::Quaternion::w"], [7, 3, 1, "_CPPv4N13spectacularAI10Quaternion1wE", "spectacularAI::Quaternion::w"], [2, 3, 1, "_CPPv4N13spectacularAI10Quaternion1xE", "spectacularAI::Quaternion::x"], [7, 3, 1, "_CPPv4N13spectacularAI10Quaternion1xE", "spectacularAI::Quaternion::x"], [2, 3, 1, "_CPPv4N13spectacularAI10Quaternion1yE", "spectacularAI::Quaternion::y"], [7, 3, 1, "_CPPv4N13spectacularAI10Quaternion1yE", "spectacularAI::Quaternion::y"], [2, 3, 1, "_CPPv4N13spectacularAI10Quaternion1zE", "spectacularAI::Quaternion::z"], [7, 3, 1, "_CPPv4N13spectacularAI10Quaternion1zE", "spectacularAI::Quaternion::z"], [2, 2, 1, "_CPPv4N13spectacularAI6ReplayE", "spectacularAI::Replay"], [6, 2, 1, "_CPPv4N13spectacularAI6ReplayE", "spectacularAI::Replay"], [2, 2, 1, "_CPPv4N13spectacularAI6Replay7BuilderE", "spectacularAI::Replay::Builder"], [6, 2, 1, "_CPPv4N13spectacularAI6Replay7BuilderE", "spectacularAI::Replay::Builder"], [2, 2, 1, "_CPPv4N13spectacularAI6Replay7Builder4DataE", "spectacularAI::Replay::Builder::Data"], [6, 2, 1, "_CPPv4N13spectacularAI6Replay7Builder4DataE", "spectacularAI::Replay::Builder::Data"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay7Builder4DataD0Ev", "spectacularAI::Replay::Builder::Data::~Data"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay7Builder4DataD0Ev", "spectacularAI::Replay::Builder::Data::~Data"], [2, 3, 1, "_CPPv4N13spectacularAI6Replay7Builder5_dataE", "spectacularAI::Replay::Builder::_data"], [6, 3, 1, "_CPPv4N13spectacularAI6Replay7Builder5_dataE", "spectacularAI::Replay::Builder::_data"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay7Builder5buildEv", "spectacularAI::Replay::Builder::build"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay7Builder5buildEv", "spectacularAI::Replay::Builder::build"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay7Builder9setFfmpegEb", "spectacularAI::Replay::Builder::setFfmpeg"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay7Builder9setFfmpegEb", "spectacularAI::Replay::Builder::setFfmpeg"], [2, 5, 1, "_CPPv4N13spectacularAI6Replay7Builder9setFfmpegEb", "spectacularAI::Replay::Builder::setFfmpeg::enabled"], [6, 5, 1, "_CPPv4N13spectacularAI6Replay7Builder9setFfmpegEb", "spectacularAI::Replay::Builder::setFfmpeg::enabled"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay7builderERKNSt6stringEN3Vio7BuilderE", "spectacularAI::Replay::builder"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay7builderERKNSt6stringEN3Vio7BuilderE", "spectacularAI::Replay::builder"], [2, 5, 1, "_CPPv4N13spectacularAI6Replay7builderERKNSt6stringEN3Vio7BuilderE", "spectacularAI::Replay::builder::dataFolder"], [6, 5, 1, "_CPPv4N13spectacularAI6Replay7builderERKNSt6stringEN3Vio7BuilderE", "spectacularAI::Replay::builder::dataFolder"], [2, 5, 1, "_CPPv4N13spectacularAI6Replay7builderERKNSt6stringEN3Vio7BuilderE", "spectacularAI::Replay::builder::vioBuilder"], [6, 5, 1, "_CPPv4N13spectacularAI6Replay7builderERKNSt6stringEN3Vio7BuilderE", "spectacularAI::Replay::builder::vioBuilder"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay5closeEv", "spectacularAI::Replay::close"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay5closeEv", "spectacularAI::Replay::close"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay13replayOneLineEv", "spectacularAI::Replay::replayOneLine"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay13replayOneLineEv", "spectacularAI::Replay::replayOneLine"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay9runReplayEv", "spectacularAI::Replay::runReplay"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay9runReplayEv", "spectacularAI::Replay::runReplay"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay9setDryRunEb", "spectacularAI::Replay::setDryRun"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay9setDryRunEb", "spectacularAI::Replay::setDryRun"], [2, 5, 1, "_CPPv4N13spectacularAI6Replay9setDryRunEb", "spectacularAI::Replay::setDryRun::isDryRun"], [6, 5, 1, "_CPPv4N13spectacularAI6Replay9setDryRunEb", "spectacularAI::Replay::setDryRun::isDryRun"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay25setExtendedOutputCallbackERKNSt8functionIFv12VioOutputPtrRK8FrameSetEEE", "spectacularAI::Replay::setExtendedOutputCallback"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay25setExtendedOutputCallbackERKNSt8functionIFv12VioOutputPtrRK8FrameSetEEE", "spectacularAI::Replay::setExtendedOutputCallback"], [2, 5, 1, "_CPPv4N13spectacularAI6Replay25setExtendedOutputCallbackERKNSt8functionIFv12VioOutputPtrRK8FrameSetEEE", "spectacularAI::Replay::setExtendedOutputCallback::onOutput"], [6, 5, 1, "_CPPv4N13spectacularAI6Replay25setExtendedOutputCallbackERKNSt8functionIFv12VioOutputPtrRK8FrameSetEEE", "spectacularAI::Replay::setExtendedOutputCallback::onOutput"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay17setOutputCallbackERKNSt8functionIFv12VioOutputPtrEEE", "spectacularAI::Replay::setOutputCallback"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay17setOutputCallbackERKNSt8functionIFv12VioOutputPtrEEE", "spectacularAI::Replay::setOutputCallback"], [2, 5, 1, "_CPPv4N13spectacularAI6Replay17setOutputCallbackERKNSt8functionIFv12VioOutputPtrEEE", "spectacularAI::Replay::setOutputCallback::onOutput"], [6, 5, 1, "_CPPv4N13spectacularAI6Replay17setOutputCallbackERKNSt8functionIFv12VioOutputPtrEEE", "spectacularAI::Replay::setOutputCallback::onOutput"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay16setPlaybackSpeedEd", "spectacularAI::Replay::setPlaybackSpeed"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay16setPlaybackSpeedEd", "spectacularAI::Replay::setPlaybackSpeed"], [2, 5, 1, "_CPPv4N13spectacularAI6Replay16setPlaybackSpeedEd", "spectacularAI::Replay::setPlaybackSpeed::speed"], [6, 5, 1, "_CPPv4N13spectacularAI6Replay16setPlaybackSpeedEd", "spectacularAI::Replay::setPlaybackSpeed::speed"], [2, 4, 1, "_CPPv4N13spectacularAI6Replay11startReplayEv", "spectacularAI::Replay::startReplay"], [6, 4, 1, "_CPPv4N13spectacularAI6Replay11startReplayEv", "spectacularAI::Replay::startReplay"], [2, 4, 1, "_CPPv4N13spectacularAI6ReplayD0Ev", "spectacularAI::Replay::~Replay"], [6, 4, 1, "_CPPv4N13spectacularAI6ReplayD0Ev", "spectacularAI::Replay::~Replay"], [2, 6, 1, "_CPPv4N13spectacularAI14TrackingStatusE", "spectacularAI::TrackingStatus"], [7, 6, 1, "_CPPv4N13spectacularAI14TrackingStatusE", "spectacularAI::TrackingStatus"], [2, 7, 1, "_CPPv4N13spectacularAI14TrackingStatus4INITE", "spectacularAI::TrackingStatus::INIT"], [7, 7, 1, "_CPPv4N13spectacularAI14TrackingStatus4INITE", "spectacularAI::TrackingStatus::INIT"], [2, 7, 1, "_CPPv4N13spectacularAI14TrackingStatus13LOST_TRACKINGE", "spectacularAI::TrackingStatus::LOST_TRACKING"], [7, 7, 1, "_CPPv4N13spectacularAI14TrackingStatus13LOST_TRACKINGE", "spectacularAI::TrackingStatus::LOST_TRACKING"], [2, 7, 1, "_CPPv4N13spectacularAI14TrackingStatus8TRACKINGE", "spectacularAI::TrackingStatus::TRACKING"], [7, 7, 1, "_CPPv4N13spectacularAI14TrackingStatus8TRACKINGE", "spectacularAI::TrackingStatus::TRACKING"], [2, 2, 1, "_CPPv4N13spectacularAI8Vector3dE", "spectacularAI::Vector3d"], [7, 2, 1, "_CPPv4N13spectacularAI8Vector3dE", "spectacularAI::Vector3d"], [2, 3, 1, "_CPPv4N13spectacularAI8Vector3d1xE", "spectacularAI::Vector3d::x"], [7, 3, 1, "_CPPv4N13spectacularAI8Vector3d1xE", "spectacularAI::Vector3d::x"], [2, 3, 1, "_CPPv4N13spectacularAI8Vector3d1yE", "spectacularAI::Vector3d::y"], [7, 3, 1, "_CPPv4N13spectacularAI8Vector3d1yE", "spectacularAI::Vector3d::y"], [2, 3, 1, "_CPPv4N13spectacularAI8Vector3d1zE", "spectacularAI::Vector3d::z"], [7, 3, 1, "_CPPv4N13spectacularAI8Vector3d1zE", "spectacularAI::Vector3d::z"], [2, 2, 1, "_CPPv4N13spectacularAI8Vector3fE", "spectacularAI::Vector3f"], [7, 2, 1, "_CPPv4N13spectacularAI8Vector3fE", "spectacularAI::Vector3f"], [2, 3, 1, "_CPPv4N13spectacularAI8Vector3f1xE", "spectacularAI::Vector3f::x"], [7, 3, 1, "_CPPv4N13spectacularAI8Vector3f1xE", "spectacularAI::Vector3f::x"], [2, 3, 1, "_CPPv4N13spectacularAI8Vector3f1yE", "spectacularAI::Vector3f::y"], [7, 3, 1, "_CPPv4N13spectacularAI8Vector3f1yE", "spectacularAI::Vector3f::y"], [2, 3, 1, "_CPPv4N13spectacularAI8Vector3f1zE", "spectacularAI::Vector3f::z"], [7, 3, 1, "_CPPv4N13spectacularAI8Vector3f1zE", "spectacularAI::Vector3f::z"], [2, 2, 1, "_CPPv4N13spectacularAI9VioOutputE", "spectacularAI::VioOutput"], [7, 2, 1, "_CPPv4N13spectacularAI9VioOutputE", "spectacularAI::VioOutput"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput12accelerationE", "spectacularAI::VioOutput::acceleration"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput12accelerationE", "spectacularAI::VioOutput::acceleration"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput15angularVelocityE", "spectacularAI::VioOutput::angularVelocity"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput15angularVelocityE", "spectacularAI::VioOutput::angularVelocity"], [2, 4, 1, "_CPPv4NK13spectacularAI9VioOutput6asJsonEv", "spectacularAI::VioOutput::asJson"], [7, 4, 1, "_CPPv4NK13spectacularAI9VioOutput6asJsonEv", "spectacularAI::VioOutput::asJson"], [2, 4, 1, "_CPPv4NK13spectacularAI9VioOutput13getCameraPoseEi", "spectacularAI::VioOutput::getCameraPose"], [7, 4, 1, "_CPPv4NK13spectacularAI9VioOutput13getCameraPoseEi", "spectacularAI::VioOutput::getCameraPose"], [2, 5, 1, "_CPPv4NK13spectacularAI9VioOutput13getCameraPoseEi", "spectacularAI::VioOutput::getCameraPose::cameraId"], [7, 5, 1, "_CPPv4NK13spectacularAI9VioOutput13getCameraPoseEi", "spectacularAI::VioOutput::getCameraPose::cameraId"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput10globalPoseE", "spectacularAI::VioOutput::globalPose"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput10globalPoseE", "spectacularAI::VioOutput::globalPose"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput10pointCloudE", "spectacularAI::VioOutput::pointCloud"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput10pointCloudE", "spectacularAI::VioOutput::pointCloud"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput4poseE", "spectacularAI::VioOutput::pose"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput4poseE", "spectacularAI::VioOutput::pose"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput9poseTrailE", "spectacularAI::VioOutput::poseTrail"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput9poseTrailE", "spectacularAI::VioOutput::poseTrail"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput18positionCovarianceE", "spectacularAI::VioOutput::positionCovariance"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput18positionCovarianceE", "spectacularAI::VioOutput::positionCovariance"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput6statusE", "spectacularAI::VioOutput::status"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput6statusE", "spectacularAI::VioOutput::status"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput3tagE", "spectacularAI::VioOutput::tag"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput3tagE", "spectacularAI::VioOutput::tag"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput8velocityE", "spectacularAI::VioOutput::velocity"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput8velocityE", "spectacularAI::VioOutput::velocity"], [2, 3, 1, "_CPPv4N13spectacularAI9VioOutput18velocityCovarianceE", "spectacularAI::VioOutput::velocityCovariance"], [7, 3, 1, "_CPPv4N13spectacularAI9VioOutput18velocityCovarianceE", "spectacularAI::VioOutput::velocityCovariance"], [2, 4, 1, "_CPPv4N13spectacularAI9VioOutputD0Ev", "spectacularAI::VioOutput::~VioOutput"], [7, 4, 1, "_CPPv4N13spectacularAI9VioOutputD0Ev", "spectacularAI::VioOutput::~VioOutput"], [2, 1, 1, "_CPPv4N13spectacularAI12VioOutputPtrE", "spectacularAI::VioOutputPtr"], [7, 1, 1, "_CPPv4N13spectacularAI12VioOutputPtrE", "spectacularAI::VioOutputPtr"], [2, 2, 1, "_CPPv4N13spectacularAI13VisualizationE", "spectacularAI::Visualization"], [2, 4, 1, "_CPPv4N13spectacularAI13Visualization18createRenderTargetEv", "spectacularAI::Visualization::createRenderTarget"], [2, 4, 1, "_CPPv4NK13spectacularAI13Visualization5readyEv", "spectacularAI::Visualization::ready"], [2, 4, 1, "_CPPv4N13spectacularAI13Visualization6renderER6Bitmap", "spectacularAI::Visualization::render"], [2, 5, 1, "_CPPv4N13spectacularAI13Visualization6renderER6Bitmap", "spectacularAI::Visualization::render::bitmap"], [2, 4, 1, "_CPPv4N13spectacularAI13Visualization6updateE12VioOutputPtr", "spectacularAI::Visualization::update"], [2, 5, 1, "_CPPv4N13spectacularAI13Visualization6updateE12VioOutputPtr", "spectacularAI::Visualization::update::output"], [2, 4, 1, "_CPPv4N13spectacularAI13VisualizationD0Ev", "spectacularAI::Visualization::~Visualization"], [2, 2, 1, "_CPPv4N13spectacularAI14WgsCoordinatesE", "spectacularAI::WgsCoordinates"], [7, 2, 1, "_CPPv4N13spectacularAI14WgsCoordinatesE", "spectacularAI::WgsCoordinates"], [2, 3, 1, "_CPPv4N13spectacularAI14WgsCoordinates8altitudeE", "spectacularAI::WgsCoordinates::altitude"], [7, 3, 1, "_CPPv4N13spectacularAI14WgsCoordinates8altitudeE", "spectacularAI::WgsCoordinates::altitude"], [2, 3, 1, "_CPPv4N13spectacularAI14WgsCoordinates8latitudeE", "spectacularAI::WgsCoordinates::latitude"], [7, 3, 1, "_CPPv4N13spectacularAI14WgsCoordinates8latitudeE", "spectacularAI::WgsCoordinates::latitude"], [2, 3, 1, "_CPPv4N13spectacularAI14WgsCoordinates9longitudeE", "spectacularAI::WgsCoordinates::longitude"], [7, 3, 1, "_CPPv4N13spectacularAI14WgsCoordinates9longitudeE", "spectacularAI::WgsCoordinates::longitude"], [2, 4, 1, "_CPPv4N13spectacularAI21buildCovarianceMatrixEdd", "spectacularAI::buildCovarianceMatrix"], [7, 4, 1, "_CPPv4N13spectacularAI21buildCovarianceMatrixEdd", "spectacularAI::buildCovarianceMatrix"], [2, 5, 1, "_CPPv4N13spectacularAI21buildCovarianceMatrixEdd", "spectacularAI::buildCovarianceMatrix::horizontalSigma"], [7, 5, 1, "_CPPv4N13spectacularAI21buildCovarianceMatrixEdd", "spectacularAI::buildCovarianceMatrix::horizontalSigma"], [2, 5, 1, "_CPPv4N13spectacularAI21buildCovarianceMatrixEdd", "spectacularAI::buildCovarianceMatrix::verticalSigma"], [7, 5, 1, "_CPPv4N13spectacularAI21buildCovarianceMatrixEdd", "spectacularAI::buildCovarianceMatrix::verticalSigma"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPluginE", "spectacularAI::daiPlugin"], [10, 1, 1, "_CPPv4N13spectacularAI9daiPluginE", "spectacularAI::daiPlugin"], [10, 1, 1, "_CPPv4N13spectacularAI9daiPluginE", "spectacularAI::daiPlugin"], [10, 1, 1, "_CPPv4N13spectacularAI9daiPluginE", "spectacularAI::daiPlugin"], [10, 1, 1, "_CPPv4N13spectacularAI9daiPluginE", "spectacularAI::daiPlugin"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin13ConfigurationE", "spectacularAI::daiPlugin::Configuration"], [10, 2, 1, "_CPPv4N13spectacularAI9daiPlugin13ConfigurationE", "spectacularAI::daiPlugin::Configuration"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14accFrequencyHzE", "spectacularAI::daiPlugin::Configuration::accFrequencyHz"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14accFrequencyHzE", "spectacularAI::daiPlugin::Configuration::accFrequencyHz"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration12aprilTagPathE", "spectacularAI::daiPlugin::Configuration::aprilTagPath"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration12aprilTagPathE", "spectacularAI::daiPlugin::Configuration::aprilTagPath"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14depthQueueSizeE", "spectacularAI::daiPlugin::Configuration::depthQueueSize"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14depthQueueSizeE", "spectacularAI::daiPlugin::Configuration::depthQueueSize"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration20depthScaleCorrectionE", "spectacularAI::daiPlugin::Configuration::depthScaleCorrection"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration20depthScaleCorrectionE", "spectacularAI::daiPlugin::Configuration::depthScaleCorrection"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14disableCamerasE", "spectacularAI::daiPlugin::Configuration::disableCameras"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14disableCamerasE", "spectacularAI::daiPlugin::Configuration::disableCameras"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration24ensureSufficientUsbSpeedE", "spectacularAI::daiPlugin::Configuration::ensureSufficientUsbSpeed"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration24ensureSufficientUsbSpeedE", "spectacularAI::daiPlugin::Configuration::ensureSufficientUsbSpeed"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration17extendedDisparityE", "spectacularAI::daiPlugin::Configuration::extendedDisparity"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration17extendedDisparityE", "spectacularAI::daiPlugin::Configuration::extendedDisparity"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration7fastImuE", "spectacularAI::daiPlugin::Configuration::fastImu"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration7fastImuE", "spectacularAI::daiPlugin::Configuration::fastImu"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration7fastVioE", "spectacularAI::daiPlugin::Configuration::fastVio"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration7fastVioE", "spectacularAI::daiPlugin::Configuration::fastVio"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14forceRectifiedE", "spectacularAI::daiPlugin::Configuration::forceRectified"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14forceRectifiedE", "spectacularAI::daiPlugin::Configuration::forceRectified"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration16forceUnrectifiedE", "spectacularAI::daiPlugin::Configuration::forceUnrectified"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration16forceUnrectifiedE", "spectacularAI::daiPlugin::Configuration::forceUnrectified"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15gyroFrequencyHzE", "spectacularAI::daiPlugin::Configuration::gyroFrequencyHz"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15gyroFrequencyHzE", "spectacularAI::daiPlugin::Configuration::gyroFrequencyHz"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14imuFrequencyHzE", "spectacularAI::daiPlugin::Configuration::imuFrequencyHz"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration14imuFrequencyHzE", "spectacularAI::daiPlugin::Configuration::imuFrequencyHz"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration12imuQueueSizeE", "spectacularAI::daiPlugin::Configuration::imuQueueSize"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration12imuQueueSizeE", "spectacularAI::daiPlugin::Configuration::imuQueueSize"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration9imuToGnssE", "spectacularAI::daiPlugin::Configuration::imuToGnss"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration9imuToGnssE", "spectacularAI::daiPlugin::Configuration::imuToGnss"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15inputResolutionE", "spectacularAI::daiPlugin::Configuration::inputResolution"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15inputResolutionE", "spectacularAI::daiPlugin::Configuration::inputResolution"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration18internalParametersE", "spectacularAI::daiPlugin::Configuration::internalParameters"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration18internalParametersE", "spectacularAI::daiPlugin::Configuration::internalParameters"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration30keyframeCandidateEveryNthFrameE", "spectacularAI::daiPlugin::Configuration::keyframeCandidateEveryNthFrame"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration30keyframeCandidateEveryNthFrameE", "spectacularAI::daiPlugin::Configuration::keyframeCandidateEveryNthFrame"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration11mapLoadPathE", "spectacularAI::daiPlugin::Configuration::mapLoadPath"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration11mapLoadPathE", "spectacularAI::daiPlugin::Configuration::mapLoadPath"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration11mapSavePathE", "spectacularAI::daiPlugin::Configuration::mapSavePath"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration11mapSavePathE", "spectacularAI::daiPlugin::Configuration::mapSavePath"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration17meshRectificationE", "spectacularAI::daiPlugin::Configuration::meshRectification"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration17meshRectificationE", "spectacularAI::daiPlugin::Configuration::meshRectification"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration13monoQueueSizeE", "spectacularAI::daiPlugin::Configuration::monoQueueSize"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration13monoQueueSizeE", "spectacularAI::daiPlugin::Configuration::monoQueueSize"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15recordingFolderE", "spectacularAI::daiPlugin::Configuration::recordingFolder"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15recordingFolderE", "spectacularAI::daiPlugin::Configuration::recordingFolder"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration13recordingOnlyE", "spectacularAI::daiPlugin::Configuration::recordingOnly"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration13recordingOnlyE", "spectacularAI::daiPlugin::Configuration::recordingOnly"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration18silenceUsbWarningsE", "spectacularAI::daiPlugin::Configuration::silenceUsbWarnings"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration18silenceUsbWarningsE", "spectacularAI::daiPlugin::Configuration::silenceUsbWarnings"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration8useColorE", "spectacularAI::daiPlugin::Configuration::useColor"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration8useColorE", "spectacularAI::daiPlugin::Configuration::useColor"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration21useColorStereoCamerasE", "spectacularAI::daiPlugin::Configuration::useColorStereoCameras"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration21useColorStereoCamerasE", "spectacularAI::daiPlugin::Configuration::useColorStereoCameras"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15useEncodedVideoE", "spectacularAI::daiPlugin::Configuration::useEncodedVideo"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15useEncodedVideoE", "spectacularAI::daiPlugin::Configuration::useEncodedVideo"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration17useFeatureTrackerE", "spectacularAI::daiPlugin::Configuration::useFeatureTracker"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration17useFeatureTrackerE", "spectacularAI::daiPlugin::Configuration::useFeatureTracker"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration12useGrayDepthE", "spectacularAI::daiPlugin::Configuration::useGrayDepth"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration12useGrayDepthE", "spectacularAI::daiPlugin::Configuration::useGrayDepth"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15useReaderThreadE", "spectacularAI::daiPlugin::Configuration::useReaderThread"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration15useReaderThreadE", "spectacularAI::daiPlugin::Configuration::useReaderThread"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration7useSlamE", "spectacularAI::daiPlugin::Configuration::useSlam"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration7useSlamE", "spectacularAI::daiPlugin::Configuration::useSlam"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration9useStereoE", "spectacularAI::daiPlugin::Configuration::useStereo"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration9useStereoE", "spectacularAI::daiPlugin::Configuration::useStereo"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration18useVioAutoExposureE", "spectacularAI::daiPlugin::Configuration::useVioAutoExposure"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13Configuration18useVioAutoExposureE", "spectacularAI::daiPlugin::Configuration::useVioAutoExposure"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin28DaiCalibrationHandlerAdapterE", "spectacularAI::daiPlugin::DaiCalibrationHandlerAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin23DaiCameraControlAdapterE", "spectacularAI::daiPlugin::DaiCameraControlAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin30DaiColorInputResolutionAdapterE", "spectacularAI::daiPlugin::DaiColorInputResolutionAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin24DaiDataInputQueueAdapterE", "spectacularAI::daiPlugin::DaiDataInputQueueAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin25DaiDataOutputQueueAdapterE", "spectacularAI::daiPlugin::DaiDataOutputQueueAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin16DaiDeviceAdapterE", "spectacularAI::daiPlugin::DaiDeviceAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin17DaiIMUDataAdapterE", "spectacularAI::daiPlugin::DaiIMUDataAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin18DaiImgFrameAdapterE", "spectacularAI::daiPlugin::DaiImgFrameAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin25DaiInputResolutionAdapterE", "spectacularAI::daiPlugin::DaiInputResolutionAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin18DaiPipelineAdapterE", "spectacularAI::daiPlugin::DaiPipelineAdapter"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin25DaiTrackedFeaturesAdapterE", "spectacularAI::daiPlugin::DaiTrackedFeaturesAdapter"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin5HooksE", "spectacularAI::daiPlugin::Hooks"], [10, 2, 1, "_CPPv4N13spectacularAI9daiPlugin5HooksE", "spectacularAI::daiPlugin::Hooks"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks5colorE", "spectacularAI::daiPlugin::Hooks::color"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks5colorE", "spectacularAI::daiPlugin::Hooks::color"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks5depthE", "spectacularAI::daiPlugin::Hooks::depth"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks5depthE", "spectacularAI::daiPlugin::Hooks::depth"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks3imuE", "spectacularAI::daiPlugin::Hooks::imu"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks3imuE", "spectacularAI::daiPlugin::Hooks::imu"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks11monoPrimaryE", "spectacularAI::daiPlugin::Hooks::monoPrimary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks11monoPrimaryE", "spectacularAI::daiPlugin::Hooks::monoPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks13monoSecondaryE", "spectacularAI::daiPlugin::Hooks::monoSecondary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks13monoSecondaryE", "spectacularAI::daiPlugin::Hooks::monoSecondary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks15trackedFeaturesE", "spectacularAI::daiPlugin::Hooks::trackedFeatures"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin5Hooks15trackedFeaturesE", "spectacularAI::daiPlugin::Hooks::trackedFeatures"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin8PipelineE", "spectacularAI::daiPlugin::Pipeline"], [10, 2, 1, "_CPPv4N13spectacularAI9daiPlugin8PipelineE", "spectacularAI::daiPlugin::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipeline", "spectacularAI::daiPlugin::Pipeline::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13Configuration", "spectacularAI::daiPlugin::Pipeline::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipeline", "spectacularAI::daiPlugin::Pipeline::Pipeline"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13Configuration", "spectacularAI::daiPlugin::Pipeline::Pipeline"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13Configuration", "spectacularAI::daiPlugin::Pipeline::Pipeline::config"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline::config"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13Configuration", "spectacularAI::daiPlugin::Pipeline::Pipeline::config"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline::config"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipeline", "spectacularAI::daiPlugin::Pipeline::Pipeline::daiPipeline"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13Configuration", "spectacularAI::daiPlugin::Pipeline::Pipeline::daiPipeline"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline::daiPipeline"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipeline", "spectacularAI::daiPlugin::Pipeline::Pipeline::daiPipeline"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13Configuration", "spectacularAI::daiPlugin::Pipeline::Pipeline::daiPipeline"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline::daiPipeline"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline::onMapperOutput"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::daiPlugin::Pipeline::Pipeline::onMapperOutput"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline5colorE", "spectacularAI::daiPlugin::Pipeline::color"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline5colorE", "spectacularAI::daiPlugin::Pipeline::color"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15colorImageManipE", "spectacularAI::daiPlugin::Pipeline::colorImageManip"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15colorImageManipE", "spectacularAI::daiPlugin::Pipeline::colorImageManip"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9colorLeftE", "spectacularAI::daiPlugin::Pipeline::colorLeft"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9colorLeftE", "spectacularAI::daiPlugin::Pipeline::colorLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12colorPrimaryE", "spectacularAI::daiPlugin::Pipeline::colorPrimary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12colorPrimaryE", "spectacularAI::daiPlugin::Pipeline::colorPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline10colorRightE", "spectacularAI::daiPlugin::Pipeline::colorRight"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline10colorRightE", "spectacularAI::daiPlugin::Pipeline::colorRight"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14colorSecondaryE", "spectacularAI::daiPlugin::Pipeline::colorSecondary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14colorSecondaryE", "spectacularAI::daiPlugin::Pipeline::colorSecondary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13configurationE", "spectacularAI::daiPlugin::Pipeline::configuration"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13configurationE", "spectacularAI::daiPlugin::Pipeline::configuration"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14featureTrackerE", "spectacularAI::daiPlugin::Pipeline::featureTracker"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14featureTrackerE", "spectacularAI::daiPlugin::Pipeline::featureTracker"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline5hooksE", "spectacularAI::daiPlugin::Pipeline::hooks"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline5hooksE", "spectacularAI::daiPlugin::Pipeline::hooks"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline3imuE", "spectacularAI::daiPlugin::Pipeline::imu"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline3imuE", "spectacularAI::daiPlugin::Pipeline::imu"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15imuToCameraLeftE", "spectacularAI::daiPlugin::Pipeline::imuToCameraLeft"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15imuToCameraLeftE", "spectacularAI::daiPlugin::Pipeline::imuToCameraLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8monoLeftE", "spectacularAI::daiPlugin::Pipeline::monoLeft"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8monoLeftE", "spectacularAI::daiPlugin::Pipeline::monoLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline11monoPrimaryE", "spectacularAI::daiPlugin::Pipeline::monoPrimary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline11monoPrimaryE", "spectacularAI::daiPlugin::Pipeline::monoPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9monoRightE", "spectacularAI::daiPlugin::Pipeline::monoRight"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9monoRightE", "spectacularAI::daiPlugin::Pipeline::monoRight"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13monoSecondaryE", "spectacularAI::daiPlugin::Pipeline::monoSecondary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13monoSecondaryE", "spectacularAI::daiPlugin::Pipeline::monoSecondary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14onMapperOutputE", "spectacularAI::daiPlugin::Pipeline::onMapperOutput"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14onMapperOutputE", "spectacularAI::daiPlugin::Pipeline::onMapperOutput"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13scriptPrimaryE", "spectacularAI::daiPlugin::Pipeline::scriptPrimary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13scriptPrimaryE", "spectacularAI::daiPlugin::Pipeline::scriptPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15scriptSecondaryE", "spectacularAI::daiPlugin::Pipeline::scriptSecondary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15scriptSecondaryE", "spectacularAI::daiPlugin::Pipeline::scriptSecondary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline30spectacularAIConfigurationYAMLE", "spectacularAI::daiPlugin::Pipeline::spectacularAIConfigurationYAML"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline30spectacularAIConfigurationYAMLE", "spectacularAI::daiPlugin::Pipeline::spectacularAIConfigurationYAML"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12startSessionE9DaiDevice", "spectacularAI::daiPlugin::Pipeline::startSession"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12startSessionE9DaiDevice", "spectacularAI::daiPlugin::Pipeline::startSession"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12startSessionE9DaiDevice", "spectacularAI::daiPlugin::Pipeline::startSession::device"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12startSessionE9DaiDevice", "spectacularAI::daiPlugin::Pipeline::startSession::device"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline6stereoE", "spectacularAI::daiPlugin::Pipeline::stereo"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline6stereoE", "spectacularAI::daiPlugin::Pipeline::stereo"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline19videoEncoderPrimaryE", "spectacularAI::daiPlugin::Pipeline::videoEncoderPrimary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline19videoEncoderPrimaryE", "spectacularAI::daiPlugin::Pipeline::videoEncoderPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline21videoEncoderSecondaryE", "spectacularAI::daiPlugin::Pipeline::videoEncoderSecondary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline21videoEncoderSecondaryE", "spectacularAI::daiPlugin::Pipeline::videoEncoderSecondary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline10xinControlE", "spectacularAI::daiPlugin::Pipeline::xinControl"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline10xinControlE", "spectacularAI::daiPlugin::Pipeline::xinControl"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9xoutDepthE", "spectacularAI::daiPlugin::Pipeline::xoutDepth"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9xoutDepthE", "spectacularAI::daiPlugin::Pipeline::xoutDepth"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12xoutFeaturesE", "spectacularAI::daiPlugin::Pipeline::xoutFeatures"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12xoutFeaturesE", "spectacularAI::daiPlugin::Pipeline::xoutFeatures"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline7xoutImuE", "spectacularAI::daiPlugin::Pipeline::xoutImu"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline7xoutImuE", "spectacularAI::daiPlugin::Pipeline::xoutImu"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8xoutLeftE", "spectacularAI::daiPlugin::Pipeline::xoutLeft"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8xoutLeftE", "spectacularAI::daiPlugin::Pipeline::xoutLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline11xoutPrimaryE", "spectacularAI::daiPlugin::Pipeline::xoutPrimary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline11xoutPrimaryE", "spectacularAI::daiPlugin::Pipeline::xoutPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9xoutRightE", "spectacularAI::daiPlugin::Pipeline::xoutRight"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9xoutRightE", "spectacularAI::daiPlugin::Pipeline::xoutRight"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline17xoutScriptPrimaryE", "spectacularAI::daiPlugin::Pipeline::xoutScriptPrimary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline17xoutScriptPrimaryE", "spectacularAI::daiPlugin::Pipeline::xoutScriptPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline19xoutScriptSecondaryE", "spectacularAI::daiPlugin::Pipeline::xoutScriptSecondary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline19xoutScriptSecondaryE", "spectacularAI::daiPlugin::Pipeline::xoutScriptSecondary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13xoutSecondaryE", "spectacularAI::daiPlugin::Pipeline::xoutSecondary"], [10, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13xoutSecondaryE", "spectacularAI::daiPlugin::Pipeline::xoutSecondary"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin18PipelineExtensionsE", "spectacularAI::daiPlugin::PipelineExtensions"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin18PipelineExtensions3raeE", "spectacularAI::daiPlugin::PipelineExtensions::rae"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin11PipelineRAEE", "spectacularAI::daiPlugin::PipelineRAE"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin11PipelineRAE4backE", "spectacularAI::daiPlugin::PipelineRAE::back"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin11PipelineRAE5frontE", "spectacularAI::daiPlugin::PipelineRAE::front"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNodeE", "spectacularAI::daiPlugin::RAECameraNode"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode9colorLeftE", "spectacularAI::daiPlugin::RAECameraNode::colorLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode10colorRightE", "spectacularAI::daiPlugin::RAECameraNode::colorRight"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode14featureTrackerE", "spectacularAI::daiPlugin::RAECameraNode::featureTracker"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode10scriptLeftE", "spectacularAI::daiPlugin::RAECameraNode::scriptLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode11scriptRightE", "spectacularAI::daiPlugin::RAECameraNode::scriptRight"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode11stereoDepthE", "spectacularAI::daiPlugin::RAECameraNode::stereoDepth"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode10xinControlE", "spectacularAI::daiPlugin::RAECameraNode::xinControl"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode9xoutDepthE", "spectacularAI::daiPlugin::RAECameraNode::xoutDepth"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode12xoutFeaturesE", "spectacularAI::daiPlugin::RAECameraNode::xoutFeatures"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode8xoutLeftE", "spectacularAI::daiPlugin::RAECameraNode::xoutLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode9xoutRightE", "spectacularAI::daiPlugin::RAECameraNode::xoutRight"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode14xoutScriptLeftE", "spectacularAI::daiPlugin::RAECameraNode::xoutScriptLeft"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode15xoutScriptRightE", "spectacularAI::daiPlugin::RAECameraNode::xoutScriptRight"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin24RawImgFrameTypeConverterE", "spectacularAI::daiPlugin::RawImgFrameTypeConverter"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin24RawImgFrameTypeConverter13getStringTypeERKN3dai11RawImgFrame4TypeE", "spectacularAI::daiPlugin::RawImgFrameTypeConverter::getStringType"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin24RawImgFrameTypeConverter13getStringTypeERKN3dai11RawImgFrame4TypeE", "spectacularAI::daiPlugin::RawImgFrameTypeConverter::getStringType::type"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin7SessionE", "spectacularAI::daiPlugin::Session"], [10, 2, 1, "_CPPv4N13spectacularAI9daiPlugin7SessionE", "spectacularAI::daiPlugin::Session"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose::orientationVariance"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose::orientationVariance"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose::pose"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose::pose"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose::positionCovariance"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd", "spectacularAI::daiPlugin::Session::addAbsolutePose::positionCovariance"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss::coordinates"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss::coordinates"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss::enuPositionCovariance"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss::enuPositionCovariance"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss::timestamp"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d", "spectacularAI::daiPlugin::Session::addGnss::timestamp"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session10addTriggerEdi", "spectacularAI::daiPlugin::Session::addTrigger"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session10addTriggerEdi", "spectacularAI::daiPlugin::Session::addTrigger"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session10addTriggerEdi", "spectacularAI::daiPlugin::Session::addTrigger::t"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session10addTriggerEdi", "spectacularAI::daiPlugin::Session::addTrigger::t"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session10addTriggerEdi", "spectacularAI::daiPlugin::Session::addTrigger::tag"], [10, 5, 1, "_CPPv4N13spectacularAI9daiPlugin7Session10addTriggerEdi", "spectacularAI::daiPlugin::Session::addTrigger::tag"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session9getOutputEv", "spectacularAI::daiPlugin::Session::getOutput"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session9getOutputEv", "spectacularAI::daiPlugin::Session::getOutput"], [2, 4, 1, "_CPPv4NK13spectacularAI9daiPlugin7Session16getRgbCameraPoseERK9VioOutput", "spectacularAI::daiPlugin::Session::getRgbCameraPose"], [10, 4, 1, "_CPPv4NK13spectacularAI9daiPlugin7Session16getRgbCameraPoseERK9VioOutput", "spectacularAI::daiPlugin::Session::getRgbCameraPose"], [2, 5, 1, "_CPPv4NK13spectacularAI9daiPlugin7Session16getRgbCameraPoseERK9VioOutput", "spectacularAI::daiPlugin::Session::getRgbCameraPose::vioOut"], [10, 5, 1, "_CPPv4NK13spectacularAI9daiPlugin7Session16getRgbCameraPoseERK9VioOutput", "spectacularAI::daiPlugin::Session::getRgbCameraPose::vioOut"], [2, 4, 1, "_CPPv4NK13spectacularAI9daiPlugin7Session9hasOutputEv", "spectacularAI::daiPlugin::Session::hasOutput"], [10, 4, 1, "_CPPv4NK13spectacularAI9daiPlugin7Session9hasOutputEv", "spectacularAI::daiPlugin::Session::hasOutput"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session13waitForOutputEv", "spectacularAI::daiPlugin::Session::waitForOutput"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session13waitForOutputEv", "spectacularAI::daiPlugin::Session::waitForOutput"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session4workEv", "spectacularAI::daiPlugin::Session::work"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7Session4workEv", "spectacularAI::daiPlugin::Session::work"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7SessionD0Ev", "spectacularAI::daiPlugin::Session::~Session"], [10, 4, 1, "_CPPv4N13spectacularAI9daiPlugin7SessionD0Ev", "spectacularAI::daiPlugin::Session::~Session"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin29getDaiFeaturesTimestampDeviceERKN3dai15TrackedFeaturesE", "spectacularAI::daiPlugin::getDaiFeaturesTimestampDevice"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin29getDaiFeaturesTimestampDeviceERKN3dai15TrackedFeaturesE", "spectacularAI::daiPlugin::getDaiFeaturesTimestampDevice::features"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin23getDaiImageExposureTimeERKN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageExposureTime"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin23getDaiImageExposureTimeERKN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageExposureTime::img"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin18getDaiImageRawDataERN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageRawData"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin18getDaiImageRawDataERN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageRawData::img"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin22getDaiImageRawDataSizeERN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageRawDataSize"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin22getDaiImageRawDataSizeERN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageRawDataSize::img"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin26getDaiImageTimestampDeviceERKN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageTimestampDevice"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin26getDaiImageTimestampDeviceERKN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageTimestampDevice::img"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin15getDaiImageTypeERKN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageType"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin15getDaiImageTypeERKN3dai8ImgFrameE", "spectacularAI::daiPlugin::getDaiImageType::img"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin24getDaiImuTimestampDeviceERKN3dai9IMUReportE", "spectacularAI::daiPlugin::getDaiImuTimestampDevice"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin24getDaiImuTimestampDeviceERKN3dai9IMUReportE", "spectacularAI::daiPlugin::getDaiImuTimestampDevice::imuReport"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin18getDaiUsbSpeedNameEN3dai8UsbSpeedE", "spectacularAI::daiPlugin::getDaiUsbSpeedName"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin18getDaiUsbSpeedNameEN3dai8UsbSpeedE", "spectacularAI::daiPlugin::getDaiUsbSpeedName::usbSpeed"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin19getDaiUsbSpeedValueEN3dai8UsbSpeedE", "spectacularAI::daiPlugin::getDaiUsbSpeedValue"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin19getDaiUsbSpeedValueEN3dai8UsbSpeedE", "spectacularAI::daiPlugin::getDaiUsbSpeedValue::usbSpeed"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin29getJsonStringOrEmptyValueSafeERKN8nlohmann4jsonEPKc", "spectacularAI::daiPlugin::getJsonStringOrEmptyValueSafe"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin29getJsonStringOrEmptyValueSafeERKN8nlohmann4jsonEPKc", "spectacularAI::daiPlugin::getJsonStringOrEmptyValueSafe::json"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin29getJsonStringOrEmptyValueSafeERKN8nlohmann4jsonEPKc", "spectacularAI::daiPlugin::getJsonStringOrEmptyValueSafe::key"], [2, 1, 1, "_CPPv4N13spectacularAI9daiPlugin8internalE", "spectacularAI::daiPlugin::internal"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibrationE", "spectacularAI::daiPlugin::internal::CameraCalibration"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration27colorCameraDistortionCoeffsE", "spectacularAI::daiPlugin::internal::CameraCalibration::colorCameraDistortionCoeffs"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration15colorIntrinsicsE", "spectacularAI::daiPlugin::internal::CameraCalibration::colorIntrinsics"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration15colorResolutionE", "spectacularAI::daiPlugin::internal::CameraCalibration::colorResolution"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration14colorToPrimaryE", "spectacularAI::daiPlugin::internal::CameraCalibration::colorToPrimary"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration10depthScaleE", "spectacularAI::daiPlugin::internal::CameraCalibration::depthScale"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration4jsonE", "spectacularAI::daiPlugin::internal::CameraCalibration::json"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration16stereoResolutionE", "spectacularAI::daiPlugin::internal::CameraCalibration::stereoResolution"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin8internal20ColorInputResolutionE", "spectacularAI::daiPlugin::internal::ColorInputResolution"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal20ColorInputResolution7daiResoE", "spectacularAI::daiPlugin::internal::ColorInputResolution::daiReso"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal20ColorInputResolution10resolutionE", "spectacularAI::daiPlugin::internal::ColorInputResolution::resolution"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin8internal15ColorResolutionE", "spectacularAI::daiPlugin::internal::ColorResolution"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal15ColorResolution5inputE", "spectacularAI::daiPlugin::internal::ColorResolution::input"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal15ColorResolution7previewE", "spectacularAI::daiPlugin::internal::ColorResolution::preview"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin8internal14MonoResolutionE", "spectacularAI::daiPlugin::internal::MonoResolution"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal14MonoResolution7daiResoE", "spectacularAI::daiPlugin::internal::MonoResolution::daiReso"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal14MonoResolution10resolutionE", "spectacularAI::daiPlugin::internal::MonoResolution::resolution"], [2, 2, 1, "_CPPv4N13spectacularAI9daiPlugin8internal10ResolutionE", "spectacularAI::daiPlugin::internal::Resolution"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal10Resolution6heightE", "spectacularAI::daiPlugin::internal::Resolution::height"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal10Resolution5widthE", "spectacularAI::daiPlugin::internal::Resolution::width"], [2, 3, 1, "_CPPv4N13spectacularAI9daiPlugin8internal10STREAM_TAGE", "spectacularAI::daiPlugin::internal::STREAM_TAG"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal27convertColorInputResolutionERKNSt6stringE", "spectacularAI::daiPlugin::internal::convertColorInputResolution"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal27convertColorInputResolutionERKNSt6stringE", "spectacularAI::daiPlugin::internal::convertColorInputResolution::reso"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal22convertInputResolutionERKNSt6stringE", "spectacularAI::daiPlugin::internal::convertInputResolution"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal22convertInputResolutionERKNSt6stringE", "spectacularAI::daiPlugin::internal::convertInputResolution::reso"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal14getCalibrationERK13ConfigurationRK8Matrix4d16DaiDeviceAdapter", "spectacularAI::daiPlugin::internal::getCalibration"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal14getCalibrationERK13ConfigurationRK8Matrix4d16DaiDeviceAdapter", "spectacularAI::daiPlugin::internal::getCalibration::config"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal14getCalibrationERK13ConfigurationRK8Matrix4d16DaiDeviceAdapter", "spectacularAI::daiPlugin::internal::getCalibration::device"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal14getCalibrationERK13ConfigurationRK8Matrix4d16DaiDeviceAdapter", "spectacularAI::daiPlugin::internal::getCalibration::imuToCamera"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal27getSupportedVideoResolutionERK13Configuration", "spectacularAI::daiPlugin::internal::getSupportedVideoResolution"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal27getSupportedVideoResolutionERK13Configuration", "spectacularAI::daiPlugin::internal::getSupportedVideoResolution::config"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal20getYAMLConfigurationERK13Configuration", "spectacularAI::daiPlugin::internal::getYAMLConfiguration"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal20getYAMLConfigurationERK13Configuration", "spectacularAI::daiPlugin::internal::getYAMLConfiguration::config"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal11isDeviceRAEERK13Configuration", "spectacularAI::daiPlugin::internal::isDeviceRAE"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal11isDeviceRAEERK13Configuration", "spectacularAI::daiPlugin::internal::isDeviceRAE::config"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal9matrixMulERK8Matrix4dRK8Matrix4d", "spectacularAI::daiPlugin::internal::matrixMul"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal9matrixMulERK8Matrix4dRK8Matrix4d", "spectacularAI::daiPlugin::internal::matrixMul::a"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal9matrixMulERK8Matrix4dRK8Matrix4d", "spectacularAI::daiPlugin::internal::matrixMul::b"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal27selectNearbyColorResolutionEiRKNSt6stringE", "spectacularAI::daiPlugin::internal::selectNearbyColorResolution"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal27selectNearbyColorResolutionEiRKNSt6stringE", "spectacularAI::daiPlugin::internal::selectNearbyColorResolution::colorInputResolution"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal27selectNearbyColorResolutionEiRKNSt6stringE", "spectacularAI::daiPlugin::internal::selectNearbyColorResolution::monoHeight"], [2, 4, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17useRaeBackCamerasERK13Configuration", "spectacularAI::daiPlugin::internal::useRaeBackCameras"], [2, 5, 1, "_CPPv4N13spectacularAI9daiPlugin8internal17useRaeBackCamerasERK13Configuration", "spectacularAI::daiPlugin::internal::useRaeBackCameras::config"], [2, 4, 1, "_CPPv4N13spectacularAI24getHorizontalUncertaintyERK8Matrix3d", "spectacularAI::getHorizontalUncertainty"], [7, 4, 1, "_CPPv4N13spectacularAI24getHorizontalUncertaintyERK8Matrix3d", "spectacularAI::getHorizontalUncertainty"], [2, 5, 1, "_CPPv4N13spectacularAI24getHorizontalUncertaintyERK8Matrix3d", "spectacularAI::getHorizontalUncertainty::covariance"], [7, 5, 1, "_CPPv4N13spectacularAI24getHorizontalUncertaintyERK8Matrix3d", "spectacularAI::getHorizontalUncertainty::covariance"], [2, 4, 1, "_CPPv4N13spectacularAI20getQuaternionHeadingERK10Quaternion", "spectacularAI::getQuaternionHeading"], [7, 4, 1, "_CPPv4N13spectacularAI20getQuaternionHeadingERK10Quaternion", "spectacularAI::getQuaternionHeading"], [2, 5, 1, "_CPPv4N13spectacularAI20getQuaternionHeadingERK10Quaternion", "spectacularAI::getQuaternionHeading::q"], [7, 5, 1, "_CPPv4N13spectacularAI20getQuaternionHeadingERK10Quaternion", "spectacularAI::getQuaternionHeading::q"], [2, 4, 1, "_CPPv4N13spectacularAI18getQuaternionPitchERK10Quaternion", "spectacularAI::getQuaternionPitch"], [7, 4, 1, "_CPPv4N13spectacularAI18getQuaternionPitchERK10Quaternion", "spectacularAI::getQuaternionPitch"], [2, 5, 1, "_CPPv4N13spectacularAI18getQuaternionPitchERK10Quaternion", "spectacularAI::getQuaternionPitch::q"], [7, 5, 1, "_CPPv4N13spectacularAI18getQuaternionPitchERK10Quaternion", "spectacularAI::getQuaternionPitch::q"], [2, 4, 1, "_CPPv4N13spectacularAI17getQuaternionRollERK10Quaternion", "spectacularAI::getQuaternionRoll"], [7, 4, 1, "_CPPv4N13spectacularAI17getQuaternionRollERK10Quaternion", "spectacularAI::getQuaternionRoll"], [2, 5, 1, "_CPPv4N13spectacularAI17getQuaternionRollERK10Quaternion", "spectacularAI::getQuaternionRoll::q"], [7, 5, 1, "_CPPv4N13spectacularAI17getQuaternionRollERK10Quaternion", "spectacularAI::getQuaternionRoll::q"], [2, 4, 1, "_CPPv4N13spectacularAI22getVerticalUncertaintyERK8Matrix3d", "spectacularAI::getVerticalUncertainty"], [7, 4, 1, "_CPPv4N13spectacularAI22getVerticalUncertaintyERK8Matrix3d", "spectacularAI::getVerticalUncertainty"], [2, 5, 1, "_CPPv4N13spectacularAI22getVerticalUncertaintyERK8Matrix3d", "spectacularAI::getVerticalUncertainty::covariance"], [7, 5, 1, "_CPPv4N13spectacularAI22getVerticalUncertaintyERK8Matrix3d", "spectacularAI::getVerticalUncertainty::covariance"], [2, 1, 1, "_CPPv4N13spectacularAI9k4aPluginE", "spectacularAI::k4aPlugin"], [9, 1, 1, "_CPPv4N13spectacularAI9k4aPluginE", "spectacularAI::k4aPlugin"], [9, 1, 1, "_CPPv4N13spectacularAI9k4aPluginE", "spectacularAI::k4aPlugin"], [9, 1, 1, "_CPPv4N13spectacularAI9k4aPluginE", "spectacularAI::k4aPlugin"], [2, 2, 1, "_CPPv4N13spectacularAI9k4aPlugin13ConfigurationE", "spectacularAI::k4aPlugin::Configuration"], [9, 2, 1, "_CPPv4N13spectacularAI9k4aPlugin13ConfigurationE", "spectacularAI::k4aPlugin::Configuration"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12alignedDepthE", "spectacularAI::k4aPlugin::Configuration::alignedDepth"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12alignedDepthE", "spectacularAI::k4aPlugin::Configuration::alignedDepth"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12aprilTagPathE", "spectacularAI::k4aPlugin::Configuration::aprilTagPath"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12aprilTagPathE", "spectacularAI::k4aPlugin::Configuration::aprilTagPath"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration17distortionEnabledE", "spectacularAI::k4aPlugin::Configuration::distortionEnabled"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration17distortionEnabledE", "spectacularAI::k4aPlugin::Configuration::distortionEnabled"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7fastVioE", "spectacularAI::k4aPlugin::Configuration::fastVio"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7fastVioE", "spectacularAI::k4aPlugin::Configuration::fastVio"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration18internalParametersE", "spectacularAI::k4aPlugin::Configuration::internalParameters"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration18internalParametersE", "spectacularAI::k4aPlugin::Configuration::internalParameters"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9k4aConfigE", "spectacularAI::k4aPlugin::Configuration::k4aConfig"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9k4aConfigE", "spectacularAI::k4aPlugin::Configuration::k4aConfig"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration19postProcessFinalMapE", "spectacularAI::k4aPlugin::Configuration::postProcessFinalMap"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration19postProcessFinalMapE", "spectacularAI::k4aPlugin::Configuration::postProcessFinalMap"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration15recordingFolderE", "spectacularAI::k4aPlugin::Configuration::recordingFolder"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration15recordingFolderE", "spectacularAI::k4aPlugin::Configuration::recordingFolder"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration13recordingOnlyE", "spectacularAI::k4aPlugin::Configuration::recordingOnly"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration13recordingOnlyE", "spectacularAI::k4aPlugin::Configuration::recordingOnly"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7useSlamE", "spectacularAI::k4aPlugin::Configuration::useSlam"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7useSlamE", "spectacularAI::k4aPlugin::Configuration::useSlam"], [2, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9useStereoE", "spectacularAI::k4aPlugin::Configuration::useStereo"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9useStereoE", "spectacularAI::k4aPlugin::Configuration::useStereo"], [2, 2, 1, "_CPPv4N13spectacularAI9k4aPlugin8PipelineE", "spectacularAI::k4aPlugin::Pipeline"], [9, 2, 1, "_CPPv4N13spectacularAI9k4aPlugin8PipelineE", "spectacularAI::k4aPlugin::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::k4aPlugin::Pipeline::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::k4aPlugin::Pipeline::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineEv", "spectacularAI::k4aPlugin::Pipeline::Pipeline"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::k4aPlugin::Pipeline::Pipeline"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::k4aPlugin::Pipeline::Pipeline"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineEv", "spectacularAI::k4aPlugin::Pipeline::Pipeline"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::k4aPlugin::Pipeline::Pipeline::config"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::k4aPlugin::Pipeline::Pipeline::config"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::k4aPlugin::Pipeline::Pipeline::config"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::k4aPlugin::Pipeline::Pipeline::config"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::k4aPlugin::Pipeline::Pipeline::onMapperOutput"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::k4aPlugin::Pipeline::Pipeline::onMapperOutput"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline15getDeviceHandleEv", "spectacularAI::k4aPlugin::Pipeline::getDeviceHandle"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline15getDeviceHandleEv", "spectacularAI::k4aPlugin::Pipeline::getDeviceHandle"], [9, 3, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline5pimplE", "spectacularAI::k4aPlugin::Pipeline::pimpl"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline12startSessionEv", "spectacularAI::k4aPlugin::Pipeline::startSession"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline12startSessionEv", "spectacularAI::k4aPlugin::Pipeline::startSession"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8PipelineD0Ev", "spectacularAI::k4aPlugin::Pipeline::~Pipeline"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin8PipelineD0Ev", "spectacularAI::k4aPlugin::Pipeline::~Pipeline"], [2, 2, 1, "_CPPv4N13spectacularAI9k4aPlugin7SessionE", "spectacularAI::k4aPlugin::Session"], [9, 2, 1, "_CPPv4N13spectacularAI9k4aPlugin7SessionE", "spectacularAI::k4aPlugin::Session"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi", "spectacularAI::k4aPlugin::Session::addTrigger"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi", "spectacularAI::k4aPlugin::Session::addTrigger"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi", "spectacularAI::k4aPlugin::Session::addTrigger::t"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi", "spectacularAI::k4aPlugin::Session::addTrigger::t"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi", "spectacularAI::k4aPlugin::Session::addTrigger::tag"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi", "spectacularAI::k4aPlugin::Session::addTrigger::tag"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session9getOutputEv", "spectacularAI::k4aPlugin::Session::getOutput"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session9getOutputEv", "spectacularAI::k4aPlugin::Session::getOutput"], [2, 4, 1, "_CPPv4NK13spectacularAI9k4aPlugin7Session9hasOutputEv", "spectacularAI::k4aPlugin::Session::hasOutput"], [9, 4, 1, "_CPPv4NK13spectacularAI9k4aPlugin7Session9hasOutputEv", "spectacularAI::k4aPlugin::Session::hasOutput"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session13ignoreOutputsEb", "spectacularAI::k4aPlugin::Session::ignoreOutputs"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session13ignoreOutputsEb", "spectacularAI::k4aPlugin::Session::ignoreOutputs"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session13ignoreOutputsEb", "spectacularAI::k4aPlugin::Session::ignoreOutputs::ignore"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session13ignoreOutputsEb", "spectacularAI::k4aPlugin::Session::ignoreOutputs::ignore"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session13waitForOutputEv", "spectacularAI::k4aPlugin::Session::waitForOutput"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7Session13waitForOutputEv", "spectacularAI::k4aPlugin::Session::waitForOutput"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7SessionD0Ev", "spectacularAI::k4aPlugin::Session::~Session"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin7SessionD0Ev", "spectacularAI::k4aPlugin::Session::~Session"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin14getCalibrationERK17k4a_calibration_tRK13Configuration", "spectacularAI::k4aPlugin::getCalibration"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin14getCalibrationERK17k4a_calibration_tRK13Configuration", "spectacularAI::k4aPlugin::getCalibration::calibration"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin14getCalibrationERK17k4a_calibration_tRK13Configuration", "spectacularAI::k4aPlugin::getCalibration::config"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::colorResolution"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::colorResolution"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::depthMode"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::depthMode"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::frameRate"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::frameRate"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::useStereo"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib", "spectacularAI::k4aPlugin::getK4AConfiguration::useStereo"], [2, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin20getYAMLConfigurationERK13Configuration", "spectacularAI::k4aPlugin::getYAMLConfiguration"], [9, 4, 1, "_CPPv4N13spectacularAI9k4aPlugin20getYAMLConfigurationERK13Configuration", "spectacularAI::k4aPlugin::getYAMLConfiguration"], [2, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin20getYAMLConfigurationERK13Configuration", "spectacularAI::k4aPlugin::getYAMLConfiguration::config"], [9, 5, 1, "_CPPv4N13spectacularAI9k4aPlugin20getYAMLConfigurationERK13Configuration", "spectacularAI::k4aPlugin::getYAMLConfiguration::config"], [2, 1, 1, "_CPPv4N13spectacularAI7mappingE", "spectacularAI::mapping"], [4, 1, 1, "_CPPv4N13spectacularAI7mappingE", "spectacularAI::mapping"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping5FrameE", "spectacularAI::mapping::Frame"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping5FrameE", "spectacularAI::mapping::Frame"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame10cameraPoseE", "spectacularAI::mapping::Frame::cameraPose"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame10cameraPoseE", "spectacularAI::mapping::Frame::cameraPose"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame10depthScaleE", "spectacularAI::mapping::Frame::depthScale"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame10depthScaleE", "spectacularAI::mapping::Frame::depthScale"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame5imageE", "spectacularAI::mapping::Frame::image"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame5imageE", "spectacularAI::mapping::Frame::image"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame14sparseFeaturesE", "spectacularAI::mapping::Frame::sparseFeatures"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping5Frame14sparseFeaturesE", "spectacularAI::mapping::Frame::sparseFeatures"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping8FrameSetE", "spectacularAI::mapping::FrameSet"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping8FrameSetE", "spectacularAI::mapping::FrameSet"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet10depthFrameE", "spectacularAI::mapping::FrameSet::depthFrame"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet10depthFrameE", "spectacularAI::mapping::FrameSet::depthFrame"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet20getAlignedDepthFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getAlignedDepthFrame"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet20getAlignedDepthFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getAlignedDepthFrame"], [2, 5, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet20getAlignedDepthFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getAlignedDepthFrame::target"], [4, 5, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet20getAlignedDepthFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getAlignedDepthFrame::target"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet19getUndistortedFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getUndistortedFrame"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet19getUndistortedFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getUndistortedFrame"], [2, 5, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet19getUndistortedFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getUndistortedFrame::distortedFrame"], [4, 5, 1, "_CPPv4NK13spectacularAI7mapping8FrameSet19getUndistortedFrameEKNSt10shared_ptrI5FrameEE", "spectacularAI::mapping::FrameSet::getUndistortedFrame::distortedFrame"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet12primaryFrameE", "spectacularAI::mapping::FrameSet::primaryFrame"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet12primaryFrameE", "spectacularAI::mapping::FrameSet::primaryFrame"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet8rgbFrameE", "spectacularAI::mapping::FrameSet::rgbFrame"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet8rgbFrameE", "spectacularAI::mapping::FrameSet::rgbFrame"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet14secondaryFrameE", "spectacularAI::mapping::FrameSet::secondaryFrame"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping8FrameSet14secondaryFrameE", "spectacularAI::mapping::FrameSet::secondaryFrame"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping8FrameSetD0Ev", "spectacularAI::mapping::FrameSet::~FrameSet"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping8FrameSetD0Ev", "spectacularAI::mapping::FrameSet::~FrameSet"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping8KeyFrameE", "spectacularAI::mapping::KeyFrame"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping8KeyFrameE", "spectacularAI::mapping::KeyFrame"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping8KeyFrame8frameSetE", "spectacularAI::mapping::KeyFrame::frameSet"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping8KeyFrame8frameSetE", "spectacularAI::mapping::KeyFrame::frameSet"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping8KeyFrame2idE", "spectacularAI::mapping::KeyFrame::id"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping8KeyFrame2idE", "spectacularAI::mapping::KeyFrame::id"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping8KeyFrame10pointCloudE", "spectacularAI::mapping::KeyFrame::pointCloud"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping8KeyFrame10pointCloudE", "spectacularAI::mapping::KeyFrame::pointCloud"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping3MapE", "spectacularAI::mapping::Map"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping3MapE", "spectacularAI::mapping::Map"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping3Map9keyFramesE", "spectacularAI::mapping::Map::keyFrames"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping3Map9keyFramesE", "spectacularAI::mapping::Map::keyFrames"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping3Map9mapPointsE", "spectacularAI::mapping::Map::mapPoints"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping3Map9mapPointsE", "spectacularAI::mapping::Map::mapPoints"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping12MapperOutputE", "spectacularAI::mapping::MapperOutput"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping12MapperOutputE", "spectacularAI::mapping::MapperOutput"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput8finalMapE", "spectacularAI::mapping::MapperOutput::finalMap"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput8finalMapE", "spectacularAI::mapping::MapperOutput::finalMap"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput3mapE", "spectacularAI::mapping::MapperOutput::map"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput3mapE", "spectacularAI::mapping::MapperOutput::map"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput4meshE", "spectacularAI::mapping::MapperOutput::mesh"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput4meshE", "spectacularAI::mapping::MapperOutput::mesh"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput16updatedKeyFramesE", "spectacularAI::mapping::MapperOutput::updatedKeyFrames"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput16updatedKeyFramesE", "spectacularAI::mapping::MapperOutput::updatedKeyFrames"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput16updatedMapPointsE", "spectacularAI::mapping::MapperOutput::updatedMapPoints"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping12MapperOutput16updatedMapPointsE", "spectacularAI::mapping::MapperOutput::updatedMapPoints"], [2, 1, 1, "_CPPv4N13spectacularAI7mapping15MapperOutputPtrE", "spectacularAI::mapping::MapperOutputPtr"], [4, 1, 1, "_CPPv4N13spectacularAI7mapping15MapperOutputPtrE", "spectacularAI::mapping::MapperOutputPtr"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping4MeshE", "spectacularAI::mapping::Mesh"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping4MeshE", "spectacularAI::mapping::Mesh"], [2, 1, 1, "_CPPv4N13spectacularAI7mapping4Mesh9IndexFaceE", "spectacularAI::mapping::Mesh::IndexFace"], [4, 1, 1, "_CPPv4N13spectacularAI7mapping4Mesh9IndexFaceE", "spectacularAI::mapping::Mesh::IndexFace"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping4Mesh8TriangleE", "spectacularAI::mapping::Mesh::Triangle"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping4Mesh8TriangleE", "spectacularAI::mapping::Mesh::Triangle"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping4Mesh8Triangle7normalsE", "spectacularAI::mapping::Mesh::Triangle::normals"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping4Mesh8Triangle7normalsE", "spectacularAI::mapping::Mesh::Triangle::normals"], [2, 3, 1, "_CPPv4N13spectacularAI7mapping4Mesh8Triangle8verticesE", "spectacularAI::mapping::Mesh::Triangle::vertices"], [4, 3, 1, "_CPPv4N13spectacularAI7mapping4Mesh8Triangle8verticesE", "spectacularAI::mapping::Mesh::Triangle::vertices"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh5emptyEv", "spectacularAI::mapping::Mesh::empty"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh5emptyEv", "spectacularAI::mapping::Mesh::empty"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh9faceCountEv", "spectacularAI::mapping::Mesh::faceCount"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh9faceCountEv", "spectacularAI::mapping::Mesh::faceCount"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh14getFaceNormalsEv", "spectacularAI::mapping::Mesh::getFaceNormals"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh14getFaceNormalsEv", "spectacularAI::mapping::Mesh::getFaceNormals"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh15getFaceVerticesEv", "spectacularAI::mapping::Mesh::getFaceVertices"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh15getFaceVerticesEv", "spectacularAI::mapping::Mesh::getFaceVertices"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh13getNormalDataEv", "spectacularAI::mapping::Mesh::getNormalData"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh13getNormalDataEv", "spectacularAI::mapping::Mesh::getNormalData"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh15getPositionDataEv", "spectacularAI::mapping::Mesh::getPositionData"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping4Mesh15getPositionDataEv", "spectacularAI::mapping::Mesh::getPositionData"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11getTriangleENSt6size_tE", "spectacularAI::mapping::Mesh::getTriangle"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11getTriangleENSt6size_tE", "spectacularAI::mapping::Mesh::getTriangle"], [2, 5, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11getTriangleENSt6size_tE", "spectacularAI::mapping::Mesh::getTriangle::faceIndex"], [4, 5, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11getTriangleENSt6size_tE", "spectacularAI::mapping::Mesh::getTriangle::faceIndex"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh10hasNormalsEv", "spectacularAI::mapping::Mesh::hasNormals"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh10hasNormalsEv", "spectacularAI::mapping::Mesh::hasNormals"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11normalCountEv", "spectacularAI::mapping::Mesh::normalCount"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11normalCountEv", "spectacularAI::mapping::Mesh::normalCount"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh14serializeToObjERKNSt6stringE", "spectacularAI::mapping::Mesh::serializeToObj"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh14serializeToObjERKNSt6stringE", "spectacularAI::mapping::Mesh::serializeToObj"], [2, 5, 1, "_CPPv4NK13spectacularAI7mapping4Mesh14serializeToObjERKNSt6stringE", "spectacularAI::mapping::Mesh::serializeToObj::filename"], [4, 5, 1, "_CPPv4NK13spectacularAI7mapping4Mesh14serializeToObjERKNSt6stringE", "spectacularAI::mapping::Mesh::serializeToObj::filename"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11vertexCountEv", "spectacularAI::mapping::Mesh::vertexCount"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping4Mesh11vertexCountEv", "spectacularAI::mapping::Mesh::vertexCount"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping4MeshD0Ev", "spectacularAI::mapping::Mesh::~Mesh"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping4MeshD0Ev", "spectacularAI::mapping::Mesh::~Mesh"], [2, 2, 1, "_CPPv4N13spectacularAI7mapping10PointCloudE", "spectacularAI::mapping::PointCloud"], [4, 2, 1, "_CPPv4N13spectacularAI7mapping10PointCloudE", "spectacularAI::mapping::PointCloud"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud5emptyEv", "spectacularAI::mapping::PointCloud::empty"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud5emptyEv", "spectacularAI::mapping::PointCloud::empty"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud9getNormalENSt6size_tE", "spectacularAI::mapping::PointCloud::getNormal"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud9getNormalENSt6size_tE", "spectacularAI::mapping::PointCloud::getNormal"], [2, 5, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud9getNormalENSt6size_tE", "spectacularAI::mapping::PointCloud::getNormal::index"], [4, 5, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud9getNormalENSt6size_tE", "spectacularAI::mapping::PointCloud::getNormal::index"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloud13getNormalDataEv", "spectacularAI::mapping::PointCloud::getNormalData"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloud13getNormalDataEv", "spectacularAI::mapping::PointCloud::getNormalData"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud11getPositionENSt6size_tE", "spectacularAI::mapping::PointCloud::getPosition"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud11getPositionENSt6size_tE", "spectacularAI::mapping::PointCloud::getPosition"], [2, 5, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud11getPositionENSt6size_tE", "spectacularAI::mapping::PointCloud::getPosition::index"], [4, 5, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud11getPositionENSt6size_tE", "spectacularAI::mapping::PointCloud::getPosition::index"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloud15getPositionDataEv", "spectacularAI::mapping::PointCloud::getPositionData"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloud15getPositionDataEv", "spectacularAI::mapping::PointCloud::getPositionData"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud8getRGB24ENSt6size_tE", "spectacularAI::mapping::PointCloud::getRGB24"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud8getRGB24ENSt6size_tE", "spectacularAI::mapping::PointCloud::getRGB24"], [2, 5, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud8getRGB24ENSt6size_tE", "spectacularAI::mapping::PointCloud::getRGB24::index"], [4, 5, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud8getRGB24ENSt6size_tE", "spectacularAI::mapping::PointCloud::getRGB24::index"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloud12getRGB24DataEv", "spectacularAI::mapping::PointCloud::getRGB24Data"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloud12getRGB24DataEv", "spectacularAI::mapping::PointCloud::getRGB24Data"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud9hasColorsEv", "spectacularAI::mapping::PointCloud::hasColors"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud9hasColorsEv", "spectacularAI::mapping::PointCloud::hasColors"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud10hasNormalsEv", "spectacularAI::mapping::PointCloud::hasNormals"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud10hasNormalsEv", "spectacularAI::mapping::PointCloud::hasNormals"], [2, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud4sizeEv", "spectacularAI::mapping::PointCloud::size"], [4, 4, 1, "_CPPv4NK13spectacularAI7mapping10PointCloud4sizeEv", "spectacularAI::mapping::PointCloud::size"], [2, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloudD0Ev", "spectacularAI::mapping::PointCloud::~PointCloud"], [4, 4, 1, "_CPPv4N13spectacularAI7mapping10PointCloudD0Ev", "spectacularAI::mapping::PointCloud::~PointCloud"], [2, 1, 1, "_CPPv4N13spectacularAI12orbbecPluginE", "spectacularAI::orbbecPlugin"], [11, 1, 1, "_CPPv4N13spectacularAI12orbbecPluginE", "spectacularAI::orbbecPlugin"], [11, 1, 1, "_CPPv4N13spectacularAI12orbbecPluginE", "spectacularAI::orbbecPlugin"], [11, 1, 1, "_CPPv4N13spectacularAI12orbbecPluginE", "spectacularAI::orbbecPlugin"], [2, 2, 1, "_CPPv4N13spectacularAI12orbbecPlugin13ConfigurationE", "spectacularAI::orbbecPlugin::Configuration"], [11, 2, 1, "_CPPv4N13spectacularAI12orbbecPlugin13ConfigurationE", "spectacularAI::orbbecPlugin::Configuration"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Configuration::Configuration"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationEv", "spectacularAI::orbbecPlugin::Configuration::Configuration"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Configuration::Configuration"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationEv", "spectacularAI::orbbecPlugin::Configuration::Configuration"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Configuration::Configuration::obPipeline"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Configuration::Configuration::obPipeline"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration14accFrequencyHzE", "spectacularAI::orbbecPlugin::Configuration::accFrequencyHz"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration14accFrequencyHzE", "spectacularAI::orbbecPlugin::Configuration::accFrequencyHz"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration8accRangeE", "spectacularAI::orbbecPlugin::Configuration::accRange"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration8accRangeE", "spectacularAI::orbbecPlugin::Configuration::accRange"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12alignedDepthE", "spectacularAI::orbbecPlugin::Configuration::alignedDepth"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12alignedDepthE", "spectacularAI::orbbecPlugin::Configuration::alignedDepth"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12aprilTagPathE", "spectacularAI::orbbecPlugin::Configuration::aprilTagPath"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12aprilTagPathE", "spectacularAI::orbbecPlugin::Configuration::aprilTagPath"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9cameraFpsE", "spectacularAI::orbbecPlugin::Configuration::cameraFps"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9cameraFpsE", "spectacularAI::orbbecPlugin::Configuration::cameraFps"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15depthResolutionE", "spectacularAI::orbbecPlugin::Configuration::depthResolution"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15depthResolutionE", "spectacularAI::orbbecPlugin::Configuration::depthResolution"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7fastVioE", "spectacularAI::orbbecPlugin::Configuration::fastVio"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7fastVioE", "spectacularAI::orbbecPlugin::Configuration::fastVio"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15gyroFrequencyHzE", "spectacularAI::orbbecPlugin::Configuration::gyroFrequencyHz"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15gyroFrequencyHzE", "spectacularAI::orbbecPlugin::Configuration::gyroFrequencyHz"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9gyroRangeE", "spectacularAI::orbbecPlugin::Configuration::gyroRange"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9gyroRangeE", "spectacularAI::orbbecPlugin::Configuration::gyroRange"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration18internalParametersE", "spectacularAI::orbbecPlugin::Configuration::internalParameters"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration18internalParametersE", "spectacularAI::orbbecPlugin::Configuration::internalParameters"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration19postProcessFinalMapE", "spectacularAI::orbbecPlugin::Configuration::postProcessFinalMap"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration19postProcessFinalMapE", "spectacularAI::orbbecPlugin::Configuration::postProcessFinalMap"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15recordingFolderE", "spectacularAI::orbbecPlugin::Configuration::recordingFolder"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15recordingFolderE", "spectacularAI::orbbecPlugin::Configuration::recordingFolder"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13recordingOnlyE", "spectacularAI::orbbecPlugin::Configuration::recordingOnly"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13recordingOnlyE", "spectacularAI::orbbecPlugin::Configuration::recordingOnly"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13rgbResolutionE", "spectacularAI::orbbecPlugin::Configuration::rgbResolution"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13rgbResolutionE", "spectacularAI::orbbecPlugin::Configuration::rgbResolution"], [2, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7useSlamE", "spectacularAI::orbbecPlugin::Configuration::useSlam"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7useSlamE", "spectacularAI::orbbecPlugin::Configuration::useSlam"], [2, 2, 1, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineE", "spectacularAI::orbbecPlugin::Pipeline"], [11, 2, 1, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineE", "spectacularAI::orbbecPlugin::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration", "spectacularAI::orbbecPlugin::Pipeline::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration", "spectacularAI::orbbecPlugin::Pipeline::Pipeline"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::config"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::config"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::config"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::config"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::obPipeline"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::obPipeline"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::obPipeline"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::obPipeline"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::obPipeline"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::obPipeline"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::onMapperOutput"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE", "spectacularAI::orbbecPlugin::Pipeline::Pipeline::onMapperOutput"], [11, 3, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline5pimplE", "spectacularAI::orbbecPlugin::Pipeline::pimpl"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline12startSessionEv", "spectacularAI::orbbecPlugin::Pipeline::startSession"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline12startSessionEv", "spectacularAI::orbbecPlugin::Pipeline::startSession"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineD0Ev", "spectacularAI::orbbecPlugin::Pipeline::~Pipeline"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineD0Ev", "spectacularAI::orbbecPlugin::Pipeline::~Pipeline"], [2, 2, 1, "_CPPv4N13spectacularAI12orbbecPlugin7SessionE", "spectacularAI::orbbecPlugin::Session"], [11, 2, 1, "_CPPv4N13spectacularAI12orbbecPlugin7SessionE", "spectacularAI::orbbecPlugin::Session"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi", "spectacularAI::orbbecPlugin::Session::addTrigger"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi", "spectacularAI::orbbecPlugin::Session::addTrigger"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi", "spectacularAI::orbbecPlugin::Session::addTrigger::t"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi", "spectacularAI::orbbecPlugin::Session::addTrigger::t"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi", "spectacularAI::orbbecPlugin::Session::addTrigger::tag"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi", "spectacularAI::orbbecPlugin::Session::addTrigger::tag"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session9getOutputEv", "spectacularAI::orbbecPlugin::Session::getOutput"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session9getOutputEv", "spectacularAI::orbbecPlugin::Session::getOutput"], [2, 4, 1, "_CPPv4NK13spectacularAI12orbbecPlugin7Session9hasOutputEv", "spectacularAI::orbbecPlugin::Session::hasOutput"], [11, 4, 1, "_CPPv4NK13spectacularAI12orbbecPlugin7Session9hasOutputEv", "spectacularAI::orbbecPlugin::Session::hasOutput"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session13ignoreOutputsEb", "spectacularAI::orbbecPlugin::Session::ignoreOutputs"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session13ignoreOutputsEb", "spectacularAI::orbbecPlugin::Session::ignoreOutputs"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session13ignoreOutputsEb", "spectacularAI::orbbecPlugin::Session::ignoreOutputs::ignore"], [11, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session13ignoreOutputsEb", "spectacularAI::orbbecPlugin::Session::ignoreOutputs::ignore"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session13waitForOutputEv", "spectacularAI::orbbecPlugin::Session::waitForOutput"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7Session13waitForOutputEv", "spectacularAI::orbbecPlugin::Session::waitForOutput"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7SessionD0Ev", "spectacularAI::orbbecPlugin::Session::~Session"], [11, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin7SessionD0Ev", "spectacularAI::orbbecPlugin::Session::~Session"], [2, 1, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internalE", "spectacularAI::orbbecPlugin::internal"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internal14getCalibrationERK13OBCameraParamRK13ConfigurationRKNSt6stringE", "spectacularAI::orbbecPlugin::internal::getCalibration"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internal14getCalibrationERK13OBCameraParamRK13ConfigurationRKNSt6stringE", "spectacularAI::orbbecPlugin::internal::getCalibration::calibration"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internal14getCalibrationERK13OBCameraParamRK13ConfigurationRKNSt6stringE", "spectacularAI::orbbecPlugin::internal::getCalibration::config"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internal14getCalibrationERK13OBCameraParamRK13ConfigurationRKNSt6stringE", "spectacularAI::orbbecPlugin::internal::getCalibration::deviceName"], [2, 4, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internal20getYAMLConfigurationERK13ConfigurationRKNSt6stringE", "spectacularAI::orbbecPlugin::internal::getYAMLConfiguration"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internal20getYAMLConfigurationERK13ConfigurationRKNSt6stringE", "spectacularAI::orbbecPlugin::internal::getYAMLConfiguration::config"], [2, 5, 1, "_CPPv4N13spectacularAI12orbbecPlugin8internal20getYAMLConfigurationERK13ConfigurationRKNSt6stringE", "spectacularAI::orbbecPlugin::internal::getYAMLConfiguration::deviceName"], [2, 1, 1, "_CPPv4N13spectacularAI8rsPluginE", "spectacularAI::rsPlugin"], [12, 1, 1, "_CPPv4N13spectacularAI8rsPluginE", "spectacularAI::rsPlugin"], [12, 1, 1, "_CPPv4N13spectacularAI8rsPluginE", "spectacularAI::rsPlugin"], [12, 1, 1, "_CPPv4N13spectacularAI8rsPluginE", "spectacularAI::rsPlugin"], [2, 2, 1, "_CPPv4N13spectacularAI8rsPlugin13ConfigurationE", "spectacularAI::rsPlugin::Configuration"], [12, 2, 1, "_CPPv4N13spectacularAI8rsPlugin13ConfigurationE", "spectacularAI::rsPlugin::Configuration"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration12alignedDepthE", "spectacularAI::rsPlugin::Configuration::alignedDepth"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration12alignedDepthE", "spectacularAI::rsPlugin::Configuration::alignedDepth"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration12aprilTagPathE", "spectacularAI::rsPlugin::Configuration::aprilTagPath"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration12aprilTagPathE", "spectacularAI::rsPlugin::Configuration::aprilTagPath"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration7fastVioE", "spectacularAI::rsPlugin::Configuration::fastVio"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration7fastVioE", "spectacularAI::rsPlugin::Configuration::fastVio"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration15inputResolutionE", "spectacularAI::rsPlugin::Configuration::inputResolution"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration15inputResolutionE", "spectacularAI::rsPlugin::Configuration::inputResolution"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration18internalParametersE", "spectacularAI::rsPlugin::Configuration::internalParameters"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration18internalParametersE", "spectacularAI::rsPlugin::Configuration::internalParameters"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapLoadPathE", "spectacularAI::rsPlugin::Configuration::mapLoadPath"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapLoadPathE", "spectacularAI::rsPlugin::Configuration::mapLoadPath"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapSavePathE", "spectacularAI::rsPlugin::Configuration::mapSavePath"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapSavePathE", "spectacularAI::rsPlugin::Configuration::mapSavePath"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration19postProcessFinalMapE", "spectacularAI::rsPlugin::Configuration::postProcessFinalMap"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration19postProcessFinalMapE", "spectacularAI::rsPlugin::Configuration::postProcessFinalMap"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration15recordingFolderE", "spectacularAI::rsPlugin::Configuration::recordingFolder"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration15recordingFolderE", "spectacularAI::rsPlugin::Configuration::recordingFolder"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration13recordingOnlyE", "spectacularAI::rsPlugin::Configuration::recordingOnly"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration13recordingOnlyE", "spectacularAI::rsPlugin::Configuration::recordingOnly"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useIcpE", "spectacularAI::rsPlugin::Configuration::useIcp"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useIcpE", "spectacularAI::rsPlugin::Configuration::useIcp"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useRgbE", "spectacularAI::rsPlugin::Configuration::useRgb"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useRgbE", "spectacularAI::rsPlugin::Configuration::useRgb"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration7useSlamE", "spectacularAI::rsPlugin::Configuration::useSlam"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration7useSlamE", "spectacularAI::rsPlugin::Configuration::useSlam"], [2, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration9useStereoE", "spectacularAI::rsPlugin::Configuration::useStereo"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin13Configuration9useStereoE", "spectacularAI::rsPlugin::Configuration::useStereo"], [2, 2, 1, "_CPPv4N13spectacularAI8rsPlugin8PipelineE", "spectacularAI::rsPlugin::Pipeline"], [12, 2, 1, "_CPPv4N13spectacularAI8rsPlugin8PipelineE", "spectacularAI::rsPlugin::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::rsPlugin::Pipeline::Pipeline"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineEv", "spectacularAI::rsPlugin::Pipeline::Pipeline"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::rsPlugin::Pipeline::Pipeline"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineEv", "spectacularAI::rsPlugin::Pipeline::Pipeline"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::rsPlugin::Pipeline::Pipeline::config"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineERK13Configuration", "spectacularAI::rsPlugin::Pipeline::Pipeline::config"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline15configureDeviceERN3rs26deviceE", "spectacularAI::rsPlugin::Pipeline::configureDevice"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline15configureDeviceERN3rs26deviceE", "spectacularAI::rsPlugin::Pipeline::configureDevice"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline15configureDeviceERN3rs26deviceE", "spectacularAI::rsPlugin::Pipeline::configureDevice::device"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline15configureDeviceERN3rs26deviceE", "spectacularAI::rsPlugin::Pipeline::configureDevice::device"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline16configureStreamsERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::configureStreams"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline16configureStreamsERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::configureStreams"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline16configureStreamsERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::configureStreams::config"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline16configureStreamsERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::configureStreams::config"], [12, 3, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline5pimplE", "spectacularAI::rsPlugin::Pipeline::pimpl"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline17setMapperCallbackERKNSt8functionIFvN13spectacularAI7mapping15MapperOutputPtrEEEE", "spectacularAI::rsPlugin::Pipeline::setMapperCallback"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline17setMapperCallbackERKNSt8functionIFvN13spectacularAI7mapping15MapperOutputPtrEEEE", "spectacularAI::rsPlugin::Pipeline::setMapperCallback"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline17setMapperCallbackERKNSt8functionIFvN13spectacularAI7mapping15MapperOutputPtrEEEE", "spectacularAI::rsPlugin::Pipeline::setMapperCallback::onMapperOutput"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline17setMapperCallbackERKNSt8functionIFvN13spectacularAI7mapping15MapperOutputPtrEEEE", "spectacularAI::rsPlugin::Pipeline::setMapperCallback::onMapperOutput"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::startSession"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE", "spectacularAI::rsPlugin::Pipeline::startSession"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::startSession"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE", "spectacularAI::rsPlugin::Pipeline::startSession"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE", "spectacularAI::rsPlugin::Pipeline::startSession::callback"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE", "spectacularAI::rsPlugin::Pipeline::startSession::callback"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::startSession::config"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE", "spectacularAI::rsPlugin::Pipeline::startSession::config"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configE", "spectacularAI::rsPlugin::Pipeline::startSession::config"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE", "spectacularAI::rsPlugin::Pipeline::startSession::config"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8PipelineD0Ev", "spectacularAI::rsPlugin::Pipeline::~Pipeline"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin8PipelineD0Ev", "spectacularAI::rsPlugin::Pipeline::~Pipeline"], [2, 2, 1, "_CPPv4N13spectacularAI8rsPlugin7SessionE", "spectacularAI::rsPlugin::Session"], [12, 2, 1, "_CPPv4N13spectacularAI8rsPlugin7SessionE", "spectacularAI::rsPlugin::Session"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi", "spectacularAI::rsPlugin::Session::addTrigger"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi", "spectacularAI::rsPlugin::Session::addTrigger"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi", "spectacularAI::rsPlugin::Session::addTrigger::t"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi", "spectacularAI::rsPlugin::Session::addTrigger::t"], [2, 5, 1, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi", "spectacularAI::rsPlugin::Session::addTrigger::tag"], [12, 5, 1, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi", "spectacularAI::rsPlugin::Session::addTrigger::tag"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7Session9getOutputEv", "spectacularAI::rsPlugin::Session::getOutput"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7Session9getOutputEv", "spectacularAI::rsPlugin::Session::getOutput"], [2, 4, 1, "_CPPv4NK13spectacularAI8rsPlugin7Session9hasOutputEv", "spectacularAI::rsPlugin::Session::hasOutput"], [12, 4, 1, "_CPPv4NK13spectacularAI8rsPlugin7Session9hasOutputEv", "spectacularAI::rsPlugin::Session::hasOutput"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7Session13waitForOutputEv", "spectacularAI::rsPlugin::Session::waitForOutput"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7Session13waitForOutputEv", "spectacularAI::rsPlugin::Session::waitForOutput"], [2, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7SessionD0Ev", "spectacularAI::rsPlugin::Session::~Session"], [12, 4, 1, "_CPPv4N13spectacularAI8rsPlugin7SessionD0Ev", "spectacularAI::rsPlugin::Session::~Session"], [7, 8, 0, "-", "spectacularAI"]], "spectacularAI": [[7, 9, 1, "", "Bitmap"], [7, 9, 1, "", "Camera"], [7, 9, 1, "", "CameraPose"], [7, 9, 1, "", "ColorFormat"], [7, 9, 1, "", "Frame"], [7, 9, 1, "", "GnssVioOutput"], [7, 9, 1, "", "Pose"], [7, 9, 1, "", "Quaternion"], [6, 9, 1, "", "Replay"], [7, 9, 1, "", "TrackingStatus"], [7, 9, 1, "", "Vector3d"], [7, 9, 1, "", "Vector3f"], [7, 9, 1, "", "VioOutput"], [7, 9, 1, "", "WgsCoordinates"], [4, 8, 0, "-", "mapping"]], "spectacularAI.Bitmap": [[7, 10, 1, "", "getColorFormat"], [7, 10, 1, "", "getHeight"], [7, 10, 1, "", "getWidth"], [7, 10, 1, "", "toArray"]], "spectacularAI.Camera": [[7, 10, 1, "", "getIntrinsicMatrix"], [7, 10, 1, "", "getProjectionMatrixOpenGL"]], "spectacularAI.CameraPose": [[7, 11, 1, "", "camera"], [7, 10, 1, "", "getCameraToWorldMatrix"], [7, 10, 1, "", "getPosition"], [7, 10, 1, "", "getWorldToCameraMatrix"], [7, 11, 1, "", "pose"]], "spectacularAI.ColorFormat": [[7, 12, 1, "", "GRAY"], [7, 12, 1, "", "GRAY16"], [7, 12, 1, "", "NONE"], [7, 12, 1, "", "RGB"], [7, 12, 1, "", "RGBA"], [7, 11, 1, "", "name"], [7, 11, 1, "", "value"]], "spectacularAI.Frame": [[7, 11, 1, "", "cameraPose"], [7, 11, 1, "", "image"], [7, 11, 1, "", "index"]], "spectacularAI.GnssVioOutput": [[7, 11, 1, "", "coordinates"], [7, 11, 1, "", "enuPositionCovariance"], [7, 10, 1, "", "getEnuCameraPose"], [7, 11, 1, "", "orientation"], [7, 11, 1, "", "velocity"], [7, 11, 1, "", "velocityCovariance"]], "spectacularAI.Pose": [[7, 10, 1, "", "asMatrix"], [7, 10, 1, "", "fromMatrix"], [7, 11, 1, "", "orientation"], [7, 11, 1, "", "position"], [7, 11, 1, "", "time"]], "spectacularAI.Quaternion": [[7, 11, 1, "", "w"], [7, 11, 1, "", "x"], [7, 11, 1, "", "y"], [7, 11, 1, "", "z"]], "spectacularAI.Replay": [[6, 10, 1, "", "close"], [6, 10, 1, "", "runReplay"], [6, 10, 1, "", "setExtendedOutputCallback"], [6, 10, 1, "", "setOutputCallback"], [6, 10, 1, "", "setPlaybackSpeed"], [6, 10, 1, "", "startReplay"]], "spectacularAI.TrackingStatus": [[7, 12, 1, "", "INIT"], [7, 12, 1, "", "LOST_TRACKING"], [7, 12, 1, "", "TRACKING"], [7, 11, 1, "", "name"], [7, 11, 1, "", "value"]], "spectacularAI.Vector3d": [[7, 11, 1, "", "x"], [7, 11, 1, "", "y"], [7, 11, 1, "", "z"]], "spectacularAI.Vector3f": [[7, 11, 1, "", "x"], [7, 11, 1, "", "y"], [7, 11, 1, "", "z"]], "spectacularAI.VioOutput": [[7, 11, 1, "", "angularVelocity"], [7, 10, 1, "", "asJson"], [7, 10, 1, "", "getCameraPose"], [7, 11, 1, "", "globalPose"], [7, 11, 1, "", "pose"], [7, 11, 1, "", "poseTrail"], [7, 11, 1, "", "positionCovariance"], [7, 11, 1, "", "status"], [7, 11, 1, "", "tag"], [7, 11, 1, "", "velocity"], [7, 11, 1, "", "velocityCovariance"]], "spectacularAI.WgsCoordinates": [[7, 11, 1, "", "altitude"], [7, 11, 1, "", "latitude"], [7, 11, 1, "", "longitude"]], "spectacularAI.depthai": [[10, 9, 1, "", "Configuration"], [10, 9, 1, "", "Hooks"], [10, 9, 1, "", "Pipeline"], [10, 9, 1, "", "Session"]], "spectacularAI.depthai.Configuration": [[10, 11, 1, "", "accFrequencyHz"], [10, 11, 1, "", "aprilTagPath"], [10, 10, 1, "", "asDict"], [10, 11, 1, "", "depthQueueSize"], [10, 11, 1, "", "depthScaleCorrection"], [10, 11, 1, "", "disableCameras"], [10, 11, 1, "", "ensureSufficientUsbSpeed"], [10, 11, 1, "", "extendedDisparity"], [10, 11, 1, "", "fastImu"], [10, 11, 1, "", "fastVio"], [10, 11, 1, "", "forceRectified"], [10, 11, 1, "", "forceUnrectified"], [10, 11, 1, "", "gyroFrequencyHz"], [10, 11, 1, "", "imuFrequencyHz"], [10, 11, 1, "", "imuQueueSize"], [10, 11, 1, "", "imuToGnss"], [10, 11, 1, "", "inputResolution"], [10, 11, 1, "", "internalParameters"], [10, 11, 1, "", "keyframeCandidateEveryNthFrame"], [10, 11, 1, "", "mapLoadPath"], [10, 11, 1, "", "mapSavePath"], [10, 11, 1, "", "meshRectification"], [10, 11, 1, "", "monoQueueSize"], [10, 11, 1, "", "recordingFolder"], [10, 11, 1, "", "recordingOnly"], [10, 11, 1, "", "silenceUsbWarnings"], [10, 10, 1, "", "update"], [10, 11, 1, "", "useColor"], [10, 11, 1, "", "useColorStereoCameras"], [10, 11, 1, "", "useEncodedVideo"], [10, 11, 1, "", "useFeatureTracker"], [10, 11, 1, "", "useGrayDepth"], [10, 11, 1, "", "useReaderThread"], [10, 11, 1, "", "useSlam"], [10, 11, 1, "", "useStereo"], [10, 11, 1, "", "useVioAutoExposure"]], "spectacularAI.depthai.Hooks": [[10, 11, 1, "", "color"], [10, 11, 1, "", "depth"], [10, 11, 1, "", "imu"], [10, 11, 1, "", "monoPrimary"], [10, 11, 1, "", "monoSecondary"], [10, 11, 1, "", "trackedFeatures"]], "spectacularAI.depthai.Pipeline": [[10, 11, 1, "", "color"], [10, 11, 1, "", "colorLeft"], [10, 11, 1, "", "colorPrimary"], [10, 11, 1, "", "colorRight"], [10, 11, 1, "", "colorSecondary"], [10, 11, 1, "", "featureTracker"], [10, 11, 1, "", "hooks"], [10, 11, 1, "", "imu"], [10, 11, 1, "", "imuToCameraLeft"], [10, 11, 1, "", "monoLeft"], [10, 11, 1, "", "monoPrimary"], [10, 11, 1, "", "monoRight"], [10, 11, 1, "", "monoSecondary"], [10, 11, 1, "", "spectacularAIConfigurationYAML"], [10, 10, 1, "", "startSession"], [10, 11, 1, "", "stereo"], [10, 11, 1, "", "xoutDepth"], [10, 11, 1, "", "xoutFeatures"], [10, 11, 1, "", "xoutImu"], [10, 11, 1, "", "xoutLeft"], [10, 11, 1, "", "xoutRight"]], "spectacularAI.depthai.Session": [[10, 10, 1, "", "addAbsolutePose"], [10, 10, 1, "", "addGnss"], [10, 10, 1, "", "addTrigger"], [10, 10, 1, "", "close"], [10, 10, 1, "", "getOutput"], [10, 10, 1, "", "getRgbCameraPose"], [10, 10, 1, "", "hasOutput"], [10, 10, 1, "", "waitForOutput"], [10, 10, 1, "", "work"]], "spectacularAI.mapping": [[4, 9, 1, "", "Frame"], [4, 9, 1, "", "FrameSet"], [4, 9, 1, "", "KeyFrame"], [4, 9, 1, "", "Map"], [4, 9, 1, "", "MapperOutput"], [4, 9, 1, "", "Mesh"], [4, 9, 1, "", "PointCloud"]], "spectacularAI.mapping.Frame": [[4, 11, 1, "", "cameraPose"], [4, 11, 1, "", "depthScale"], [4, 11, 1, "", "image"], [4, 11, 1, "", "sparseFeatures"]], "spectacularAI.mapping.FrameSet": [[4, 11, 1, "", "depthFrame"], [4, 10, 1, "", "getAlignedDepthFrame"], [4, 10, 1, "", "getUndistortedFrame"], [4, 11, 1, "", "primaryFrame"], [4, 11, 1, "", "rgbFrame"], [4, 11, 1, "", "secondaryFrame"]], "spectacularAI.mapping.KeyFrame": [[4, 11, 1, "", "frameSet"], [4, 11, 1, "", "id"], [4, 11, 1, "", "pointCloud"]], "spectacularAI.mapping.Map": [[4, 11, 1, "", "keyFrames"], [4, 11, 1, "", "mapPoints"]], "spectacularAI.mapping.MapperOutput": [[4, 11, 1, "", "finalMap"], [4, 11, 1, "", "map"], [4, 11, 1, "", "mesh"], [4, 11, 1, "", "updatedKeyFrames"], [4, 11, 1, "", "updatedMapPoints"]], "spectacularAI.mapping.Mesh": [[4, 10, 1, "", "empty"], [4, 10, 1, "", "faceCount"], [4, 10, 1, "", "getFaceNormals"], [4, 10, 1, "", "getFaceVertices"], [4, 10, 1, "", "getNormalData"], [4, 10, 1, "", "getPositionData"], [4, 10, 1, "", "hasNormals"], [4, 10, 1, "", "normalCount"], [4, 10, 1, "", "vertexCount"]], "spectacularAI.mapping.PointCloud": [[4, 10, 1, "", "empty"], [4, 10, 1, "", "getNormal"], [4, 10, 1, "", "getNormalData"], [4, 10, 1, "", "getPosition"], [4, 10, 1, "", "getPositionData"], [4, 10, 1, "", "getRGB24"], [4, 10, 1, "", "getRGB24Data"], [4, 10, 1, "", "hasColors"], [4, 10, 1, "", "hasNormals"], [4, 10, 1, "", "size"]]}, "objtypes": {"0": "c:macro", "1": "cpp:type", "2": "cpp:class", "3": "cpp:member", "4": "cpp:function", "5": "cpp:functionParam", "6": "cpp:enum", "7": "cpp:enumerator", "8": "py:module", "9": "py:class", "10": "py:method", "11": "py:property", "12": "py:attribute"}, "objnames": {"0": ["c", "macro", "C macro"], "1": ["cpp", "type", "C++ type"], "2": ["cpp", "class", "C++ class"], "3": ["cpp", "member", "C++ member"], "4": ["cpp", "function", "C++ function"], "5": ["cpp", "functionParam", "C++ function parameter"], "6": ["cpp", "enum", "C++ enum"], "7": ["cpp", "enumerator", "C++ enumerator"], "8": ["py", "module", "Python module"], "9": ["py", "class", "Python class"], "10": ["py", "method", "Python method"], "11": ["py", "property", "Python property"], "12": ["py", "attribute", "Python attribute"]}, "titleterms": {"api": [0, 4, 6, 7, 9, 10, 11, 12], "refer": [0, 9, 10, 11, 12], "latest": 0, "version": 0, "core": 1, "sdk": [1, 3], "c": 2, "spectacular": 3, "ai": 3, "document": 3, "architectur": 3, "map": 4, "python": 5, "replai": 6, "track": 7, "6": 7, "dof": 7, "pose": 7, "output": 7, "common": 7, "type": 7, "wrapper": 8, "azur": 9, "kinect": 9, "configur": [9, 10, 11, 12], "pipelin": [9, 10, 11, 12], "session": [9, 10, 11, 12], "oak": 10, "d": 10, "hook": 10, "orbbec": 11, "realsens": 12}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"API Reference": [[0, "api-reference"], [9, "api-reference"], [11, "api-reference"], [12, "api-reference"]], "Latest version": [[0, "latest-version"]], "Core SDK": [[1, "core-sdk"]], "C++": [[2, "c"]], "Spectacular AI SDK documentation": [[3, "spectacular-ai-sdk-documentation"]], "SDK architecture": [[3, "sdk-architecture"]], "Mapping API": [[4, "mapping-api"]], "Python": [[5, "module-spectacularAI"]], "Replay API": [[6, "replay-api"]], "Tracking API": [[7, "tracking-api"]], "6-DoF pose output": [[7, "dof-pose-output"]], "Common types": [[7, "common-types"]], "Wrappers": [[8, "wrappers"]], "Azure Kinect": [[9, "azure-kinect"]], "Configuration": [[9, "configuration"], [10, "configuration"], [11, "configuration"], [12, "configuration"]], "Pipeline": [[9, "pipeline"], [10, "pipeline"], [11, "pipeline"], [12, "pipeline"]], "Session": [[9, "session"], [10, "session"], [11, "session"], [12, "session"]], "OAK-D": [[10, "oak-d"]], "API reference": [[10, "api-reference"]], "Hooks API": [[10, "hooks-api"]], "ORBBEC": [[11, "orbbec"]], "RealSense": [[12, "realsense"]]}, "indexentries": {"spectacularai (c++ type)": [[2, "_CPPv413spectacularAI"], [9, "_CPPv413spectacularAI"], [11, "_CPPv413spectacularAI"], [12, "_CPPv413spectacularAI"]], "spectacularai::autoexposureoutput (c++ struct)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutputE"]], "spectacularai::autoexposureoutput::brightness (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput10brightnessE"]], "spectacularai::autoexposureoutput::deltabrightness (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput15deltaBrightnessE"]], "spectacularai::autoexposureoutput::maxexposuretime (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput15maxExposureTimeE"]], "spectacularai::autoexposureoutput::maxgain (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput7maxGainE"]], "spectacularai::autoexposureoutput::minexposuretime (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput15minExposureTimeE"]], "spectacularai::autoexposureoutput::mingain (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput7minGainE"]], "spectacularai::autoexposureoutput::tag (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput3tagE"]], "spectacularai::autoexposureoutput::timestamp (c++ member)": [[2, "_CPPv4N13spectacularAI18AutoExposureOutput9timestampE"]], "spectacularai::bitmap (c++ struct)": [[2, "_CPPv4N13spectacularAI6BitmapE"]], "spectacularai::bitmap::asopencv (c++ function)": [[2, "_CPPv4N13spectacularAI6Bitmap8asOpenCVEb"]], "spectacularai::bitmap::create (c++ function)": [[2, "_CPPv4N13spectacularAI6Bitmap6createEii11ColorFormat"]], "spectacularai::bitmap::createreference (c++ function)": [[2, "_CPPv4N13spectacularAI6Bitmap15createReferenceERN2cv3MatE"], [2, "_CPPv4N13spectacularAI6Bitmap15createReferenceEii11ColorFormatPNSt7uint8_tEi"]], "spectacularai::bitmap::getcolorformat (c++ function)": [[2, "_CPPv4NK13spectacularAI6Bitmap14getColorFormatEv"]], "spectacularai::bitmap::getdatareadonly (c++ function)": [[2, "_CPPv4NK13spectacularAI6Bitmap15getDataReadOnlyEv"]], "spectacularai::bitmap::getdatareadwrite (c++ function)": [[2, "_CPPv4N13spectacularAI6Bitmap16getDataReadWriteEv"]], "spectacularai::bitmap::getheight (c++ function)": [[2, "_CPPv4NK13spectacularAI6Bitmap9getHeightEv"]], "spectacularai::bitmap::getwidth (c++ function)": [[2, "_CPPv4NK13spectacularAI6Bitmap8getWidthEv"]], "spectacularai::bitmap::~bitmap (c++ function)": [[2, "_CPPv4N13spectacularAI6BitmapD0Ev"]], "spectacularai::camera (c++ struct)": [[2, "_CPPv4N13spectacularAI6CameraE"]], "spectacularai::camera::buildpinhole (c++ function)": [[2, "_CPPv4N13spectacularAI6Camera12buildPinholeERK8Matrix3dii"]], "spectacularai::camera::getintrinsicmatrix (c++ function)": [[2, "_CPPv4NK13spectacularAI6Camera18getIntrinsicMatrixEv"]], "spectacularai::camera::getprojectionmatrixopengl (c++ function)": [[2, "_CPPv4NK13spectacularAI6Camera25getProjectionMatrixOpenGLEdd"]], "spectacularai::camera::pixeltoray (c++ function)": [[2, "_CPPv4NK13spectacularAI6Camera10pixelToRayERK16PixelCoordinatesR8Vector3d"]], "spectacularai::camera::raytopixel (c++ function)": [[2, "_CPPv4NK13spectacularAI6Camera10rayToPixelERK8Vector3dR16PixelCoordinates"]], "spectacularai::camera::~camera (c++ function)": [[2, "_CPPv4N13spectacularAI6CameraD0Ev"]], "spectacularai::camerapose (c++ struct)": [[2, "_CPPv4N13spectacularAI10CameraPoseE"]], "spectacularai::camerapose::camera (c++ member)": [[2, "_CPPv4N13spectacularAI10CameraPose6cameraE"]], "spectacularai::camerapose::getcameratoworldmatrix (c++ function)": [[2, "_CPPv4NK13spectacularAI10CameraPose22getCameraToWorldMatrixEv"]], "spectacularai::camerapose::getposition (c++ function)": [[2, "_CPPv4NK13spectacularAI10CameraPose11getPositionEv"]], "spectacularai::camerapose::getworldtocameramatrix (c++ function)": [[2, "_CPPv4NK13spectacularAI10CameraPose22getWorldToCameraMatrixEv"]], "spectacularai::camerapose::pixeltoworld (c++ function)": [[2, "_CPPv4NK13spectacularAI10CameraPose12pixelToWorldERK16PixelCoordinatesR8Vector3dR8Vector3d"]], "spectacularai::camerapose::pose (c++ member)": [[2, "_CPPv4N13spectacularAI10CameraPose4poseE"]], "spectacularai::camerapose::worldtopixel (c++ function)": [[2, "_CPPv4NK13spectacularAI10CameraPose12worldToPixelERK8Vector3dR16PixelCoordinates"]], "spectacularai::camerarayto3dmatch (c++ struct)": [[2, "_CPPv4N13spectacularAI18CameraRayTo3DMatchE"]], "spectacularai::camerarayto3dmatch::point (c++ member)": [[2, "_CPPv4N13spectacularAI18CameraRayTo3DMatch5pointE"]], "spectacularai::camerarayto3dmatch::ray (c++ member)": [[2, "_CPPv4N13spectacularAI18CameraRayTo3DMatch3rayE"]], "spectacularai::colorformat (c++ enum)": [[2, "_CPPv4N13spectacularAI11ColorFormatE"]], "spectacularai::colorformat::bgr (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat3BGRE"]], "spectacularai::colorformat::bgra (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat4BGRAE"]], "spectacularai::colorformat::encoded_h264 (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat12ENCODED_H264E"]], "spectacularai::colorformat::float32 (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat7FLOAT32E"]], "spectacularai::colorformat::gray (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat4GRAYE"]], "spectacularai::colorformat::gray16 (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat6GRAY16E"]], "spectacularai::colorformat::none (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat4NONEE"]], "spectacularai::colorformat::rgb (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat3RGBE"]], "spectacularai::colorformat::rgba (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat4RGBAE"]], "spectacularai::colorformat::rgba_external_oes (c++ enumerator)": [[2, "_CPPv4N13spectacularAI11ColorFormat17RGBA_EXTERNAL_OESE"]], "spectacularai::featurepoint (c++ struct)": [[2, "_CPPv4N13spectacularAI12FeaturePointE"]], "spectacularai::featurepoint::id (c++ member)": [[2, "_CPPv4N13spectacularAI12FeaturePoint2idE"]], "spectacularai::featurepoint::pixelcoordinates (c++ member)": [[2, "_CPPv4N13spectacularAI12FeaturePoint16pixelCoordinatesE"]], "spectacularai::featurepoint::position (c++ member)": [[2, "_CPPv4N13spectacularAI12FeaturePoint8positionE"]], "spectacularai::featurepoint::status (c++ member)": [[2, "_CPPv4N13spectacularAI12FeaturePoint6statusE"]], "spectacularai::frame (c++ struct)": [[2, "_CPPv4N13spectacularAI5FrameE"]], "spectacularai::frame::camerapose (c++ member)": [[2, "_CPPv4N13spectacularAI5Frame10cameraPoseE"]], "spectacularai::frame::image (c++ member)": [[2, "_CPPv4N13spectacularAI5Frame5imageE"]], "spectacularai::frame::index (c++ member)": [[2, "_CPPv4N13spectacularAI5Frame5indexE"]], "spectacularai::frameset (c++ type)": [[2, "_CPPv4N13spectacularAI8FrameSetE"]], "spectacularai::gnssviooutput (c++ struct)": [[2, "_CPPv4N13spectacularAI13GnssVioOutputE"]], "spectacularai::gnssviooutput::coordinates (c++ member)": [[2, "_CPPv4N13spectacularAI13GnssVioOutput11coordinatesE"]], "spectacularai::gnssviooutput::enupositioncovariance (c++ member)": [[2, "_CPPv4N13spectacularAI13GnssVioOutput21enuPositionCovarianceE"]], "spectacularai::gnssviooutput::getenucamerapose (c++ function)": [[2, "_CPPv4NK13spectacularAI13GnssVioOutput16getEnuCameraPoseEi14WgsCoordinates"]], "spectacularai::gnssviooutput::orientation (c++ member)": [[2, "_CPPv4N13spectacularAI13GnssVioOutput11orientationE"]], "spectacularai::gnssviooutput::velocity (c++ member)": [[2, "_CPPv4N13spectacularAI13GnssVioOutput8velocityE"]], "spectacularai::gnssviooutput::velocitycovariance (c++ member)": [[2, "_CPPv4N13spectacularAI13GnssVioOutput18velocityCovarianceE"]], "spectacularai::gnssviooutput::~gnssviooutput (c++ function)": [[2, "_CPPv4N13spectacularAI13GnssVioOutputD0Ev"]], "spectacularai::matrix3d (c++ type)": [[2, "_CPPv4N13spectacularAI8Matrix3dE"]], "spectacularai::matrix4d (c++ type)": [[2, "_CPPv4N13spectacularAI8Matrix4dE"]], "spectacularai::pixelcoordinates (c++ struct)": [[2, "_CPPv4N13spectacularAI16PixelCoordinatesE"]], "spectacularai::pixelcoordinates::x (c++ member)": [[2, "_CPPv4N13spectacularAI16PixelCoordinates1xE"]], "spectacularai::pixelcoordinates::y (c++ member)": [[2, "_CPPv4N13spectacularAI16PixelCoordinates1yE"]], "spectacularai::pose (c++ struct)": [[2, "_CPPv4N13spectacularAI4PoseE"]], "spectacularai::pose::asmatrix (c++ function)": [[2, "_CPPv4NK13spectacularAI4Pose8asMatrixEv"]], "spectacularai::pose::frommatrix (c++ function)": [[2, "_CPPv4N13spectacularAI4Pose10fromMatrixEdRK8Matrix4d"]], "spectacularai::pose::orientation (c++ member)": [[2, "_CPPv4N13spectacularAI4Pose11orientationE"]], "spectacularai::pose::position (c++ member)": [[2, "_CPPv4N13spectacularAI4Pose8positionE"]], "spectacularai::pose::time (c++ member)": [[2, "_CPPv4N13spectacularAI4Pose4timeE"]], "spectacularai::quaternion (c++ struct)": [[2, "_CPPv4N13spectacularAI10QuaternionE"]], "spectacularai::quaternion::w (c++ member)": [[2, "_CPPv4N13spectacularAI10Quaternion1wE"]], "spectacularai::quaternion::x (c++ member)": [[2, "_CPPv4N13spectacularAI10Quaternion1xE"]], "spectacularai::quaternion::y (c++ member)": [[2, "_CPPv4N13spectacularAI10Quaternion1yE"]], "spectacularai::quaternion::z (c++ member)": [[2, "_CPPv4N13spectacularAI10Quaternion1zE"]], "spectacularai::replay (c++ struct)": [[2, "_CPPv4N13spectacularAI6ReplayE"]], "spectacularai::replay::builder (c++ struct)": [[2, "_CPPv4N13spectacularAI6Replay7BuilderE"]], "spectacularai::replay::builder::data (c++ struct)": [[2, "_CPPv4N13spectacularAI6Replay7Builder4DataE"]], "spectacularai::replay::builder::data::~data (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay7Builder4DataD0Ev"]], "spectacularai::replay::builder::_data (c++ member)": [[2, "_CPPv4N13spectacularAI6Replay7Builder5_dataE"]], "spectacularai::replay::builder::build (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay7Builder5buildEv"]], "spectacularai::replay::builder::setffmpeg (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay7Builder9setFfmpegEb"]], "spectacularai::replay::builder (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay7builderERKNSt6stringEN3Vio7BuilderE"]], "spectacularai::replay::close (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay5closeEv"]], "spectacularai::replay::replayoneline (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay13replayOneLineEv"]], "spectacularai::replay::runreplay (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay9runReplayEv"]], "spectacularai::replay::setdryrun (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay9setDryRunEb"]], "spectacularai::replay::setextendedoutputcallback (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay25setExtendedOutputCallbackERKNSt8functionIFv12VioOutputPtrRK8FrameSetEEE"]], "spectacularai::replay::setoutputcallback (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay17setOutputCallbackERKNSt8functionIFv12VioOutputPtrEEE"]], "spectacularai::replay::setplaybackspeed (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay16setPlaybackSpeedEd"]], "spectacularai::replay::startreplay (c++ function)": [[2, "_CPPv4N13spectacularAI6Replay11startReplayEv"]], "spectacularai::replay::~replay (c++ function)": [[2, "_CPPv4N13spectacularAI6ReplayD0Ev"]], "spectacularai::trackingstatus (c++ enum)": [[2, "_CPPv4N13spectacularAI14TrackingStatusE"]], "spectacularai::trackingstatus::init (c++ enumerator)": [[2, "_CPPv4N13spectacularAI14TrackingStatus4INITE"]], "spectacularai::trackingstatus::lost_tracking (c++ enumerator)": [[2, "_CPPv4N13spectacularAI14TrackingStatus13LOST_TRACKINGE"]], "spectacularai::trackingstatus::tracking (c++ enumerator)": [[2, "_CPPv4N13spectacularAI14TrackingStatus8TRACKINGE"]], "spectacularai::vector3d (c++ struct)": [[2, "_CPPv4N13spectacularAI8Vector3dE"]], "spectacularai::vector3d::x (c++ member)": [[2, "_CPPv4N13spectacularAI8Vector3d1xE"]], "spectacularai::vector3d::y (c++ member)": [[2, "_CPPv4N13spectacularAI8Vector3d1yE"]], "spectacularai::vector3d::z (c++ member)": [[2, "_CPPv4N13spectacularAI8Vector3d1zE"]], "spectacularai::vector3f (c++ struct)": [[2, "_CPPv4N13spectacularAI8Vector3fE"]], "spectacularai::vector3f::x (c++ member)": [[2, "_CPPv4N13spectacularAI8Vector3f1xE"]], "spectacularai::vector3f::y (c++ member)": [[2, "_CPPv4N13spectacularAI8Vector3f1yE"]], "spectacularai::vector3f::z (c++ member)": [[2, "_CPPv4N13spectacularAI8Vector3f1zE"]], "spectacularai::viooutput (c++ struct)": [[2, "_CPPv4N13spectacularAI9VioOutputE"]], "spectacularai::viooutput::acceleration (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput12accelerationE"]], "spectacularai::viooutput::angularvelocity (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput15angularVelocityE"]], "spectacularai::viooutput::asjson (c++ function)": [[2, "_CPPv4NK13spectacularAI9VioOutput6asJsonEv"]], "spectacularai::viooutput::getcamerapose (c++ function)": [[2, "_CPPv4NK13spectacularAI9VioOutput13getCameraPoseEi"]], "spectacularai::viooutput::globalpose (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput10globalPoseE"]], "spectacularai::viooutput::pointcloud (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput10pointCloudE"]], "spectacularai::viooutput::pose (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput4poseE"]], "spectacularai::viooutput::posetrail (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput9poseTrailE"]], "spectacularai::viooutput::positioncovariance (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput18positionCovarianceE"]], "spectacularai::viooutput::status (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput6statusE"]], "spectacularai::viooutput::tag (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput3tagE"]], "spectacularai::viooutput::velocity (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput8velocityE"]], "spectacularai::viooutput::velocitycovariance (c++ member)": [[2, "_CPPv4N13spectacularAI9VioOutput18velocityCovarianceE"]], "spectacularai::viooutput::~viooutput (c++ function)": [[2, "_CPPv4N13spectacularAI9VioOutputD0Ev"]], "spectacularai::viooutputptr (c++ type)": [[2, "_CPPv4N13spectacularAI12VioOutputPtrE"]], "spectacularai::visualization (c++ struct)": [[2, "_CPPv4N13spectacularAI13VisualizationE"]], "spectacularai::visualization::createrendertarget (c++ function)": [[2, "_CPPv4N13spectacularAI13Visualization18createRenderTargetEv"]], "spectacularai::visualization::ready (c++ function)": [[2, "_CPPv4NK13spectacularAI13Visualization5readyEv"]], "spectacularai::visualization::render (c++ function)": [[2, "_CPPv4N13spectacularAI13Visualization6renderER6Bitmap"]], "spectacularai::visualization::update (c++ function)": [[2, "_CPPv4N13spectacularAI13Visualization6updateE12VioOutputPtr"]], "spectacularai::visualization::~visualization (c++ function)": [[2, "_CPPv4N13spectacularAI13VisualizationD0Ev"]], "spectacularai::wgscoordinates (c++ struct)": [[2, "_CPPv4N13spectacularAI14WgsCoordinatesE"]], "spectacularai::wgscoordinates::altitude (c++ member)": [[2, "_CPPv4N13spectacularAI14WgsCoordinates8altitudeE"]], "spectacularai::wgscoordinates::latitude (c++ member)": [[2, "_CPPv4N13spectacularAI14WgsCoordinates8latitudeE"]], "spectacularai::wgscoordinates::longitude (c++ member)": [[2, "_CPPv4N13spectacularAI14WgsCoordinates9longitudeE"]], "spectacularai::buildcovariancematrix (c++ function)": [[2, "_CPPv4N13spectacularAI21buildCovarianceMatrixEdd"]], "spectacularai::daiplugin (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPluginE"]], "spectacularai::daiplugin::configuration (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin13ConfigurationE"]], "spectacularai::daiplugin::configuration::accfrequencyhz (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration14accFrequencyHzE"]], "spectacularai::daiplugin::configuration::apriltagpath (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration12aprilTagPathE"]], "spectacularai::daiplugin::configuration::depthqueuesize (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration14depthQueueSizeE"]], "spectacularai::daiplugin::configuration::depthscalecorrection (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration20depthScaleCorrectionE"]], "spectacularai::daiplugin::configuration::disablecameras (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration14disableCamerasE"]], "spectacularai::daiplugin::configuration::ensuresufficientusbspeed (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration24ensureSufficientUsbSpeedE"]], "spectacularai::daiplugin::configuration::extendeddisparity (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration17extendedDisparityE"]], "spectacularai::daiplugin::configuration::fastimu (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration7fastImuE"]], "spectacularai::daiplugin::configuration::fastvio (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration7fastVioE"]], "spectacularai::daiplugin::configuration::forcerectified (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration14forceRectifiedE"]], "spectacularai::daiplugin::configuration::forceunrectified (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration16forceUnrectifiedE"]], "spectacularai::daiplugin::configuration::gyrofrequencyhz (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration15gyroFrequencyHzE"]], "spectacularai::daiplugin::configuration::imufrequencyhz (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration14imuFrequencyHzE"]], "spectacularai::daiplugin::configuration::imuqueuesize (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration12imuQueueSizeE"]], "spectacularai::daiplugin::configuration::imutognss (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration9imuToGnssE"]], "spectacularai::daiplugin::configuration::inputresolution (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration15inputResolutionE"]], "spectacularai::daiplugin::configuration::internalparameters (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration18internalParametersE"]], "spectacularai::daiplugin::configuration::keyframecandidateeverynthframe (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration30keyframeCandidateEveryNthFrameE"]], "spectacularai::daiplugin::configuration::maploadpath (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration11mapLoadPathE"]], "spectacularai::daiplugin::configuration::mapsavepath (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration11mapSavePathE"]], "spectacularai::daiplugin::configuration::meshrectification (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration17meshRectificationE"]], "spectacularai::daiplugin::configuration::monoqueuesize (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration13monoQueueSizeE"]], "spectacularai::daiplugin::configuration::recordingfolder (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration15recordingFolderE"]], "spectacularai::daiplugin::configuration::recordingonly (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration13recordingOnlyE"]], "spectacularai::daiplugin::configuration::silenceusbwarnings (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration18silenceUsbWarningsE"]], "spectacularai::daiplugin::configuration::usecolor (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration8useColorE"]], "spectacularai::daiplugin::configuration::usecolorstereocameras (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration21useColorStereoCamerasE"]], "spectacularai::daiplugin::configuration::useencodedvideo (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration15useEncodedVideoE"]], "spectacularai::daiplugin::configuration::usefeaturetracker (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration17useFeatureTrackerE"]], "spectacularai::daiplugin::configuration::usegraydepth (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration12useGrayDepthE"]], "spectacularai::daiplugin::configuration::usereaderthread (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration15useReaderThreadE"]], "spectacularai::daiplugin::configuration::useslam (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration7useSlamE"]], "spectacularai::daiplugin::configuration::usestereo (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration9useStereoE"]], "spectacularai::daiplugin::configuration::usevioautoexposure (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13Configuration18useVioAutoExposureE"]], "spectacularai::daiplugin::daicalibrationhandleradapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin28DaiCalibrationHandlerAdapterE"]], "spectacularai::daiplugin::daicameracontroladapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin23DaiCameraControlAdapterE"]], "spectacularai::daiplugin::daicolorinputresolutionadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin30DaiColorInputResolutionAdapterE"]], "spectacularai::daiplugin::daidatainputqueueadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin24DaiDataInputQueueAdapterE"]], "spectacularai::daiplugin::daidataoutputqueueadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin25DaiDataOutputQueueAdapterE"]], "spectacularai::daiplugin::daideviceadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin16DaiDeviceAdapterE"]], "spectacularai::daiplugin::daiimudataadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin17DaiIMUDataAdapterE"]], "spectacularai::daiplugin::daiimgframeadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin18DaiImgFrameAdapterE"]], "spectacularai::daiplugin::daiinputresolutionadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin25DaiInputResolutionAdapterE"]], "spectacularai::daiplugin::daipipelineadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin18DaiPipelineAdapterE"]], "spectacularai::daiplugin::daitrackedfeaturesadapter (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin25DaiTrackedFeaturesAdapterE"]], "spectacularai::daiplugin::hooks (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin5HooksE"]], "spectacularai::daiplugin::hooks::color (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin5Hooks5colorE"]], "spectacularai::daiplugin::hooks::depth (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin5Hooks5depthE"]], "spectacularai::daiplugin::hooks::imu (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin5Hooks3imuE"]], "spectacularai::daiplugin::hooks::monoprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin5Hooks11monoPrimaryE"]], "spectacularai::daiplugin::hooks::monosecondary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin5Hooks13monoSecondaryE"]], "spectacularai::daiplugin::hooks::trackedfeatures (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin5Hooks15trackedFeaturesE"]], "spectacularai::daiplugin::pipeline (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin8PipelineE"]], "spectacularai::daiplugin::pipeline::pipeline (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipeline"], [2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13Configuration"], [2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8PipelineE11DaiPipelineRK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE"]], "spectacularai::daiplugin::pipeline::color (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline5colorE"]], "spectacularai::daiplugin::pipeline::colorimagemanip (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15colorImageManipE"]], "spectacularai::daiplugin::pipeline::colorleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9colorLeftE"]], "spectacularai::daiplugin::pipeline::colorprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12colorPrimaryE"]], "spectacularai::daiplugin::pipeline::colorright (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline10colorRightE"]], "spectacularai::daiplugin::pipeline::colorsecondary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14colorSecondaryE"]], "spectacularai::daiplugin::pipeline::configuration (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13configurationE"]], "spectacularai::daiplugin::pipeline::featuretracker (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14featureTrackerE"]], "spectacularai::daiplugin::pipeline::hooks (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline5hooksE"]], "spectacularai::daiplugin::pipeline::imu (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline3imuE"]], "spectacularai::daiplugin::pipeline::imutocameraleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15imuToCameraLeftE"]], "spectacularai::daiplugin::pipeline::monoleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8monoLeftE"]], "spectacularai::daiplugin::pipeline::monoprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline11monoPrimaryE"]], "spectacularai::daiplugin::pipeline::monoright (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9monoRightE"]], "spectacularai::daiplugin::pipeline::monosecondary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13monoSecondaryE"]], "spectacularai::daiplugin::pipeline::onmapperoutput (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline14onMapperOutputE"]], "spectacularai::daiplugin::pipeline::scriptprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13scriptPrimaryE"]], "spectacularai::daiplugin::pipeline::scriptsecondary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline15scriptSecondaryE"]], "spectacularai::daiplugin::pipeline::spectacularaiconfigurationyaml (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline30spectacularAIConfigurationYAMLE"]], "spectacularai::daiplugin::pipeline::startsession (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12startSessionE9DaiDevice"]], "spectacularai::daiplugin::pipeline::stereo (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline6stereoE"]], "spectacularai::daiplugin::pipeline::videoencoderprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline19videoEncoderPrimaryE"]], "spectacularai::daiplugin::pipeline::videoencodersecondary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline21videoEncoderSecondaryE"]], "spectacularai::daiplugin::pipeline::xincontrol (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline10xinControlE"]], "spectacularai::daiplugin::pipeline::xoutdepth (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9xoutDepthE"]], "spectacularai::daiplugin::pipeline::xoutfeatures (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline12xoutFeaturesE"]], "spectacularai::daiplugin::pipeline::xoutimu (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline7xoutImuE"]], "spectacularai::daiplugin::pipeline::xoutleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline8xoutLeftE"]], "spectacularai::daiplugin::pipeline::xoutprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline11xoutPrimaryE"]], "spectacularai::daiplugin::pipeline::xoutright (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline9xoutRightE"]], "spectacularai::daiplugin::pipeline::xoutscriptprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline17xoutScriptPrimaryE"]], "spectacularai::daiplugin::pipeline::xoutscriptsecondary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline19xoutScriptSecondaryE"]], "spectacularai::daiplugin::pipeline::xoutsecondary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8Pipeline13xoutSecondaryE"]], "spectacularai::daiplugin::pipelineextensions (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin18PipelineExtensionsE"]], "spectacularai::daiplugin::pipelineextensions::rae (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin18PipelineExtensions3raeE"]], "spectacularai::daiplugin::pipelinerae (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin11PipelineRAEE"]], "spectacularai::daiplugin::pipelinerae::back (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin11PipelineRAE4backE"]], "spectacularai::daiplugin::pipelinerae::front (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin11PipelineRAE5frontE"]], "spectacularai::daiplugin::raecameranode (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNodeE"]], "spectacularai::daiplugin::raecameranode::colorleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode9colorLeftE"]], "spectacularai::daiplugin::raecameranode::colorright (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode10colorRightE"]], "spectacularai::daiplugin::raecameranode::featuretracker (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode14featureTrackerE"]], "spectacularai::daiplugin::raecameranode::scriptleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode10scriptLeftE"]], "spectacularai::daiplugin::raecameranode::scriptright (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode11scriptRightE"]], "spectacularai::daiplugin::raecameranode::stereodepth (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode11stereoDepthE"]], "spectacularai::daiplugin::raecameranode::xincontrol (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode10xinControlE"]], "spectacularai::daiplugin::raecameranode::xoutdepth (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode9xoutDepthE"]], "spectacularai::daiplugin::raecameranode::xoutfeatures (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode12xoutFeaturesE"]], "spectacularai::daiplugin::raecameranode::xoutleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode8xoutLeftE"]], "spectacularai::daiplugin::raecameranode::xoutright (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode9xoutRightE"]], "spectacularai::daiplugin::raecameranode::xoutscriptleft (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode14xoutScriptLeftE"]], "spectacularai::daiplugin::raecameranode::xoutscriptright (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin13RAECameraNode15xoutScriptRightE"]], "spectacularai::daiplugin::rawimgframetypeconverter (c++ class)": [[2, "_CPPv4N13spectacularAI9daiPlugin24RawImgFrameTypeConverterE"]], "spectacularai::daiplugin::rawimgframetypeconverter::getstringtype (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin24RawImgFrameTypeConverter13getStringTypeERKN3dai11RawImgFrame4TypeE"]], "spectacularai::daiplugin::session (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin7SessionE"]], "spectacularai::daiplugin::session::addabsolutepose (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin7Session15addAbsolutePoseERK4PoseRK8Matrix3dd"]], "spectacularai::daiplugin::session::addgnss (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin7Session7addGnssEdRK14WgsCoordinatesRK8Matrix3d"]], "spectacularai::daiplugin::session::addtrigger (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin7Session10addTriggerEdi"]], "spectacularai::daiplugin::session::getoutput (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin7Session9getOutputEv"]], "spectacularai::daiplugin::session::getrgbcamerapose (c++ function)": [[2, "_CPPv4NK13spectacularAI9daiPlugin7Session16getRgbCameraPoseERK9VioOutput"]], "spectacularai::daiplugin::session::hasoutput (c++ function)": [[2, "_CPPv4NK13spectacularAI9daiPlugin7Session9hasOutputEv"]], "spectacularai::daiplugin::session::waitforoutput (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin7Session13waitForOutputEv"]], "spectacularai::daiplugin::session::work (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin7Session4workEv"]], "spectacularai::daiplugin::session::~session (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin7SessionD0Ev"]], "spectacularai::daiplugin::getdaifeaturestimestampdevice (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin29getDaiFeaturesTimestampDeviceERKN3dai15TrackedFeaturesE"]], "spectacularai::daiplugin::getdaiimageexposuretime (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin23getDaiImageExposureTimeERKN3dai8ImgFrameE"]], "spectacularai::daiplugin::getdaiimagerawdata (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin18getDaiImageRawDataERN3dai8ImgFrameE"]], "spectacularai::daiplugin::getdaiimagerawdatasize (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin22getDaiImageRawDataSizeERN3dai8ImgFrameE"]], "spectacularai::daiplugin::getdaiimagetimestampdevice (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin26getDaiImageTimestampDeviceERKN3dai8ImgFrameE"]], "spectacularai::daiplugin::getdaiimagetype (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin15getDaiImageTypeERKN3dai8ImgFrameE"]], "spectacularai::daiplugin::getdaiimutimestampdevice (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin24getDaiImuTimestampDeviceERKN3dai9IMUReportE"]], "spectacularai::daiplugin::getdaiusbspeedname (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin18getDaiUsbSpeedNameEN3dai8UsbSpeedE"]], "spectacularai::daiplugin::getdaiusbspeedvalue (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin19getDaiUsbSpeedValueEN3dai8UsbSpeedE"]], "spectacularai::daiplugin::getjsonstringoremptyvaluesafe (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin29getJsonStringOrEmptyValueSafeERKN8nlohmann4jsonEPKc"]], "spectacularai::daiplugin::internal (c++ type)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internalE"]], "spectacularai::daiplugin::internal::cameracalibration (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibrationE"]], "spectacularai::daiplugin::internal::cameracalibration::colorcameradistortioncoeffs (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration27colorCameraDistortionCoeffsE"]], "spectacularai::daiplugin::internal::cameracalibration::colorintrinsics (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration15colorIntrinsicsE"]], "spectacularai::daiplugin::internal::cameracalibration::colorresolution (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration15colorResolutionE"]], "spectacularai::daiplugin::internal::cameracalibration::colortoprimary (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration14colorToPrimaryE"]], "spectacularai::daiplugin::internal::cameracalibration::depthscale (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration10depthScaleE"]], "spectacularai::daiplugin::internal::cameracalibration::json (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration4jsonE"]], "spectacularai::daiplugin::internal::cameracalibration::stereoresolution (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17CameraCalibration16stereoResolutionE"]], "spectacularai::daiplugin::internal::colorinputresolution (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal20ColorInputResolutionE"]], "spectacularai::daiplugin::internal::colorinputresolution::daireso (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal20ColorInputResolution7daiResoE"]], "spectacularai::daiplugin::internal::colorinputresolution::resolution (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal20ColorInputResolution10resolutionE"]], "spectacularai::daiplugin::internal::colorresolution (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal15ColorResolutionE"]], "spectacularai::daiplugin::internal::colorresolution::input (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal15ColorResolution5inputE"]], "spectacularai::daiplugin::internal::colorresolution::preview (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal15ColorResolution7previewE"]], "spectacularai::daiplugin::internal::monoresolution (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal14MonoResolutionE"]], "spectacularai::daiplugin::internal::monoresolution::daireso (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal14MonoResolution7daiResoE"]], "spectacularai::daiplugin::internal::monoresolution::resolution (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal14MonoResolution10resolutionE"]], "spectacularai::daiplugin::internal::resolution (c++ struct)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal10ResolutionE"]], "spectacularai::daiplugin::internal::resolution::height (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal10Resolution6heightE"]], "spectacularai::daiplugin::internal::resolution::width (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal10Resolution5widthE"]], "spectacularai::daiplugin::internal::stream_tag (c++ member)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal10STREAM_TAGE"]], "spectacularai::daiplugin::internal::convertcolorinputresolution (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal27convertColorInputResolutionERKNSt6stringE"]], "spectacularai::daiplugin::internal::convertinputresolution (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal22convertInputResolutionERKNSt6stringE"]], "spectacularai::daiplugin::internal::getcalibration (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal14getCalibrationERK13ConfigurationRK8Matrix4d16DaiDeviceAdapter"]], "spectacularai::daiplugin::internal::getsupportedvideoresolution (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal27getSupportedVideoResolutionERK13Configuration"]], "spectacularai::daiplugin::internal::getyamlconfiguration (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal20getYAMLConfigurationERK13Configuration"]], "spectacularai::daiplugin::internal::isdevicerae (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal11isDeviceRAEERK13Configuration"]], "spectacularai::daiplugin::internal::matrixmul (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal9matrixMulERK8Matrix4dRK8Matrix4d"]], "spectacularai::daiplugin::internal::selectnearbycolorresolution (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal27selectNearbyColorResolutionEiRKNSt6stringE"]], "spectacularai::daiplugin::internal::useraebackcameras (c++ function)": [[2, "_CPPv4N13spectacularAI9daiPlugin8internal17useRaeBackCamerasERK13Configuration"]], "spectacularai::gethorizontaluncertainty (c++ function)": [[2, "_CPPv4N13spectacularAI24getHorizontalUncertaintyERK8Matrix3d"]], "spectacularai::getquaternionheading (c++ function)": [[2, "_CPPv4N13spectacularAI20getQuaternionHeadingERK10Quaternion"]], "spectacularai::getquaternionpitch (c++ function)": [[2, "_CPPv4N13spectacularAI18getQuaternionPitchERK10Quaternion"]], "spectacularai::getquaternionroll (c++ function)": [[2, "_CPPv4N13spectacularAI17getQuaternionRollERK10Quaternion"]], "spectacularai::getverticaluncertainty (c++ function)": [[2, "_CPPv4N13spectacularAI22getVerticalUncertaintyERK8Matrix3d"]], "spectacularai::k4aplugin (c++ type)": [[2, "_CPPv4N13spectacularAI9k4aPluginE"], [9, "_CPPv4N13spectacularAI9k4aPluginE"]], "spectacularai::k4aplugin::configuration (c++ struct)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13ConfigurationE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13ConfigurationE"]], "spectacularai::k4aplugin::configuration::aligneddepth (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12alignedDepthE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12alignedDepthE"]], "spectacularai::k4aplugin::configuration::apriltagpath (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12aprilTagPathE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration12aprilTagPathE"]], "spectacularai::k4aplugin::configuration::distortionenabled (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration17distortionEnabledE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration17distortionEnabledE"]], "spectacularai::k4aplugin::configuration::fastvio (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7fastVioE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7fastVioE"]], "spectacularai::k4aplugin::configuration::internalparameters (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration18internalParametersE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration18internalParametersE"]], "spectacularai::k4aplugin::configuration::k4aconfig (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9k4aConfigE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9k4aConfigE"]], "spectacularai::k4aplugin::configuration::postprocessfinalmap (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration19postProcessFinalMapE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration19postProcessFinalMapE"]], "spectacularai::k4aplugin::configuration::recordingfolder (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration15recordingFolderE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration15recordingFolderE"]], "spectacularai::k4aplugin::configuration::recordingonly (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration13recordingOnlyE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration13recordingOnlyE"]], "spectacularai::k4aplugin::configuration::useslam (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7useSlamE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration7useSlamE"]], "spectacularai::k4aplugin::configuration::usestereo (c++ member)": [[2, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9useStereoE"], [9, "_CPPv4N13spectacularAI9k4aPlugin13Configuration9useStereoE"]], "spectacularai::k4aplugin::pipeline (c++ class)": [[2, "_CPPv4N13spectacularAI9k4aPlugin8PipelineE"], [9, "_CPPv4N13spectacularAI9k4aPlugin8PipelineE"]], "spectacularai::k4aplugin::pipeline::pipeline (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13Configuration"], [2, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE"], [2, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineEv"], [9, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13Configuration"], [9, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE"], [9, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline8PipelineEv"]], "spectacularai::k4aplugin::pipeline::getdevicehandle (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline15getDeviceHandleEv"], [9, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline15getDeviceHandleEv"]], "spectacularai::k4aplugin::pipeline::startsession (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline12startSessionEv"], [9, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline12startSessionEv"]], "spectacularai::k4aplugin::pipeline::~pipeline (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin8PipelineD0Ev"], [9, "_CPPv4N13spectacularAI9k4aPlugin8PipelineD0Ev"]], "spectacularai::k4aplugin::session (c++ struct)": [[2, "_CPPv4N13spectacularAI9k4aPlugin7SessionE"], [9, "_CPPv4N13spectacularAI9k4aPlugin7SessionE"]], "spectacularai::k4aplugin::session::addtrigger (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi"], [9, "_CPPv4N13spectacularAI9k4aPlugin7Session10addTriggerEdi"]], "spectacularai::k4aplugin::session::getoutput (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin7Session9getOutputEv"], [9, "_CPPv4N13spectacularAI9k4aPlugin7Session9getOutputEv"]], "spectacularai::k4aplugin::session::hasoutput (c++ function)": [[2, "_CPPv4NK13spectacularAI9k4aPlugin7Session9hasOutputEv"], [9, "_CPPv4NK13spectacularAI9k4aPlugin7Session9hasOutputEv"]], "spectacularai::k4aplugin::session::ignoreoutputs (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin7Session13ignoreOutputsEb"], [9, "_CPPv4N13spectacularAI9k4aPlugin7Session13ignoreOutputsEb"]], "spectacularai::k4aplugin::session::waitforoutput (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin7Session13waitForOutputEv"], [9, "_CPPv4N13spectacularAI9k4aPlugin7Session13waitForOutputEv"]], "spectacularai::k4aplugin::session::~session (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin7SessionD0Ev"], [9, "_CPPv4N13spectacularAI9k4aPlugin7SessionD0Ev"]], "spectacularai::k4aplugin::getcalibration (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin14getCalibrationERK17k4a_calibration_tRK13Configuration"]], "spectacularai::k4aplugin::getk4aconfiguration (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib"], [9, "_CPPv4N13spectacularAI9k4aPlugin19getK4AConfigurationERKNSt6stringEiib"]], "spectacularai::k4aplugin::getyamlconfiguration (c++ function)": [[2, "_CPPv4N13spectacularAI9k4aPlugin20getYAMLConfigurationERK13Configuration"], [9, "_CPPv4N13spectacularAI9k4aPlugin20getYAMLConfigurationERK13Configuration"]], "spectacularai::mapping (c++ type)": [[2, "_CPPv4N13spectacularAI7mappingE"]], "spectacularai::mapping::frame (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping5FrameE"]], "spectacularai::mapping::frame::camerapose (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping5Frame10cameraPoseE"]], "spectacularai::mapping::frame::depthscale (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping5Frame10depthScaleE"]], "spectacularai::mapping::frame::image (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping5Frame5imageE"]], "spectacularai::mapping::frame::sparsefeatures (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping5Frame14sparseFeaturesE"]], "spectacularai::mapping::frameset (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping8FrameSetE"]], "spectacularai::mapping::frameset::depthframe (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping8FrameSet10depthFrameE"]], "spectacularai::mapping::frameset::getaligneddepthframe (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping8FrameSet20getAlignedDepthFrameEKNSt10shared_ptrI5FrameEE"]], "spectacularai::mapping::frameset::getundistortedframe (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping8FrameSet19getUndistortedFrameEKNSt10shared_ptrI5FrameEE"]], "spectacularai::mapping::frameset::primaryframe (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping8FrameSet12primaryFrameE"]], "spectacularai::mapping::frameset::rgbframe (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping8FrameSet8rgbFrameE"]], "spectacularai::mapping::frameset::secondaryframe (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping8FrameSet14secondaryFrameE"]], "spectacularai::mapping::frameset::~frameset (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping8FrameSetD0Ev"]], "spectacularai::mapping::keyframe (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping8KeyFrameE"]], "spectacularai::mapping::keyframe::frameset (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping8KeyFrame8frameSetE"]], "spectacularai::mapping::keyframe::id (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping8KeyFrame2idE"]], "spectacularai::mapping::keyframe::pointcloud (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping8KeyFrame10pointCloudE"]], "spectacularai::mapping::map (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping3MapE"]], "spectacularai::mapping::map::keyframes (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping3Map9keyFramesE"]], "spectacularai::mapping::map::mappoints (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping3Map9mapPointsE"]], "spectacularai::mapping::mapperoutput (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping12MapperOutputE"]], "spectacularai::mapping::mapperoutput::finalmap (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping12MapperOutput8finalMapE"]], "spectacularai::mapping::mapperoutput::map (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping12MapperOutput3mapE"]], "spectacularai::mapping::mapperoutput::mesh (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping12MapperOutput4meshE"]], "spectacularai::mapping::mapperoutput::updatedkeyframes (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping12MapperOutput16updatedKeyFramesE"]], "spectacularai::mapping::mapperoutput::updatedmappoints (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping12MapperOutput16updatedMapPointsE"]], "spectacularai::mapping::mapperoutputptr (c++ type)": [[2, "_CPPv4N13spectacularAI7mapping15MapperOutputPtrE"]], "spectacularai::mapping::mesh (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping4MeshE"]], "spectacularai::mapping::mesh::indexface (c++ type)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh9IndexFaceE"]], "spectacularai::mapping::mesh::triangle (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh8TriangleE"]], "spectacularai::mapping::mesh::triangle::normals (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh8Triangle7normalsE"]], "spectacularai::mapping::mesh::triangle::vertices (c++ member)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh8Triangle8verticesE"]], "spectacularai::mapping::mesh::empty (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping4Mesh5emptyEv"]], "spectacularai::mapping::mesh::facecount (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping4Mesh9faceCountEv"]], "spectacularai::mapping::mesh::getfacenormals (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh14getFaceNormalsEv"]], "spectacularai::mapping::mesh::getfacevertices (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh15getFaceVerticesEv"]], "spectacularai::mapping::mesh::getnormaldata (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh13getNormalDataEv"]], "spectacularai::mapping::mesh::getpositiondata (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping4Mesh15getPositionDataEv"]], "spectacularai::mapping::mesh::gettriangle (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping4Mesh11getTriangleENSt6size_tE"]], "spectacularai::mapping::mesh::hasnormals (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping4Mesh10hasNormalsEv"]], "spectacularai::mapping::mesh::normalcount (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping4Mesh11normalCountEv"]], "spectacularai::mapping::mesh::serializetoobj (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping4Mesh14serializeToObjERKNSt6stringE"]], "spectacularai::mapping::mesh::vertexcount (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping4Mesh11vertexCountEv"]], "spectacularai::mapping::mesh::~mesh (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping4MeshD0Ev"]], "spectacularai::mapping::pointcloud (c++ struct)": [[2, "_CPPv4N13spectacularAI7mapping10PointCloudE"]], "spectacularai::mapping::pointcloud::empty (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping10PointCloud5emptyEv"]], "spectacularai::mapping::pointcloud::getnormal (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping10PointCloud9getNormalENSt6size_tE"]], "spectacularai::mapping::pointcloud::getnormaldata (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping10PointCloud13getNormalDataEv"]], "spectacularai::mapping::pointcloud::getposition (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping10PointCloud11getPositionENSt6size_tE"]], "spectacularai::mapping::pointcloud::getpositiondata (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping10PointCloud15getPositionDataEv"]], "spectacularai::mapping::pointcloud::getrgb24 (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping10PointCloud8getRGB24ENSt6size_tE"]], "spectacularai::mapping::pointcloud::getrgb24data (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping10PointCloud12getRGB24DataEv"]], "spectacularai::mapping::pointcloud::hascolors (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping10PointCloud9hasColorsEv"]], "spectacularai::mapping::pointcloud::hasnormals (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping10PointCloud10hasNormalsEv"]], "spectacularai::mapping::pointcloud::size (c++ function)": [[2, "_CPPv4NK13spectacularAI7mapping10PointCloud4sizeEv"]], "spectacularai::mapping::pointcloud::~pointcloud (c++ function)": [[2, "_CPPv4N13spectacularAI7mapping10PointCloudD0Ev"]], "spectacularai::orbbecplugin (c++ type)": [[2, "_CPPv4N13spectacularAI12orbbecPluginE"], [11, "_CPPv4N13spectacularAI12orbbecPluginE"]], "spectacularai::orbbecplugin::configuration (c++ struct)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13ConfigurationE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13ConfigurationE"]], "spectacularai::orbbecplugin::configuration::configuration (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationERN2ob8PipelineE"], [2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationEv"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationERN2ob8PipelineE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13ConfigurationEv"]], "spectacularai::orbbecplugin::configuration::accfrequencyhz (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration14accFrequencyHzE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration14accFrequencyHzE"]], "spectacularai::orbbecplugin::configuration::accrange (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration8accRangeE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration8accRangeE"]], "spectacularai::orbbecplugin::configuration::aligneddepth (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12alignedDepthE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12alignedDepthE"]], "spectacularai::orbbecplugin::configuration::apriltagpath (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12aprilTagPathE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration12aprilTagPathE"]], "spectacularai::orbbecplugin::configuration::camerafps (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9cameraFpsE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9cameraFpsE"]], "spectacularai::orbbecplugin::configuration::depthresolution (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15depthResolutionE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15depthResolutionE"]], "spectacularai::orbbecplugin::configuration::fastvio (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7fastVioE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7fastVioE"]], "spectacularai::orbbecplugin::configuration::gyrofrequencyhz (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15gyroFrequencyHzE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15gyroFrequencyHzE"]], "spectacularai::orbbecplugin::configuration::gyrorange (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9gyroRangeE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration9gyroRangeE"]], "spectacularai::orbbecplugin::configuration::internalparameters (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration18internalParametersE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration18internalParametersE"]], "spectacularai::orbbecplugin::configuration::postprocessfinalmap (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration19postProcessFinalMapE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration19postProcessFinalMapE"]], "spectacularai::orbbecplugin::configuration::recordingfolder (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15recordingFolderE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration15recordingFolderE"]], "spectacularai::orbbecplugin::configuration::recordingonly (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13recordingOnlyE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13recordingOnlyE"]], "spectacularai::orbbecplugin::configuration::rgbresolution (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13rgbResolutionE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration13rgbResolutionE"]], "spectacularai::orbbecplugin::configuration::useslam (c++ member)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7useSlamE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin13Configuration7useSlamE"]], "spectacularai::orbbecplugin::pipeline (c++ class)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineE"]], "spectacularai::orbbecplugin::pipeline::pipeline (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineE"], [2, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration"], [2, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13Configuration"], [11, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline8PipelineERN2ob8PipelineERK13ConfigurationNSt8functionIFvN7mapping15MapperOutputPtrEEEE"]], "spectacularai::orbbecplugin::pipeline::startsession (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline12startSessionEv"], [11, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline12startSessionEv"]], "spectacularai::orbbecplugin::pipeline::~pipeline (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineD0Ev"], [11, "_CPPv4N13spectacularAI12orbbecPlugin8PipelineD0Ev"]], "spectacularai::orbbecplugin::session (c++ struct)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin7SessionE"], [11, "_CPPv4N13spectacularAI12orbbecPlugin7SessionE"]], "spectacularai::orbbecplugin::session::addtrigger (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi"], [11, "_CPPv4N13spectacularAI12orbbecPlugin7Session10addTriggerEdi"]], "spectacularai::orbbecplugin::session::getoutput (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin7Session9getOutputEv"], [11, "_CPPv4N13spectacularAI12orbbecPlugin7Session9getOutputEv"]], "spectacularai::orbbecplugin::session::hasoutput (c++ function)": [[2, "_CPPv4NK13spectacularAI12orbbecPlugin7Session9hasOutputEv"], [11, "_CPPv4NK13spectacularAI12orbbecPlugin7Session9hasOutputEv"]], "spectacularai::orbbecplugin::session::ignoreoutputs (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin7Session13ignoreOutputsEb"], [11, "_CPPv4N13spectacularAI12orbbecPlugin7Session13ignoreOutputsEb"]], "spectacularai::orbbecplugin::session::waitforoutput (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin7Session13waitForOutputEv"], [11, "_CPPv4N13spectacularAI12orbbecPlugin7Session13waitForOutputEv"]], "spectacularai::orbbecplugin::session::~session (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin7SessionD0Ev"], [11, "_CPPv4N13spectacularAI12orbbecPlugin7SessionD0Ev"]], "spectacularai::orbbecplugin::internal (c++ type)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin8internalE"]], "spectacularai::orbbecplugin::internal::getcalibration (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin8internal14getCalibrationERK13OBCameraParamRK13ConfigurationRKNSt6stringE"]], "spectacularai::orbbecplugin::internal::getyamlconfiguration (c++ function)": [[2, "_CPPv4N13spectacularAI12orbbecPlugin8internal20getYAMLConfigurationERK13ConfigurationRKNSt6stringE"]], "spectacularai::rsplugin (c++ type)": [[2, "_CPPv4N13spectacularAI8rsPluginE"], [12, "_CPPv4N13spectacularAI8rsPluginE"]], "spectacularai::rsplugin::configuration (c++ struct)": [[2, "_CPPv4N13spectacularAI8rsPlugin13ConfigurationE"], [12, "_CPPv4N13spectacularAI8rsPlugin13ConfigurationE"]], "spectacularai::rsplugin::configuration::aligneddepth (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration12alignedDepthE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration12alignedDepthE"]], "spectacularai::rsplugin::configuration::apriltagpath (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration12aprilTagPathE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration12aprilTagPathE"]], "spectacularai::rsplugin::configuration::fastvio (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration7fastVioE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration7fastVioE"]], "spectacularai::rsplugin::configuration::inputresolution (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration15inputResolutionE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration15inputResolutionE"]], "spectacularai::rsplugin::configuration::internalparameters (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration18internalParametersE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration18internalParametersE"]], "spectacularai::rsplugin::configuration::maploadpath (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapLoadPathE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapLoadPathE"]], "spectacularai::rsplugin::configuration::mapsavepath (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapSavePathE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration11mapSavePathE"]], "spectacularai::rsplugin::configuration::postprocessfinalmap (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration19postProcessFinalMapE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration19postProcessFinalMapE"]], "spectacularai::rsplugin::configuration::recordingfolder (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration15recordingFolderE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration15recordingFolderE"]], "spectacularai::rsplugin::configuration::recordingonly (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration13recordingOnlyE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration13recordingOnlyE"]], "spectacularai::rsplugin::configuration::useicp (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useIcpE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useIcpE"]], "spectacularai::rsplugin::configuration::usergb (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useRgbE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration6useRgbE"]], "spectacularai::rsplugin::configuration::useslam (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration7useSlamE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration7useSlamE"]], "spectacularai::rsplugin::configuration::usestereo (c++ member)": [[2, "_CPPv4N13spectacularAI8rsPlugin13Configuration9useStereoE"], [12, "_CPPv4N13spectacularAI8rsPlugin13Configuration9useStereoE"]], "spectacularai::rsplugin::pipeline (c++ class)": [[2, "_CPPv4N13spectacularAI8rsPlugin8PipelineE"], [12, "_CPPv4N13spectacularAI8rsPlugin8PipelineE"]], "spectacularai::rsplugin::pipeline::pipeline (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineERK13Configuration"], [2, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineEv"], [12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineERK13Configuration"], [12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline8PipelineEv"]], "spectacularai::rsplugin::pipeline::configuredevice (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin8Pipeline15configureDeviceERN3rs26deviceE"], [12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline15configureDeviceERN3rs26deviceE"]], "spectacularai::rsplugin::pipeline::configurestreams (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin8Pipeline16configureStreamsERN3rs26configE"], [12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline16configureStreamsERN3rs26configE"]], "spectacularai::rsplugin::pipeline::setmappercallback (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin8Pipeline17setMapperCallbackERKNSt8functionIFvN13spectacularAI7mapping15MapperOutputPtrEEEE"], [12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline17setMapperCallbackERKNSt8functionIFvN13spectacularAI7mapping15MapperOutputPtrEEEE"]], "spectacularai::rsplugin::pipeline::startsession (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configE"], [2, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE"], [12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configE"], [12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline12startSessionERN3rs26configERKNSt8functionIFvRKN3rs25frameEEEE"]], "spectacularai::rsplugin::pipeline::~pipeline (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin8PipelineD0Ev"], [12, "_CPPv4N13spectacularAI8rsPlugin8PipelineD0Ev"]], "spectacularai::rsplugin::session (c++ struct)": [[2, "_CPPv4N13spectacularAI8rsPlugin7SessionE"], [12, "_CPPv4N13spectacularAI8rsPlugin7SessionE"]], "spectacularai::rsplugin::session::addtrigger (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi"], [12, "_CPPv4N13spectacularAI8rsPlugin7Session10addTriggerEdi"]], "spectacularai::rsplugin::session::getoutput (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin7Session9getOutputEv"], [12, "_CPPv4N13spectacularAI8rsPlugin7Session9getOutputEv"]], "spectacularai::rsplugin::session::hasoutput (c++ function)": [[2, "_CPPv4NK13spectacularAI8rsPlugin7Session9hasOutputEv"], [12, "_CPPv4NK13spectacularAI8rsPlugin7Session9hasOutputEv"]], "spectacularai::rsplugin::session::waitforoutput (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin7Session13waitForOutputEv"], [12, "_CPPv4N13spectacularAI8rsPlugin7Session13waitForOutputEv"]], "spectacularai::rsplugin::session::~session (c++ function)": [[2, "_CPPv4N13spectacularAI8rsPlugin7SessionD0Ev"], [12, "_CPPv4N13spectacularAI8rsPlugin7SessionD0Ev"]], "frame (class in spectacularai.mapping)": [[4, "spectacularAI.mapping.Frame"]], "frameset (class in spectacularai.mapping)": [[4, "spectacularAI.mapping.FrameSet"]], "keyframe (class in spectacularai.mapping)": [[4, "spectacularAI.mapping.KeyFrame"]], "map (class in spectacularai.mapping)": [[4, "spectacularAI.mapping.Map"]], "mapperoutput (class in spectacularai.mapping)": [[4, "spectacularAI.mapping.MapperOutput"]], "mesh (class in spectacularai.mapping)": [[4, "spectacularAI.mapping.Mesh"]], "pointcloud (class in spectacularai.mapping)": [[4, "spectacularAI.mapping.PointCloud"]], "camerapose (spectacularai.mapping.frame property)": [[4, "spectacularAI.mapping.Frame.cameraPose"]], "depthframe (spectacularai.mapping.frameset property)": [[4, "spectacularAI.mapping.FrameSet.depthFrame"]], "depthscale (spectacularai.mapping.frame property)": [[4, "spectacularAI.mapping.Frame.depthScale"]], "empty() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.empty"]], "empty() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.empty"]], "facecount() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.faceCount"]], "finalmap (spectacularai.mapping.mapperoutput property)": [[4, "spectacularAI.mapping.MapperOutput.finalMap"]], "frameset (spectacularai.mapping.keyframe property)": [[4, "spectacularAI.mapping.KeyFrame.frameSet"]], "getaligneddepthframe() (spectacularai.mapping.frameset method)": [[4, "spectacularAI.mapping.FrameSet.getAlignedDepthFrame"]], "getfacenormals() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.getFaceNormals"]], "getfacevertices() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.getFaceVertices"]], "getnormal() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.getNormal"]], "getnormaldata() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.getNormalData"]], "getnormaldata() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.getNormalData"]], "getposition() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.getPosition"]], "getpositiondata() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.getPositionData"]], "getpositiondata() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.getPositionData"]], "getrgb24() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.getRGB24"]], "getrgb24data() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.getRGB24Data"]], "getundistortedframe() (spectacularai.mapping.frameset method)": [[4, "spectacularAI.mapping.FrameSet.getUndistortedFrame"]], "hascolors() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.hasColors"]], "hasnormals() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.hasNormals"]], "hasnormals() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.hasNormals"]], "id (spectacularai.mapping.keyframe property)": [[4, "spectacularAI.mapping.KeyFrame.id"]], "image (spectacularai.mapping.frame property)": [[4, "spectacularAI.mapping.Frame.image"]], "keyframes (spectacularai.mapping.map property)": [[4, "spectacularAI.mapping.Map.keyFrames"]], "map (spectacularai.mapping.mapperoutput property)": [[4, "spectacularAI.mapping.MapperOutput.map"]], "mappoints (spectacularai.mapping.map property)": [[4, "spectacularAI.mapping.Map.mapPoints"]], "mesh (spectacularai.mapping.mapperoutput property)": [[4, "spectacularAI.mapping.MapperOutput.mesh"]], "module": [[4, "module-spectacularAI.mapping"], [5, "module-spectacularAI"], [7, "module-spectacularAI"]], "normalcount() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.normalCount"]], "pointcloud (spectacularai.mapping.keyframe property)": [[4, "spectacularAI.mapping.KeyFrame.pointCloud"]], "primaryframe (spectacularai.mapping.frameset property)": [[4, "spectacularAI.mapping.FrameSet.primaryFrame"]], "rgbframe (spectacularai.mapping.frameset property)": [[4, "spectacularAI.mapping.FrameSet.rgbFrame"]], "secondaryframe (spectacularai.mapping.frameset property)": [[4, "spectacularAI.mapping.FrameSet.secondaryFrame"]], "size() (spectacularai.mapping.pointcloud method)": [[4, "spectacularAI.mapping.PointCloud.size"]], "sparsefeatures (spectacularai.mapping.frame property)": [[4, "spectacularAI.mapping.Frame.sparseFeatures"]], "spectacularai.mapping": [[4, "module-spectacularAI.mapping"]], "updatedkeyframes (spectacularai.mapping.mapperoutput property)": [[4, "spectacularAI.mapping.MapperOutput.updatedKeyFrames"]], "updatedmappoints (spectacularai.mapping.mapperoutput property)": [[4, "spectacularAI.mapping.MapperOutput.updatedMapPoints"]], "vertexcount() (spectacularai.mapping.mesh method)": [[4, "spectacularAI.mapping.Mesh.vertexCount"]], "bitmap (class in spectacularai)": [[5, "spectacularAI.Bitmap"], [7, "spectacularAI.Bitmap"]], "camera (class in spectacularai)": [[5, "spectacularAI.Camera"], [7, "spectacularAI.Camera"]], "camerapose (class in spectacularai)": [[5, "spectacularAI.CameraPose"], [7, "spectacularAI.CameraPose"]], "colorformat (class in spectacularai)": [[5, "spectacularAI.ColorFormat"], [7, "spectacularAI.ColorFormat"]], "frame (class in spectacularai)": [[5, "spectacularAI.Frame"], [7, "spectacularAI.Frame"]], "gray (spectacularai.colorformat attribute)": [[5, "spectacularAI.ColorFormat.GRAY"], [7, "spectacularAI.ColorFormat.GRAY"]], "gray16 (spectacularai.colorformat attribute)": [[5, "spectacularAI.ColorFormat.GRAY16"], [7, "spectacularAI.ColorFormat.GRAY16"]], "gnssviooutput (class in spectacularai)": [[5, "spectacularAI.GnssVioOutput"], [7, "spectacularAI.GnssVioOutput"]], "init (spectacularai.trackingstatus attribute)": [[5, "spectacularAI.TrackingStatus.INIT"], [7, "spectacularAI.TrackingStatus.INIT"]], "lost_tracking (spectacularai.trackingstatus attribute)": [[5, "spectacularAI.TrackingStatus.LOST_TRACKING"], [7, "spectacularAI.TrackingStatus.LOST_TRACKING"]], "none (spectacularai.colorformat attribute)": [[5, "spectacularAI.ColorFormat.NONE"], [7, "spectacularAI.ColorFormat.NONE"]], "pose (class in spectacularai)": [[5, "spectacularAI.Pose"], [7, "spectacularAI.Pose"]], "quaternion (class in spectacularai)": [[5, "spectacularAI.Quaternion"], [7, "spectacularAI.Quaternion"]], "rgb (spectacularai.colorformat attribute)": [[5, "spectacularAI.ColorFormat.RGB"], [7, "spectacularAI.ColorFormat.RGB"]], "rgba (spectacularai.colorformat attribute)": [[5, "spectacularAI.ColorFormat.RGBA"], [7, "spectacularAI.ColorFormat.RGBA"]], "replay (class in spectacularai)": [[5, "spectacularAI.Replay"], [6, "spectacularAI.Replay"]], "tracking (spectacularai.trackingstatus attribute)": [[5, "spectacularAI.TrackingStatus.TRACKING"], [7, "spectacularAI.TrackingStatus.TRACKING"]], "trackingstatus (class in spectacularai)": [[5, "spectacularAI.TrackingStatus"], [7, "spectacularAI.TrackingStatus"]], "vector3d (class in spectacularai)": [[5, "spectacularAI.Vector3d"], [7, "spectacularAI.Vector3d"]], "vector3f (class in spectacularai)": [[5, "spectacularAI.Vector3f"], [7, "spectacularAI.Vector3f"]], "viooutput (class in spectacularai)": [[5, "spectacularAI.VioOutput"], [7, "spectacularAI.VioOutput"]], "wgscoordinates (class in spectacularai)": [[5, "spectacularAI.WgsCoordinates"], [7, "spectacularAI.WgsCoordinates"]], "altitude (spectacularai.wgscoordinates property)": [[5, "spectacularAI.WgsCoordinates.altitude"], [7, "spectacularAI.WgsCoordinates.altitude"]], "angularvelocity (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.angularVelocity"], [7, "spectacularAI.VioOutput.angularVelocity"]], "asjson() (spectacularai.viooutput method)": [[5, "spectacularAI.VioOutput.asJson"], [7, "spectacularAI.VioOutput.asJson"]], "asmatrix() (spectacularai.pose method)": [[5, "spectacularAI.Pose.asMatrix"], [7, "spectacularAI.Pose.asMatrix"]], "camera (spectacularai.camerapose property)": [[5, "spectacularAI.CameraPose.camera"], [7, "spectacularAI.CameraPose.camera"]], "camerapose (spectacularai.frame property)": [[5, "spectacularAI.Frame.cameraPose"], [7, "spectacularAI.Frame.cameraPose"]], "close() (spectacularai.replay method)": [[5, "spectacularAI.Replay.close"], [6, "spectacularAI.Replay.close"]], "coordinates (spectacularai.gnssviooutput property)": [[5, "spectacularAI.GnssVioOutput.coordinates"], [7, "spectacularAI.GnssVioOutput.coordinates"]], "enupositioncovariance (spectacularai.gnssviooutput property)": [[5, "spectacularAI.GnssVioOutput.enuPositionCovariance"], [7, "spectacularAI.GnssVioOutput.enuPositionCovariance"]], "frommatrix() (spectacularai.pose method)": [[5, "spectacularAI.Pose.fromMatrix"], [7, "spectacularAI.Pose.fromMatrix"]], "getcamerapose() (spectacularai.viooutput method)": [[5, "spectacularAI.VioOutput.getCameraPose"], [7, "spectacularAI.VioOutput.getCameraPose"]], "getcameratoworldmatrix() (spectacularai.camerapose method)": [[5, "spectacularAI.CameraPose.getCameraToWorldMatrix"], [7, "spectacularAI.CameraPose.getCameraToWorldMatrix"]], "getcolorformat() (spectacularai.bitmap method)": [[5, "spectacularAI.Bitmap.getColorFormat"], [7, "spectacularAI.Bitmap.getColorFormat"]], "getenucamerapose() (spectacularai.gnssviooutput method)": [[5, "spectacularAI.GnssVioOutput.getEnuCameraPose"], [7, "spectacularAI.GnssVioOutput.getEnuCameraPose"]], "getheight() (spectacularai.bitmap method)": [[5, "spectacularAI.Bitmap.getHeight"], [7, "spectacularAI.Bitmap.getHeight"]], "getintrinsicmatrix() (spectacularai.camera method)": [[5, "spectacularAI.Camera.getIntrinsicMatrix"], [7, "spectacularAI.Camera.getIntrinsicMatrix"]], "getposition() (spectacularai.camerapose method)": [[5, "spectacularAI.CameraPose.getPosition"], [7, "spectacularAI.CameraPose.getPosition"]], "getprojectionmatrixopengl() (spectacularai.camera method)": [[5, "spectacularAI.Camera.getProjectionMatrixOpenGL"], [7, "spectacularAI.Camera.getProjectionMatrixOpenGL"]], "getwidth() (spectacularai.bitmap method)": [[5, "spectacularAI.Bitmap.getWidth"], [7, "spectacularAI.Bitmap.getWidth"]], "getworldtocameramatrix() (spectacularai.camerapose method)": [[5, "spectacularAI.CameraPose.getWorldToCameraMatrix"], [7, "spectacularAI.CameraPose.getWorldToCameraMatrix"]], "globalpose (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.globalPose"], [7, "spectacularAI.VioOutput.globalPose"]], "image (spectacularai.frame property)": [[5, "spectacularAI.Frame.image"], [7, "spectacularAI.Frame.image"]], "index (spectacularai.frame property)": [[5, "spectacularAI.Frame.index"], [7, "spectacularAI.Frame.index"]], "latitude (spectacularai.wgscoordinates property)": [[5, "spectacularAI.WgsCoordinates.latitude"], [7, "spectacularAI.WgsCoordinates.latitude"]], "longitude (spectacularai.wgscoordinates property)": [[5, "spectacularAI.WgsCoordinates.longitude"], [7, "spectacularAI.WgsCoordinates.longitude"]], "name (spectacularai.colorformat property)": [[5, "spectacularAI.ColorFormat.name"], [7, "spectacularAI.ColorFormat.name"]], "name (spectacularai.trackingstatus property)": [[5, "spectacularAI.TrackingStatus.name"], [7, "spectacularAI.TrackingStatus.name"]], "orientation (spectacularai.gnssviooutput property)": [[5, "spectacularAI.GnssVioOutput.orientation"], [7, "spectacularAI.GnssVioOutput.orientation"]], "orientation (spectacularai.pose property)": [[5, "spectacularAI.Pose.orientation"], [7, "spectacularAI.Pose.orientation"]], "pose (spectacularai.camerapose property)": [[5, "spectacularAI.CameraPose.pose"], [7, "spectacularAI.CameraPose.pose"]], "pose (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.pose"], [7, "spectacularAI.VioOutput.pose"]], "posetrail (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.poseTrail"], [7, "spectacularAI.VioOutput.poseTrail"]], "position (spectacularai.pose property)": [[5, "spectacularAI.Pose.position"], [7, "spectacularAI.Pose.position"]], "positioncovariance (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.positionCovariance"], [7, "spectacularAI.VioOutput.positionCovariance"]], "runreplay() (spectacularai.replay method)": [[5, "spectacularAI.Replay.runReplay"], [6, "spectacularAI.Replay.runReplay"]], "setextendedoutputcallback() (spectacularai.replay method)": [[5, "spectacularAI.Replay.setExtendedOutputCallback"], [6, "spectacularAI.Replay.setExtendedOutputCallback"]], "setoutputcallback() (spectacularai.replay method)": [[5, "spectacularAI.Replay.setOutputCallback"], [6, "spectacularAI.Replay.setOutputCallback"]], "setplaybackspeed() (spectacularai.replay method)": [[5, "spectacularAI.Replay.setPlaybackSpeed"], [6, "spectacularAI.Replay.setPlaybackSpeed"]], "spectacularai": [[5, "module-spectacularAI"], [7, "module-spectacularAI"]], "startreplay() (spectacularai.replay method)": [[5, "spectacularAI.Replay.startReplay"], [6, "spectacularAI.Replay.startReplay"]], "status (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.status"], [7, "spectacularAI.VioOutput.status"]], "tag (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.tag"], [7, "spectacularAI.VioOutput.tag"]], "time (spectacularai.pose property)": [[5, "spectacularAI.Pose.time"], [7, "spectacularAI.Pose.time"]], "toarray() (spectacularai.bitmap method)": [[5, "spectacularAI.Bitmap.toArray"], [7, "spectacularAI.Bitmap.toArray"]], "value (spectacularai.colorformat property)": [[5, "spectacularAI.ColorFormat.value"], [7, "spectacularAI.ColorFormat.value"]], "value (spectacularai.trackingstatus property)": [[5, "spectacularAI.TrackingStatus.value"], [7, "spectacularAI.TrackingStatus.value"]], "velocity (spectacularai.gnssviooutput property)": [[5, "spectacularAI.GnssVioOutput.velocity"], [7, "spectacularAI.GnssVioOutput.velocity"]], "velocity (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.velocity"], [7, "spectacularAI.VioOutput.velocity"]], "velocitycovariance (spectacularai.gnssviooutput property)": [[5, "spectacularAI.GnssVioOutput.velocityCovariance"], [7, "spectacularAI.GnssVioOutput.velocityCovariance"]], "velocitycovariance (spectacularai.viooutput property)": [[5, "spectacularAI.VioOutput.velocityCovariance"], [7, "spectacularAI.VioOutput.velocityCovariance"]], "w (spectacularai.quaternion property)": [[5, "spectacularAI.Quaternion.w"], [7, "spectacularAI.Quaternion.w"]], "x (spectacularai.quaternion property)": [[5, "spectacularAI.Quaternion.x"], [7, "spectacularAI.Quaternion.x"]], "x (spectacularai.vector3d property)": [[5, "spectacularAI.Vector3d.x"], [7, "spectacularAI.Vector3d.x"]], "x (spectacularai.vector3f property)": [[5, "spectacularAI.Vector3f.x"], [7, "spectacularAI.Vector3f.x"]], "y (spectacularai.quaternion property)": [[5, "spectacularAI.Quaternion.y"], [7, "spectacularAI.Quaternion.y"]], "y (spectacularai.vector3d property)": [[5, "spectacularAI.Vector3d.y"], [7, "spectacularAI.Vector3d.y"]], "y (spectacularai.vector3f property)": [[5, "spectacularAI.Vector3f.y"], [7, "spectacularAI.Vector3f.y"]], "z (spectacularai.quaternion property)": [[5, "spectacularAI.Quaternion.z"], [7, "spectacularAI.Quaternion.z"]], "z (spectacularai.vector3d property)": [[5, "spectacularAI.Vector3d.z"], [7, "spectacularAI.Vector3d.z"]], "z (spectacularai.vector3f property)": [[5, "spectacularAI.Vector3f.z"], [7, "spectacularAI.Vector3f.z"]], "spectacularai::k4aplugin::pipeline::pimpl (c++ member)": [[9, "_CPPv4N13spectacularAI9k4aPlugin8Pipeline5pimplE"]], "configuration (class in spectacularai.depthai)": [[10, "spectacularAI.depthai.Configuration"]], "hooks (class in spectacularai.depthai)": [[10, "spectacularAI.depthai.Hooks"]], "pipeline (class in spectacularai.depthai)": [[10, "spectacularAI.depthai.Pipeline"]], "session (class in spectacularai.depthai)": [[10, "spectacularAI.depthai.Session"]], "accfrequencyhz (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.accFrequencyHz"]], "addabsolutepose() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.addAbsolutePose"]], "addgnss() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.addGnss"]], "addtrigger() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.addTrigger"]], "apriltagpath (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.aprilTagPath"]], "asdict() (spectacularai.depthai.configuration method)": [[10, "spectacularAI.depthai.Configuration.asDict"]], "close() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.close"]], "color (spectacularai.depthai.hooks property)": [[10, "spectacularAI.depthai.Hooks.color"]], "color (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.color"]], "colorleft (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.colorLeft"]], "colorprimary (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.colorPrimary"]], "colorright (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.colorRight"]], "colorsecondary (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.colorSecondary"]], "depth (spectacularai.depthai.hooks property)": [[10, "spectacularAI.depthai.Hooks.depth"]], "depthqueuesize (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.depthQueueSize"]], "depthscalecorrection (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.depthScaleCorrection"]], "disablecameras (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.disableCameras"]], "ensuresufficientusbspeed (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.ensureSufficientUsbSpeed"]], "extendeddisparity (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.extendedDisparity"]], "fastimu (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.fastImu"]], "fastvio (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.fastVio"]], "featuretracker (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.featureTracker"]], "forcerectified (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.forceRectified"]], "forceunrectified (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.forceUnrectified"]], "getoutput() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.getOutput"]], "getrgbcamerapose() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.getRgbCameraPose"]], "gyrofrequencyhz (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.gyroFrequencyHz"]], "hasoutput() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.hasOutput"]], "hooks (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.hooks"]], "imu (spectacularai.depthai.hooks property)": [[10, "spectacularAI.depthai.Hooks.imu"]], "imu (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.imu"]], "imufrequencyhz (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.imuFrequencyHz"]], "imuqueuesize (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.imuQueueSize"]], "imutocameraleft (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.imuToCameraLeft"]], "imutognss (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.imuToGnss"]], "inputresolution (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.inputResolution"]], "internalparameters (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.internalParameters"]], "keyframecandidateeverynthframe (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.keyframeCandidateEveryNthFrame"]], "maploadpath (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.mapLoadPath"]], "mapsavepath (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.mapSavePath"]], "meshrectification (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.meshRectification"]], "monoleft (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.monoLeft"]], "monoprimary (spectacularai.depthai.hooks property)": [[10, "spectacularAI.depthai.Hooks.monoPrimary"]], "monoprimary (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.monoPrimary"]], "monoqueuesize (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.monoQueueSize"]], "monoright (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.monoRight"]], "monosecondary (spectacularai.depthai.hooks property)": [[10, "spectacularAI.depthai.Hooks.monoSecondary"]], "monosecondary (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.monoSecondary"]], "recordingfolder (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.recordingFolder"]], "recordingonly (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.recordingOnly"]], "silenceusbwarnings (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.silenceUsbWarnings"]], "spectacularaiconfigurationyaml (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.spectacularAIConfigurationYAML"]], "startsession() (spectacularai.depthai.pipeline method)": [[10, "spectacularAI.depthai.Pipeline.startSession"]], "stereo (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.stereo"]], "trackedfeatures (spectacularai.depthai.hooks property)": [[10, "spectacularAI.depthai.Hooks.trackedFeatures"]], "update() (spectacularai.depthai.configuration method)": [[10, "spectacularAI.depthai.Configuration.update"]], "usecolor (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useColor"]], "usecolorstereocameras (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useColorStereoCameras"]], "useencodedvideo (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useEncodedVideo"]], "usefeaturetracker (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useFeatureTracker"]], "usegraydepth (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useGrayDepth"]], "usereaderthread (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useReaderThread"]], "useslam (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useSlam"]], "usestereo (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useStereo"]], "usevioautoexposure (spectacularai.depthai.configuration property)": [[10, "spectacularAI.depthai.Configuration.useVioAutoExposure"]], "waitforoutput() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.waitForOutput"]], "work() (spectacularai.depthai.session method)": [[10, "spectacularAI.depthai.Session.work"]], "xoutdepth (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.xoutDepth"]], "xoutfeatures (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.xoutFeatures"]], "xoutimu (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.xoutImu"]], "xoutleft (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.xoutLeft"]], "xoutright (spectacularai.depthai.pipeline property)": [[10, "spectacularAI.depthai.Pipeline.xoutRight"]], "spectacularai::orbbecplugin::pipeline::pimpl (c++ member)": [[11, "_CPPv4N13spectacularAI12orbbecPlugin8Pipeline5pimplE"]], "rs2 (c++ type)": [[12, "_CPPv43rs2"]], "spectacularai::rsplugin::pipeline::pimpl (c++ member)": [[12, "_CPPv4N13spectacularAI8rsPlugin8Pipeline5pimplE"]]}}) \ No newline at end of file diff --git a/sdk/tracking.html b/sdk/tracking.html new file mode 100644 index 0000000..2d5f428 --- /dev/null +++ b/sdk/tracking.html @@ -0,0 +1,1434 @@ + + + + + + + Tracking API — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Tracking API

+

The Spectacular AI tracking API (a.k.a. “VIO” API) consists of the common output types +relevant for real-time 6-degree-of-freedom pose tracking.

+
+

6-DoF pose output

+
+
+
+class spectacularAI.Camera
+

Represents the intrinsic parameters of a particular camera. If the input image is distorted, the camera and projection matrices correspond to the undistorted / rectified image.

+
+
+getIntrinsicMatrix(self: spectacularAI.Camera) numpy.ndarray
+

3x3 intrinsic camera matrix (OpenCV convention, undistorted).

+
+ +
+
+getProjectionMatrixOpenGL(self: spectacularAI.Camera, arg0: float, arg1: float) numpy.ndarray
+

4x4 projection matrix for OpenGL (undistorted)

+
+ +
+ +
+
+class spectacularAI.CameraPose
+

Represents the pose (position & orientation) and other parameters of a particular camera.

+
+
+property camera
+

Camera: camera parameteres

+
+ +
+
+getCameraToWorldMatrix(self: spectacularAI.CameraPose) numpy.ndarray
+

4x4 homogeneous camera-to-world matrix

+
+ +
+
+getPosition(self: spectacularAI.CameraPose) spectacularAI.Vector3d
+

Vector3d position of the camera

+
+ +
+
+getWorldToCameraMatrix(self: spectacularAI.CameraPose) numpy.ndarray
+

4x4 homogeneous world-to-camera matrix

+
+ +
+
+property pose
+

latest Pose

+
+ +
+ +
+
+class spectacularAI.VioOutput
+

Main output structure

+
+
+property angularVelocity
+

angular velocity vector in SI units (Vector3d)

+
+ +
+
+asJson(self: spectacularAI.VioOutput) str
+

a JSON representation of this object

+
+ +
+
+getCameraPose(self: spectacularAI.VioOutput, arg0: int) spectacularAI.CameraPose
+

CameraPose corresponding to a camera whose index is given as the parameter. Index 0 corresponds to the primary camera and index 1 the secondary camera.

+
+ +
+
+property globalPose
+

Global pose, only returned if GNSS information is provided via Session.addGnss(…)

+
+ +
+
+property pose
+

latest Pose

+
+ +
+
+property poseTrail
+

trail of smoothed historical poses (list of Pose objects)

+
+ +
+
+property positionCovariance
+

position uncertainty, 3x3 covariance matrix

+
+ +
+
+property status
+

current TrackingStatus

+
+ +
+
+property tag
+

input tag from addTrigger. Set to 0 for other outputs.

+
+ +
+
+property velocity
+

current velocity (Vector3d)

+
+ +
+
+property velocityCovariance
+

velocity uncertainty, 3x3 covariance matrix

+
+ +
+ +
+
+class spectacularAI.GnssVioOutput
+

GNSS-VIO output

+
+
+property coordinates
+

current WgsCoordinates

+
+ +
+
+property enuPositionCovariance
+

enu position uncertainty, 3x3 covariance matrix

+
+ +
+
+getEnuCameraPose(self: spectacularAI.GnssVioOutput, arg0: int, arg1: spectacularAI.WgsCoordinates) spectacularAI::CameraPose
+

Get the global pose of a particular camera. The “world” coordinate system of the camera pose is an East-North-Up system, whose origin is at the given WGS84 coordinates.

+
+ +
+
+property orientation
+

current Quaternion

+
+ +
+
+property velocity
+

current Vector3d

+
+ +
+
+property velocityCovariance
+

velocity uncertainty, 3x3 covariance matrix

+
+ +
+ +
+
+
+

Common types

+
+
+
+class spectacularAI.Pose
+

Represents the pose (position & orientation) of a device at a given time. This typically corresponds the pose of the IMU (configurable). See CameraPose for exact poses of the cameras.

+
+
+asMatrix(self: spectacularAI.Pose) numpy.ndarray
+

4x4 matrix that converts homogeneous local coordinates to homogeneous world coordinates

+
+ +
+
+fromMatrix(self: float, arg0: List[List[float[4]][4]]) spectacularAI.Pose
+

Create a pose from a timestamp and 4x4 local-to-world matrix

+
+ +
+
+property orientation
+

Quaternion orientation of the IMU / camera, local-to-world

+
+ +
+
+property position
+

Vector3d position of the IMU / camera

+
+ +
+
+property time
+

float timestamp in seconds, synchronized with device monotonic time (not host)

+
+ +
+ +
+
+class spectacularAI.Vector3d(*args, **kwargs)
+

Vector in R^3. Can represent, e.g., velocity, position or angular velocity. Each property is a float.

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.Vector3d) -> None

  2. +
  3. __init__(self: spectacularAI.Vector3d, arg0: float, arg1: float, arg2: float) -> None

  4. +
+
+
+property x
+
+ +
+
+property y
+
+ +
+
+property z
+
+ +
+ +
+
+class spectacularAI.Vector3f(*args, **kwargs)
+

Vector in R^3. Single precision.

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.Vector3f) -> None

  2. +
  3. __init__(self: spectacularAI.Vector3f, arg0: float, arg1: float, arg2: float) -> None

  4. +
+
+
+property x
+
+ +
+
+property y
+
+ +
+
+property z
+
+ +
+ +
+
+class spectacularAI.Quaternion
+

Quaternion representation of a rotation. Hamilton convention. Each property is a float.

+
+
+property w
+
+ +
+
+property x
+
+ +
+
+property y
+
+ +
+
+property z
+
+ +
+ +
+
+class spectacularAI.TrackingStatus(self: spectacularAI.TrackingStatus, value: int)
+

Members:

+

INIT

+

TRACKING

+

LOST_TRACKING

+
+
+INIT = <TrackingStatus.INIT: 0>
+
+ +
+
+LOST_TRACKING = <TrackingStatus.LOST_TRACKING: 2>
+
+ +
+
+TRACKING = <TrackingStatus.TRACKING: 1>
+
+ +
+
+property name
+
+ +
+
+property value
+
+ +
+ +
+
+class spectacularAI.ColorFormat(self: spectacularAI.ColorFormat, value: int)
+

Members:

+

NONE

+

GRAY

+

RGB

+

RGBA

+

GRAY16

+
+
+GRAY = <ColorFormat.GRAY: 1>
+
+ +
+
+GRAY16 = <ColorFormat.GRAY16: 7>
+
+ +
+
+NONE = <ColorFormat.NONE: 0>
+
+ +
+
+RGB = <ColorFormat.RGB: 2>
+
+ +
+
+RGBA = <ColorFormat.RGBA: 3>
+
+ +
+
+property name
+
+ +
+
+property value
+
+ +
+ +
+
+class spectacularAI.Bitmap
+

Represents a grayscale or RGB bitmap

+
+
+getColorFormat(self: spectacularAI.Bitmap) spectacularAI.ColorFormat
+

ColorFormat

+
+ +
+
+getHeight(self: spectacularAI.Bitmap) int
+

int bitmap height

+
+ +
+
+getWidth(self: spectacularAI.Bitmap) int
+

int bitmap width

+
+ +
+
+toArray(self: spectacularAI.Bitmap) numpy.ndarray
+

Returns array representation of the bitmap

+
+ +
+ +
+
+class spectacularAI.Frame
+

A camera frame with a pose

+
+
+property cameraPose
+

CameraPose corresponding this camera

+
+ +
+
+property image
+

Bitmap that will contain bitmap image if it’s available

+
+ +
+
+property index
+

Camera index

+
+ +
+ +
+
+class spectacularAI.WgsCoordinates(self: spectacularAI.WgsCoordinates)
+

Represents the pose (position & orientation) of a device at a given time.

+
+
+property altitude
+
+ +
+
+property latitude
+
+ +
+
+property longitude
+
+ +
+ +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/wrappers.html b/sdk/wrappers.html new file mode 100644 index 0000000..79f3fea --- /dev/null +++ b/sdk/wrappers.html @@ -0,0 +1,140 @@ + + + + + + + Wrappers — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Wrappers

+

The following devices are supported out-of-the-box. This means that the SDK can be used without any manual calibration, integration or parameter tuning.

+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/wrappers/k4a.html b/sdk/wrappers/k4a.html new file mode 100644 index 0000000..5e340d5 --- /dev/null +++ b/sdk/wrappers/k4a.html @@ -0,0 +1,364 @@ + + + + + + + Azure Kinect — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Azure Kinect

+

Spectacular AI C++ plugin for Azure Kinect DK.

+
+

API Reference

+
+

Configuration

+

Defined in #include <spectacularAI/k4a/configuration.hpp>

+
+
+namespace spectacularAI
+
+
+namespace k4aPlugin
+
+

Functions

+
+
+k4a_device_configuration_t getK4AConfiguration(const std::string &colorResolution = "720p", int depthMode = K4A_DEPTH_MODE_WFOV_2X2BINNED, int frameRate = 30, bool useStereo = true)
+
+ +
+
+std::string getYAMLConfiguration(const Configuration &config)
+
+ +
+
+
+struct Configuration
+

Plugin and Spectacular AI VIO SDK configuration variables.

+
+

Public Members

+
+
+bool useStereo = true
+
+ +
+
+bool useSlam = true
+
+ +
+
+bool fastVio = false
+
+ +
+
+bool alignedDepth = false
+
+ +
+
+bool distortionEnabled = true
+
+ +
+
+std::string recordingFolder = ""
+
+ +
+
+bool recordingOnly = false
+
+ +
+
+bool postProcessFinalMap = true
+
+ +
+
+std::string aprilTagPath = ""
+
+ +
+
+k4a_device_configuration_t k4aConfig = getK4AConfiguration()
+
+ +
+
+std::map<std::string, std::string> internalParameters
+

Internal SDK parameter overrides (key-value pairs). Not safe for unsanitized user input.

+
+ +
+
+ +
+ +
+ +
+
+

Pipeline

+

Defined in #include <spectacularAI/k4a/pipeline.hpp>

+
+
+namespace spectacularAI
+
+
+namespace k4aPlugin
+
+
+class Pipeline
+

The Pipeline object stores information about the device and also sets the default configuration, e.g., enables and configures necessary Azure Kinect streams and sensors. The actual VIO reading is started with startSession.

+
+

Public Functions

+
+
+Pipeline()
+

Create a pipeline with the default configuration.

+
+ +
+
+Pipeline(const Configuration &config)
+

Create a pipeline with custom configuration

+
+ +
+
+Pipeline(const Configuration &config, std::function<void(mapping::MapperOutputPtr)> onMapperOutput)
+

Create a pipeline with custom configuration with Mapping API enabled

+
+ +
+
+std::unique_ptr<Session> startSession()
+

Start a new VIO session on the background. Internally starts the k4a device and creates threads for camera and imu.

+
+ +
+
+k4a_device_t getDeviceHandle()
+

Get an handle to the Azure Kinect device, can be used to adjust device settings. Note that adjusting some settings, e.g. device FPS can affect VIO performance.

+
+ +
+
+~Pipeline()
+
+ +
+
+

Private Members

+
+
+std::unique_ptr<impl> pimpl
+
+ +
+
+ +
+ +
+ +
+
+

Session

+

Defined in #include <spectacularAI/k4a/session.hpp>

+
+
+namespace spectacularAI
+
+
+namespace k4aPlugin
+
+
+struct Session
+
+

Public Functions

+
+
+virtual bool hasOutput() const = 0
+

Check if new output is available.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> getOutput() = 0
+

Get output from the queue, if available. If not returns {}.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> waitForOutput() = 0
+

Wait until new output is available and then return it.

+
+ +
+
+virtual void ignoreOutputs(bool ignore) = 0
+

Set whether new outputs are added to the queue. Useful when the user is not interested in VIO outputs: e.g. when using mapping API or recording.

+
+
Parameters:
+

ignore – If true, new outputs are not added to the queue. Otherwise, the user has make sure the outputs are pulled from the queue.

+
+
+
+ +
+
+virtual void addTrigger(double t, int tag) = 0
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+
Parameters:
+
    +
  • t – timestamp, monotonic float seconds

  • +
  • tag – additonal tag to indentify this particular trigger event. The default outputs corresponding to input camera frames have a tag 0.

  • +
+
+
+
+ +
+
+virtual ~Session()
+
+ +
+
+ +
+ +
+ +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/wrappers/oak.html b/sdk/wrappers/oak.html new file mode 100644 index 0000000..8a6ca8f --- /dev/null +++ b/sdk/wrappers/oak.html @@ -0,0 +1,1244 @@ + + + + + + + OAK-D — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OAK-D

+

Spectacular AI Plugin for Luxonis DepthaAI cameras

+

The main steps for using this SDK are:

+
+
    +
  1. Initialize a depthai.Pipeline (see Luxonis documentation for more info)

  2. +
  3. Create a spectacularAI.depthai.Pipeline using that +(with optional configuration as keyword arguments, see spectacularAI.depthai.Configuration)

  4. +
  5. Create a spectacularAI.depthai.Session using startSession()

  6. +
  7. Poll outputs from the VIO session queue using getOutput() +in a loop where work() is also periodically called

  8. +
  9. Utilize the spectacularAI.VioOutput objects with 6-DoF poses and other data

  10. +
+
+

Example code

+
+
import depthai
+import spectacularAI
+import time
+
+pipeline = depthai.Pipeline() # -- 1 --
+
+vio_pipeline = spectacularAI.depthai.Pipeline(pipeline) # -- 2 --
+# options, e.g.: spectacularAI.depthai.Pipeline(pipeline, useStereo=False)
+
+with depthai.Device(pipeline) as device:
+    vio_session = vio_pipeline.startSession(device) # -- 3 --
+
+    while True:
+        if vio_session.hasOutput():
+            out = vio_session.getOutput() # -- 4 --
+            print(out.asJson())           # -- 5 --
+        else:
+            if not vio_session.work():
+                time.sleep(0.005)
+
+
+
+
+

API reference

+
+

Configuration

+
+
+
+class spectacularAI.depthai.Configuration(*args, **kwargs)
+

Plugin and Spectacular AI VIO SDK configuration variables.

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.depthai.Configuration) -> None

  2. +
  3. __init__(self: spectacularAI.depthai.Configuration, **kwargs) -> None

  4. +
+
+
+property accFrequencyHz
+
+ +
+
+property aprilTagPath
+

Path to .json file with AprilTag information. AprilTag detection is enabled when not empty. For the file format see: https://github.com/SpectacularAI/docs/blob/main/pdf/april_tag_instructions.pdf. Note: sets useSlam=true

+
+ +
+
+asDict(self: object) dict
+

Dictionary representation of this configuration.

+
+ +
+
+property depthQueueSize
+
+ +
+
+property depthScaleCorrection
+

DEPRECATED

+
+ +
+
+property disableCameras
+

Disables cameras + VIO, only useful for recording.

+
+ +
+
+property ensureSufficientUsbSpeed
+
+ +
+
+property extendedDisparity
+

Use DepthAI extended disparity mode

+
+ +
+
+property fastImu
+
+ +
+
+property fastVio
+

Use more light-weight VIO settings

+
+ +
+
+property forceRectified
+
+ +
+
+property forceUnrectified
+
+ +
+
+property gyroFrequencyHz
+
+ +
+
+property imuFrequencyHz
+

DEPRECATED, use accFrequencyHz and gyroFrequencyHz instead

+
+ +
+
+property imuQueueSize
+
+ +
+
+property imuToGnss
+
+ +
+
+property inputResolution
+
+ +
+
+property internalParameters
+

Internal SDK parameters (key-value pairs converted to string-string). Not safe for unsanitized user input

+
+ +
+
+property keyframeCandidateEveryNthFrame
+

When useSlam = True, useFeatureTracker = True and keyframeCandidateEveryNthFrame > 0, a mono gray image is captured every N frames for SLAM.

+
+ +
+
+property mapLoadPath
+

Load existing SLAM map (.bin format required)

+
+ +
+
+property mapSavePath
+

Output filename. Supported outputs types: .ply, .csv and .pcd (point cloud), and .bin (Spectacular AI SLAM map).

+
+ +
+
+property meshRectification
+

DEPRECATED

+
+ +
+
+property monoQueueSize
+
+ +
+
+property recordingFolder
+
+ +
+
+property recordingOnly
+

Disables VIO and only records session when recordingFolder is set.

+
+ +
+
+property silenceUsbWarnings
+
+ +
+
+update(self: object, **kwargs) None
+

Update the contents of this object with kwargs corresponding to a subset of the member names

+
+ +
+
+property useColor
+

Use DepthAI color camera for tracking. Only supported for OAK-D series 2.

+
+ +
+
+property useColorStereoCameras
+

When device has stereo color cameras

+
+ +
+
+property useEncodedVideo
+

Encode stereo camera video on the OAK-D device, cannot be used for live tracking

+
+ +
+
+property useFeatureTracker
+

Use Movidius VPU-accelelerated feature tracking

+
+ +
+
+property useGrayDepth
+

Use one gray frame and depth for tracking

+
+ +
+
+property useReaderThread
+

DEPRECATED

+
+ +
+
+property useSlam
+

Enable the SLAM module

+
+ +
+
+property useStereo
+

Use stereo vision. Set to false for monocular mode (i.e., using one camera only).

+
+ +
+
+property useVioAutoExposure
+

Enable SpectacularAI auto exposure which optimizes exposure parameters for VIO performance (BETA)

+
+ +
+ +
+
+
+

Pipeline

+
+
+
+class spectacularAI.depthai.Pipeline(*args, **kwargs)
+

Spectacular AI pipeline for Depth AI API. It is recommended to build this using the constructors provided, but it is also possible to replace or configure all parts manually. The class properties correspond to Depth AI objects created by the Spetacular AI SDK and it is possbile to share them, e.g., by creating new output links from them, but modifying their settings (e.g., changing camera FPS), might affect VIO performance.

+

Overloaded function.

+
    +
  1. __init__(self: spectacularAI.depthai.Pipeline, arg0: object) -> None

  2. +
  3. __init__(self: spectacularAI.depthai.Pipeline, arg0: object, arg1: spectacularAI.depthai.Configuration) -> None

  4. +
+

Initialize with a depthai.Pipeline and custom Configuration

+
    +
  1. __init__(self: spectacularAI.depthai.Pipeline, arg0: object, arg1: spectacularAI.depthai.Configuration, arg2: Callable[[spectacularAI.mapping.MapperOutput], None]) -> None

  2. +
+

Initialize with a depthai.Pipeline and custom Configuration with a mapper callback function

+
    +
  1. __init__(self: spectacularAI.depthai.Pipeline, arg0: object, **kwargs) -> None

  2. +
+

Initialize with a depthai.Pipeline and custom kwargs (see Configuration)

+
+
+property color
+

DepthAI color camera node. Requires OAK-D Series 2 and useColor=true (see Configuration).

+
+ +
+
+property colorLeft
+

DepthAI left color stereo camera node

+
+ +
+
+property colorPrimary
+

DepthAI primary color stereo camera node

+
+ +
+
+property colorRight
+

DepthAI right color stereo camera node

+
+ +
+
+property colorSecondary
+

DepthAI secondary color stereo camera node

+
+ +
+
+property featureTracker
+

DepthAI feature tracker node

+
+ +
+
+property hooks
+

Hooks to access raw data received from DepthAI such as IMU, tracked features and depth frames

+
+ +
+
+property imu
+

DepthAI IMU node

+
+ +
+
+property imuToCameraLeft
+

IMU to left camera extrinsic matrix

+
+ +
+
+property monoLeft
+

DepthAI left monocular camera node

+
+ +
+
+property monoPrimary
+

DepthAI primary monocular camera node

+
+ +
+
+property monoRight
+

DepthAI right monocular camera node

+
+ +
+
+property monoSecondary
+

DepthAI secondary monocular camera node

+
+ +
+
+property spectacularAIConfigurationYAML
+

SDK internal override parameters (do not touch)

+
+ +
+
+startSession(self: spectacularAI.depthai.Pipeline, arg0: object) spectacularAI::daiPlugin::Session
+

Start a VIO session. The argument must be a depthai.Device

+
+ +
+
+property stereo
+

DepthAI stereo depth node

+
+ +
+
+property xoutDepth
+
+ +
+
+property xoutFeatures
+
+ +
+
+property xoutImu
+
+ +
+
+property xoutLeft
+
+ +
+
+property xoutRight
+
+ +
+ +
+
+
+

Session

+
+
+
+class spectacularAI.depthai.Session
+

VIO session. Should be created via spectacularAI.depthai.Pipeline.startSession()

+
+
+addAbsolutePose(self: spectacularAI.depthai.Session, arg0: spectacularAI.Pose, arg1: List[List[float[3]][3]], arg2: float) None
+

Add external pose information.VIO will correct its estimates to match the pose.

+
+ +
+
+addGnss(self: spectacularAI.depthai.Session, arg0: float, arg1: spectacularAI.WgsCoordinates, arg2: List[List[float[3]][3]]) None
+

Add GNSS input (for GNSS-VIO fusion)

+
+ +
+
+addTrigger(self: spectacularAI.depthai.Session, arg0: float, arg1: int) None
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+ +
+
+close(self: spectacularAI.depthai.Session) None
+

Close VIO session and free resources. Also consider using the with statement

+
+ +
+
+getOutput(self: spectacularAI.depthai.Session) spectacularAI.VioOutput
+

Removes the first unread output from an internal queue and returns it

+
+ +
+
+getRgbCameraPose(self: spectacularAI.depthai.Session, arg0: spectacularAI.VioOutput) spectacularAI.CameraPose
+

Get the CameraPose corresponding to the OAK RGB camera at a certain VioOutput.

+
+ +
+
+hasOutput(self: spectacularAI.depthai.Session) bool
+

Check if there is new output available

+
+ +
+
+waitForOutput(self: spectacularAI.depthai.Session) spectacularAI.VioOutput
+

Waits until there is new output available and returns it

+
+ +
+
+work(self: spectacularAI.depthai.Session) bool
+

DEPRECATED

+
+ +
+ +
+
+
+

Hooks API

+
+
+
+class spectacularAI.depthai.Hooks
+

DepthAI data hooks

+
+
+property color
+

DepthAI color images

+
+ +
+
+property depth
+

DepthAI depth images

+
+ +
+
+property imu
+

DepthAI IMU data

+
+ +
+
+property monoPrimary
+

DepthAI primary monocular camera images

+
+ +
+
+property monoSecondary
+

DepthAI secondary monocular camera images

+
+ +
+
+property trackedFeatures
+

DepthAI tracked features

+
+ +
+ +
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/wrappers/orbbec.html b/sdk/wrappers/orbbec.html new file mode 100644 index 0000000..a7e7941 --- /dev/null +++ b/sdk/wrappers/orbbec.html @@ -0,0 +1,380 @@ + + + + + + + ORBBEC — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ORBBEC

+

Spectacular AI C++ plugin for ORBBEC cameras. Supported devices:

+
    +
  • Femto Mega

  • +
  • Astra 2

  • +
+
+

API Reference

+
+

Configuration

+

Defined in #include <spectacularAI/orbbec/configuration.hpp>

+
+
+namespace spectacularAI
+
+
+namespace orbbecPlugin
+
+
+struct Configuration
+

Plugin and Spectacular AI SDK configuration variables.

+
+

Public Functions

+
+
+Configuration()
+
+ +
+
+Configuration(ob::Pipeline &obPipeline)
+
+ +
+
+

Public Members

+
+
+bool useSlam = true
+
+ +
+
+bool fastVio = false
+
+ +
+
+bool alignedDepth = false
+
+ +
+
+std::string recordingFolder = ""
+
+ +
+
+bool recordingOnly = false
+
+ +
+
+bool postProcessFinalMap = true
+
+ +
+
+std::string aprilTagPath = ""
+
+ +
+
+std::pair<int, int> rgbResolution = std::make_pair(1280, 720)
+
+ +
+
+std::pair<int, int> depthResolution = std::make_pair(512, 512)
+
+ +
+
+int cameraFps = 30
+
+ +
+
+OBAccelSampleRate accFrequencyHz = OBAccelSampleRate::OB_SAMPLE_RATE_1_KHZ
+
+ +
+
+OBGyroSampleRate gyroFrequencyHz = OBGyroSampleRate::OB_SAMPLE_RATE_1_KHZ
+
+ +
+
+OBAccelFullScaleRange accRange = OBAccelFullScaleRange::OB_ACCEL_FS_4g
+
+ +
+
+OBGyroFullScaleRange gyroRange = OBGyroFullScaleRange::OB_GYRO_FS_1000dps
+
+ +
+
+std::map<std::string, std::string> internalParameters
+

Internal SDK parameter overrides (key-value pairs). Not safe for unsanitized user input.

+
+ +
+
+ +
+ +
+ +
+
+

Pipeline

+

Defined in #include <spectacularAI/orbbec/pipeline.hpp>

+
+
+namespace spectacularAI
+
+
+namespace orbbecPlugin
+
+
+class Pipeline
+

The Pipeline object stores information about the device and also sets the default configuration, e.g., enables and configures necessary Orbbec streams and sensors. The actual VIO reading is started with startSession.

+
+

Public Functions

+
+
+Pipeline(ob::Pipeline &obPipeline)
+

Create a pipeline with the default configuration.

+
+ +
+
+Pipeline(ob::Pipeline &obPipeline, const Configuration &config)
+

Create a pipeline with custom configuration

+
+ +
+
+Pipeline(ob::Pipeline &obPipeline, const Configuration &config, std::function<void(mapping::MapperOutputPtr)> onMapperOutput)
+

Create a pipeline with custom configuration with Mapping API enabled

+
+ +
+
+std::unique_ptr<Session> startSession()
+

Start a new VIO session on the background.

+
+ +
+
+~Pipeline()
+
+ +
+
+

Private Members

+
+
+std::unique_ptr<impl> pimpl
+
+ +
+
+ +
+ +
+ +
+
+

Session

+

Defined in #include <spectacularAI/orbbec/session.hpp>

+
+
+namespace spectacularAI
+
+
+namespace orbbecPlugin
+
+
+struct Session
+
+

Public Functions

+
+
+virtual bool hasOutput() const = 0
+

Check if new output is available.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> getOutput() = 0
+

Get output from the queue, if available. If not returns {}.

+
+ +
+
+virtual std::shared_ptr<const VioOutput> waitForOutput() = 0
+

Wait until new output is available and then return it.

+
+ +
+
+virtual void ignoreOutputs(bool ignore) = 0
+

Set whether new outputs are added to the queue. Useful when the user is not interested in VIO outputs: e.g. when using mapping API or recording.

+
+
Parameters:
+

ignore – If true, new outputs are not added to the queue. Otherwise, the user has make sure the outputs are pulled from the queue.

+
+
+
+ +
+
+virtual void addTrigger(double t, int tag) = 0
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+
Parameters:
+
    +
  • t – timestamp, monotonic float seconds

  • +
  • tag – additonal tag to indentify this particular trigger event. The default outputs corresponding to input camera frames have a tag 0.

  • +
+
+
+
+ +
+
+virtual ~Session()
+
+ +
+
+ +
+ +
+ +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/sdk/wrappers/realsense.html b/sdk/wrappers/realsense.html new file mode 100644 index 0000000..2609167 --- /dev/null +++ b/sdk/wrappers/realsense.html @@ -0,0 +1,373 @@ + + + + + + + RealSense — spectacularAI documentation + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RealSense

+

Spectacular AI C++ plugin for RealSense D455 and D435i cameras.

+
+

API Reference

+
+

Configuration

+

Defined in #include <spectacularAI/realsense/configuration.hpp>

+
+
+namespace spectacularAI
+
+
+namespace rsPlugin
+
+
+struct Configuration
+

Plugin and Spectacular AI VIO SDK configuration variables.

+
+

Public Members

+
+
+bool useStereo = true
+
+ +
+
+bool useRgb = true
+
+ +
+
+bool fastVio = false
+
+ +
+
+bool alignedDepth = false
+
+ +
+
+bool useSlam = true
+
+ +
+
+bool useIcp = false
+
+ +
+
+std::string inputResolution = "400p"
+
+ +
+
+std::string mapSavePath = ""
+
+ +
+
+std::string mapLoadPath = ""
+
+ +
+
+std::string aprilTagPath = ""
+
+ +
+
+std::string recordingFolder = ""
+
+ +
+
+bool recordingOnly = false
+
+ +
+
+bool postProcessFinalMap = true
+
+ +
+
+std::map<std::string, std::string> internalParameters
+

Internal SDK parameter overrides (key-value pairs). Not safe for unsanitized user input.

+
+ +
+
+ +
+ +
+ +
+
+

Pipeline

+

Defined in #include <spectacularAI/realsense/pipeline.hpp>

+
+
+namespace rs2
+
+ +
+
+namespace spectacularAI
+
+
+namespace rsPlugin
+
+
+class Pipeline
+

The Pipeline object stores information about the device and also sets the default configuration, e.g., enables and configures necessary RealSense streams and sensors. The actual VIO reading is started with startSession. It is possible to change the RealSense configuration between calling configureX and startSession, but the VIO tracking is not guaranteed to be compatible with such customized configurations.

+
+

Public Functions

+
+
+Pipeline()
+

Create a pipeline with the default configuration.

+
+ +
+
+Pipeline(const Configuration &config)
+

Create a pipeline with custom configuration

+
+ +
+
+void configureDevice(rs2::device &device)
+

Configure the RealSense device for VIO

+
+ +
+
+void configureStreams(rs2::config &config)
+

Set up the RealSense config for VIO

+
+ +
+
+void setMapperCallback(const std::function<void(spectacularAI::mapping::MapperOutputPtr)> &onMapperOutput)
+

Set a mapping callback

+
+ +
+
+std::unique_ptr<Session> startSession(rs2::config &config)
+

Start a new VIO session on the background. Internally creates an rs2::pipeline and starts it.

+
+ +
+
+std::unique_ptr<Session> startSession(rs2::config &config, const std::function<void(const rs2::frame &frame)> &callback)
+

Start a new VIO session on the background. Also invoke the given callback on each rs2::frame. Performing heavy computations directly in the callback is not recommended.

+
+ +
+
+~Pipeline()
+
+ +
+
+

Private Members

+
+
+std::unique_ptr<impl> pimpl
+
+ +
+
+ +
+ +
+ +
+
+

Session

+

Defined in #include <spectacularAI/realsense/session.hpp>

+
+
+namespace spectacularAI
+
+
+namespace rsPlugin
+
+
+struct Session
+

VIO session.

+
+

Public Functions

+
+
+virtual bool hasOutput() const = 0
+

Check if new output is available

+
+ +
+
+virtual std::shared_ptr<const VioOutput> getOutput() = 0
+

Get output from the queue, if available. If not, returns {}

+
+ +
+
+virtual std::shared_ptr<const VioOutput> waitForOutput() = 0
+

Wait until new output is available and then return it. Do not use with useReaderThread=false.

+
+ +
+
+virtual void addTrigger(double t, int tag) = 0
+

Add an external trigger input. Causes additional output corresponding to a certain timestamp to be generated.

+
+
Parameters:
+
    +
  • t – timestamp, monotonic float seconds

  • +
  • tag – additonal tag to indentify this particular trigger event. The default outputs corresponding to input camera frames have a tag 0.

  • +
+
+
+
+ +
+
+virtual ~Session()
+
+ +
+
+ +
+ +
+ +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file