diff --git a/README.md b/README.md
index 82833752d7..7e1d60d874 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# DefinitelyTyped [](https://travis-ci.org/borisyankov/DefinitelyTyped)
+# DefinitelyTyped [](https://travis-ci.org/DefinitelyTyped/DefinitelyTyped)
[](https://gitter.im/borisyankov/DefinitelyTyped?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
diff --git a/ace/ace.d.ts.tscparams b/ace/ace.d.ts.tscparams
deleted file mode 100644
index d3f5a12faa..0000000000
--- a/ace/ace.d.ts.tscparams
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/ace/tests/ace-editor_text_edit-tests.ts.tscparams b/ace/tests/ace-editor_text_edit-tests.ts.tscparams
deleted file mode 100644
index d3f5a12faa..0000000000
--- a/ace/tests/ace-editor_text_edit-tests.ts.tscparams
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/ace/tests/ace-range-tests.ts.tscparams b/ace/tests/ace-range-tests.ts.tscparams
deleted file mode 100644
index d3f5a12faa..0000000000
--- a/ace/tests/ace-range-tests.ts.tscparams
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/ace/tests/ace-search-tests.ts.tscparams b/ace/tests/ace-search-tests.ts.tscparams
deleted file mode 100644
index d3f5a12faa..0000000000
--- a/ace/tests/ace-search-tests.ts.tscparams
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/angular-dynamic-locale/angular-dynamic-locale.d.ts b/angular-dynamic-locale/angular-dynamic-locale.d.ts
index a30df1d7ed..e404e95328 100644
--- a/angular-dynamic-locale/angular-dynamic-locale.d.ts
+++ b/angular-dynamic-locale/angular-dynamic-locale.d.ts
@@ -5,6 +5,11 @@
///
+declare module "angular-dynamic-locale" {
+ import ng = angular.dynamicLocale;
+ export = ng;
+}
+
declare module angular.dynamicLocale {
interface tmhDynamicLocaleService {
diff --git a/angular-formly/angular-formly.d.ts b/angular-formly/angular-formly.d.ts
index 2bf75af7d7..fce793e7e7 100644
--- a/angular-formly/angular-formly.d.ts
+++ b/angular-formly/angular-formly.d.ts
@@ -70,6 +70,11 @@ declare module AngularFormly {
postWrapper?: ITemplateManipulator[];
}
+ interface ISelectOption {
+ name: string;
+ value?: string;
+ group?: string;
+ }
/**
* see http://docs.angular-formly.com/docs/ngmodelattrstemplatemanipulator
@@ -104,6 +109,12 @@ declare module AngularFormly {
description?: string;
[key: string]: any;
+ // types for select/radio fields
+ options?: Array;
+ groupProp?: string; // default: group
+ valueProp?: string; // default: value
+ labelProp?: string; // default: name
+
}
diff --git a/angular-loading-bar/angular-loading-bar-tests.ts b/angular-loading-bar/angular-loading-bar-tests.ts
index b7ca2894ea..b8bde9e933 100644
--- a/angular-loading-bar/angular-loading-bar-tests.ts
+++ b/angular-loading-bar/angular-loading-bar-tests.ts
@@ -7,9 +7,17 @@ class TestController {
constructor($http: ng.IHttpService) {
$http.get("http://xyz.com", { ignoreLoadingBar: true })
-
+
}
}
app.controller('TestController', TestController);
+
+var barConfig: angular.loadingBar.ILoadingBarProvider[] = [];
+barConfig.push({
+ includeSpinner: true,
+ includeBar: true,
+ spinnerTemplate: 'template',
+ latencyThreshold: 100
+});
diff --git a/angular-loading-bar/angular-loading-bar.d.ts b/angular-loading-bar/angular-loading-bar.d.ts
index b1a8cd55df..acea6f048f 100644
--- a/angular-loading-bar/angular-loading-bar.d.ts
+++ b/angular-loading-bar/angular-loading-bar.d.ts
@@ -14,5 +14,30 @@ declare module angular {
*/
ignoreLoadingBar?: boolean;
}
+}
-}
\ No newline at end of file
+declare module angular.loadingBar {
+
+ interface ILoadingBarProvider{
+ /**
+ * Turn the spinner on or off
+ */
+ includeSpinner?: boolean;
+
+ /**
+ * Turn the loading bar on or off
+ */
+ includeBar?: boolean;
+
+ /**
+ * HTML template
+ */
+ spinnerTemplate?: string;
+
+ /**
+ * Latency Threshold
+ */
+ latencyThreshold?: number;
+ }
+
+}
diff --git a/angular-material/angular-material-0.8.3.d.ts b/angular-material/angular-material-0.8.3.d.ts
index 1e3eda18af..10724b8122 100644
--- a/angular-material/angular-material-0.8.3.d.ts
+++ b/angular-material/angular-material-0.8.3.d.ts
@@ -59,7 +59,7 @@ declare module angular.material {
show(dialog: MDDialogOptions|MDPresetDialog): angular.IPromise;
confirm(): MDConfirmDialog;
alert(): MDAlertDialog;
- hide(response?: any): void;
+ hide(response?: any): angular.IPromise;
cancel(response?: any): void;
}
diff --git a/angular-material/angular-material-0.9.0.d.ts b/angular-material/angular-material-0.9.0.d.ts
index 1383b0beb5..96134f114f 100644
--- a/angular-material/angular-material-0.9.0.d.ts
+++ b/angular-material/angular-material-0.9.0.d.ts
@@ -64,7 +64,7 @@ declare module angular.material {
show(dialog: MDDialogOptions|MDAlertDialog|MDConfirmDialog): angular.IPromise;
confirm(): MDConfirmDialog;
alert(): MDAlertDialog;
- hide(response?: any): void;
+ hide(response?: any): angular.IPromise;
cancel(response?: any): void;
}
diff --git a/angular-material/angular-material.d.ts b/angular-material/angular-material.d.ts
index 43e0b9f53b..7d29e7492a 100644
--- a/angular-material/angular-material.d.ts
+++ b/angular-material/angular-material.d.ts
@@ -83,7 +83,7 @@ declare module angular.material {
show(dialog: IDialogOptions|IAlertDialog|IConfirmDialog): angular.IPromise;
confirm(): IConfirmDialog;
alert(): IAlertDialog;
- hide(response?: any): void;
+ hide(response?: any): angular.IPromise;
cancel(response?: any): void;
}
diff --git a/angular-protractor/angular-protractor-tests.ts b/angular-protractor/angular-protractor-tests.ts
index 45a5d7edc4..0f98aead12 100644
--- a/angular-protractor/angular-protractor-tests.ts
+++ b/angular-protractor/angular-protractor-tests.ts
@@ -196,6 +196,27 @@ function TestWebDriverUntilModule() {
conditionWebElements = protractor.until.elementsLocated(by.className('class'));
}
+function TestWebDriverExpectedConditionsModule() {
+ var conditionB: protractor.until.Condition;
+ var el: protractor.ElementFinder = element(by.id('id'));
+
+ conditionB = protractor.ExpectedConditions.alertIsPresent();
+ conditionB = protractor.ExpectedConditions.elementToBeClickable(el);
+ conditionB = protractor.ExpectedConditions.textToBePresentInElement(el, 'text');
+ conditionB = protractor.ExpectedConditions.textToBePresentInElementValue(el, 'text');
+ conditionB = protractor.ExpectedConditions.titleContains('text');
+ conditionB = protractor.ExpectedConditions.titleIs('text');
+ conditionB = protractor.ExpectedConditions.presenceOf(el);
+ conditionB = protractor.ExpectedConditions.stalenessOf(el);
+ conditionB = protractor.ExpectedConditions.visibilityOf(el);
+ conditionB = protractor.ExpectedConditions.invisibilityOf(el);
+ conditionB = protractor.ExpectedConditions.elementToBeSelected(el);
+
+ conditionB = protractor.ExpectedConditions.not(protractor.ExpectedConditions.alertIsPresent());
+ conditionB = protractor.ExpectedConditions.and(protractor.ExpectedConditions.alertIsPresent(), protractor.ExpectedConditions.elementToBeClickable(el));
+ conditionB = protractor.ExpectedConditions.or(protractor.ExpectedConditions.alertIsPresent(), protractor.ExpectedConditions.elementToBeClickable(el));
+}
+
function TestProtractor() {
var ptor: protractor.Protractor;
var driver: webdriver.WebDriver = new webdriver.Builder().
diff --git a/angular-protractor/angular-protractor.d.ts b/angular-protractor/angular-protractor.d.ts
index ff83242381..08f83e27d4 100644
--- a/angular-protractor/angular-protractor.d.ts
+++ b/angular-protractor/angular-protractor.d.ts
@@ -501,6 +501,145 @@ declare module protractor {
function titleMatches(regex: RegExp): webdriver.until.Condition;
}
+ module ExpectedConditions {
+ /**
+ * Negates the result of a promise.
+ *
+ * @param {webdriver.until.Condition} expectedCondition
+ * @return {!webdriver.until.Condition} An expected condition that returns the negated value.
+ */
+ function not(expectedCondition: webdriver.until.Condition): webdriver.until.Condition;
+
+ /**
+ * Chain a number of expected conditions using logical_and, short circuiting at the
+ * first expected condition that evaluates to false.
+ *
+ * @param {...webdriver.until.Condition[]} fns An array of expected conditions to 'and' together.
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise which evaluates
+ * to the result of the logical and.
+ */
+ function and(...fns: webdriver.until.Condition[]): webdriver.until.Condition;
+
+ /**
+ * Chain a number of expected conditions using logical_or, short circuiting at the
+ * first expected condition that evaluates to true.
+ *
+ * @param {...webdriver.until.Condition[]} fns An array of expected conditions to 'or' together.
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise which
+ * evaluates to the result of the logical or.
+ */
+ function or(...fns: webdriver.until.Condition[]): webdriver.until.Condition;
+
+ /**
+ * Expect an alert to be present.
+ *
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether an alert is present.
+ */
+ function alertIsPresent(): webdriver.until.Condition;
+
+ /**
+ * An Expectation for checking an element is visible and enabled such that you can click it.
+ *
+ * @param {ElementFinder} element The element to check
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the element is clickable.
+ */
+ function elementToBeClickable(element: ElementFinder): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking if the given text is present in the element.
+ * Returns false if the elementFinder does not find an element.
+ *
+ * @param {ElementFinder} element The element to check
+ * @param {string} text The text to verify against
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the text is present in the element.
+ */
+ function textToBePresentInElement(element: ElementFinder, text: string): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking if the given text is present in the element’s value.
+ * Returns false if the elementFinder does not find an element.
+ *
+ * @param {ElementFinder} element The element to check
+ * @param {string} text The text to verify against
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the text is present in the element's value.
+ */
+ function textToBePresentInElementValue(
+ element: ElementFinder, text: string
+ ): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking that the title contains a case-sensitive substring.
+ *
+ * @param {string} title The fragment of title expected
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the title contains the string.
+ */
+ function titleContains(title: string): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking the title of a page.
+ *
+ * @param {string} title The expected title, which must be an exact match.
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the title equals the string.
+ */
+ function titleIs(title: string): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking that an element is present on the DOM of a page. This does not necessarily
+ * mean that the element is visible. This is the opposite of 'stalenessOf'.
+ *
+ * @param {ElementFinder} elementFinder The element to check
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise
+ * representing whether the element is present.
+ */
+ function presenceOf(element: ElementFinder): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking that an element is not attached to the DOM of a page.
+ * This is the opposite of 'presenceOf'.
+ *
+ * @param {ElementFinder} elementFinder The element to check
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the element is stale.
+ */
+ function stalenessOf(element: ElementFinder): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking that an element is present on the DOM of a page and visible.
+ * Visibility means that the element is not only displayed but also has a height and width that is
+ * greater than 0. This is the opposite of 'invisibilityOf'.
+ *
+ * @param {ElementFinder} elementFinder The element to check
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the element is visible.
+ */
+ function visibilityOf(element: ElementFinder): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking that an element is present on the DOM of a page. This does not necessarily
+ * mean that the element is visible. This is the opposite of 'stalenessOf'.
+ *
+ * @param {ElementFinder} elementFinder The element to check
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the element is invisible.
+ */
+ function invisibilityOf(element: ElementFinder): webdriver.until.Condition;
+
+ /**
+ * An expectation for checking the selection is selected.
+ *
+ * @param {ElementFinder} elementFinder The element to check
+ * @return {!webdriver.until.Condition} An expected condition that returns a promise representing
+ * whether the element is selected.
+ */
+ function elementToBeSelected(element: ElementFinder): webdriver.until.Condition;
+ }
+
//endregion
/**
@@ -1667,6 +1806,16 @@ declare module protractor {
* @return {Protractor} a protractor instance.
*/
forkNewDriverInstance(opt_useSameUrl?: boolean, opt_copyMockModules?: boolean): Protractor;
+
+ /**
+ * Get the processed configuration object that is currently being run. This will contain
+ * the specs and capabilities properties of the current runner instance.
+ *
+ * Set by the runner.
+ *
+ * @return {webdriver.promise.Promise} A promise which resolves to the capabilities object.
+ */
+ getProcessedConfig(): webdriver.promise.Promise;
}
/**
diff --git a/angular-strap/angular-strap-tests.ts b/angular-strap/angular-strap-tests.ts
new file mode 100644
index 0000000000..90c7a2bdea
--- /dev/null
+++ b/angular-strap/angular-strap-tests.ts
@@ -0,0 +1,378 @@
+///
+///
+
+module angularStrapTests {
+
+ import ngStrap = mgcrea.ngStrap;
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Modal
+ ///////////////////////////////////////////////////////////////////////////
+
+ module modalTests {
+
+ interface IDemoCtrlScope extends ngStrap.modal.IModalScope {
+ showModal: () => void;
+ }
+
+ angular.module('demoApp')
+ .config($modalConfig)
+ .controller('demoCtrl', demoCtrl);
+
+ function demoCtrl($scope: IDemoCtrlScope,
+ $modal: ngStrap.modal.IModalService): void {
+
+ var myModalOptions: ngStrap.modal.IModalOptions = {};
+ myModalOptions.title = 'My Title';
+ myModalOptions.content = 'Hello Modal
This is a multiline message!';
+ myModalOptions.show = true;
+
+ var myModal = $modal(myModalOptions);
+
+ var myOtherModalOptions: ngStrap.modal.IModalOptions = {};
+ myOtherModalOptions.scope = $scope;
+ myOtherModalOptions.template = 'modal/docs/modal.demo.tpl.html';
+ myOtherModalOptions.show = false;
+
+ var myOtherModal = $modal(myOtherModalOptions);
+
+ $scope.showModal = (): void => {
+ myOtherModal.$promise.then(myOtherModal.show);
+ };
+ }
+
+ function $modalConfig($modalProvider: ngStrap.modal.IModalProvider): void {
+ var defaults: ngStrap.modal.IModalOptions = {
+ animation: 'am-flip-x'
+ }
+ angular.extend($modalProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Aside
+ ///////////////////////////////////////////////////////////////////////////
+
+ module asideTests {
+
+ angular.module('demoApp')
+ .config($asideConfig)
+ .controller('demoCtrl', demoCtrl);
+
+ function demoCtrl($scope: ngStrap.aside.IAsideScope,
+ $aside: ngStrap.aside.IAsideService): void {
+
+ var myAsideOptions: ngStrap.aside.IAsideOptions = {};
+ myAsideOptions.title = 'My Title';
+ myAsideOptions.content = 'My content';
+ myAsideOptions.show = true;
+
+ var myAside = $aside(myAsideOptions);
+
+ var myOtherAsideOptions: ngStrap.aside.IAsideOptions = {};
+ myOtherAsideOptions.scope = $scope;
+ myOtherAsideOptions.template = 'aside/docs/aside.demo.tpl.html';
+
+ var myOtherAside = $aside();
+
+ myOtherAside.$promise.then(() => {
+ myOtherAside.show();
+ });
+ }
+
+ function $asideConfig($asideProvider: ngStrap.aside.IAsideProvider): void {
+ var defaults: ngStrap.aside.IAsideOptions = {};
+ defaults.animation = 'am-fadeAndSlideLeft';
+ defaults.placement = 'left';
+
+ angular.extend($asideProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Alert
+ ///////////////////////////////////////////////////////////////////////////
+
+ module alertTests {
+
+ angular.module('demoApp')
+ .config($alertConfig)
+ .controller('demoCtrl', demoCtrl);
+
+ function demoCtrl($scope: ngStrap.alert.IAlertScope,
+ $alert: ngStrap.alert.IAlertService): void {
+
+ var options: ngStrap.alert.IAlertOptions = {};
+ options.title = 'Holy guacamole!';
+ options.content = 'Best check yo self, you\'re not looking too good.';
+ options.placement = 'top';
+ options.type = 'info';
+ options.show = true;
+
+ var myAlert = $alert();
+ }
+
+ function $alertConfig($alertProvider: ngStrap.alert.IAlertProvider): void {
+ var defaults: ngStrap.alert.IAlertOptions = {};
+ defaults.animation = 'am-fade-and-slide-top';
+ defaults.placement = 'top';
+
+ angular.extend($alertProvider.defaults, defaults);
+ };
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Tooltip
+ ///////////////////////////////////////////////////////////////////////////
+
+ module tooltipTests {
+
+ angular.module('demoApp')
+ .config($tooltipConfig)
+ .controller('demoDrct', demoDrct);
+
+ function demoDrct($tooltip: ngStrap.tooltip.ITooltipService): ng.IDirective {
+ var drct: ng.IDirective = {};
+ drct.restrict = 'EA';
+ drct.link = link;
+ return drct;
+
+ function link(scope: ng.IScope, elem: ng.IAugmentedJQuery, attrs: ng.IAttributes): void {
+ var options: ngStrap.tooltip.ITooltipOptions = {};
+ options.title = 'My Title';
+ $tooltip(elem, options);
+ }
+ }
+
+ function $tooltipConfig($tooltipProvider: ngStrap.tooltip.ITooltipProvider): void {
+ var defaults: ngStrap.tooltip.ITooltipOptions = {};
+ defaults.animation = 'am-flip-x';
+ defaults.trigger = 'hover';
+
+ angular.extend($tooltipProvider.defaults, defaults);
+ };
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Popover
+ ///////////////////////////////////////////////////////////////////////////
+
+ module popoverTests {
+
+ angular.module('demoApp')
+ .config($popoverConfig)
+ .controller('demoDrct', demoDrct);
+
+ function demoDrct($popover: ngStrap.popover.IPopoverService): ng.IDirective {
+ var drct: ng.IDirective = {};
+ drct.restrict = 'EA';
+ drct.link = link;
+ return drct;
+
+ function link(scope: ng.IScope, elem: ng.IAugmentedJQuery, attrs: ng.IAttributes): void {
+ var options: ngStrap.tooltip.ITooltipOptions = {};
+ options.title = 'My Title';
+
+ $popover(elem, options);
+ }
+ }
+
+ function $popoverConfig($popoverProvider: ngStrap.popover.IPopoverProvider): void {
+ var defaults: ngStrap.tooltip.ITooltipOptions = {}
+ defaults.animation = 'am-flip-x';
+ defaults.trigger = 'hover';
+
+ angular.extend($popoverProvider.defaults, defaults);
+ };
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Typeahead
+ ///////////////////////////////////////////////////////////////////////////
+
+ module typeaheadTests {
+
+ angular.module('myApp')
+ .config($typeaheadConfig);
+
+ function $typeaheadConfig($typeaheadProvider: ngStrap.typeahead.ITypeaheadProvider) {
+ var defaults: ngStrap.typeahead.ITypeaheadOptions = {}
+ defaults.animation = 'am-flip-x';
+ defaults.minLength = 2;
+ defaults.limit = 8;
+
+ angular.extend($typeaheadProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Datepicker
+ ///////////////////////////////////////////////////////////////////////////
+
+ module datepickerTests {
+
+ angular.module('myApp')
+ .config($datepickerConfig);
+
+ function $datepickerConfig($datepickerProvider: ngStrap.datepicker.IDatepickerProvider): void {
+ var defaults: ngStrap.datepicker.IDatepickerOptions = {};
+ defaults.dateFormat = 'dd/MM/yyyy';
+ defaults.startWeek = 1;
+
+ angular.extend($datepickerProvider.defaults, defaults);
+ };
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Timepicker
+ ///////////////////////////////////////////////////////////////////////////
+
+ module timepickerTests {
+
+ angular.module('myApp')
+ .config($timepickerConfig);
+
+ function $timepickerConfig($timepickerProvider: ngStrap.timepicker.ITimepickerProvider): void {
+ var defaults: ngStrap.timepicker.ITimepickerOptions = {};
+ defaults.timeFormat = 'HH:mm';
+ defaults.length = 7;
+
+ angular.extend($timepickerProvider.defaults, defaults);
+ };
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Select
+ ///////////////////////////////////////////////////////////////////////////
+
+ module selectTests {
+
+ angular.module('myApp')
+ .config($selectConfig);
+
+ function $selectConfig($selectProvider: ngStrap.select.ISelectProvider): void {
+ var defaults: ngStrap.select.ISelectOptions = {};
+ defaults.animation = 'am-flip-x';
+ defaults.sort = false;
+
+ angular.extend($selectProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Tabs
+ ///////////////////////////////////////////////////////////////////////////
+
+ module tabTests {
+
+ angular.module('myApp')
+ .config($tabConfig);
+
+ function $tabConfig($tabProvider: ngStrap.tab.ITabProvider) {
+ var defaults: ngStrap.tab.ITabOptions = {};
+ defaults.animation = 'am-flip-x';
+
+ angular.extend($tabProvider.defaults, defaults);
+ }
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Collapse
+ ///////////////////////////////////////////////////////////////////////////
+
+ module collapseTests {
+
+ angular.module('myApp')
+ .config($collapseConfig);
+
+ function $collapseConfig($collapseProvider: ngStrap.collapse.ICollapseProvider):void {
+ var defaults: ngStrap.collapse.ICollapseOptions = {};
+ defaults.animation = 'am-flip-x';
+
+ angular.extend($collapseProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Dropdown
+ ///////////////////////////////////////////////////////////////////////////
+
+ module dropdownTests {
+
+ angular.module('myApp')
+ .config($dropdownConfig);
+
+ function $dropdownConfig($dropdownProvider: ngStrap.dropdown.IDropdownProvider):void {
+ var defaults: ngStrap.dropdown.IDropdownOptions = {};
+ defaults.animation = 'am-flip-x';
+ defaults.trigger = 'hover';
+
+ angular.extend($dropdownProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Navbar
+ ///////////////////////////////////////////////////////////////////////////
+
+ module navbarTests {
+
+ angular.module('myApp')
+ .config($navbarConfig);
+
+ function $navbarConfig($navbarProvider: ngStrap.navbar.INavbarProvider):void {
+ var defaults: ngStrap.navbar.INavbarOptions = {};
+ defaults.activeClass = 'in';
+
+ angular.extend($navbarProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Scrollspy
+ ///////////////////////////////////////////////////////////////////////////
+
+ module scrollspyTests {
+
+ angular.module('myApp')
+ .config($scrollspyConfig);
+
+ function $scrollspyConfig($scrollspyProvider: ngStrap.scrollspy.IScrollspyProvider):void {
+ var defaults: ngStrap.scrollspy.IScrollspyOptions = {};
+ defaults.offset = 0;
+ defaults.target = 'my-selector';
+
+ angular.extend($scrollspyProvider.defaults, defaults);
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Affix
+ ///////////////////////////////////////////////////////////////////////////
+
+ module affixTests {
+
+ angular.module('myApp')
+ .config($affixConfig);
+
+ function $affixConfig($affixProvider: ngStrap.affix.IAffixProvider):void {
+ var defaults: ngStrap.affix.IAffixOptions = {};
+ defaults.offsetTop = 100;
+
+ angular.extend($affixProvider.defaults, defaults);
+ }
+ }
+}
\ No newline at end of file
diff --git a/angular-strap/angular-strap.d.ts b/angular-strap/angular-strap.d.ts
new file mode 100644
index 0000000000..10e46bc1c1
--- /dev/null
+++ b/angular-strap/angular-strap.d.ts
@@ -0,0 +1,600 @@
+// Type definitions for angular-strap v2.2.x
+// Project: http://mgcrea.github.io/angular-strap/
+// Definitions by: Sam Herrmann
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+
+///
+
+declare module mgcrea.ngStrap {
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Modal
+ // see http://mgcrea.github.io/angular-strap/#/modals
+ ///////////////////////////////////////////////////////////////////////////
+
+ module modal {
+
+ interface IModalService {
+ (config?: IModalOptions): IModal;
+ }
+
+ interface IModalProvider {
+ defaults: IModalOptions;
+ }
+
+ interface IModal {
+ $promise: ng.IPromise;
+ show: () => void;
+ hide: () => void;
+ toggle: () => void;
+ }
+
+ interface IModalOptions {
+ animation?: string;
+ backdropAnimation?: string;
+ placement?: string;
+ title?: string;
+ content?: string;
+ html?: boolean;
+ backdrop?: boolean | string;
+ keyboard?: boolean;
+ show?: boolean;
+ container?: string | boolean;
+ template?: string;
+ contentTemplate?: string;
+ prefixEvent?: string;
+ id?: string;
+ scope?: ng.IScope;
+ }
+
+ interface IModalScope extends ng.IScope {
+ $show: () => void;
+ $hide: () => void;
+ $toggle: () => void;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Aside
+ // see http://mgcrea.github.io/angular-strap/#/asides
+ ///////////////////////////////////////////////////////////////////////////
+
+ module aside {
+
+ interface IAsideService {
+ (config?: IAsideOptions): IAside;
+ }
+
+ interface IAsideProvider {
+ defaults: IAsideOptions;
+ }
+
+ interface IAside {
+ $promise: ng.IPromise;
+ show: () => void;
+ hide: () => void;
+ toggle: () => void;
+ }
+
+ interface IAsideOptions {
+ animation?: string;
+ placement?: string;
+ title?: string;
+ content?: string;
+ html?: boolean;
+ backdrop?: boolean | string;
+ keyboard?: boolean;
+ show?: boolean;
+ container?: string | boolean;
+ template?: string;
+ contentTemplate?: string;
+ scope?: ng.IScope;
+ }
+
+ interface IAsideScope extends ng.IScope {
+ $show: () => void;
+ $hide: () => void;
+ $toggle: () => void;
+ }
+ }
+
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Alert
+ // see http://mgcrea.github.io/angular-strap/#/alerts
+ ///////////////////////////////////////////////////////////////////////////
+
+ module alert {
+
+ interface IAlertService {
+ (config?: IAlertOptions): IAlert;
+ }
+
+ interface IAlertProvider {
+ defaults: IAlertOptions;
+ }
+
+ interface IAlert {
+ $promise: ng.IPromise;
+ show: () => void;
+ hide: () => void;
+ toggle: () => void;
+ }
+
+ interface IAlertOptions {
+ animation?: string;
+ placement?: string;
+ title?: string;
+ content?: string;
+ type?: string;
+ keyboard?: boolean;
+ show?: boolean;
+ container?: string | boolean;
+ template?: string;
+ duration?: number | boolean;
+ dismissable?: boolean;
+ }
+
+ interface IAlertScope extends ng.IScope {
+ $show: () => void;
+ $hide: () => void;
+ $toggle: () => void;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Tooltip
+ // see http://mgcrea.github.io/angular-strap/#/tooltips
+ ///////////////////////////////////////////////////////////////////////////
+
+ module tooltip {
+
+ interface ITooltipService {
+ (element: ng.IAugmentedJQuery, config?: ITooltipOptions): ITooltip;
+ }
+
+ interface ITooltipProvider {
+ defaults: ITooltipOptions;
+ }
+
+ interface ITooltip {
+ $promise: ng.IPromise;
+ show: () => void;
+ hide: () => void;
+ toggle: () => void;
+ }
+
+ interface ITooltipOptions {
+ animation?: string;
+ placement?: string;
+ trigger?: string;
+ title?: string;
+ html?: boolean;
+ delay?: number | { show: number; hide: number};
+ container?: string | boolean;
+ target?: string | ng.IAugmentedJQuery | boolean;
+ template?: string;
+ contentTemplate?: string;
+ prefixEvent?: string;
+ id?: string;
+ viewport?: string | { selector: string; padding: string | number };
+ }
+
+ interface ITooltipScope extends ng.IScope {
+ $show: () => void;
+ $hide: () => void;
+ $toggle: () => void;
+ $setEnabled: (isEnabled: boolean) => void;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Popover
+ // see http://mgcrea.github.io/angular-strap/#/popovers
+ ///////////////////////////////////////////////////////////////////////////
+
+ module popover {
+
+ interface IPopoverService {
+ (element: ng.IAugmentedJQuery, config?: IPopoverOptions): IPopover;
+ }
+
+ interface IPopoverProvider {
+ defaults: IPopoverOptions;
+ }
+
+ interface IPopover {
+ $promise: ng.IPromise;
+ show: () => void;
+ hide: () => void;
+ toggle: () => void;
+ }
+
+ interface IPopoverOptions {
+ animation?: string;
+ placement?: string;
+ trigger?: string;
+ title?: string;
+ content?: string;
+ html?: boolean;
+ delay?: number | { show: number; hide: number };
+ container?: string | boolean;
+ target?: string | ng.IAugmentedJQuery | boolean;
+ template?: string;
+ contentTemplate?: string;
+ autoClose?: boolean;
+ id?: string;
+ viewport?: string | { selector: string; padding: string | number };
+ }
+
+ interface IPopoverScope extends ng.IScope {
+ $show: () => void;
+ $hide: () => void;
+ $toggle: () => void;
+ }
+ }
+
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Typeahead
+ // see http://mgcrea.github.io/angular-strap/#/typeaheads
+ ///////////////////////////////////////////////////////////////////////////
+
+ module typeahead {
+
+ interface ITypeaheadService {
+ (element: ng.IAugmentedJQuery, controller: any, config?: ITypeaheadOptions): ITypeahead;
+ }
+
+ interface ITypeaheadProvider {
+ defaults: ITypeaheadOptions;
+ }
+
+ interface ITypeahead {
+ $promise: ng.IPromise;
+ show: () => void;
+ hide: () => void;
+ toggle: () => void;
+ }
+
+ interface ITypeaheadOptions {
+ animation?: string;
+ placement?: string;
+ trigger?: string;
+ html?: boolean;
+ delay?: number | { show: number; hide: number };
+ container?: string | boolean;
+ template?: string;
+ limit?: number;
+ minLength?: number;
+ autoSelect?: boolean;
+ comparator?: string;
+ id?: string;
+ watchOptions?: boolean;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Datepicker
+ // see http://mgcrea.github.io/angular-strap/#/datepickers
+ ///////////////////////////////////////////////////////////////////////////
+
+ module datepicker {
+
+ interface IDatepickerService {
+ (element: ng.IAugmentedJQuery, controller: any, config?: IDatepickerOptions): IDatepicker;
+ }
+
+ interface IDatepickerProvider {
+ defaults: IDatepickerOptions;
+ }
+
+ interface IDatepicker {
+ update: (date: Date) => void;
+ updateDisabledDates: (dateRanges: IDatepickerDateRange[]) => void;
+ select: (dateConstructorArg: string | number | number[], keep: boolean) => void;
+ setMode: (mode: any) => void;
+ int: () => void;
+ destroy: () => void;
+ show: () => void;
+ hide: () => void;
+ }
+
+ interface IDatepickerDateRange {
+ start: Date;
+ end: Date;
+ }
+
+ interface IDatepickerOptions {
+ animation?: string;
+ placement?: string;
+ trigger?: string;
+ html?: boolean;
+ delay?: number | { show: number; hide: number };
+ container?: string | boolean;
+ template?: string;
+ dateFormat?: string;
+ modelDateFormat?: string;
+ dateType?: string;
+ timezone?: string;
+ autoclose?: boolean;
+ useNative?: boolean;
+ minDate?: Date;
+ maxDate?: Date;
+ startView?: number;
+ minView?: number;
+ startWeek?: number;
+ startDate?: Date;
+ iconLeft?: string;
+ iconRight?: string;
+ daysOfWeekDisabled?: string;
+ disabledDates?: IDatepickerDateRange[];
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Timepicker
+ // see http://mgcrea.github.io/angular-strap/#/timepickers
+ ///////////////////////////////////////////////////////////////////////////
+
+ module timepicker {
+
+ interface ITimepickerService {
+ (element: ng.IAugmentedJQuery, controller: any, config?: ITimepickerOptions): ITimepicker;
+ }
+
+ interface ITimepickerProvider {
+ defaults: ITimepickerOptions;
+ }
+
+ interface ITimepicker {
+
+ }
+
+ interface ITimepickerOptions {
+ animation?: string;
+ placement?: string;
+ trigger?: string;
+ html?: boolean;
+ delay?: number | { show: number; hide: number; };
+ container?: string | boolean;
+ template?: string;
+ timeFormat?: string;
+ modelTimeFormat?: string;
+ timeType?: string;
+ autoclose?: boolean;
+ useNative?: boolean;
+ minTime?: Date; // TODO
+ maxTime?: Date; // TODO
+ length?: number;
+ hourStep?: number;
+ minuteStep?: number;
+ secondStep?: number;
+ roundDisplay?: boolean;
+ iconUp?: string;
+ iconDown?: string;
+ arrowBehaviour?: string;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Button
+ // see http://mgcrea.github.io/angular-strap/#/buttons
+ ///////////////////////////////////////////////////////////////////////////
+
+ // No definitions for this module
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Select
+ // see http://mgcrea.github.io/angular-strap/#/selects
+ ///////////////////////////////////////////////////////////////////////////
+
+ module select {
+
+ interface ISelectService {
+ (element: ng.IAugmentedJQuery, controller: any, config: ISelectOptions): ISelect;
+ }
+
+ interface ISelectProvider {
+ defaults: ISelectOptions;
+ }
+
+ interface ISelect {
+ update: (matches: any) => void;
+ active: (index: number) => number;
+ select: (index: number) => void;
+ show: () => void;
+ hide: () => void;
+ }
+
+ interface ISelectOptions {
+ animation?: string;
+ placement?: string;
+ trigger?: string;
+ html?: boolean;
+ delay?: number | { show: number; hide: number; };
+ container?: string | boolean;
+ template?: string;
+ multiple?: boolean;
+ allNoneButtons?: boolean;
+ allText?: string;
+ noneText?: string;
+ maxLength?: number;
+ maxLengthHtml?: string;
+ sort?: boolean;
+ placeholder?: string;
+ iconCheckmark?: string;
+ id?: string;
+ }
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Tabs
+ // see http://mgcrea.github.io/angular-strap/#/tabs
+ ///////////////////////////////////////////////////////////////////////////
+
+ module tab {
+
+ interface ITabProvider {
+ defaults: ITabOptions;
+ }
+
+ interface ITabService {
+ defaults: ITabOptions;
+ controller: any;
+ }
+
+ interface ITabOptions {
+ animation?: string;
+ template?: string;
+ navClass?: string;
+ activeClass?: string;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Collapses
+ // see http://mgcrea.github.io/angular-strap/#/collapses
+ ///////////////////////////////////////////////////////////////////////////
+
+ module collapse {
+
+ interface ICollapseProvider {
+ defaults: ICollapseOptions;
+ }
+
+ interface ICollapseOptions {
+ animation?: string;
+ activeClass?: string;
+ disallowToggle?: boolean;
+ startCollapsed?: boolean;
+ allowMultiple?: boolean;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Dropdowsn
+ // see http://mgcrea.github.io/angular-strap/#/dropdowns
+ ///////////////////////////////////////////////////////////////////////////
+
+ module dropdown {
+
+ interface IDropdownProvider {
+ defaults: IDropdownOptions;
+ }
+
+ interface IDropdownService {
+ (element: ng.IAugmentedJQuery, config: IDropdownOptions): IDropdown;
+ }
+
+ interface IDropdown {
+ show: () => void;
+ hide: () => void;
+ destroy: () => void;
+ }
+
+ interface IDropdownOptions {
+ animation?: string;
+ placement?: string;
+ trigger?: string;
+ html?: boolean;
+ delay?: number | { show: number; hide: number; };
+ container?: string | boolean;
+ template?: string;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Navbar
+ // see http://mgcrea.github.io/angular-strap/#/navbars
+ ///////////////////////////////////////////////////////////////////////////
+
+ module navbar {
+
+ interface INavbarProvider {
+ defaults: INavbarOptions;
+ }
+
+ interface INavbarOptions {
+ activeClass?: string;
+ routeAttr?: string;
+ }
+
+ interface INavbarService {
+ defaults: INavbarOptions;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Scrollspy
+ // see http://mgcrea.github.io/angular-strap/#/scrollspy
+ ///////////////////////////////////////////////////////////////////////////
+
+ module scrollspy {
+
+ interface IScrollspyProvider {
+ defaults: IScrollspyOptions;
+ }
+
+ interface IScrollspyService {
+ (element: ng.IAugmentedJQuery, options: IScrollspyOptions): IScrollspy;
+ }
+
+ interface IScrollspy {
+ checkOffsets: () => void;
+ trackElement: (target: any, source: any) => void;
+ untrackElement: (target: any, source: any) => void;
+ activate: (index: number) => void;
+ }
+
+ interface IScrollspyOptions {
+ target?: string;
+ offset?: number;
+ }
+ }
+
+
+ ///////////////////////////////////////////////////////////////////////////
+ // Affix
+ // see http://mgcrea.github.io/angular-strap/#/affix
+ ///////////////////////////////////////////////////////////////////////////
+
+ module affix {
+
+ interface IAffixProvider {
+ defaults: IAffixOptions;
+ }
+
+ interface IAffixService {
+ (element: ng.IAugmentedJQuery, options: IAffixOptions): IAffix;
+ }
+
+ interface IAffix {
+ init: () => void;
+ destroy: () => void;
+ checkPositionWithEventLoop: () => void;
+ checkPosition: () => void;
+ }
+
+ interface IAffixOptions {
+ offsetTop?: number;
+ offsetBottom?: number;
+ offsetParent?: number;
+ offsetUnpin?: number;
+ }
+ }
+}
diff --git a/angular-translate/angular-translate-tests.ts b/angular-translate/angular-translate-tests.ts
index c60247f427..a19d27adec 100644
--- a/angular-translate/angular-translate-tests.ts
+++ b/angular-translate/angular-translate-tests.ts
@@ -36,4 +36,9 @@ app.controller('Ctrl', ($scope: Scope, $translate: angular.translate.ITranslateS
$scope['changeLanguage'] = function (key: any) {
$translate.use(key);
};
+}).run(($filter: ng.IFilterService) => {
+ var x: string;
+ x = $filter('translate')('something');
+ x = $filter('translate')('something', {});
+ x = $filter('translate')('something', {}, '');
});
diff --git a/angular-translate/angular-translate.d.ts b/angular-translate/angular-translate.d.ts
index e4f69c688b..960012a576 100644
--- a/angular-translate/angular-translate.d.ts
+++ b/angular-translate/angular-translate.d.ts
@@ -6,8 +6,8 @@
///
declare module "angular-translate" {
- var _: string;
- export = _;
+ import ngt = angular.translate;
+ export = ngt;
}
declare module angular.translate {
@@ -22,7 +22,7 @@ declare module angular.translate {
interface IStorage {
get(name: string): string;
- set(name: string, value: string): void;
+ put(name: string, value: string): void;
}
interface IStaticFilesLoaderOptions {
@@ -108,3 +108,11 @@ declare module angular.translate {
useLoaderCache(cache?: any): ITranslateProvider;
}
}
+
+declare module angular {
+ interface IFilterService {
+ (name:'translate'): {
+ (translationId: string, interpolateParams?: any, interpolation?: string): string;
+ };
+ }
+}
diff --git a/angular-ui-router/angular-ui-router-tests.ts b/angular-ui-router/angular-ui-router-tests.ts
index 3211faee5c..41661d60d5 100644
--- a/angular-ui-router/angular-ui-router-tests.ts
+++ b/angular-ui-router/angular-ui-router-tests.ts
@@ -230,7 +230,7 @@ module UrlRouterProviderTests {
// this allows you to configure custom behavior in between
// location changes and route synchronization:
$urlRouterProvider.deferIntercept();
- }).run(($rootScope: ng.IRootScopeService, $urlRouter: ng.ui.IUrlRouterService, UserService: ITestUserService) => {
+ }).run(($rootScope: ng.IRootScopeService, $urlRouter: ng.ui.IUrlRouterService, UserService: ITestUserService, $urlMatcher: ng.ui.IUrlMatcher) => {
$rootScope.$on('$locationChangeSuccess', e => {
// UserService is an example service for managing user state
if (UserService.isLoggedIn()) return;
@@ -245,6 +245,18 @@ module UrlRouterProviderTests {
});
// Configures $urlRouter's listener *after* your custom listener
- $urlRouter.listen();
+ var listen: Function = $urlRouter.listen();
+
+ var href: string;
+ href = $urlRouter.href($urlMatcher);
+ href = $urlRouter.href($urlMatcher, {});
+ href = $urlRouter.href($urlMatcher, {}, {});
+
+ $urlRouter.update();
+ $urlRouter.update(false);
+
+ $urlRouter.push($urlMatcher);
+ $urlRouter.push($urlMatcher, {});
+ $urlRouter.push($urlMatcher, {}, {});
});
}
diff --git a/angular-ui-router/angular-ui-router.d.ts b/angular-ui-router/angular-ui-router.d.ts
index 014baf5ac4..a22b7d0da3 100644
--- a/angular-ui-router/angular-ui-router.d.ts
+++ b/angular-ui-router/angular-ui-router.d.ts
@@ -5,10 +5,27 @@
///
-// Support for AMD require
+// Support for AMD require and CommonJS
declare module 'angular-ui-router' {
- var _: string;
- export = _;
+ // Since angular-ui-router adds providers for a bunch of
+ // injectable dependencies, it doesn't really return any
+ // actual data except the plain string 'ui.router'.
+ //
+ // As such, I don't think anybody will ever use the actual
+ // default value of the module. So I've only included the
+ // the types. (@xogeny)
+ export type IState = angular.ui.IState;
+ export type IStateProvider = angular.ui.IStateProvider;
+ export type IUrlMatcher = angular.ui.IUrlMatcher;
+ export type IUrlRouterProvider = angular.ui.IUrlRouterProvider;
+ export type IStateOptions = angular.ui.IStateOptions;
+ export type IHrefOptions = angular.ui.IHrefOptions;
+ export type IStateService = angular.ui.IStateService;
+ export type IResolvedState = angular.ui.IResolvedState;
+ export type IStateParamsService = angular.ui.IStateParamsService;
+ export type IUrlRouterService = angular.ui.IUrlRouterService;
+ export type IUiViewScrollProvider = angular.ui.IUiViewScrollProvider;
+ export type IType = angular.ui.IType;
}
declare module angular.ui {
@@ -283,7 +300,10 @@ declare module angular.ui {
*
*/
sync(): void;
- listen(): void;
+ listen(): Function;
+ href(urlMatcher: IUrlMatcher, params?: IStateParamsService, options?: IHrefOptions): string;
+ update(read?: boolean): void;
+ push(urlMatcher: IUrlMatcher, params?: IStateParamsService, options?: IHrefOptions): void;
}
interface IUiViewScrollProvider {
diff --git a/angular-ui-tree/angular-ui-tree-tests.ts b/angular-ui-tree/angular-ui-tree-tests.ts
index e66408814e..718fada2ce 100644
--- a/angular-ui-tree/angular-ui-tree-tests.ts
+++ b/angular-ui-tree/angular-ui-tree-tests.ts
@@ -11,3 +11,73 @@ var treeNode2: AngularUITree.ITreeNode = {
nodes: [treeNode],
title: "test2"
};
+
+// fake jquery node here so that we can pull a pretend
+// angular scope element out of it
+var dummyJQueryNode: ng.IAugmentedJQuery;
+var fakeScope: (ng.IScope | AngularUITree.IParentTreeNodeScope) = dummyJQueryNode.scope();
+
+( fakeScope).node = treeNode;
+
+var treeNodeScope: AngularUITree.ITreeNodeScope = fakeScope;
+
+( fakeScope).isParent = (nodeScope: AngularUITree.ITreeNodeScope) => {
+ return true;
+};
+
+var parentTreeNodeScope: AngularUITree.IParentTreeNodeScope = fakeScope;
+
+var eventSourceInfo: AngularUITree.IEventSourceInfo = {
+ cloneModel: {},
+ nodeScope: treeNodeScope,
+ index: 0,
+ nodesScope: parentTreeNodeScope
+};
+
+var position: AngularUITree.IPosition = {
+ dirAx: 0,
+ dirX: 0,
+ dirY: 0,
+ distAxX: 0,
+ distAxY: 0,
+ distX: 0,
+ distY: 0,
+ lastDirX: 0,
+ lastDirY: 0,
+ lastX: 0,
+ lastY: 0,
+ moving: true,
+ nowX: 0,
+ nowY: 0,
+ offsetX: 0,
+ offsetY: 0,
+ startX: 0,
+ startY: 0
+
+};
+
+var eventInfo: AngularUITree.IEventInfo = {
+ source: eventSourceInfo,
+ dest: {
+ index: 0,
+ nodesScope: parentTreeNodeScope
+ },
+ elements: {},
+ pos: position
+};
+
+var acceptCallback: AngularUITree.IAcceptCallback = (source: AngularUITree.ITreeNodeScope,
+ destination: AngularUITree.ITreeNodeScope,
+ destinationIndex: number) => {
+ return false;
+};
+
+var droppedCallback: AngularUITree.IDroppedCallback = (eventInfo: AngularUITree.IEventInfo) => {
+ return;
+};
+
+var callbacks: AngularUITree.ICallbacks = {
+ accept: acceptCallback,
+ dragStart: droppedCallback,
+ dropped: droppedCallback
+};
diff --git a/angular-ui-tree/angular-ui-tree.d.ts b/angular-ui-tree/angular-ui-tree.d.ts
index 1017ac11cd..cfcb2b1087 100644
--- a/angular-ui-tree/angular-ui-tree.d.ts
+++ b/angular-ui-tree/angular-ui-tree.d.ts
@@ -3,7 +3,72 @@
// Definitions by: Calvin Fernandez
// Definitions: https://github.com/borisyankov/DefinitelyTyped
+///
+
declare module AngularUITree {
+ interface IEventSourceInfo {
+ cloneModel: any;
+ index: number;
+ nodeScope: ITreeNodeScope;
+ nodesScope: ITreeNodeScope;
+ }
+
+ interface IPosition {
+ dirAx: number;
+ dirX: number;
+ dirY: number;
+ distAxX: number;
+ distAxY: number;
+ distX: number;
+ distY: number;
+ lastDirX: number;
+ lastDirY: number;
+ lastX: number;
+ lastY: number;
+ moving: boolean;
+ nowX: number;
+ nowY: number;
+ offsetX: number;
+ offsetY: number;
+ startX: number;
+ startY: number;
+ }
+
+ interface IEventInfo {
+ dest: {
+ index: number;
+ nodesScope: IParentTreeNodeScope;
+ };
+ elements: any;
+ pos: IPosition;
+ source: IEventSourceInfo;
+ }
+
+ interface IAcceptCallback {
+ (source: ITreeNodeScope, destination: ITreeNodeScope, destinationIndex: number): boolean;
+ }
+
+ interface IDroppedCallback {
+ (eventInfo: IEventInfo): void;
+ }
+
+ interface ICallbacks {
+ accept: IAcceptCallback;
+ dragStart: IDroppedCallback;
+ dropped: IDroppedCallback;
+ }
+
+ /**
+ * Internal representation of node in the UI
+ */
+ interface ITreeNodeScope extends ng.IScope {
+ node: ITreeNode;
+ }
+
+ interface IParentTreeNodeScope extends ITreeNodeScope {
+ isParent(nodeScope: ITreeNodeScope): boolean;
+ }
+
/**
* Node in list
*/
diff --git a/angularjs/angular-resource-tests.ts b/angularjs/angular-resource-tests.ts
index cfa7712cc2..fcf0bd0a96 100644
--- a/angularjs/angular-resource-tests.ts
+++ b/angularjs/angular-resource-tests.ts
@@ -89,6 +89,9 @@ resource = resourceClass.save({ key: 'value' }, { key: 'value' }, function () {
var promise : angular.IPromise;
var arrayPromise : angular.IPromise;
+var json: {
+ [index: string]: any;
+};
promise = resource.$delete();
promise = resource.$delete({ key: 'value' });
@@ -127,6 +130,8 @@ promise = resource.$save(function () { });
promise = resource.$save(function () { }, function () { });
promise = resource.$save({ key: 'value' }, function () { }, function () { });
+json = resource.toJSON();
+
///////////////////////////////////////
// IResourceService
///////////////////////////////////////
diff --git a/angularjs/angular-resource.d.ts b/angularjs/angular-resource.d.ts
index 76930196ba..1e82f31545 100644
--- a/angularjs/angular-resource.d.ts
+++ b/angularjs/angular-resource.d.ts
@@ -5,6 +5,10 @@
///
+declare module 'angular-resource' {
+ var _: string;
+ export = _;
+}
///////////////////////////////////////////////////////////////////////////////
// ngResource module (angular-resource.js)
@@ -136,12 +140,15 @@ declare module angular.resource {
/** the promise of the original server interaction that created this instance. **/
$promise : angular.IPromise;
$resolved : boolean;
+ toJSON: () => {
+ [index: string]: any;
+ }
}
/**
* Really just a regular Array object with $promise and $resolve attached to it
*/
- interface IResourceArray extends Array {
+ interface IResourceArray extends Array> {
/** the promise of the original server interaction that created this collection. **/
$promise : angular.IPromise>;
$resolved : boolean;
diff --git a/angularjs/angular-route.d.ts b/angularjs/angular-route.d.ts
index 662b2c11d3..eafdf714ce 100644
--- a/angularjs/angular-route.d.ts
+++ b/angularjs/angular-route.d.ts
@@ -35,6 +35,16 @@ declare module angular.route {
// May not always be available. For instance, current will not be available
// to a controller that was not initialized as a result of a route maching.
current?: ICurrentRoute;
+
+ /**
+ * Causes $route service to update the current URL, replacing current route parameters with those specified in newParams.
+ * Provided property names that match the route's path segment definitions will be interpolated into the
+ * location's path, while remaining properties will be treated as query params.
+ *
+ * @param newParams Object. mapping of URL parameter names to values
+ */
+ updateParams(newParams:{[key:string]:string}): void;
+
}
@@ -118,6 +128,12 @@ declare module angular.route {
}
interface IRouteProvider extends IServiceProvider {
+ /**
+ * Match routes without being case sensitive
+ *
+ * This option defaults to false. If the option is set to true, then the particular route can be matched without being case sensitive
+ */
+ caseInsensitiveMatch?: boolean;
/**
* Sets route definition that will be used on route change when no other route definition is matched.
*
diff --git a/angularjs/angular.d.ts b/angularjs/angular.d.ts
index a489141d54..97477e9a81 100644
--- a/angularjs/angular.d.ts
+++ b/angularjs/angular.d.ts
@@ -165,7 +165,7 @@ declare module angular {
dot: number;
codeName: string;
};
-
+
/**
* If window.name contains prefix NG_DEFER_BOOTSTRAP! when angular.bootstrap is called, the bootstrap process will be paused until angular.resumeBootstrap() is called.
* @param extraModules An optional array of modules that should be added to the original list of modules that the app was about to be bootstrapped with.
@@ -181,6 +181,13 @@ declare module angular {
animation(name: string, animationFactory: Function): IModule;
animation(name: string, inlineAnnotatedFunction: any[]): IModule;
animation(object: Object): IModule;
+ /**
+ * Use this method to register a component.
+ *
+ * @param name The name of the component.
+ * @param options A definition object passed into the component.
+ */
+ component(name: string, options: IComponentOptions): IModule;
/**
* Use this method to register work which needs to be performed on module loading.
*
@@ -1620,6 +1627,29 @@ declare module angular {
totalPendingRequests: number;
}
+ ///////////////////////////////////////////////////////////////////////////
+ // Component
+ // see http://angularjs.blogspot.com.br/2015/11/angularjs-15-beta2-and-14-releases.html
+ // and http://toddmotto.com/exploring-the-angular-1-5-component-method/
+ ///////////////////////////////////////////////////////////////////////////
+
+ interface IComponentOptions {
+ bindings?: Object;
+ controller?: string | Function;
+ controllerAs?: string;
+ isolate?: boolean;
+ template?: string | IComponentTemplateFn;
+ templateUrl?: string | IComponentTemplateFn;
+ transclude?: boolean;
+ restrict?: string;
+ $canActivate?: Function;
+ $routeConfig?: Object;
+ }
+
+ interface IComponentTemplateFn {
+ ( $element?: IAugmentedJQuery, $attrs?: IAttributes ): string;
+ }
+
///////////////////////////////////////////////////////////////////////////
// Directive
// see http://docs.angularjs.org/api/ng.$compileProvider#directive
diff --git a/angulartics/angulartics.d.ts b/angulartics/angulartics.d.ts
index edb9aefb3d..fdcb409ca2 100644
--- a/angulartics/angulartics.d.ts
+++ b/angulartics/angulartics.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Angulartics v0.19.2
+// Type definitions for Angulartics v0.20.2
// Project: http://luisfarzati.github.io/angulartics/
// Definitions by: Steven Fan
// Definitions: https://github.com/borisyankov/DefinitelyTyped
@@ -21,6 +21,7 @@ declare module angulartics {
interface IAnalyticsServiceProvider extends angular.IServiceProvider {
virtualPageviews(value: boolean): void;
+ excludeRoutes(value: string[]): void;
firstPageview(value: boolean): void;
withBase(value: boolean): void;
withAutoBase(value: boolean): void;
diff --git a/api-error-handler/api-error-handler-tests.ts b/api-error-handler/api-error-handler-tests.ts
index 83df91e862..fc92cf9a70 100644
--- a/api-error-handler/api-error-handler-tests.ts
+++ b/api-error-handler/api-error-handler-tests.ts
@@ -1,7 +1,7 @@
///
-import errorHandler = require('api-error-handler');
-import express = require('express');
+import * as errorHandler from 'api-error-handler';
+import * as express from 'express';
var api = express.Router();
api.get('/users/:userid', function (req, res, next) {
@@ -9,3 +9,5 @@ api.get('/users/:userid', function (req, res, next) {
});
api.use(errorHandler());
+
+let res: errorHandler.Response;
diff --git a/api-error-handler/api-error-handler.d.ts b/api-error-handler/api-error-handler.d.ts
index 61a63825d9..90318acd00 100644
--- a/api-error-handler/api-error-handler.d.ts
+++ b/api-error-handler/api-error-handler.d.ts
@@ -6,7 +6,23 @@
///
declare module 'api-error-handler' {
- import express = require('express');
+ import * as express from 'express';
+
+ namespace apiErrorHandler {
+
+ // Body response: the JSON returned by api-error-handler
+ // See https://github.com/expressjs/api-error-handler/blob/1.0.0/index.js
+ interface Response {
+ status: number;
+ stack?: string;
+ message: string;
+
+ // Client errors
+ code?: any;
+ name?: string;
+ type?: any;
+ }
+ }
function apiErrorHandler(options?: any): express.ErrorRequestHandler;
diff --git a/arcgis-js-api/arcgis-js-api.d.ts b/arcgis-js-api/arcgis-js-api.d.ts
index ba5e0fb9f4..88d68cb19f 100644
--- a/arcgis-js-api/arcgis-js-api.d.ts
+++ b/arcgis-js-api/arcgis-js-api.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for ArcGIS API for JavaScript v3.14
+// Type definitions for ArcGIS API for JavaScript v3.15
// Project: http://js.arcgis.com
// Definitions by: Esri
// Definitions: https://github.com/borisyankov/DefinitelyTyped
@@ -146,7 +146,7 @@ declare module "esri" {
/** Class attribute to set for the layer's node. */
className?: string;
/** Lists which levels to draw. */
- displayLevels?: number;
+ displayLevels?: number[];
/** An array of objects that define areas where a tiled map service should not display tiles. */
exclusionAreas?: any[];
/** Id to assign to the layer. */
@@ -157,7 +157,7 @@ declare module "esri" {
opacity?: number;
/** Refresh interval of the layer in minutes. */
refreshInterval?: number;
- /** When true, tile resampling is enabled. */
+ /** The purpose of resampling is to enlarge the image and fill in at the levels where there are no tiles available. */
resampling?: boolean;
/** Number of levels beyond the last level where tiles are available. */
resamplingTolerance?: number;
@@ -215,6 +215,8 @@ declare module "esri" {
opacity?: number;
/** Specify subDomains where tiles are served to speed up tile retrieval (using subDomains gets around the browser limit of the max number of concurrent requests to a domain). */
subDomains?: string[];
+ /** The URL template used to retrieve the tiles. */
+ templateUrl?: string;
/** Define the tile info for the layer including lods, rows, cols, origin and spatial reference. */
tileInfo?: TileInfo;
/** Define additional tile server domains for the layer. */
@@ -307,19 +309,15 @@ declare module "esri" {
export interface ClassedColorSliderOptions {
/** Data map containing renderer information. */
breakInfos: any;
- /** Classification method. */
+ /** Indicates the classification method used to divide the range of values into bins. */
classificationMethod?: string;
- /** Handles identified by their index values within the stops array. */
+ /** Required: Handles identified by their index values within the stops array. */
handles: number[];
- /** Represents histogram data object. */
+ /** Represents the histogram data object. */
histogram?: any;
/** Width of the histogram in pixels. */
histogramWidth?: number;
- /** Absolute maximum value of the slider. */
- maxValue?: number;
- /** Absolute minimum value of the slider. */
- minValue?: number;
- /** Normalization type. */
+ /** Indicates how data values are normalized. */
normalizationType?: string;
/** Handle identified by its index value within the stops array. */
primaryHandle?: number;
@@ -333,61 +331,51 @@ declare module "esri" {
showLabels?: boolean;
/** Displays ticks on slider when true. */
showTicks?: boolean;
- /** Represents statistics data object. */
+ /** Represents the statistics data object. */
statistics?: any;
}
export interface ClassedSizeSliderOptions {
- /** Data map containing renderer information. */
+ /** The data map containing renderer information. */
breakInfos: any;
- /** Classification method. */
+ /** Optional: Indicates the classification method used to divide the range of values into bins. */
classificationMethod?: string;
- /** Handles identified by their index values within the stops array. */
+ /** Required: Handles identified by their index values within the stops array. */
handles: number[];
- /** Represents histogram data object. */
+ /** Represents the histogram data object. */
histogram?: any;
/** Width of histogram in pixels. */
histogramWidth?: number;
- /** Absolute maximum value of the slider. */
- maxValue?: number;
- /** Absolute minimum value of the slider. */
- minValue?: number;
- /** Normalization type. */
+ /** Indicates how data values are normalized. */
normalizationType?: string;
- /** Handle identified by its index value within the stops array. */
+ /** The handle identified by its index value within the stops array. */
primaryHandle?: number;
/** Width of slider ramp in pixels. */
rampWidth?: number;
/** Displays slider handles when true. */
showHandles?: boolean;
- /** Displays the histogram when true. */
+ /** Indicates whether to display the histogram. */
showHistogram?: boolean;
/** Displays labels when true. */
showLabels?: boolean;
/** Displays slider ticks when true. */
showTicks?: boolean;
- /** Represents statistics data object. */
+ /** Optional: Represents the statistics data object. */
statistics?: any;
- /** Indicates whether to use a circle or line-based ClassedSizeSlider. */
- symbol?: any;
}
export interface ColorInfoSliderOptions {
- /** Classification method. */
- classificationMethod?: string;
- /** Data map containing renderer information. */
+ /** The data map containing renderer information. */
colorInfo: any;
/** Handles identified by their index values within the stops array. */
handles: number[];
- /** Represents histogram data object. */
+ /** Optional: Represents the histogram data object. */
histogram?: any;
/** Width of histogram in pixels. */
histogramWidth?: number;
- /** Absolute maximum value of slider. */
+ /** The absolute maximum value of the slider. */
maxValue?: number;
- /** Absolute minimum value of slider. */
+ /** The absolute minimum value of the slider. */
minValue?: number;
- /** Normalization Type. */
- normalizationType?: string;
- /** Handle identified by its index value within the stops array. */
+ /** The handle identified by its index value within the stops array. */
primaryHandle?: number;
/** Width of widget ramp in pixels. */
rampWidth?: number;
@@ -397,13 +385,15 @@ declare module "esri" {
showHistogram?: boolean;
/** Displays labels when set to true. */
showLabels?: boolean;
- /** Displays ticks when set to true. */
+ /** Indicates whether to display percentage labels. */
+ showRatioLabels?: boolean | string;
+ /** Displays tick marks when set to true. */
showTicks?: boolean;
/** Displays transparent background when set to true. */
showTransparentBackground?: boolean;
- /** Represents statistics data object. */
+ /** Represents a statistics data object. */
statistics?: any;
- /** Object containing additional options. */
+ /** Additional options to customize slider. */
zoomOptions?: any;
}
export interface ColorPickerOptions {
@@ -655,8 +645,6 @@ declare module "esri" {
traffic?: boolean;
/** The traffic layer used for real-time traffic. */
trafficLayer?: ArcGISDynamicMapServiceLayer;
- /** An example of when to use this is when working with a proxied ArcGIS Online route service item with stored credentials. */
- travelModesServiceUrl?: string;
}
export interface DissolveBoundariesOptions {
/** The URL to the GPServer used to execute an analysis job. */
@@ -718,7 +706,7 @@ declare module "esri" {
/** Specifies whether users can add new vertices. */
allowAddVertices?: boolean;
/** Specifies whether users can delete vertices. */
- allowDeletevertices?: boolean;
+ allowDeleteVertices?: boolean;
/** Line symbol used to draw the guild lines, displayed when moving vertices. */
ghostLineSymbol?: LineSymbol;
/** Marker symbol used to display the insertable vertices. */
@@ -859,8 +847,14 @@ declare module "esri" {
cellNavigation?: boolean;
/** Object defining the date options specifically for formatting date and time editors. */
dateOptions?: any;
+ /** Allows selection of a table's row via clicking a feature on the map. */
+ enableLayerClick?: boolean;
+ /** Allows selection of a feature on a map via clicking row in the table. */
+ enableLayerSelection?: boolean;
/** The featureLayer that the table is associated with. */
featureLayer: FeatureLayer;
+ /** Reference to the 'Options' drop-down menu. */
+ gridMenu?: any;
/** Columns to hide by default using the dGrid ColumnHider extension. */
hiddenFields?: string[];
/** A reference to the Map. */
@@ -1173,8 +1167,12 @@ declare module "esri" {
map: Map;
/** Indicates whether to remove underscores from the layer title. */
removeUnderscores?: boolean;
+ /** Indicates whether to display a legend for the layer items. */
+ showLegend?: boolean;
+ /** Indicates whether to display the opacity slider. */
+ showOpacitySlider?: boolean;
/** Indicates whether to show sublayers in the list of layers. */
- subLayers?: boolean;
+ showSubLayers?: boolean;
/** The CSS class selector used to uniquely style the widget. */
theme?: string;
/** Indicates whether to show the LayerList widget. */
@@ -1455,19 +1453,19 @@ declare module "esri" {
export interface OpacitySliderOptions {
/** Handles identified by their index values within the stops array. */
handles: number[];
- /** Represents histogram data object. */
+ /** Represents the histogram data object. */
histogram?: any;
/** Width of histogram in pixels. */
histogramWidth?: number;
- /** Absolute maximum value of the slider. */
+ /** The absolute maximum value of the slider. */
maxValue?: number;
- /** Absolute minimum value of the slider. */
+ /** The absolute minimum value of the slider. */
minValue?: number;
- /** Data map containing renderer information. */
+ /** The data map containing renderer information. */
opacityInfo: any;
- /** Handle identified by its index value within the stops array. */
+ /** The handle identified by its index value within the stops array. */
primaryHandle?: number;
- /** Width of slider ramp in pixels. */
+ /** Represents the width of the SVG ramp in pixels. */
rampWidth?: number;
/** Displays slider handles when true. */
showHandles?: boolean;
@@ -1479,9 +1477,9 @@ declare module "esri" {
showTicks?: boolean;
/** Displays the transparent background when true. */
showTransparentBackground?: boolean;
- /** Represents statistics data object. */
+ /** Represents a statistics data object. */
statistics?: any;
- /** Additional options for slider customization. */
+ /** Additional options to customize slider. */
zoomOptions?: any;
}
export interface OpenStreetMapLayerOptions {
@@ -1699,7 +1697,7 @@ declare module "esri" {
minimum: number;
/** Bottom label for the slider. */
minLabel?: string;
- /** **CHECK THIS: Is it num of dec places? - Accuracy of the data (related to rounding). */
+ /** Accuracy of the data (related to rounding). */
precision?: number;
/** Primary handle identified by its index value within the related infos array (color, size, break). */
primaryHandle?: number;
@@ -1737,9 +1735,11 @@ declare module "esri" {
activeSourceIndex?: number | string;
/** Indicates whether to automatically add all the feature layers from the map. */
addLayersFromMap?: boolean;
+ /** This is the default value used as a hint for input text when searching on multiple sources. */
+ allPlaceholder?: string;
/** Indicates whether to automatically navigate to the selected result. */
autoNavigate?: boolean;
- /** Indicates whether to automatically select the first result. */
+ /** Indicates whether to automatically select the first geocoded result (not the first suggestion). */
autoSelect?: boolean;
/** Indicates whether to enable an option to collapse/expand the search into a button. */
enableButtonMode?: boolean;
@@ -1749,6 +1749,8 @@ declare module "esri" {
enableInfoWindow?: boolean;
/** Indicates whether to enable showing a label for the geometry.The default value is false. */
enableLabel?: boolean;
+ /** Indicates whether to display the option to search "All" sources. */
+ enableSearchingAll?: boolean;
/** Indicates whether to enable the menu for selecting different sources. */
enableSourcesMenu?: boolean;
/** Indicates whether or not to enable suggest on the widget. */
@@ -1765,7 +1767,7 @@ declare module "esri" {
infoTemplate?: InfoTemplate;
/** The text symbol for the label graphic. */
labelSymbol?: TextSymbol;
- /** The default distance specified in meters used to reverse geocode, (if not specified by source).The default value is 1500. */
+ /** The default distance specified in meters used to reverse geocode, (if not specified by source). */
locationToAddressDistance?: number;
/** Reference to the map. */
map?: Map;
@@ -1791,23 +1793,19 @@ declare module "esri" {
zoomScale?: number;
}
export interface SizeInfoSliderOptions {
- /** Classification method. */
- classificationMethod?: string;
/** Handles identified by their index values within the stops array. */
handles: number[];
- /** Represents histogram data object. */
+ /** Represents the histogram data object. */
histogram?: any;
/** Width of the histogram in pixels. */
histogramWidth?: number;
- /** Absolute maximum value of the slider. */
+ /** The absolute maximum value of the slider. */
maxValue?: number;
- /** Absolute minimum value of the slider. */
+ /** The absolute minimum value of the slider. */
minValue?: number;
- /** Normalization type. */
- normalizationType?: string;
- /** Handle identified by its index value within the stops array. */
+ /** The handle identified by its index value within the stops array. */
primaryHandle?: number;
- /** Width of slider ramp in pixels. */
+ /** Represents the width of the SVG ramp in pixels. */
rampWidth?: number;
/** Displays slider handles when true. */
showHandles?: boolean;
@@ -1817,11 +1815,11 @@ declare module "esri" {
showLabels?: boolean;
/** Displays slider ticks when true. */
showTicks?: boolean;
- /** Data map containing renderer information. */
+ /** Defines the size of the symbol where feature size is proportional to data value. */
sizeInfo: any;
- /** Represents statistics data object. */
+ /** Represents the statistics data object. */
statistics?: any;
- /** The symbol used with the widget. */
+ /** The SimpleLineSymbol or SimpleMarkerSymbol used with the widget. */
symbol: Symbol;
/** Additional options to customize slider. */
zoomOptions?: any;
@@ -1969,10 +1967,12 @@ declare module "esri" {
sumWithinLayer: FeatureLayer;
}
export interface SymbolStylerOptions {
+ /** Added at v. */
+ portal?: string | any;
/** Self response of Portal used as symbol provider. */
- portalSelf: string;
+ portalSelf?: any;
/** URL to Portal used as symbol provider. */
- portalUrl: string;
+ portalUrl?: string;
}
export interface TemplatePickerOptions {
/** Number of visible columns. */
@@ -2062,6 +2062,18 @@ declare module "esri" {
/** A predefined style. */
style?: string;
}
+ export interface VectorTileLayerOptions {
+ /** Lists which levels of the layer to draw. */
+ displayLevels?: number[];
+ /** Maximum visible scale for the layer. */
+ maxScale?: number;
+ /** Minimum visible scale for the layer. */
+ minScale?: number;
+ /** Initial opacity or transparency of layer. */
+ opacity?: number;
+ /** Visibility of the layer. */
+ visible?: boolean;
+ }
export interface VisibleScaleRangeSliderOptions {
/** Layer used to determine the suggested scale range and set the minScale, maxScale values. */
layer: FeatureLayer;
@@ -2275,7 +2287,7 @@ declare module "esri/IdentityManager" {
/** Dialog box widget used to challenge the user for their credentials when the application attempts to access a secure resource. */
dialog: any;
/**
- * When accessing secure resources via Oauth2 from ArcGIS.com or one of its sub-domains the IdentityManager redirects the user to the ArcGIS.com or Portal for ArcGIS sign-in page.
+ * When accessing secure resources via OAuth2 from ArcGIS.com or one of its sub-domains the IdentityManager redirects the user to the ArcGIS.com or Portal for ArcGIS sign-in page.
* @param handlerFunction When called, the function passed to setOAuthRedirectionHandler receives an object containing the redirection properties.
*/
setOAuthRedirectionHandler(handlerFunction: Function): void;
@@ -2391,7 +2403,7 @@ declare module "esri/IdentityManagerBase" {
/** Return properties of this object in JSON. */
toJson(): any;
/** Fired when a credential is created. */
- on(type: "credential-create", listener: (event: { target: IdentityManagerBase }) => void): esri.Handle;
+ on(type: "credential-create", listener: (event: { credential: Credential; target: IdentityManagerBase }) => void): esri.Handle;
/** Fired when all credentials are destroyed. */
on(type: "credentials-destroy", listener: (event: { target: IdentityManagerBase }) => void): esri.Handle;
on(type: string, listener: (event: any) => void): esri.Handle;
@@ -2675,7 +2687,7 @@ declare module "esri/arcgis/OAuthInfo" {
minTimeUntilExpiration: number;
/** Set to true to show the OAuth sign in page in a popup window. */
popup: boolean;
- /** The relative page URL for the user to be sent to from the OAuth sign in page. */
+ /** Applicable if working with the popup user-login workflow. */
popupCallbackUrl: string;
/** The window features passed to window.open(). */
popupWindowFeatures: string;
@@ -2886,7 +2898,7 @@ declare module "esri/arcgis/Portal" {
/** The date the group was last modified. */
modified: Date;
/** The username of the group's owner. */
- owner: Portal;
+ owner: string;
/** The portal for the group. */
portal: Portal;
/** A short summary that describes the group. */
@@ -3062,7 +3074,7 @@ declare module "esri/arcgis/Portal" {
* Retrieve all the items in the specified folder.
* @param folderId The id of the folder that contains the items to retrieve.
*/
- getItems(folderId: string): any;
+ getItems(folderId?: string): any;
/** Get information about any notifications for the portal user. */
getNotifications(): any;
/** Access the tag objects that have been created by the portal user. */
@@ -3087,6 +3099,11 @@ declare module "esri/arcgis/utils" {
* @param itemId The itemId for a publicly shared ArcGIS.com item.
*/
getItem(itemId: string): any;
+ /**
+ * Can be used with LayerList widget to get the layers list to be passed into the constructor.
+ * @param createMapResponse The object created from the resolved promise returned by createMap().
+ */
+ getLayerList(createMapResponse: any): any[];
/**
* Can be used with esri.dijit.Legend to get the layerInfos list to be passed into the Legend constructor.
* @param createMapResponse Object returned by .createMap() in the .then() callback.
@@ -3422,37 +3439,35 @@ declare module "esri/dijit/ClassedColorSlider" {
/** A widget to assist with managing a renderer used for visualizing features by their class and color. */
class ClassedColorSlider extends RendererSlider {
- /** Required */
+ /** Required: The data map containing renderer information. */
breakInfos: any;
- /** Optional */
+ /** Optional: Indicates the classification method used to divide the range of values into bins. */
classificationMethod: string;
/** Required: Handles identified by their index values within the stops array. */
handles: number[];
- /** Optional: Property representing histogram data object. */
+ /** Optional: Represents the histogram data object. */
histogram: any;
- /** Optional */
+ /** Optional: The width of the histogram in pixels. */
histogramWidth: boolean;
- /** Optional */
+ /** Read Only. */
maxValue: number;
- /** Optional */
+ /** Read Only. */
minValue: number;
- /** Optional */
+ /** Optional: Indicates how data values are normalized. */
normalizationType: string;
- /** Optional: Handle identified by its index value within the stops array. */
+ /** Optional: The handle identified by its index value within the stops array. */
primaryHandle: number;
- /** Optional */
+ /** Optional: Width of the widget ramp in pixels. */
rampWidth: number;
- /** Property for showing handles. */
+ /** Optional: Indicates whether to display handles. */
showHandles: boolean;
- /** Optional: Property for displaying the histogram. */
+ /** Optional: Indicates whether to display the histogram. */
showHistogram: boolean;
- /** Property for showing labels. */
+ /** Optional: Indicates whether to display labels. */
showLabels: boolean;
- /** Property for showing ticks. */
+ /** Optional: Indicates whether to display tick marks. */
showTicks: boolean;
- /** Property for displaying the transparent background. */
- showTransparentBackground: boolean;
- /** Optional: Property representing statistics data object. */
+ /** Optional: Represents the statistics data object. */
statistics: any;
/**
* Creates a new ClassedColorSlider widget.
@@ -3464,7 +3479,7 @@ declare module "esri/dijit/ClassedColorSlider" {
startup(): void;
/** Fires when the ClassedColorSlider widget properties change. */
on(type: "change", listener: (event: { breakInfos: any; target: ClassedColorSlider }) => void): esri.Handle;
- /** Fires when minValue or maxValue of ClassedColorSlider changes. */
+ /** Fires when minValue or maxValue of the ClassedColorSlider changes. */
on(type: "data-value-change", listener: (event: { breakInfos: any; maxValue: number; minValue: number; target: ClassedColorSlider }) => void): esri.Handle;
/** Fires when a ClassedColorSlider handle is moved. */
on(type: "handle-value-change", listener: (event: { breakInfos: any; target: ClassedColorSlider }) => void): esri.Handle;
@@ -3479,35 +3494,35 @@ declare module "esri/dijit/ClassedSizeSlider" {
/** A widget to assist with managing a renderer for visualizing features by varying classes and size. */
class ClassedSizeSlider extends RendererSlider {
- /** Required. */
+ /** Required: The data map containing renderer information. */
breakInfos: any;
- /** Optional. */
+ /** Optional: Indicates the classification method used to divide the range of values into bins. */
classificationMethod: string;
- /** Required. */
+ /** Required: Handles identified by their index values within the stops array. */
handles: number[];
- /** Optional. */
+ /** Optional: Represents the histogram data object. */
histogram: any;
- /** Optional. */
- histogramWidth: boolean;
- /** Optional. */
+ /** Optional: Width of histogram in pixels. */
+ histogramWidth: number;
+ /** Read Only. */
maxValue: number;
- /** Optional. */
+ /** Read Only. */
minValue: number;
- /** Optional. */
+ /** Optional: Indicates how data values are normalized. */
normalizationType: string;
- /** Optional. */
+ /** Optional: Handle identified by its index value within the stops array. */
primaryHandle: number;
- /** Optional */
+ /** Optional: Width of the widget ramp in pixels. */
rampWidth: number;
- /** Property for showing handles. */
+ /** Optional: Indicates whether to display handles. */
showHandles: boolean;
- /** Optional. */
+ /** Optional: Indicates whether to display the histogram. */
showHistogram: boolean;
- /** Property for showing labels. */
+ /** Optional: Indicates whether to display labels. */
showLabels: boolean;
- /** Property for showing ticks. */
+ /** Optional: Indicates whether to display ticks marks. */
showTicks: boolean;
- /** Optional. */
+ /** Optional: Represents the statistics data object. */
statistics: any;
/**
* Creates a new ClassedSizeSlider widget within the provided DOM node srcNodeRef.
@@ -3517,7 +3532,7 @@ declare module "esri/dijit/ClassedSizeSlider" {
constructor(params: esri.ClassedSizeSliderOptions, srcNodeRef: Node | string);
/** Fires when ClassedSizeSlider changes. */
on(type: "change", listener: (event: { breakInfos: any; target: ClassedSizeSlider }) => void): esri.Handle;
- /** Fires when minValue or maxValue changes in ClassedSizeSlider. */
+ /** Fires when minValue or maxValue of the ClassedSizeSlider changes. */
on(type: "data-value-change", listener: (event: { breakInfos: any; maxValue: number; minValue: number; target: ClassedSizeSlider }) => void): esri.Handle;
/** Fires when a ClassedSizeSlider handle is moved. */
on(type: "handle-value-change", listener: (event: { breakInfos: any; target: ClassedSizeSlider }) => void): esri.Handle;
@@ -3532,39 +3547,41 @@ declare module "esri/dijit/ColorInfoSlider" {
/** A widget to assist with managing a renderer for visualizing features based upon colors. */
class ColorInfoSlider extends RendererSlider {
- /** Optional */
+ /** The classification method used for the ColorInfoSlider. */
classificationMethod: string;
- /** Required: Example colorInfo: colorRenderer.renderer.visualVariables[0]. */
+ /** Required: The data map containing renderer information. */
colorInfo: any;
/** Required: Handles identified by their index values within the stops array. */
handles: number[];
- /** Optional: Property representing histogram data object. */
+ /** Optional: Represents the histogram data object. */
histogram: any;
- /** Optional */
- histogramWidth: boolean;
- /** Optional */
+ /** Optional: Width of histogram in pixels. */
+ histogramWidth: number;
+ /** Optional: The absolute maximum value of the slider. */
maxValue: number;
- /** Optional */
+ /** Optional: The absolute minimum value of the slider. */
minValue: number;
/** Optional */
normalizationType: string;
- /** Optional: Handle identified by its index value within the stops array. */
+ /** Optional: The handle identified by its index value within the stops array. */
primaryHandle: number;
- /** Optional */
+ /** Optional: Width of the widget ramp in pixels. */
rampWidth: number;
- /** Property for showing handles. */
+ /** Optional: Indicates whether to display handles. */
showHandles: boolean;
- /** Optional: Property for displaying the histogram. */
+ /** Optional: Indicates whether to display the histogram. */
showHistogram: boolean;
- /** Property for showing labels. */
+ /** Optional: Indicates whether to display handles. */
showLabels: boolean;
- /** Property for showing ticks. */
+ /** Indicates whether to display percentage labels. */
+ showRatioLabels: boolean | string;
+ /** Optional: Indicates whether to display ticks marks. */
showTicks: boolean;
- /** Property for displaying the transparent background. */
+ /** Optional: Indicates whether to display a transparent background. */
showTransparentBackground: boolean;
- /** Optional: Property representing statistics data object. */
+ /** Optional: Represents a statistics data object. */
statistics: any;
- /** Optional */
+ /** Optional: Additional options to customize slider. */
zoomOptions: any;
/**
* Creates a new ColorInfoSlider widget within the provided DOM node srcNodeRef.
@@ -3576,10 +3593,12 @@ declare module "esri/dijit/ColorInfoSlider" {
startup(): void;
/** Fires when ColorInfoSlider changes. */
on(type: "change", listener: (event: { colorInfo: any; target: ColorInfoSlider }) => void): esri.Handle;
- /** Fires when minValue or maxValue of ColorInfoSlider changes. */
+ /** Fires when minValue or maxValue of the ColorInfoSlider changes. */
on(type: "data-value-change", listener: (event: { colorInfo: any; maxValue: number; minValue: number; target: ColorInfoSlider }) => void): esri.Handle;
/** Fires when a ColorInfoSlider handle is moved. */
- on(type: "handle-value-change", listener: (event: { target: ColorInfoSlider }) => void): esri.Handle;
+ on(type: "handle-value-change", listener: (event: { colorInfo: any; target: ColorInfoSlider }) => void): esri.Handle;
+ /** Fires when the zoom state changes. */
+ on(type: "zoomed", listener: (event: { zoomed: boolean; target: ColorInfoSlider }) => void): esri.Handle;
on(type: string, listener: (event: any) => void): esri.Handle;
}
export = ColorInfoSlider;
@@ -3765,6 +3784,8 @@ declare module "esri/dijit/ElevationProfile" {
measureUnits: string;
/** The polyline input geometry used to create the elevation profile. */
profileGeometry: Geometry;
+ /** The title of the resulting elevation profile. */
+ title: string;
/**
* Create a new ElevationProfile widget using the given DOM node.
* @param options See options table below for the full descriptions of the properties needed for this object.
@@ -3781,6 +3802,8 @@ declare module "esri/dijit/ElevationProfile" {
on(type: "clear-profile", listener: (event: { target: ElevationProfile }) => void): esri.Handle;
/** Fires when the widget has fully loaded. */
on(type: "load", listener: (event: { target: ElevationProfile }) => void): esri.Handle;
+ /** Fires when the title of the elevation profile is changed */
+ on(type: "title-changed", listener: (event: { target: ElevationProfile }) => void): esri.Handle;
/** Fires when the elevation profile is updated. */
on(type: "update-profile", listener: (event: { profileResults: any; target: ElevationProfile }) => void): esri.Handle;
on(type: string, listener: (event: any) => void): esri.Handle;
@@ -3793,7 +3816,7 @@ declare module "esri/dijit/FeatureTable" {
import FeatureLayer = require("esri/layers/FeatureLayer");
import Map = require("esri/map");
- /** (Currently in beta) Creates an instance of the FeatureTable widget within the provided DOM node. */
+ /** Creates an instance of the FeatureTable widget within the provided DOM node. */
class FeatureTable {
/** An optional dGrid property. */
allowSelectAll: boolean;
@@ -3805,10 +3828,16 @@ declare module "esri/dijit/FeatureTable" {
dataStore: any;
/** Object defining the date options specifically for formatting date and time editors. */
dateOptions: any;
+ /** Allows selection of a table's row via clicking a feature on the map. */
+ enableLayerClick: boolean;
+ /** Allows selection of a feature on a map via clicking row in the table. */
+ enableLayerSelection: boolean;
/** The featureLayer that the table is associated with. */
featureLayer: FeatureLayer;
/** Reference to the dGrid. */
grid: any;
+ /** Reference to the 'Options' drop-down menu. */
+ gridMenu: any;
/** Optional columns to hide by default using the dGrid ColumnHider extension. */
hiddenFields: string[];
/** A reference to the primary key used by the dataStore to differentiate columns. */
@@ -4004,15 +4033,15 @@ declare module "esri/dijit/HeatmapSlider" {
import esri = require("esri");
import RendererSlider = require("esri/dijit/RendererSlider");
- /** A widget to assist in managing properties of a HeatmapRenderer. */
+ /** A widget to assist in obtaining values for managing and setting properties on a HeatmapRenderer. */
class HeatmapSlider extends RendererSlider {
/** Required. */
colorStops: any;
/** Required. */
handles: number[];
- /** Optional. */
+ /** Optional, absolute maximum value of the slider.NOTE: This value overrides statistics' max property. */
maxValue: number;
- /** Optional. */
+ /** Optional, absolute minimum value of the slider.NOTE: This value overrides statistics' min property. */
minValue: number;
/** Optional */
rampWidth: number;
@@ -4127,6 +4156,7 @@ declare module "esri/dijit/ImageServiceMeasure" {
import SimpleFillSymbol = require("esri/symbols/SimpleFillSymbol");
import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
import SimpleMarkerSymbol = require("esri/symbols/SimpleMarkerSymbol");
+ import ImageServiceMeasureTool = require("esri/toolbars/ImageServiceMeasureTool");
/** This widget allows you to perform measurements on image services. */
class ImageServiceMeasure {
@@ -4136,6 +4166,8 @@ declare module "esri/dijit/ImageServiceMeasure" {
lineSymbol: SimpleLineSymbol;
/** Symbol to be used when drawing a point. */
markerSymbol: SimpleMarkerSymbol;
+ /** The instance of ImageServiceMeasureTool associated with this widget. */
+ measureToolbar: ImageServiceMeasureTool;
/**
* Creates an instance of the ImageServiceMeasure widget.
* @param params An Object containing constructor options.
@@ -4294,8 +4326,12 @@ declare module "esri/dijit/LayerList" {
map: Map;
/** Indicates whether to remove underscores from the layer title */
removeUnderscores: boolean;
+ /** Indicates whether to display a legend for the layer items. */
+ showLegend: boolean;
+ /** Indicates whether to display the opacity slider. */
+ showOpacitySlider: boolean;
/** Indicates whether to show sublayers in the list of layers. */
- sublayers: boolean;
+ showSubLayers: boolean;
/** CSS Class for uniquely styling the widget. */
theme: string;
/** Indicates whether to show the widget. */
@@ -4314,7 +4350,7 @@ declare module "esri/dijit/LayerList" {
startup(): void;
/** Fired when the LayerList widget has fully loaded. */
on(type: "load", listener: (event: { target: LayerList }) => void): esri.Handle;
- /** Fired when refresh is called on the LabelList widget. */
+ /** Fired when refresh() is called on the widget. */
on(type: "refresh", listener: (event: { target: LayerList }) => void): esri.Handle;
/** Fired when the layer is toggled on/off within the widget. */
on(type: "toggle", listener: (event: { layerIndex: number; subLayerIndex: number; visible: boolean; target: LayerList }) => void): esri.Handle;
@@ -4622,33 +4658,35 @@ declare module "esri/dijit/OpacitySlider" {
/** A widget to assist with managing opacity with a renderer. */
class OpacitySlider extends RendererSlider {
- /** Required. */
+ /** Required: Handles identified by their index values within the stops array. */
handles: number[];
- /** Optional. */
+ /** Optional: Represents the histogram data object. */
histogram: any;
- /** Optional: */
- histogramWidth: boolean;
- /** Optional. */
+ /** Optional: Width of histogram in pixels. */
+ histogramWidth: number;
+ /** Optional: The absolute maximum value of the slider. */
maxValue: number;
- /** Optional. */
+ /** Optional: The absolute minimum value of the slider. */
minValue: number;
- /** Required. */
+ /** Required: The data map containing renderer information. */
opacityInfo: any;
- /** Optional */
+ /** Optional: The handle identified by its index value within the stops array. */
+ primaryHandle: number;
+ /** Optional: Represents the width of the SVG ramp in pixels. */
rampWidth: number;
- /** Property for showing handles. */
+ /** Optional: Indicates whether to display slider handles. */
showHandles: boolean;
- /** Optional. */
+ /** Optional: Indicates whether to display the histogram. */
showHistogram: boolean;
- /** Property for showing labels. */
+ /** Optional: Indicates whether to display slider labels. */
showLabels: boolean;
- /** Property for showing ticks. */
+ /** Optional: Indicates whether to display slider tick marks. */
showTicks: boolean;
- /** Property for displaying the transparent background. */
+ /** Optional: Indicates whether to display the transparent background. */
showTransparentBackground: boolean;
- /** Optional. */
+ /** Optional: Represents a statistics data object. */
statistics: any;
- /** Optional. */
+ /** Optional: Additional options to customize slider. */
zoomOptions: any;
/**
* Creates a new OpacitySlider widget within the provided DOM node srcNodeRef.
@@ -4658,10 +4696,12 @@ declare module "esri/dijit/OpacitySlider" {
constructor(params: esri.OpacitySliderOptions, srcNodeRef: Node | string);
/** Fires when OpacitySlider changes. */
on(type: "change", listener: (event: { opacityInfo: any; target: OpacitySlider }) => void): esri.Handle;
- /** Fires when minValue or maxValue of OpacitySlider changes. */
+ /** Fires when minValue or maxValue of the OpacitySlider changes. */
on(type: "data-value-change", listener: (event: { maxValue: number; minValue: number; opacityInfo: any; target: OpacitySlider }) => void): esri.Handle;
/** Fires when an OpacitySlider handle is moved. */
on(type: "handle-value-change", listener: (event: { opacityInfo: any; target: OpacitySlider }) => void): esri.Handle;
+ /** Fires when the zoom state changes. */
+ on(type: "zoomed", listener: (event: { zoomed: boolean; target: OpacitySlider }) => void): esri.Handle;
on(type: string, listener: (event: any) => void): esri.Handle;
}
export = OpacitySlider;
@@ -4985,7 +5025,7 @@ declare module "esri/dijit/RendererSlider" {
showLabels: boolean | string[];
/** Toggle for showing the horizontal line indicators from the center of the handle. */
showTicks: boolean;
- /** Handle positions represented as numbers that fall between minimum and maximum. */
+ /** Required: Handle positions represented as numbers that fall between minimum and maximum. */
values: number[];
/**
* Creates a new RendererSlider widget.
@@ -5044,10 +5084,14 @@ declare module "esri/dijit/Search" {
activeSourceIndex: number;
/** Indicates whether to automatically add all the feature layers from the map. */
addLayersFromMap: boolean;
+ /** This is the default value used as a hint for input text when searching on multiple sources. */
+ allPlaceholder: string;
/** Indicates whether to automatically navigate to the selected result. */
autoNavigate: boolean;
- /** Indicates whether to automatically select and zoom to the first geocoded result. */
+ /** Indicates whether to automatically select the first geocoded result. */
autoSelect: boolean;
+ /** (Read-only), the default source used for the Search widget. */
+ defaultSource: any;
/** Indicates whether to enable an option to collapse/expand the search into a button. */
enableButtonMode: boolean;
/** Show the selected feature on the map using a default symbol determined by the source's geometry type. */
@@ -5056,6 +5100,8 @@ declare module "esri/dijit/Search" {
enableInfoWindow: boolean;
/** Indicates whether to enable showing a label for the geometry. */
enableLabel: boolean;
+ /** Indicates whether to display the option to search "All" sources. */
+ enableSearchingAll: boolean;
/** Indicates whether to enable the menu for selecting different sources. */
enableSourcesMenu: boolean;
/** Enable suggestions for the widget. */
@@ -5150,8 +5196,8 @@ declare module "esri/dijit/Search" {
/** Finalizes the creation of the Search widget. */
startup(): void;
/**
- * Performs a suggest() request on the active Locator.
- * @param value The string value used to suggest() on an active Locator.
+ * Performs a suggest() request on the active Locator or feature layer.
+ * @param value The string value used to suggest() on an active locator or feature layer.
*/
suggest(value?: string): any;
/** Fired when the widget's text input loses focus. */
@@ -5176,39 +5222,44 @@ declare module "esri/dijit/Search" {
declare module "esri/dijit/SizeInfoSlider" {
import esri = require("esri");
import RendererSlider = require("esri/dijit/RendererSlider");
+ import SimpleMarkerSymbol = require("esri/symbols/SimpleMarkerSymbol");
+ import SimpleLineSymbol = require("esri/symbols/SimpleLineSymbol");
+ /** A widget to assist with managing size with a renderer. */
class SizeInfoSlider extends RendererSlider {
- /** Optional. */
+ /** Optional, the classification method used for the SizeInfoSlider. */
classificationMethod: string;
- /** Required. */
+ /** Required: Handles identified by their index values within the stops array. */
handles: number[];
- /** Optional. */
+ /** Optional: Represents the histogram data object. */
histogram: any;
- /** Optional. */
- histogramWidth: boolean;
- /** Optional. */
+ /** Optional: Width of the histogram in pixels. */
+ histogramWidth: number;
+ /** Optional: The absolute maximum value of the slider. */
maxValue: number;
- /** Optional. */
+ /** Optional: The absolute minimum value of the slider. */
minValue: number;
- /** Optional. */
+ /** Optional, indicates how data values are normalized. */
normalizationType: string;
- /** Optional. */
+ /** Optional: The handle identified by its index value within the stops array. */
primaryHandle: number;
- /** Optional */
+ /** Optional: Represents the width of the SVG ramp in pixels. */
rampWidth: number;
- /** Property for showing handles. */
+ /** Optional: Indicates whether to display slider handles. */
showHandles: boolean;
- /** Optional. */
+ /** Optional: Indicates whether to display the histogram. */
showHistogram: boolean;
- /** Property for showing labels. */
+ /** Optional: Indicates whether to display the slider labels. */
showLabels: boolean;
- /** Property for showing ticks. */
+ /** Optional: Indicates whether to display the slider tick marks. */
showTicks: boolean;
- /** Required. */
+ /** Required: Defines the size of the symbol where feature size is proportional to data value. */
sizeInfo: any;
- /** Optional. */
+ /** Optional: Represents the statistics data object. */
statistics: any;
- /** Optional. */
+ /** Required: The SimpleLineSymbol or SimpleMarkerSymbol used with the widget. */
+ symbol: SimpleMarkerSymbol | SimpleLineSymbol;
+ /** Optional: Additional options to customize slider. */
zoomOptions: any;
/**
* Creates a new SizeInfoSlider widget.
@@ -5220,10 +5271,12 @@ declare module "esri/dijit/SizeInfoSlider" {
startup(): void;
/** Fires when the SizeInfoSlider properties change. */
on(type: "change", listener: (event: { sizeInfo: any; target: SizeInfoSlider }) => void): esri.Handle;
- /** Fires when minValue or maxValue of SizeInfoSlider change. */
+ /** Fires when minValue or maxValue of the SizeInfoSlider changes. */
on(type: "data-value-change", listener: (event: { maxValue: number; minValue: number; sizeInfo: any; target: SizeInfoSlider }) => void): esri.Handle;
/** Fires when a SizeInfoSlider handle is moved. */
on(type: "handle-value-change", listener: (event: { sizeInfo: any; target: SizeInfoSlider }) => void): esri.Handle;
+ /** Fires when the zoom state changes. */
+ on(type: "zoomed", listener: (event: { zoomed: boolean; target: SizeInfoSlider }) => void): esri.Handle;
on(type: string, listener: (event: any) => void): esri.Handle;
}
export = SizeInfoSlider;
@@ -6730,7 +6783,7 @@ declare module "esri/dijit/geoenrichment/DataBrowser" {
export = DataBrowser;
}
-declare module "esri/dijit/geoenrichment/InfoGraphic" {
+declare module "esri/dijit/geoenrichment/Infographic" {
import esri = require("esri");
import GeometryStudyArea = require("esri/tasks/geoenrichment/GeometryStudyArea");
import RingBuffer = require("esri/tasks/geoenrichment/RingBuffer");
@@ -7451,13 +7504,13 @@ declare module "esri/geometry/geometryEngine" {
import SpatialReference = require("esri/SpatialReference");
import Point = require("esri/geometry/Point");
- /** (Currently in beta) A client-side geometry engine. */
+ /** A client-side geometry engine. */
var geometryEngine: {
/**
* Creates planar (or Euclidean) buffer polygons at a specified distance around the input geometries.
* @param geometry The buffer input geometry.
* @param distance The specified distance(s) for buffering.
- * @param unit Unit for the distance(s).
+ * @param unit Measurement unit for the distance(s).
* @param unionResults Whether the output geometries should be unioned into a single polygon.
*/
buffer(geometry: Geometry | Geometry[], distance: number | number[], unit: string | number, unionResults?: boolean): Polygon | Polygon[];
@@ -7495,7 +7548,7 @@ declare module "esri/geometry/geometryEngine" {
* Densify geometries by plotting points between existing vertices.
* @param geometry The geometry to be densified.
* @param maxSegmentLength The maximum segment length allowed.
- * @param maxSegmentLengthUnit Unit for the maximum segment length.
+ * @param maxSegmentLengthUnit Measurement unit for maxSegmentLength.
*/
densify(geometry: Geometry, maxSegmentLength: number, maxSegmentLengthUnit: string | number): Geometry;
/**
@@ -7514,7 +7567,7 @@ declare module "esri/geometry/geometryEngine" {
* Calculates the shortest planar distance between two geometries.
* @param geometry1 First input geometry.
* @param geometry2 Second input geometry.
- * @param distanceUnit Units of the return value.
+ * @param distanceUnit Measurement unit of the return value.
*/
distance(geometry1: Geometry, geometry2: Geometry, distanceUnit: string | number): number;
/**
@@ -7545,27 +7598,34 @@ declare module "esri/geometry/geometryEngine" {
* @param geometry The geometry to be generalized.
* @param maxDeviation The maximum allowed deviation from the generalized geometry to the original geometry.
* @param removeDegenerateParts When true, the degenerate parts of the geometry will be removed from the output (may be undesired for drawing).
- * @param maxDeviationUnit A unit for maximum deviation.
+ * @param maxDeviationUnit Measurement unit for maxDeviation.
*/
generalize(geometry: Geometry, maxDeviation: number, removeDegenerateParts?: boolean, maxDeviationUnit?: string | number): Geometry;
/**
* Calculates the area of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
geodesicArea(geometry: Geometry, unit: string | number): number;
/**
* Creates geodesic buffer polygons at a specified distance around the input geometries.
* @param geometry The buffer input geometry.
* @param distance The specified distance(s) for buffering.
- * @param unit Unit for the distance(s).
+ * @param unit Measurement unit for the distance(s).
* @param unionResults Whether the output geometries should be unioned into a single polygon.
*/
geodesicBuffer(geometry: Geometry | Geometry[], distance: number | number[], unit: string | number, unionResults?: boolean): Polygon | Polygon[];
+ /**
+ * Returns a geodesically densified version of the input geometry.
+ * @param geometry A polyline or polygon geometry to densify.
+ * @param maxSegmentLength The maximum segment length allowed.
+ * @param maxSegmentLengthUnit Measurement unit for maxSegmentLength.
+ */
+ geodesicDensify(geometry: Polyline | Polygon, maxSegmentLength: number, maxSegmentLengthUnit?: number): Geometry;
/**
* Calculates the length of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
geodesicLength(geometry: Geometry, unit: string | number): number;
/**
@@ -7609,7 +7669,7 @@ declare module "esri/geometry/geometryEngine" {
* Creates offset version of the input geometry.
* @param geometry The geometries to offset.
* @param offsetDistance The offset distance for the Geometries.
- * @param offsetUnit Unit for the offset.
+ * @param offsetUnit Measurement unit for the offset.
* @param joinType The join type.
* @param bevelRatio Applicable to MITER, bevelRatio is multiplied by the offset distance and the result determines how far a mitered offset intersection can be located before it is beveled.
* @param flattenError Applicable to ROUND, flattenError determines the maximum distance of the resulting segments compared to the true circular arc.
@@ -7624,13 +7684,13 @@ declare module "esri/geometry/geometryEngine" {
/**
* Calculates the area of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
planarArea(geometry: Geometry, unit: string | number): number;
/**
* Calculates the length of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
planarLength(geometry: Geometry, unit: string | number): number;
/**
@@ -7685,14 +7745,15 @@ declare module "esri/geometry/geometryEngineAsync" {
import Polyline = require("esri/geometry/Polyline");
import SpatialReference = require("esri/SpatialReference");
import Point = require("esri/geometry/Point");
+ import Polygon = require("esri/geometry/Polygon");
- /** (Currently in beta) A client-side asynchronous geometry engine. */
+ /** A client-side asynchronous geometry engine. */
var geometryEngineAsync: {
/**
* Creates planar (or Euclidean) buffer polygons at a specified distance around the input geometries.
* @param geometry The buffer input geometry.
* @param distance The specified distance(s) for buffering.
- * @param unit Unit for the distance(s).
+ * @param unit Measurement unit for the distance(s).
* @param unionResults Whether the output geometries should be unioned into a single polygon.
*/
buffer(geometry: Geometry | Geometry[], distance: number | number[], unit: string | number, unionResults?: boolean): any;
@@ -7730,7 +7791,7 @@ declare module "esri/geometry/geometryEngineAsync" {
* Densify geometries by plotting points between existing vertices.
* @param geometry The geometry to be densified.
* @param maxSegmentLength The maximum segment length allowed.
- * @param maxSegmentLengthUnit Defaults to the units of the input geometries.
+ * @param maxSegmentLengthUnit Measurement unit for maxSegmentLength.
*/
densify(geometry: Geometry, maxSegmentLength: number, maxSegmentLengthUnit: string | number): any;
/**
@@ -7749,7 +7810,7 @@ declare module "esri/geometry/geometryEngineAsync" {
* Calculates the shortest planar distance between two geometries.
* @param geometry1 First input geometry.
* @param geometry2 Second input geometry.
- * @param distanceUnit Units of the return value.
+ * @param distanceUnit Measurement unit of the return value.
*/
distance(geometry1: Geometry, geometry2: Geometry, distanceUnit: string | number): any;
/**
@@ -7780,27 +7841,34 @@ declare module "esri/geometry/geometryEngineAsync" {
* @param geometry The geometry to be generalized.
* @param maxDeviation The maximum allowed deviation from the generalized geometry to the original geometry.
* @param removeDegenerateParts When true, the degenerate parts of the geometry will be removed from the output (may be undesired for drawing).
- * @param maxDeviationUnit Defaults to the units of the input geometries.
+ * @param maxDeviationUnit Measurement unit for maxDeviation.
*/
generalize(geometry: Geometry, maxDeviation: number, removeDegenerateParts?: boolean, maxDeviationUnit?: string | number): any;
/**
* Calculates the area of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
geodesicArea(geometry: Geometry, unit: string | number): any;
/**
* Creates geodesic buffer polygons at a specified distance around the input geometries.
* @param geometry The buffer input geometry.
* @param distance The specified distance(s) for buffering.
- * @param unit Unit for the distance(s).
+ * @param unit Measurement unit for the distance(s).
* @param unionResults Whether the output geometries should be unioned into a single polygon.
*/
geodesicBuffer(geometry: Geometry | Geometry[], distance: number | number[], unit: string | number, unionResults?: boolean): any;
+ /**
+ * Resolves to a geodesically densified version of the input geometry.
+ * @param geometry A polyline or polygon geometry to densify.
+ * @param maxSegmentLength The maximum segment length allowed.
+ * @param maxSegmentLengthUnit Measurement unit for maxSegmentLength.
+ */
+ geodesicDensify(geometry: Polyline | Polygon, maxSegmentLength: number, maxSegmentLengthUnit?: number): any;
/**
* Calculates the length of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
geodesicLength(geometry: Geometry, unit: string | number): any;
/**
@@ -7844,7 +7912,7 @@ declare module "esri/geometry/geometryEngineAsync" {
* Creates offset version of the input geometry.
* @param geometry The geometries to offset.
* @param offsetDistance The offset distance for the Geometries.
- * @param offsetUnit Unit for the offset.
+ * @param offsetUnit Measurement unit for the offset.
* @param joinType The join type.
* @param bevelRatio Applicable to MITER, bevelRatio is multiplied by the offset distance and the result determines how far a mitered offset intersection can be located before it is beveled.
* @param flattenError Applicable to ROUND, flattenError determines the maximum distance of the resulting segments compared to the true circular arc.
@@ -7859,13 +7927,13 @@ declare module "esri/geometry/geometryEngineAsync" {
/**
* Calculates the area of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
planarArea(geometry: Geometry, unit: string | number): any;
/**
* Calculates the length of the input geometry.
* @param geometry The input geometry.
- * @param unit Units of the return value.
+ * @param unit Measurement unit of the return value.
*/
planarLength(geometry: Geometry, unit: string | number): any;
/**
@@ -9219,7 +9287,7 @@ declare module "esri/layers/FeatureLayer" {
*/
setAutoGeneralize(enable: boolean): FeatureLayer;
/**
- * Set's the definition expression for the FeatureLayer.
+ * Sets the definition expression for the FeatureLayer.
* @param expression The definition expression to apply.
*/
setDefinitionExpression(expression: string): FeatureLayer;
@@ -9275,7 +9343,7 @@ declare module "esri/layers/FeatureLayer" {
*/
setScaleRange(minScale: number, maxScale: number): void;
/**
- * Set's the selection symbol for the feature layer.
+ * Sets the selection symbol for the feature layer.
* @param symbol Symbol for the current selection.
*/
setSelectionSymbol(symbol: Symbol): FeatureLayer;
@@ -9285,7 +9353,7 @@ declare module "esri/layers/FeatureLayer" {
*/
setShowLabels(showLabels: boolean): void;
/**
- * Set's the time definition for the feature layer.
+ * Sets the time definition for the feature layer.
* @param definition The new time extent used to filter the layer.
*/
setTimeDefinition(definition: TimeExtent): FeatureLayer;
@@ -9458,6 +9526,8 @@ declare module "esri/layers/GeoRSSLayer" {
items: Graphic[];
/** The name of the layer. */
name: string;
+ /** The publicly accessible URL to a GeoRSS file. */
+ url: string;
/**
* Creates a new GeoRSSLayer object.
* @param url URL to the GeoRSS resource.
@@ -9805,10 +9875,14 @@ declare module "esri/layers/LOD" {
declare module "esri/layers/LabelClass" {
import TextSymbol = require("esri/symbols/TextSymbol");
- /** LabelClass defines the styles of labels for ArcGISDynamicMapServiceLayer. */
+ /** Use label classes to restrict labels to certain features or to specify different label fields, symbols, scale ranges, label priorities, and sets of label placement options for different groups of labels. */
class LabelClass {
+ /** An array of objects representing field information to label. */
+ fieldInfos: any[];
/** Adjusts the formatting of labels. */
labelExpression: string;
+ /** Use this when working with FeatureLayer layer types. */
+ labelExpressionInfo: any;
/** The position of the label. */
labelPlacement: string;
/** The maximum scale to show labels. */
@@ -9824,7 +9898,7 @@ declare module "esri/layers/LabelClass" {
/** A where clause determining which features are labeled. */
where: string;
/**
- * Create a LabelClass, in order to be added to layerDrawingOption.labelingInfo.
+ * Creates a label class, used for formatting parameters, symbols, date, etc.
* @param json Various options to configure this LabelClass.
*/
constructor(json?: Object);
@@ -9840,7 +9914,7 @@ declare module "esri/layers/LabelLayer" {
import UniqueValueRenderer = require("esri/renderers/UniqueValueRenderer");
import ClassBreaksRenderer = require("esri/renderers/ClassBreaksRenderer");
- /** The LabelLayer inherits from the graphics layer and can be used to display texts and symbols on map. */
+ /** NOTE: Deprecated as of version 3.14, read below for additional information on the suggested method of labeling. */
class LabelLayer extends GraphicsLayer {
/**
* Creates a new Label layer.
@@ -10248,6 +10322,8 @@ declare module "esri/layers/RasterLayer" {
/** The RasterLayer is used to display image services. */
class RasterLayer extends Layer {
+ /** A function that takes a pixelData object as input, processes it, and returns it. */
+ pixelFilter: Function;
/**
* Creates a new RasterLayer object.
* @param url URL to the ArcGIS Server REST resource that represents a raster layer service.
@@ -10262,6 +10338,11 @@ declare module "esri/layers/RasterLayer" {
* @param doNotRefresh Use true to avoid refreshing the layer; false to refresh it.
*/
setImageFormat(imageFormat: string, doNotRefresh?: boolean): void;
+ /**
+ * Sets a pixelFilter on the layer.
+ * @param pixelFilter The function defining the PixelFilter to set on the layer.
+ */
+ setPixelFilter(pixelFilter: Function): void;
/**
* Determines if the layer will update its content based on the map's current time extent.
* @param use Use true to update the layer's content based on the map's current time extent.
@@ -10495,16 +10576,55 @@ declare module "esri/layers/TimeInfo" {
}
declare module "esri/layers/TimeReference" {
- /** TimeReference contains information about how the time was measured. */
+ /** TimeReference contains read-only information about how the time was captured when the data was created. */
class TimeReference {
- /** Indicates whether the time reference respects daylight savings time. */
+ /** A read-only property that indicates whether the time reference takes into account daylight savings time. */
respectsDaylightSaving: boolean;
- /** The time zone information associated with the time reference. */
+ /** The time zone in which the data was captured. */
timeZone: string;
}
export = TimeReference;
}
+declare module "esri/layers/VectorTileLayer" {
+ import esri = require("esri");
+ import Layer = require("esri/layers/layer");
+ import Extent = require("esri/geometry/Extent");
+ import SpatialReference = require("esri/SpatialReference");
+ import TileInfo = require("esri/layers/TileInfo");
+
+ /** A VectorTileLayer accesses cached tiles of data and renders it in vector format. */
+ class VectorTileLayer extends Layer {
+ /** The full extent of the layer. */
+ fullExtent: Extent;
+ /** The initial extent of the layer. */
+ initialExtent: Extent;
+ /** The spatial reference of the layer. */
+ spatialReference: SpatialReference;
+ /** The style object of the service with fully qualified URLs for glyphs and sprite. */
+ style: any;
+ /** Contains information about the tiling scheme for the layer. */
+ tileInfo: TileInfo;
+ /** The URL to the vector tile service or style JSON that will be used to draw the layer. */
+ url: string;
+ /**
+ * Create a new VectorTileLayer object.
+ * @param url The URL to the vector tile service or style JSON that will be used to draw the layer.
+ * @param options Optional parameters.
+ */
+ constructor(url: string | any, options?: esri.VectorTileLayerOptions);
+ /**
+ * Changes the style properties used to render the layers.
+ * @param styleUrl A url to a JSON file containing the stylesheet information to render the layer.
+ */
+ setStyle(styleUrl: string | any): void;
+ /** Fires when the style is changed on the layer. */
+ on(type: "style-change", listener: (event: { style: any; target: VectorTileLayer }) => void): esri.Handle;
+ on(type: string, listener: (event: any) => void): esri.Handle;
+ }
+ export = VectorTileLayer;
+}
+
declare module "esri/layers/WFSLayer" {
import esri = require("esri");
import Field = require("esri/layers/Field");
@@ -10513,7 +10633,7 @@ declare module "esri/layers/WFSLayer" {
import InfoTemplate = require("esri/InfoTemplate");
import Renderer = require("esri/renderers/Renderer");
- /** (Currently in beta)A layer for OGC Web Feature Services (WFS). */
+ /** (Currently in beta) A layer for OGC Web Feature Services (WFS). */
class WFSLayer {
/** An array of fields in the layer. */
fields: Field[];
@@ -11262,6 +11382,8 @@ declare module "esri/opsdashboard/DataSourceProxy" {
id: string;
/** Read-only: Indicates if the last query failed and the data source is in a broken state. */
isBroken: boolean;
+ /** Read-only: The mapWidgetId of the data source. */
+ mapWidgetId: string;
/** Read-only: The name of the data source. */
name: string;
/** Read-only: The name of the object id field. */
@@ -11279,6 +11401,8 @@ declare module "esri/opsdashboard/DataSourceProxy" {
* @param query The query object to apply.
*/
executeQuery(query: Query): any;
+ /** An object that contains service level metadata about whether or not the layer supports queries using statistics, order by fields, DISTINCT, pagination, query with distance, and returning queries with extents. */
+ getAdvancedQueryCapabilities(): any;
/** Retrieve the associated data source that supports selection. */
getAssociatedSelectionDataSourceProxy(): any;
/** Get the associated popupInfo for the data source if any available. */
@@ -11334,8 +11458,8 @@ declare module "esri/opsdashboard/ExtensionBase" {
static POLYLINE: any;
/** Read-only: Indicates if the host application is the Windows Operations Dashboard. */
isNative: boolean;
- /** Get the collection of data sources from the host application. */
- getDataSourceProxies(): any;
+ /** Read-only: The URL to the ArcGIS.com site or in-house portal that you are currently signed in to. */
+ portalUrl: string;
/** Get the collection of data sources from the host application. */
getDataSourceProxies(): any;
/** Get the data source corresponding to the data source id from the host application. */
@@ -11386,6 +11510,8 @@ declare module "esri/opsdashboard/ExtensionConfigurationBase" {
/** ExtensionConfigurationBase is a base class used by all the extension configuration proxies. */
class ExtensionConfigurationBase extends ExtensionBase {
+ /** The object that will store the Widget/MapTool/FeatureAction configuration. */
+ config: any;
/** Indicates that the configuration is ready to be persisted or not. */
readyToPersistConfig: boolean;
}
@@ -11467,10 +11593,10 @@ declare module "esri/opsdashboard/GraphicsLayerProxy" {
*/
addOrUpdateGraphic(graphic: Graphic): void;
/**
- * Update a graphic in the host graphics layer with a new version.
- * @param graphic The graphic to update in the host graphics layer.
+ * Update graphics in the host graphics layer with a new version.
+ * @param graphics The graphics to update in the host graphics layer.
*/
- addOrUpdateGraphics(graphic: Graphic): void;
+ addOrUpdateGraphics(graphics: Graphic[]): void;
/** Removes all the graphics from the host graphics layer. */
clear(): void;
/**
@@ -11625,8 +11751,6 @@ declare module "esri/opsdashboard/WidgetConfigurationProxy" {
/** WidgetConfigurationProxy is a class used to provide the configuration user experience for an operations dashboard extension widget. */
class WidgetConfigurationProxy extends ExtensionConfigurationBase {
- /** The object that will store the widget configuration. */
- config: any;
/**
* Called by the host application when the user has changed the selected data source in the data source selector.
* @param dataSourceProxy The selected data source.
@@ -11639,7 +11763,7 @@ declare module "esri/opsdashboard/WidgetConfigurationProxy" {
*/
getDataSourceConfig(dataSourceProxyOrDataSourceId: DataSourceProxy | string): any;
/**
- * Called by the host application when the user has changed the slected map widget in the map widget selector.
+ * Called by the host application when the user has changed the selected map widget in the map widget selector.
* @param mapWidgetProxy The selected map widget.
*/
mapWidgetSelectionChanged(mapWidgetProxy: MapWidgetProxy): void;
@@ -11897,7 +12021,7 @@ declare module "esri/renderers/BlendRenderer" {
import esri = require("esri");
import Symbol = require("esri/symbols/Symbol");
- /** (Currently in beta) BlendRenderer allows you to easily identify a predominant attribute among two or more competing attributes in a feature. */
+ /** (Currently in beta) BlendRenderer allows you to easily identify the predominant attribute among two or more competing attributes of a feature and visualizes the strength of that predominance using blended colors. */
class BlendRenderer {
/** This determines how colors are blended together. */
blendMode: string;
@@ -12129,7 +12253,7 @@ declare module "esri/renderers/Renderer" {
import Color = require("esri/Color");
import Symbol = require("esri/symbols/Symbol");
- /** The base class for the renderers - SimpleRenderer, ClassBreaksRenderer, UniqueValueRenderer, DotDensityRenderer, ScaleDependentRenderer, and TemporalRenderer used with a GraphicsLayer and FeatureLayer. */
+ /** The base class for the renderers - SimpleRenderer, ClassBreaksRenderer, UniqueValueRenderer, DotDensityRenderer, ScaleDependentRenderer, TemporalRenderer, HeatmapRenderer, and VectorFieldRenderer used with a GraphicsLayer and FeatureLayer. */
class Renderer {
/** An object defining a color ramp used to render the layer. */
colorInfo: any;
@@ -12188,11 +12312,14 @@ declare module "esri/renderers/Renderer" {
* @param info An object with the same properties as rotationInfo.
*/
setRotationInfo(info: any): Renderer;
- /** Set size info of the renderer to modify the symbol size based on data value. */
- setSizeInfo(): Renderer;
+ /**
+ * Set size info of the renderer to modify the symbol size based on data value.
+ * @param info An object with the same properties as sizeInfo.
+ */
+ setSizeInfo(info: any): Renderer;
/**
* Sets the renderer with the specified visualVariables.
- * @param visualParams The specified visualVariables.
+ * @param visualParams The specified visualVariables.
*/
setVisualVariables(visualParams: any[]): void;
/** Converts object to its ArcGIS Server JSON representation. */
@@ -12503,6 +12630,11 @@ declare module "esri/renderers/smartMapping" {
* @param params See the object specifications table below for the structure of the params object.
*/
createClassedSizeRenderer(params: any): any;
+ /**
+ * Creates an object defining a color ramp used to render a layer.
+ * @param params See the object specifications table below for the structure of the params object.
+ */
+ createColorInfo(params: any): any;
/**
* Creates a renderer for visualizing features using colors.
* @param params See the object specifications table below for the structure of the params object.
@@ -12518,6 +12650,16 @@ declare module "esri/renderers/smartMapping" {
* @param params See the object specifications table below for the structure of the params object.
*/
createOpacityInfo(params: any): any;
+ /**
+ * Creates a renderer for identifying features by their color.
+ * @param params See the Object Specifications table below for the structure of the params object.
+ */
+ createPredominanceRenderer(params: any): any;
+ /**
+ * Defines the size of the symbol where feature size is proportional to data value.
+ * @param params See the object specifications table below for the structure of the params object.
+ */
+ createSizeInfo(params: any): any;
/**
* Creates a renderer for visualizing features by varying their size based on data.
* @param params See the object specifications table below for the structure of the params object.
@@ -13113,6 +13255,10 @@ declare module "esri/symbols/TextSymbol" {
decoration: string;
/** Font for displaying text. */
font: Font;
+ /** The halo color used for the text symbol.Known limitations:IE 9 and below not supported.Sub-pixel halo (i.e. */
+ haloColor: Color;
+ /** The size (in pixel units) used if setting a halo on a text symbol.Known limitations:IE 9 and below not supported.Sub-pixel halo (i.e. */
+ haloSize: number;
/** Horizontal alignment of the text with respect to the graphic. */
horizontalAlignment: string;
/** Determines whether to adjust the spacing between characters in the text string. */
@@ -13164,6 +13310,16 @@ declare module "esri/symbols/TextSymbol" {
* @param font Text font.
*/
setFont(font: Font): TextSymbol;
+ /**
+ * Sets a halo color for the text symbol.NOTE: Known limitations when working with the text symbol halo:IE 9 and below not supported.Sub-pixel halo (i.e.
+ * @param color The color used for the text symbol halo.
+ */
+ setHaloColor(color: Color): TextSymbol;
+ /**
+ * Sets the size of the halo (in pixels) used for the text symbol.NOTE: Known limitations when working with the text symbol halo:IE 9 and below not supported.Sub-pixel halo (i.e.
+ * @param size The size (in pixels) of the text symbol halo.
+ */
+ setHaloSize(size: number): TextSymbol;
/**
* Updates the horizontal alignment of the text symbol.
* @param alignment Horizontal alignment of the text with respect to the graphic.
@@ -13658,6 +13814,8 @@ declare module "esri/tasks/FindParameters" {
contains: boolean;
/** An array of DynamicLayerInfos used to change the layer ordering or redefine the map. */
dynamicLayerInfos: DynamicLayerInfo[];
+ /** Specifies the number of decimal places for the geometries returned by the query operation. */
+ geometryPrecision: number;
/** Array of layer definition expressions that allows you to filter the features of individual layers. */
layerDefinitions: string[];
/** The layers to perform the find operation on. */
@@ -13731,26 +13889,26 @@ declare module "esri/tasks/FindTask" {
declare module "esri/tasks/GPMessage" {
/** Represents a message generated during the execution of a geoprocessing task. */
class GPMessage {
- /** esriJobMessageTypeAbort */
+ /** esriJobMessageTypeAbort - Indicates the job has aborted. */
static TYPE_ABORT: any;
- /** esriGPMessageTypeEmpty */
+ /** esriJobMessageTypeEmpty - Indicates the task returned an empty result. */
static TYPE_EMPTY: any;
- /** esriGPMessageTypeError */
+ /** esriJobMessageTypeError - Indicates an error was returned during the execution of the job. */
static TYPE_ERROR: any;
- /** esriGPMessageTypeInformative */
+ /** esriJobMessageTypeInformative - Indicates the message is informative. */
static TYPE_INFORMATIVE: any;
- /** TBA */
+ /** esriJobMessageTypeProcessDefinition */
static TYPE_PROCESS_DEFINITION: any;
- /** TBA */
+ /** esriJobMessageTypeProcessStart - Indicates the GP process has started. */
static TYPE_PROCESS_START: any;
- /** TBA */
+ /** esriJobMessageTypeProcessStop - Indicates the GP process has stopped. */
static TYPE_PROCESS_STOP: any;
- /** esriGPMessageTypeWarning */
+ /** esriJobMessageTypeWarning - Indicates the message is a warning. */
static TYPE_WARNING: any;
/** A description of the geoprocessing message. */
description: string;
/** The geoprocessing message type. */
- type: number;
+ type: string;
}
export = GPMessage;
}
@@ -14127,7 +14285,7 @@ declare module "esri/tasks/Geoprocessor" {
* @param callback The function to call when the method has completed.
* @param errback An error object is returned if an error occurs on the Server during task execution.
*/
- checkJobStatus(jobId: string, callback?: Function, errback?: Function): void;
+ checkJobStatus(jobId: string, callback?: Function, errback?: Function): any;
/**
* Sends a request to the server to execute a synchronous GP task.
* @param inputParameters The inputParameters argument specifies the input parameters accepted by the task and their corresponding values.
@@ -14187,7 +14345,7 @@ declare module "esri/tasks/Geoprocessor" {
* @param statusCallback Checks the current status of the job.
* @param errback An error object is returned if an error occurs on the Server during task execution.
*/
- submitJob(inputParameters: any, callback?: Function, statusCallback?: Function, errback?: Function): void;
+ submitJob(inputParameters: any, callback?: Function, statusCallback?: Function, errback?: Function): any;
/** Fires when an error occurs when executing the task. */
on(type: "error", listener: (event: { error: Error; target: Geoprocessor }) => void): esri.Handle;
/** Fires when a synchronous GP task is completed. */
@@ -14231,6 +14389,8 @@ declare module "esri/tasks/IdentifyParameters" {
dynamicLayerInfos: DynamicLayerInfo[];
/** The geometry used to select features during Identify. */
geometry: Geometry;
+ /** Specifies the number of decimal places for the geometries returned by the query operation. */
+ geometryPrecision: number;
/** Height of the map currently being viewed in pixels. */
height: number;
/** Array of layer definition expressions that allows you to filter the features of individual layers. */
@@ -14403,6 +14563,28 @@ declare module "esri/tasks/ImageServiceMeasureParameters" {
/** Defines parameters for the ImageServiceMeasureTask. */
class ImageServiceMeasureParameters {
+ /** Calculates the area and perimeter of given geometry. */
+ static OPERATION_AREA_PERIMETER: any;
+ /** Calculates the area and perimeter of the given geometry using the DEM defined by the service to refine the calculation. */
+ static OPERATION_AREA_PERIMETER_3D: any;
+ /** Calculates the height of a structure by measuring from the base of the structure to the top of the structure. */
+ static OPERATION_BASE_TOP: any;
+ /** Calculates the height of a structure by measuring from the base of the structure to the top of the structure's shadow on the ground. */
+ static OPERATION_BASE_TOP_SHADOW: any;
+ /** Calculates the centroid of a given area. */
+ static OPERATION_CENTROID: any;
+ /** Calculates the centroid of a given area, using the DEM defined by the service to refine the calculation. */
+ static OPERATION_CENTROID_3D: any;
+ /** Calculates the distance and azimuth angle between two points. */
+ static OPERATION_DISTANCE_ANGLE: any;
+ /** Calculates the distance and azimuth angle between two points using the DEM defined by the service to refine the calculation. */
+ static OPERATION_DISTANCE_ANGLE_3D: any;
+ /** Measures the location of a given point. */
+ static OPERATION_POINT: any;
+ /** Measures the location of a given point, using the DEM defined by the service to refine the calculation. */
+ static OPERATION_POINT_3D: any;
+ /** Calculates the height of a structure by measuring from the top of the structure to the top of the structure's shadow on the ground. */
+ static OPERATION_TOP_TOP_SHADOW: any;
/** The angular unit in which directions of line segments will be calculated. */
angularUnit: string;
/** The area unit in which areas of polygons will be calculated. */
@@ -14613,6 +14795,8 @@ declare module "esri/tasks/ParameterValue" {
class ParameterValue {
/** Specifies the type of data for the parameter. */
dataType: string;
+ /** The name of the output parameter as defined by the geoprocessing task in the Services Directory. */
+ paramName: string;
/** The value of the parameter. */
value: any;
}
@@ -14707,7 +14891,7 @@ declare module "esri/tasks/ProjectParameters" {
geometries: Geometry[];
/** The spatial reference to which you are projecting the geometries. */
outSR: SpatialReference;
- /** The well-known id {wkid:number} or well-known text {wkt:string} or for the datum transfomation to be applied on the projected geometries. */
+ /** The well-known id {wkid:number} or well-known text {wkt:string} or for the datum transformation to be applied on the projected geometries. */
transformation: any;
/** Indicates whether to transform forward or not. */
transformForward: boolean;
@@ -15331,6 +15515,8 @@ declare module "esri/tasks/datareviewer/BatchValidationTask" {
executeJob(parameters: BatchValidationParameters): any;
/** Retrieves all adhoc jobs from the server and returns an array of BatchValidationJob with the information. */
getAdhocJobsList(): any;
+ /** Returns an array of custom field names defined in a Reviewer workspace. */
+ getCustomFieldNames(): any;
/**
* Fetches Batch Validation Job details.
* @param jobId Job Id of the batch validation job.
@@ -15373,19 +15559,21 @@ declare module "esri/tasks/datareviewer/BatchValidationTask" {
/** Fires when the executeJob method is complete. */
on(type: "execute-job", listener: (event: { jobId: string; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the getAdhocJobsList method is complete. */
- on(type: "get-adhoc-jobs-list", listener: (event: { adhocJobs: any[]; target: BatchValidationTask }) => void): esri.Handle;
+ on(type: "get-adhoc-jobs-list", listener: (event: { adhocJobs: BatchValidationJob[]; target: BatchValidationTask }) => void): esri.Handle;
+ /** Fires when the getCustomFieldNames method is complete. */
+ on(type: "get-custom-field-names", listener: (event: { customFieldNames: string[]; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the getJobDetails method is complete. */
on(type: "get-job-details", listener: (event: { jobDetails: BatchValidationJob; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the getJobExecutionDetails method is complete. */
on(type: "get-job-execution-details", listener: (event: { jobInfo: BatchValidationJobInfo; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the getJobIds method is complete. */
- on(type: "get-job-ids", listener: (event: { adhocJobs: any[]; scheduledJobs: any[]; target: BatchValidationTask }) => void): esri.Handle;
+ on(type: "get-job-ids", listener: (event: { adhocJobs: string[]; scheduledJobs: string[]; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the getLifecycleStatusStrings method is complete. */
- on(type: "get-lifecycle-status-strings", listener: (event: { lifecycleStatusStrings: any[]; target: BatchValidationTask }) => void): esri.Handle;
+ on(type: "get-lifecycle-status-strings", listener: (event: { lifecycleStatusStrings: string[]; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the getReviewerSessions method is complete. */
- on(type: "get-reviewer-sessions", listener: (event: { reviewerSessions: any[]; target: BatchValidationTask }) => void): esri.Handle;
+ on(type: "get-reviewer-sessions", listener: (event: { reviewerSessions: ReviewerSession[]; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the getScheduledJobsList method is complete. */
- on(type: "get-scheduled-jobs-list", listener: (event: { scheduledJobs: any[]; target: BatchValidationTask }) => void): esri.Handle;
+ on(type: "get-scheduled-jobs-list", listener: (event: { scheduledJobs: BatchValidationJob[]; target: BatchValidationTask }) => void): esri.Handle;
/** Fires when the scheduleJob method is complete. */
on(type: "schedule-job", listener: (event: { jobId: string; target: BatchValidationTask }) => void): esri.Handle;
on(type: string, listener: (event: any) => void): esri.Handle;
@@ -15435,6 +15623,8 @@ declare module "esri/tasks/datareviewer/DashboardTask" {
* @param sessionOptions Session properties to be used to create the session.
*/
createReviewerSession(sessionName: string, sessionOptions: SessionOptions): any;
+ /** Returns an array of custom field names defined in a Reviewer workspace. */
+ getCustomFieldNames(): any;
/** Requests Dashboard results field names. */
getDashboardFieldNames(): any;
/**
@@ -15453,14 +15643,16 @@ declare module "esri/tasks/datareviewer/DashboardTask" {
on(type: "create-reviewer-sessions", listener: (event: { reviewerSession: ReviewerSession; target: DashboardTask }) => void): esri.Handle;
/** Fires when an error occurs during a DashboardTask method execution. */
on(type: "error", listener: (event: { error: Error; target: DashboardTask }) => void): esri.Handle;
+ /** Fires when the getCustomFieldNames method is complete. */
+ on(type: "get-custom-field-names", listener: (event: { customFieldNames: string[]; target: DashboardTask }) => void): esri.Handle;
/** Fires when the getDashboardFieldNames method is complete. */
- on(type: "get-dashboard-field-names", listener: (event: { fieldNames: any[]; target: DashboardTask }) => void): esri.Handle;
+ on(type: "get-dashboard-field-names", listener: (event: { fieldNames: string[]; target: DashboardTask }) => void): esri.Handle;
/** Fires when the getDashboardResults method is complete. */
on(type: "get-dashboard-results", listener: (event: { dashboardResult: DashboardResult; target: DashboardTask }) => void): esri.Handle;
/** Fires when the getLifecycleStatusStrings method is complete. */
- on(type: "get-lifecycle-status-strings", listener: (event: { lifecycleStatusStrings: any[]; target: DashboardTask }) => void): esri.Handle;
+ on(type: "get-lifecycle-status-strings", listener: (event: { lifecycleStatusStrings: string[]; target: DashboardTask }) => void): esri.Handle;
/** Fires when the getReviewerSessions method is complete. */
- on(type: "get-reviewer-sessions", listener: (event: { reviewerSessions: any[]; target: DashboardTask }) => void): esri.Handle;
+ on(type: "get-reviewer-sessions", listener: (event: { reviewerSessions: ReviewerSession[]; target: DashboardTask }) => void): esri.Handle;
on(type: string, listener: (event: any) => void): esri.Handle;
}
export = DashboardTask;
@@ -15542,8 +15734,8 @@ declare module "esri/tasks/datareviewer/ReviewerFilters" {
}
declare module "esri/tasks/datareviewer/ReviewerLifecycle" {
- /** The ReviewerLifecycle class specifies constant values for all lifecycle status and lifecycle phase strings within the Reviewer quality control workflow. */
- class ReviewerLifecycle {
+ /** The ReviewerLifecycle object specifies constant values for all lifecycle status and lifecycle phase strings within the Reviewer quality control workflow. */
+ var ReviewerLifecycle: {
/** Acceptable lifecycleStatus code = 4 belongs to Verification Phase. */
ACCEPTABLE: number;
/** Code for Correction Phase. */
@@ -15600,7 +15792,7 @@ declare module "esri/tasks/datareviewer/ReviewerLifecycle" {
* @param lifecycleStatus The lifecycle status code.
*/
toLifecycleStatusString(lifecycleStatus: number): string;
- }
+ };
export = ReviewerLifecycle;
}
@@ -15614,6 +15806,7 @@ declare module "esri/tasks/datareviewer/ReviewerResultsTask" {
import Geometry = require("esri/geometry/Geometry");
import ReviewerSession = require("esri/tasks/datareviewer/ReviewerSession");
import FeatureSet = require("esri/tasks/FeatureSet");
+ import FeatureEditResult = require("esri/layers/FeatureEditResult");
/** ReviewerResults allows access to the reviewer workspace. */
class ReviewerResultsTask {
@@ -15633,6 +15826,8 @@ declare module "esri/tasks/datareviewer/ReviewerResultsTask" {
* @param batchRunIds Array of batchRunIds used to get batch run details.
*/
getBatchRunDetails(batchRunIds: any[]): any;
+ /** Returns an array of custom field names defined in a Reviewer workspace. */
+ getCustomFieldNames(): any;
/**
* Utility operation that returns a where clause given a set of input filters.
* @param filters An instance of ReviewerFilters used to create a layer definition.
@@ -15646,8 +15841,10 @@ declare module "esri/tasks/datareviewer/ReviewerResultsTask" {
* @param filters Instance of ReviewerFilters used to query reviewer results.
*/
getResults(getResultsQueryParameters: GetResultsQueryParameters, filters?: ReviewerFilters): any;
+ /** Retrieves a list of field names that can be used to fetch or query results from reviewer workspace. */
+ getResultsFieldNames(): string[];
/** Extracts the MapServer url from the full ArcGIS Data Reviewer for Server SOE url. */
- getReviewerMapServerUrl(): any;
+ getReviewerMapServerUrl(): string;
/** Returns an array of sessions in a Reviewer workspace. */
getReviewerSessions(): any;
/**
@@ -15676,16 +15873,18 @@ declare module "esri/tasks/datareviewer/ReviewerResultsTask" {
on(type: "error", listener: (event: { error: Error; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the getBatchRunDetails method is complete. */
on(type: "get-batch-run-details", listener: (event: { featureSet: FeatureSet; target: ReviewerResultsTask }) => void): esri.Handle;
+ /** Fires when the getCustomFieldNames method is complete. */
+ on(type: "get-custom-field-names", listener: (event: { customFieldNames: string[]; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the getLayerDefinition method is complete. */
on(type: "get-layer-definition", listener: (event: { whereClause: string; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the getLifecycleStatusStrings method is complete. */
- on(type: "get-lifecycle-status-strings", listener: (event: { lifecycleStatusStrings: any[]; target: ReviewerResultsTask }) => void): esri.Handle;
+ on(type: "get-lifecycle-status-strings", listener: (event: { lifecycleStatusStrings: string[]; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the getResults method is complete. */
on(type: "get-results", listener: (event: { featureSet: FeatureSet; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the getReviewerSessions method is complete. */
- on(type: "get-reviewer-sessions", listener: (event: { reviewerSessions: any[]; target: ReviewerResultsTask }) => void): esri.Handle;
+ on(type: "get-reviewer-sessions", listener: (event: { reviewerSessions: ReviewerSession[]; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the updateLifecycleStatus method is complete. */
- on(type: "update-lifecycle-status", listener: (event: { featureEditResults: any[]; target: ReviewerResultsTask }) => void): esri.Handle;
+ on(type: "update-lifecycle-status", listener: (event: { featureEditResults: FeatureEditResult[]; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the writeFeatureAsResult method is complete. */
on(type: "write-feature-as-result", listener: (event: { success: boolean; target: ReviewerResultsTask }) => void): esri.Handle;
/** Fires when the writeResult method is complete. */
diff --git a/auth0.lock/auth0.lock.d.ts b/auth0.lock/auth0.lock.d.ts
index bef269dbcb..3269103ab1 100644
--- a/auth0.lock/auth0.lock.d.ts
+++ b/auth0.lock/auth0.lock.d.ts
@@ -72,6 +72,8 @@ interface Auth0LockStatic {
hide(callback: () => void): void;
logout(callback: () => void): void;
+
+ getClient(): Auth0Static;
}
declare var Auth0Lock: Auth0LockStatic;
diff --git a/auth0/auth0.d.ts b/auth0/auth0.d.ts
index b2e1149fb6..1548bd06f0 100644
--- a/auth0/auth0.d.ts
+++ b/auth0/auth0.d.ts
@@ -51,6 +51,8 @@ interface Auth0UserProfile {
user_id: string;
/** Represents one or more Identities that may be associated with the User. */
identities: Auth0Identity[];
+ user_metadata?: any;
+ app_metadata?: any;
}
/** Represents an Auth0UserProfile that has a Microsoft Account as the primary identity. */
diff --git a/aws-sdk/aws-sdk-tests.ts.tscparams b/aws-sdk/aws-sdk-tests.ts.tscparams
deleted file mode 100644
index 70401a77ee..0000000000
--- a/aws-sdk/aws-sdk-tests.ts.tscparams
+++ /dev/null
@@ -1 +0,0 @@
---noImplicitAny --module commonjs --target es5
\ No newline at end of file
diff --git a/babylonjs/babylon-tests.ts b/babylonjs/babylon-tests.ts
new file mode 100644
index 0000000000..142d3840f5
--- /dev/null
+++ b/babylonjs/babylon-tests.ts
@@ -0,0 +1 @@
+///
diff --git a/babylonjs/babylon.d.ts b/babylonjs/babylon.d.ts
new file mode 100644
index 0000000000..1cc835442c
--- /dev/null
+++ b/babylonjs/babylon.d.ts
@@ -0,0 +1,6327 @@
+// Type definitions for BabylonJS v2.2
+// Project: http://www.babylonjs.com/
+// Definitions by: David Catuhe
+// Definitions: https://github.com/borisyankov/babylonjs
+
+
+declare module BABYLON {
+ class _DepthCullingState {
+ private _isDepthTestDirty;
+ private _isDepthMaskDirty;
+ private _isDepthFuncDirty;
+ private _isCullFaceDirty;
+ private _isCullDirty;
+ private _isZOffsetDirty;
+ private _depthTest;
+ private _depthMask;
+ private _depthFunc;
+ private _cull;
+ private _cullFace;
+ private _zOffset;
+ isDirty: boolean;
+ zOffset: number;
+ cullFace: number;
+ cull: boolean;
+ depthFunc: number;
+ depthMask: boolean;
+ depthTest: boolean;
+ reset(): void;
+ apply(gl: WebGLRenderingContext): void;
+ }
+ class _AlphaState {
+ private _isAlphaBlendDirty;
+ private _isBlendFunctionParametersDirty;
+ private _alphaBlend;
+ private _blendFunctionParameters;
+ isDirty: boolean;
+ alphaBlend: boolean;
+ setAlphaBlendFunctionParameters(value0: number, value1: number, value2: number, value3: number): void;
+ reset(): void;
+ apply(gl: WebGLRenderingContext): void;
+ }
+ class EngineCapabilities {
+ maxTexturesImageUnits: number;
+ maxTextureSize: number;
+ maxCubemapTextureSize: number;
+ maxRenderTextureSize: number;
+ standardDerivatives: boolean;
+ s3tc: any;
+ textureFloat: boolean;
+ textureAnisotropicFilterExtension: any;
+ maxAnisotropy: number;
+ instancedArrays: any;
+ uintIndices: boolean;
+ highPrecisionShaderSupported: boolean;
+ }
+ /**
+ * The engine class is responsible for interfacing with all lower-level APIs such as WebGL and Audio.
+ */
+ class Engine {
+ private static _ALPHA_DISABLE;
+ private static _ALPHA_ADD;
+ private static _ALPHA_COMBINE;
+ private static _ALPHA_SUBTRACT;
+ private static _ALPHA_MULTIPLY;
+ private static _ALPHA_MAXIMIZED;
+ private static _ALPHA_ONEONE;
+ private static _DELAYLOADSTATE_NONE;
+ private static _DELAYLOADSTATE_LOADED;
+ private static _DELAYLOADSTATE_LOADING;
+ private static _DELAYLOADSTATE_NOTLOADED;
+ private static _TEXTUREFORMAT_ALPHA;
+ private static _TEXTUREFORMAT_LUMINANCE;
+ private static _TEXTUREFORMAT_LUMINANCE_ALPHA;
+ private static _TEXTUREFORMAT_RGB;
+ private static _TEXTUREFORMAT_RGBA;
+ private static _TEXTURETYPE_UNSIGNED_INT;
+ private static _TEXTURETYPE_FLOAT;
+ static ALPHA_DISABLE: number;
+ static ALPHA_ONEONE: number;
+ static ALPHA_ADD: number;
+ static ALPHA_COMBINE: number;
+ static ALPHA_SUBTRACT: number;
+ static ALPHA_MULTIPLY: number;
+ static ALPHA_MAXIMIZED: number;
+ static DELAYLOADSTATE_NONE: number;
+ static DELAYLOADSTATE_LOADED: number;
+ static DELAYLOADSTATE_LOADING: number;
+ static DELAYLOADSTATE_NOTLOADED: number;
+ static TEXTUREFORMAT_ALPHA: number;
+ static TEXTUREFORMAT_LUMINANCE: number;
+ static TEXTUREFORMAT_LUMINANCE_ALPHA: number;
+ static TEXTUREFORMAT_RGB: number;
+ static TEXTUREFORMAT_RGBA: number;
+ static TEXTURETYPE_UNSIGNED_INT: number;
+ static TEXTURETYPE_FLOAT: number;
+ static Version: string;
+ static Epsilon: number;
+ static CollisionsEpsilon: number;
+ static CodeRepository: string;
+ static ShadersRepository: string;
+ isFullscreen: boolean;
+ isPointerLock: boolean;
+ cullBackFaces: boolean;
+ renderEvenInBackground: boolean;
+ enableOfflineSupport: boolean;
+ scenes: Scene[];
+ _gl: WebGLRenderingContext;
+ private _renderingCanvas;
+ private _windowIsBackground;
+ static audioEngine: AudioEngine;
+ private _onBlur;
+ private _onFocus;
+ private _onFullscreenChange;
+ private _onPointerLockChange;
+ private _hardwareScalingLevel;
+ private _caps;
+ private _pointerLockRequested;
+ private _alphaTest;
+ private _resizeLoadingUI;
+ private _loadingDiv;
+ private _loadingTextDiv;
+ private _loadingDivBackgroundColor;
+ private _drawCalls;
+ private _glVersion;
+ private _glRenderer;
+ private _glVendor;
+ private _videoTextureSupported;
+ private _renderingQueueLaunched;
+ private _activeRenderLoops;
+ private fpsRange;
+ private previousFramesDuration;
+ private fps;
+ private deltaTime;
+ private _depthCullingState;
+ private _alphaState;
+ private _alphaMode;
+ private _loadedTexturesCache;
+ _activeTexturesCache: BaseTexture[];
+ private _currentEffect;
+ private _compiledEffects;
+ private _vertexAttribArrays;
+ private _cachedViewport;
+ private _cachedVertexBuffers;
+ private _cachedIndexBuffer;
+ private _cachedEffectForVertexBuffers;
+ private _currentRenderTarget;
+ private _uintIndicesCurrentlySet;
+ private _workingCanvas;
+ private _workingContext;
+ /**
+ * @constructor
+ * @param {HTMLCanvasElement} canvas - the canvas to be used for rendering
+ * @param {boolean} [antialias] - enable antialias
+ * @param options - further options to be sent to the getContext function
+ */
+ constructor(canvas: HTMLCanvasElement, antialias?: boolean, options?: any);
+ private _prepareWorkingCanvas();
+ getGlInfo(): {
+ vendor: string;
+ renderer: string;
+ version: string;
+ };
+ getAspectRatio(camera: Camera): number;
+ getRenderWidth(): number;
+ getRenderHeight(): number;
+ getRenderingCanvas(): HTMLCanvasElement;
+ getRenderingCanvasClientRect(): ClientRect;
+ setHardwareScalingLevel(level: number): void;
+ getHardwareScalingLevel(): number;
+ getLoadedTexturesCache(): WebGLTexture[];
+ getCaps(): EngineCapabilities;
+ drawCalls: number;
+ resetDrawCalls(): void;
+ setDepthFunctionToGreater(): void;
+ setDepthFunctionToGreaterOrEqual(): void;
+ setDepthFunctionToLess(): void;
+ setDepthFunctionToLessOrEqual(): void;
+ /**
+ * stop executing a render loop function and remove it from the execution array
+ * @param {Function} [renderFunction] the function to be removed. If not provided all functions will be removed.
+ */
+ stopRenderLoop(renderFunction?: () => void): void;
+ _renderLoop(): void;
+ /**
+ * Register and execute a render loop. The engine can have more than one render function.
+ * @param {Function} renderFunction - the function to continuesly execute starting the next render loop.
+ * @example
+ * engine.runRenderLoop(function () {
+ * scene.render()
+ * })
+ */
+ runRenderLoop(renderFunction: () => void): void;
+ /**
+ * Toggle full screen mode.
+ * @param {boolean} requestPointerLock - should a pointer lock be requested from the user
+ */
+ switchFullscreen(requestPointerLock: boolean): void;
+ clear(color: any, backBuffer: boolean, depthStencil: boolean): void;
+ /**
+ * Set the WebGL's viewport
+ * @param {BABYLON.Viewport} viewport - the viewport element to be used.
+ * @param {number} [requiredWidth] - the width required for rendering. If not provided the rendering canvas' width is used.
+ * @param {number} [requiredHeight] - the height required for rendering. If not provided the rendering canvas' height is used.
+ */
+ setViewport(viewport: Viewport, requiredWidth?: number, requiredHeight?: number): void;
+ setDirectViewport(x: number, y: number, width: number, height: number): void;
+ beginFrame(): void;
+ endFrame(): void;
+ /**
+ * resize the view according to the canvas' size.
+ * @example
+ * window.addEventListener("resize", function () {
+ * engine.resize();
+ * });
+ */
+ resize(): void;
+ /**
+ * force a specific size of the canvas
+ * @param {number} width - the new canvas' width
+ * @param {number} height - the new canvas' height
+ */
+ setSize(width: number, height: number): void;
+ bindFramebuffer(texture: WebGLTexture): void;
+ unBindFramebuffer(texture: WebGLTexture): void;
+ flushFramebuffer(): void;
+ restoreDefaultFramebuffer(): void;
+ private _resetVertexBufferBinding();
+ createVertexBuffer(vertices: number[]): WebGLBuffer;
+ createDynamicVertexBuffer(capacity: number): WebGLBuffer;
+ updateDynamicVertexBuffer(vertexBuffer: WebGLBuffer, vertices: any, offset?: number): void;
+ private _resetIndexBufferBinding();
+ createIndexBuffer(indices: number[]): WebGLBuffer;
+ bindBuffers(vertexBuffer: WebGLBuffer, indexBuffer: WebGLBuffer, vertexDeclaration: number[], vertexStrideSize: number, effect: Effect): void;
+ bindMultiBuffers(vertexBuffers: VertexBuffer[], indexBuffer: WebGLBuffer, effect: Effect): void;
+ _releaseBuffer(buffer: WebGLBuffer): boolean;
+ createInstancesBuffer(capacity: number): WebGLBuffer;
+ deleteInstancesBuffer(buffer: WebGLBuffer): void;
+ updateAndBindInstancesBuffer(instancesBuffer: WebGLBuffer, data: Float32Array, offsetLocations: number[]): void;
+ unBindInstancesBuffer(instancesBuffer: WebGLBuffer, offsetLocations: number[]): void;
+ applyStates(): void;
+ draw(useTriangles: boolean, indexStart: number, indexCount: number, instancesCount?: number): void;
+ drawPointClouds(verticesStart: number, verticesCount: number, instancesCount?: number): void;
+ _releaseEffect(effect: Effect): void;
+ createEffect(baseName: any, attributesNames: string[], uniformsNames: string[], samplers: string[], defines: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void): Effect;
+ createEffectForParticles(fragmentName: string, uniformsNames?: string[], samplers?: string[], defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void): Effect;
+ createShaderProgram(vertexCode: string, fragmentCode: string, defines: string): WebGLProgram;
+ getUniforms(shaderProgram: WebGLProgram, uniformsNames: string[]): WebGLUniformLocation[];
+ getAttributes(shaderProgram: WebGLProgram, attributesNames: string[]): number[];
+ enableEffect(effect: Effect): void;
+ setArray(uniform: WebGLUniformLocation, array: number[]): void;
+ setArray2(uniform: WebGLUniformLocation, array: number[]): void;
+ setArray3(uniform: WebGLUniformLocation, array: number[]): void;
+ setArray4(uniform: WebGLUniformLocation, array: number[]): void;
+ setMatrices(uniform: WebGLUniformLocation, matrices: Float32Array): void;
+ setMatrix(uniform: WebGLUniformLocation, matrix: Matrix): void;
+ setMatrix3x3(uniform: WebGLUniformLocation, matrix: Float32Array): void;
+ setMatrix2x2(uniform: WebGLUniformLocation, matrix: Float32Array): void;
+ setFloat(uniform: WebGLUniformLocation, value: number): void;
+ setFloat2(uniform: WebGLUniformLocation, x: number, y: number): void;
+ setFloat3(uniform: WebGLUniformLocation, x: number, y: number, z: number): void;
+ setBool(uniform: WebGLUniformLocation, bool: number): void;
+ setFloat4(uniform: WebGLUniformLocation, x: number, y: number, z: number, w: number): void;
+ setColor3(uniform: WebGLUniformLocation, color3: Color3): void;
+ setColor4(uniform: WebGLUniformLocation, color3: Color3, alpha: number): void;
+ setState(culling: boolean, zOffset?: number, force?: boolean): void;
+ setDepthBuffer(enable: boolean): void;
+ getDepthWrite(): boolean;
+ setDepthWrite(enable: boolean): void;
+ setColorWrite(enable: boolean): void;
+ setAlphaMode(mode: number): void;
+ getAlphaMode(): number;
+ setAlphaTesting(enable: boolean): void;
+ getAlphaTesting(): boolean;
+ wipeCaches(): void;
+ setSamplingMode(texture: WebGLTexture, samplingMode: number): void;
+ createTexture(url: string, noMipmap: boolean, invertY: boolean, scene: Scene, samplingMode?: number, onLoad?: () => void, onError?: () => void, buffer?: any): WebGLTexture;
+ updateRawTexture(texture: WebGLTexture, data: ArrayBufferView, format: number, invertY: boolean, compression?: string): void;
+ createRawTexture(data: ArrayBufferView, width: number, height: number, format: number, generateMipMaps: boolean, invertY: boolean, samplingMode: number, compression?: string): WebGLTexture;
+ createDynamicTexture(width: number, height: number, generateMipMaps: boolean, samplingMode: number, forceExponantOfTwo?: boolean): WebGLTexture;
+ updateTextureSamplingMode(samplingMode: number, texture: WebGLTexture): void;
+ updateDynamicTexture(texture: WebGLTexture, canvas: HTMLCanvasElement, invertY: boolean): void;
+ updateVideoTexture(texture: WebGLTexture, video: HTMLVideoElement, invertY: boolean): void;
+ createRenderTargetTexture(size: any, options: any): WebGLTexture;
+ createCubeTexture(rootUrl: string, scene: Scene, extensions: string[], noMipmap?: boolean): WebGLTexture;
+ _releaseTexture(texture: WebGLTexture): void;
+ bindSamplers(effect: Effect): void;
+ _bindTexture(channel: number, texture: WebGLTexture): void;
+ setTextureFromPostProcess(channel: number, postProcess: PostProcess): void;
+ setTexture(channel: number, texture: BaseTexture): void;
+ _setAnisotropicLevel(key: number, texture: BaseTexture): void;
+ readPixels(x: number, y: number, width: number, height: number): Uint8Array;
+ dispose(): void;
+ displayLoadingUI(): void;
+ loadingUIText: string;
+ loadingUIBackgroundColor: string;
+ hideLoadingUI(): void;
+ getFps(): number;
+ getDeltaTime(): number;
+ private _measureFps();
+ static isSupported(): boolean;
+ }
+}
+
+interface Window {
+ mozIndexedDB(func: any): any;
+ webkitIndexedDB(func: any): any;
+ IDBTransaction(func: any): any;
+ webkitIDBTransaction(func: any): any;
+ msIDBTransaction(func: any): any;
+ IDBKeyRange(func: any): any;
+ webkitIDBKeyRange(func: any): any;
+ msIDBKeyRange(func: any): any;
+ webkitURL: HTMLURL;
+ webkitRequestAnimationFrame(func: any): any;
+ mozRequestAnimationFrame(func: any): any;
+ oRequestAnimationFrame(func: any): any;
+ WebGLRenderingContext: WebGLRenderingContext;
+ MSGesture: MSGesture;
+ CANNON: any;
+ SIMD: any;
+ AudioContext: AudioContext;
+ webkitAudioContext: AudioContext;
+}
+interface HTMLURL {
+ createObjectURL(param1: any, param2?: any): any;
+}
+interface Document {
+ exitFullscreen(): void;
+ webkitCancelFullScreen(): void;
+ mozCancelFullScreen(): void;
+ msCancelFullScreen(): void;
+ mozFullScreen: boolean;
+ msIsFullScreen: boolean;
+ fullscreen: boolean;
+ mozPointerLockElement: HTMLElement;
+ msPointerLockElement: HTMLElement;
+ webkitPointerLockElement: HTMLElement;
+}
+interface HTMLCanvasElement {
+ requestPointerLock(): void;
+ msRequestPointerLock(): void;
+ mozRequestPointerLock(): void;
+ webkitRequestPointerLock(): void;
+}
+interface CanvasRenderingContext2D {
+ imageSmoothingEnabled: boolean;
+ mozImageSmoothingEnabled: boolean;
+ oImageSmoothingEnabled: boolean;
+ webkitImageSmoothingEnabled: boolean;
+}
+interface WebGLTexture {
+ isReady: boolean;
+ isCube: boolean;
+ url: string;
+ noMipmap: boolean;
+ samplingMode: number;
+ references: number;
+ generateMipMaps: boolean;
+ _size: number;
+ _baseWidth: number;
+ _baseHeight: number;
+ _width: number;
+ _height: number;
+ _workingCanvas: HTMLCanvasElement;
+ _workingContext: CanvasRenderingContext2D;
+ _framebuffer: WebGLFramebuffer;
+ _depthBuffer: WebGLRenderbuffer;
+ _cachedCoordinatesMode: number;
+ _cachedWrapU: number;
+ _cachedWrapV: number;
+ _isDisabled: boolean;
+}
+interface WebGLBuffer {
+ references: number;
+ capacity: number;
+ is32Bits: boolean;
+}
+interface MouseEvent {
+ mozMovementX: number;
+ mozMovementY: number;
+ webkitMovementX: number;
+ webkitMovementY: number;
+ msMovementX: number;
+ msMovementY: number;
+}
+interface MSStyleCSSProperties {
+ webkitTransform: string;
+ webkitTransition: string;
+}
+interface Navigator {
+ getVRDevices: () => any;
+ mozGetVRDevices: (any: any) => any;
+ isCocoonJS: boolean;
+}
+interface Screen {
+ orientation: string;
+ mozOrientation: string;
+}
+
+declare module BABYLON {
+ /**
+ * Node is the basic class for all scene objects (Mesh, Light Camera).
+ */
+ class Node {
+ parent: Node;
+ name: string;
+ id: string;
+ uniqueId: number;
+ state: string;
+ animations: Animation[];
+ onReady: (node: Node) => void;
+ private _childrenFlag;
+ private _isEnabled;
+ private _isReady;
+ _currentRenderId: number;
+ private _parentRenderId;
+ _waitingParentId: string;
+ private _scene;
+ _cache: any;
+ /**
+ * @constructor
+ * @param {string} name - the name and id to be given to this node
+ * @param {BABYLON.Scene} the scene this node will be added to
+ */
+ constructor(name: string, scene: Scene);
+ getScene(): Scene;
+ getEngine(): Engine;
+ getWorldMatrix(): Matrix;
+ _initCache(): void;
+ updateCache(force?: boolean): void;
+ _updateCache(ignoreParentClass?: boolean): void;
+ _isSynchronized(): boolean;
+ _markSyncedWithParent(): void;
+ isSynchronizedWithParent(): boolean;
+ isSynchronized(updateCache?: boolean): boolean;
+ hasNewParent(update?: boolean): boolean;
+ /**
+ * Is this node ready to be used/rendered
+ * @return {boolean} is it ready
+ */
+ isReady(): boolean;
+ /**
+ * Is this node enabled.
+ * If the node has a parent and is enabled, the parent will be inspected as well.
+ * @return {boolean} whether this node (and its parent) is enabled.
+ * @see setEnabled
+ */
+ isEnabled(): boolean;
+ /**
+ * Set the enabled state of this node.
+ * @param {boolean} value - the new enabled state
+ * @see isEnabled
+ */
+ setEnabled(value: boolean): void;
+ /**
+ * Is this node a descendant of the given node.
+ * The function will iterate up the hierarchy until the ancestor was found or no more parents defined.
+ * @param {BABYLON.Node} ancestor - The parent node to inspect
+ * @see parent
+ */
+ isDescendantOf(ancestor: Node): boolean;
+ _getDescendants(list: Node[], results: Node[]): void;
+ /**
+ * Will return all nodes that have this node as parent.
+ * @return {BABYLON.Node[]} all children nodes of all types.
+ */
+ getDescendants(): Node[];
+ _setReady(state: boolean): void;
+ }
+}
+
+declare module BABYLON {
+ interface IDisposable {
+ dispose(): void;
+ }
+ /**
+ * Represents a scene to be rendered by the engine.
+ * @see http://doc.babylonjs.com/page.php?p=21911
+ */
+ class Scene {
+ private static _FOGMODE_NONE;
+ private static _FOGMODE_EXP;
+ private static _FOGMODE_EXP2;
+ private static _FOGMODE_LINEAR;
+ static MinDeltaTime: number;
+ static MaxDeltaTime: number;
+ static FOGMODE_NONE: number;
+ static FOGMODE_EXP: number;
+ static FOGMODE_EXP2: number;
+ static FOGMODE_LINEAR: number;
+ autoClear: boolean;
+ clearColor: any;
+ ambientColor: Color3;
+ /**
+ * A function to be executed before rendering this scene
+ * @type {Function}
+ */
+ beforeRender: () => void;
+ /**
+ * A function to be executed after rendering this scene
+ * @type {Function}
+ */
+ afterRender: () => void;
+ /**
+ * A function to be executed when this scene is disposed.
+ * @type {Function}
+ */
+ onDispose: () => void;
+ beforeCameraRender: (camera: Camera) => void;
+ afterCameraRender: (camera: Camera) => void;
+ forceWireframe: boolean;
+ forcePointsCloud: boolean;
+ forceShowBoundingBoxes: boolean;
+ clipPlane: Plane;
+ animationsEnabled: boolean;
+ private _onPointerMove;
+ private _onPointerDown;
+ private _onPointerUp;
+ onPointerDown: (evt: PointerEvent, pickInfo: PickingInfo) => void;
+ onPointerUp: (evt: PointerEvent, pickInfo: PickingInfo) => void;
+ cameraToUseForPointers: Camera;
+ private _pointerX;
+ private _pointerY;
+ private _meshUnderPointer;
+ private _onKeyDown;
+ private _onKeyUp;
+ /**
+ * is fog enabled on this scene.
+ * @type {boolean}
+ */
+ fogEnabled: boolean;
+ fogMode: number;
+ fogColor: Color3;
+ fogDensity: number;
+ fogStart: number;
+ fogEnd: number;
+ /**
+ * is shadow enabled on this scene.
+ * @type {boolean}
+ */
+ shadowsEnabled: boolean;
+ /**
+ * is light enabled on this scene.
+ * @type {boolean}
+ */
+ lightsEnabled: boolean;
+ /**
+ * All of the lights added to this scene.
+ * @see BABYLON.Light
+ * @type {BABYLON.Light[]}
+ */
+ lights: Light[];
+ onNewLightAdded: (newLight?: Light, positionInArray?: number, scene?: Scene) => void;
+ onLightRemoved: (removedLight?: Light) => void;
+ /**
+ * All of the cameras added to this scene.
+ * @see BABYLON.Camera
+ * @type {BABYLON.Camera[]}
+ */
+ cameras: Camera[];
+ onNewCameraAdded: (newCamera?: Camera, positionInArray?: number, scene?: Scene) => void;
+ onCameraRemoved: (removedCamera?: Camera) => void;
+ activeCameras: Camera[];
+ activeCamera: Camera;
+ /**
+ * All of the (abstract) meshes added to this scene.
+ * @see BABYLON.AbstractMesh
+ * @type {BABYLON.AbstractMesh[]}
+ */
+ meshes: AbstractMesh[];
+ onNewMeshAdded: (newMesh?: AbstractMesh, positionInArray?: number, scene?: Scene) => void;
+ onMeshRemoved: (removedMesh?: AbstractMesh) => void;
+ private _geometries;
+ onGeometryAdded: (newGeometry?: Geometry) => void;
+ onGeometryRemoved: (removedGeometry?: Geometry) => void;
+ materials: Material[];
+ multiMaterials: MultiMaterial[];
+ defaultMaterial: StandardMaterial;
+ texturesEnabled: boolean;
+ textures: BaseTexture[];
+ particlesEnabled: boolean;
+ particleSystems: ParticleSystem[];
+ spritesEnabled: boolean;
+ spriteManagers: SpriteManager[];
+ layers: Layer[];
+ skeletonsEnabled: boolean;
+ skeletons: Skeleton[];
+ lensFlaresEnabled: boolean;
+ lensFlareSystems: LensFlareSystem[];
+ collisionsEnabled: boolean;
+ private _workerCollisions;
+ collisionCoordinator: ICollisionCoordinator;
+ gravity: Vector3;
+ postProcessesEnabled: boolean;
+ postProcessManager: PostProcessManager;
+ postProcessRenderPipelineManager: PostProcessRenderPipelineManager;
+ renderTargetsEnabled: boolean;
+ dumpNextRenderTargets: boolean;
+ customRenderTargets: RenderTargetTexture[];
+ useDelayedTextureLoading: boolean;
+ importedMeshesFiles: String[];
+ database: any;
+ /**
+ * This scene's action manager
+ * @type {BABYLON.ActionManager}
+ */
+ actionManager: ActionManager;
+ _actionManagers: ActionManager[];
+ private _meshesForIntersections;
+ proceduralTexturesEnabled: boolean;
+ _proceduralTextures: ProceduralTexture[];
+ mainSoundTrack: SoundTrack;
+ soundTracks: SoundTrack[];
+ private _audioEnabled;
+ private _headphone;
+ simplificationQueue: SimplificationQueue;
+ private _engine;
+ private _totalVertices;
+ _activeIndices: number;
+ _activeParticles: number;
+ private _lastFrameDuration;
+ private _evaluateActiveMeshesDuration;
+ private _renderTargetsDuration;
+ _particlesDuration: number;
+ private _renderDuration;
+ _spritesDuration: number;
+ private _animationRatio;
+ private _animationStartDate;
+ _cachedMaterial: Material;
+ private _renderId;
+ private _executeWhenReadyTimeoutId;
+ _toBeDisposed: SmartArray;
+ private _onReadyCallbacks;
+ private _pendingData;
+ private _onBeforeRenderCallbacks;
+ private _onAfterRenderCallbacks;
+ private _activeMeshes;
+ private _processedMaterials;
+ private _renderTargets;
+ _activeParticleSystems: SmartArray;
+ private _activeSkeletons;
+ private _softwareSkinnedMeshes;
+ _activeBones: number;
+ private _renderingManager;
+ private _physicsEngine;
+ _activeAnimatables: Animatable[];
+ private _transformMatrix;
+ private _pickWithRayInverseMatrix;
+ private _edgesRenderers;
+ private _boundingBoxRenderer;
+ private _outlineRenderer;
+ private _viewMatrix;
+ private _projectionMatrix;
+ private _frustumPlanes;
+ private _selectionOctree;
+ private _pointerOverMesh;
+ private _debugLayer;
+ private _depthRenderer;
+ private _uniqueIdCounter;
+ /**
+ * @constructor
+ * @param {BABYLON.Engine} engine - the engine to be used to render this scene.
+ */
+ constructor(engine: Engine);
+ debugLayer: DebugLayer;
+ workerCollisions: boolean;
+ SelectionOctree: Octree;
+ /**
+ * The mesh that is currently under the pointer.
+ * @return {BABYLON.AbstractMesh} mesh under the pointer/mouse cursor or null if none.
+ */
+ meshUnderPointer: AbstractMesh;
+ /**
+ * Current on-screen X position of the pointer
+ * @return {number} X position of the pointer
+ */
+ pointerX: number;
+ /**
+ * Current on-screen Y position of the pointer
+ * @return {number} Y position of the pointer
+ */
+ pointerY: number;
+ getCachedMaterial(): Material;
+ getBoundingBoxRenderer(): BoundingBoxRenderer;
+ getOutlineRenderer(): OutlineRenderer;
+ getEngine(): Engine;
+ getTotalVertices(): number;
+ getActiveIndices(): number;
+ getActiveParticles(): number;
+ getActiveBones(): number;
+ getLastFrameDuration(): number;
+ getEvaluateActiveMeshesDuration(): number;
+ getActiveMeshes(): SmartArray;
+ getRenderTargetsDuration(): number;
+ getRenderDuration(): number;
+ getParticlesDuration(): number;
+ getSpritesDuration(): number;
+ getAnimationRatio(): number;
+ getRenderId(): number;
+ incrementRenderId(): void;
+ private _updatePointerPosition(evt);
+ attachControl(): void;
+ detachControl(): void;
+ isReady(): boolean;
+ resetCachedMaterial(): void;
+ registerBeforeRender(func: () => void): void;
+ unregisterBeforeRender(func: () => void): void;
+ registerAfterRender(func: () => void): void;
+ unregisterAfterRender(func: () => void): void;
+ _addPendingData(data: any): void;
+ _removePendingData(data: any): void;
+ getWaitingItemsCount(): number;
+ /**
+ * Registers a function to be executed when the scene is ready.
+ * @param {Function} func - the function to be executed.
+ */
+ executeWhenReady(func: () => void): void;
+ _checkIsReady(): void;
+ /**
+ * Will start the animation sequence of a given target
+ * @param target - the target
+ * @param {number} from - from which frame should animation start
+ * @param {number} to - till which frame should animation run.
+ * @param {boolean} [loop] - should the animation loop
+ * @param {number} [speedRatio] - the speed in which to run the animation
+ * @param {Function} [onAnimationEnd] function to be executed when the animation ended.
+ * @param {BABYLON.Animatable} [animatable] an animatable object. If not provided a new one will be created from the given params.
+ * @return {BABYLON.Animatable} the animatable object created for this animation
+ * @see BABYLON.Animatable
+ * @see http://doc.babylonjs.com/page.php?p=22081
+ */
+ beginAnimation(target: any, from: number, to: number, loop?: boolean, speedRatio?: number, onAnimationEnd?: () => void, animatable?: Animatable): Animatable;
+ beginDirectAnimation(target: any, animations: Animation[], from: number, to: number, loop?: boolean, speedRatio?: number, onAnimationEnd?: () => void): Animatable;
+ getAnimatableByTarget(target: any): Animatable;
+ /**
+ * Will stop the animation of the given target
+ * @param target - the target
+ * @see beginAnimation
+ */
+ stopAnimation(target: any): void;
+ private _animate();
+ getViewMatrix(): Matrix;
+ getProjectionMatrix(): Matrix;
+ getTransformMatrix(): Matrix;
+ setTransformMatrix(view: Matrix, projection: Matrix): void;
+ addMesh(newMesh: AbstractMesh): void;
+ removeMesh(toRemove: AbstractMesh): number;
+ removeLight(toRemove: Light): number;
+ removeCamera(toRemove: Camera): number;
+ addLight(newLight: Light): void;
+ addCamera(newCamera: Camera): void;
+ /**
+ * sets the active camera of the scene using its ID
+ * @param {string} id - the camera's ID
+ * @return {BABYLON.Camera|null} the new active camera or null if none found.
+ * @see activeCamera
+ */
+ setActiveCameraByID(id: string): Camera;
+ /**
+ * sets the active camera of the scene using its name
+ * @param {string} name - the camera's name
+ * @return {BABYLON.Camera|null} the new active camera or null if none found.
+ * @see activeCamera
+ */
+ setActiveCameraByName(name: string): Camera;
+ /**
+ * get a material using its id
+ * @param {string} the material's ID
+ * @return {BABYLON.Material|null} the material or null if none found.
+ */
+ getMaterialByID(id: string): Material;
+ /**
+ * get a material using its name
+ * @param {string} the material's name
+ * @return {BABYLON.Material|null} the material or null if none found.
+ */
+ getMaterialByName(name: string): Material;
+ getLensFlareSystemByName(name: string): LensFlareSystem;
+ getCameraByID(id: string): Camera;
+ getCameraByUniqueID(uniqueId: number): Camera;
+ /**
+ * get a camera using its name
+ * @param {string} the camera's name
+ * @return {BABYLON.Camera|null} the camera or null if none found.
+ */
+ getCameraByName(name: string): Camera;
+ /**
+ * get a light node using its name
+ * @param {string} the light's name
+ * @return {BABYLON.Light|null} the light or null if none found.
+ */
+ getLightByName(name: string): Light;
+ /**
+ * get a light node using its ID
+ * @param {string} the light's id
+ * @return {BABYLON.Light|null} the light or null if none found.
+ */
+ getLightByID(id: string): Light;
+ /**
+ * get a light node using its scene-generated unique ID
+ * @param {number} the light's unique id
+ * @return {BABYLON.Light|null} the light or null if none found.
+ */
+ getLightByUniqueID(uniqueId: number): Light;
+ /**
+ * get a geometry using its ID
+ * @param {string} the geometry's id
+ * @return {BABYLON.Geometry|null} the geometry or null if none found.
+ */
+ getGeometryByID(id: string): Geometry;
+ /**
+ * add a new geometry to this scene.
+ * @param {BABYLON.Geometry} geometry - the geometry to be added to the scene.
+ * @param {boolean} [force] - force addition, even if a geometry with this ID already exists
+ * @return {boolean} was the geometry added or not
+ */
+ pushGeometry(geometry: Geometry, force?: boolean): boolean;
+ /**
+ * Removes an existing geometry
+ * @param {BABYLON.Geometry} geometry - the geometry to be removed from the scene.
+ * @return {boolean} was the geometry removed or not
+ */
+ removeGeometry(geometry: Geometry): boolean;
+ getGeometries(): Geometry[];
+ /**
+ * Get the first added mesh found of a given ID
+ * @param {string} id - the id to search for
+ * @return {BABYLON.AbstractMesh|null} the mesh found or null if not found at all.
+ */
+ getMeshByID(id: string): AbstractMesh;
+ /**
+ * Get a mesh with its auto-generated unique id
+ * @param {number} uniqueId - the unique id to search for
+ * @return {BABYLON.AbstractMesh|null} the mesh found or null if not found at all.
+ */
+ getMeshByUniqueID(uniqueId: number): AbstractMesh;
+ /**
+ * Get a the last added mesh found of a given ID
+ * @param {string} id - the id to search for
+ * @return {BABYLON.AbstractMesh|null} the mesh found or null if not found at all.
+ */
+ getLastMeshByID(id: string): AbstractMesh;
+ /**
+ * Get a the last added node (Mesh, Camera, Light) found of a given ID
+ * @param {string} id - the id to search for
+ * @return {BABYLON.Node|null} the node found or null if not found at all.
+ */
+ getLastEntryByID(id: string): Node;
+ getNodeByID(id: string): Node;
+ getNodeByName(name: string): Node;
+ getMeshByName(name: string): AbstractMesh;
+ getSoundByName(name: string): Sound;
+ getLastSkeletonByID(id: string): Skeleton;
+ getSkeletonById(id: string): Skeleton;
+ getSkeletonByName(name: string): Skeleton;
+ isActiveMesh(mesh: Mesh): boolean;
+ private _evaluateSubMesh(subMesh, mesh);
+ private _evaluateActiveMeshes();
+ private _activeMesh(mesh);
+ updateTransformMatrix(force?: boolean): void;
+ private _renderForCamera(camera);
+ private _processSubCameras(camera);
+ private _checkIntersections();
+ render(): void;
+ private _updateAudioParameters();
+ audioEnabled: boolean;
+ private _disableAudio();
+ private _enableAudio();
+ headphone: boolean;
+ private _switchAudioModeForHeadphones();
+ private _switchAudioModeForNormalSpeakers();
+ enableDepthRenderer(): DepthRenderer;
+ disableDepthRenderer(): void;
+ dispose(): void;
+ disposeSounds(): void;
+ getWorldExtends(): {
+ min: Vector3;
+ max: Vector3;
+ };
+ createOrUpdateSelectionOctree(maxCapacity?: number, maxDepth?: number): Octree;
+ createPickingRay(x: number, y: number, world: Matrix, camera: Camera): Ray;
+ private _internalPick(rayFunction, predicate, fastCheck?);
+ pick(x: number, y: number, predicate?: (mesh: AbstractMesh) => boolean, fastCheck?: boolean, camera?: Camera): PickingInfo;
+ pickWithRay(ray: Ray, predicate: (mesh: Mesh) => boolean, fastCheck?: boolean): PickingInfo;
+ setPointerOverMesh(mesh: AbstractMesh): void;
+ getPointerOverMesh(): AbstractMesh;
+ getPhysicsEngine(): PhysicsEngine;
+ enablePhysics(gravity: Vector3, plugin?: IPhysicsEnginePlugin): boolean;
+ disablePhysicsEngine(): void;
+ isPhysicsEnabled(): boolean;
+ setGravity(gravity: Vector3): void;
+ createCompoundImpostor(parts: any, options: PhysicsBodyCreationOptions): any;
+ deleteCompoundImpostor(compound: any): void;
+ createDefaultCameraOrLight(): void;
+ private _getByTags(list, tagsQuery, forEach?);
+ getMeshesByTags(tagsQuery: string, forEach?: (mesh: AbstractMesh) => void): Mesh[];
+ getCamerasByTags(tagsQuery: string, forEach?: (camera: Camera) => void): Camera[];
+ getLightsByTags(tagsQuery: string, forEach?: (light: Light) => void): Light[];
+ getMaterialByTags(tagsQuery: string, forEach?: (material: Material) => void): Material[];
+ }
+}
+
+declare module BABYLON {
+ class Action {
+ triggerOptions: any;
+ trigger: number;
+ _actionManager: ActionManager;
+ private _nextActiveAction;
+ private _child;
+ private _condition;
+ private _triggerParameter;
+ constructor(triggerOptions: any, condition?: Condition);
+ _prepare(): void;
+ getTriggerParameter(): any;
+ _executeCurrent(evt: ActionEvent): void;
+ execute(evt: ActionEvent): void;
+ then(action: Action): Action;
+ _getProperty(propertyPath: string): string;
+ _getEffectiveTarget(target: any, propertyPath: string): any;
+ }
+}
+
+declare module BABYLON {
+ /**
+ * ActionEvent is the event beint sent when an action is triggered.
+ */
+ class ActionEvent {
+ source: AbstractMesh;
+ pointerX: number;
+ pointerY: number;
+ meshUnderPointer: AbstractMesh;
+ sourceEvent: any;
+ additionalData: any;
+ /**
+ * @constructor
+ * @param source The mesh that triggered the action.
+ * @param pointerX the X mouse cursor position at the time of the event
+ * @param pointerY the Y mouse cursor position at the time of the event
+ * @param meshUnderPointer The mesh that is currently pointed at (can be null)
+ * @param sourceEvent the original (browser) event that triggered the ActionEvent
+ */
+ constructor(source: AbstractMesh, pointerX: number, pointerY: number, meshUnderPointer: AbstractMesh, sourceEvent?: any, additionalData?: any);
+ /**
+ * Helper function to auto-create an ActionEvent from a source mesh.
+ * @param source the source mesh that triggered the event
+ * @param evt {Event} The original (browser) event
+ */
+ static CreateNew(source: AbstractMesh, evt?: Event, additionalData?: any): ActionEvent;
+ /**
+ * Helper function to auto-create an ActionEvent from a scene. If triggered by a mesh use ActionEvent.CreateNew
+ * @param scene the scene where the event occurred
+ * @param evt {Event} The original (browser) event
+ */
+ static CreateNewFromScene(scene: Scene, evt: Event): ActionEvent;
+ }
+ /**
+ * Action Manager manages all events to be triggered on a given mesh or the global scene.
+ * A single scene can have many Action Managers to handle predefined actions on specific meshes.
+ */
+ class ActionManager {
+ private static _NothingTrigger;
+ private static _OnPickTrigger;
+ private static _OnLeftPickTrigger;
+ private static _OnRightPickTrigger;
+ private static _OnCenterPickTrigger;
+ private static _OnPointerOverTrigger;
+ private static _OnPointerOutTrigger;
+ private static _OnEveryFrameTrigger;
+ private static _OnIntersectionEnterTrigger;
+ private static _OnIntersectionExitTrigger;
+ private static _OnKeyDownTrigger;
+ private static _OnKeyUpTrigger;
+ private static _OnPickUpTrigger;
+ static NothingTrigger: number;
+ static OnPickTrigger: number;
+ static OnLeftPickTrigger: number;
+ static OnRightPickTrigger: number;
+ static OnCenterPickTrigger: number;
+ static OnPointerOverTrigger: number;
+ static OnPointerOutTrigger: number;
+ static OnEveryFrameTrigger: number;
+ static OnIntersectionEnterTrigger: number;
+ static OnIntersectionExitTrigger: number;
+ static OnKeyDownTrigger: number;
+ static OnKeyUpTrigger: number;
+ static OnPickUpTrigger: number;
+ actions: Action[];
+ private _scene;
+ constructor(scene: Scene);
+ dispose(): void;
+ getScene(): Scene;
+ /**
+ * Does this action manager handles actions of any of the given triggers
+ * @param {number[]} triggers - the triggers to be tested
+ * @return {boolean} whether one (or more) of the triggers is handeled
+ */
+ hasSpecificTriggers(triggers: number[]): boolean;
+ /**
+ * Does this action manager handles actions of a given trigger
+ * @param {number} trigger - the trigger to be tested
+ * @return {boolean} whether the trigger is handeled
+ */
+ hasSpecificTrigger(trigger: number): boolean;
+ /**
+ * Does this action manager has pointer triggers
+ * @return {boolean} whether or not it has pointer triggers
+ */
+ hasPointerTriggers: boolean;
+ /**
+ * Does this action manager has pick triggers
+ * @return {boolean} whether or not it has pick triggers
+ */
+ hasPickTriggers: boolean;
+ /**
+ * Registers an action to this action manager
+ * @param {BABYLON.Action} action - the action to be registered
+ * @return {BABYLON.Action} the action amended (prepared) after registration
+ */
+ registerAction(action: Action): Action;
+ /**
+ * Process a specific trigger
+ * @param {number} trigger - the trigger to process
+ * @param evt {BABYLON.ActionEvent} the event details to be processed
+ */
+ processTrigger(trigger: number, evt: ActionEvent): void;
+ _getEffectiveTarget(target: any, propertyPath: string): any;
+ _getProperty(propertyPath: string): string;
+ }
+}
+
+declare module BABYLON {
+ class Condition {
+ _actionManager: ActionManager;
+ _evaluationId: number;
+ _currentResult: boolean;
+ constructor(actionManager: ActionManager);
+ isValid(): boolean;
+ _getProperty(propertyPath: string): string;
+ _getEffectiveTarget(target: any, propertyPath: string): any;
+ }
+ class ValueCondition extends Condition {
+ propertyPath: string;
+ value: any;
+ operator: number;
+ private static _IsEqual;
+ private static _IsDifferent;
+ private static _IsGreater;
+ private static _IsLesser;
+ static IsEqual: number;
+ static IsDifferent: number;
+ static IsGreater: number;
+ static IsLesser: number;
+ _actionManager: ActionManager;
+ private _target;
+ private _property;
+ constructor(actionManager: ActionManager, target: any, propertyPath: string, value: any, operator?: number);
+ isValid(): boolean;
+ }
+ class PredicateCondition extends Condition {
+ predicate: () => boolean;
+ _actionManager: ActionManager;
+ constructor(actionManager: ActionManager, predicate: () => boolean);
+ isValid(): boolean;
+ }
+ class StateCondition extends Condition {
+ value: string;
+ _actionManager: ActionManager;
+ private _target;
+ constructor(actionManager: ActionManager, target: any, value: string);
+ isValid(): boolean;
+ }
+}
+
+declare module BABYLON {
+ class SwitchBooleanAction extends Action {
+ propertyPath: string;
+ private _target;
+ private _property;
+ constructor(triggerOptions: any, target: any, propertyPath: string, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+ class SetStateAction extends Action {
+ value: string;
+ private _target;
+ constructor(triggerOptions: any, target: any, value: string, condition?: Condition);
+ execute(): void;
+ }
+ class SetValueAction extends Action {
+ propertyPath: string;
+ value: any;
+ private _target;
+ private _property;
+ constructor(triggerOptions: any, target: any, propertyPath: string, value: any, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+ class IncrementValueAction extends Action {
+ propertyPath: string;
+ value: any;
+ private _target;
+ private _property;
+ constructor(triggerOptions: any, target: any, propertyPath: string, value: any, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+ class PlayAnimationAction extends Action {
+ from: number;
+ to: number;
+ loop: boolean;
+ private _target;
+ constructor(triggerOptions: any, target: any, from: number, to: number, loop?: boolean, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+ class StopAnimationAction extends Action {
+ private _target;
+ constructor(triggerOptions: any, target: any, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+ class DoNothingAction extends Action {
+ constructor(triggerOptions?: any, condition?: Condition);
+ execute(): void;
+ }
+ class CombineAction extends Action {
+ children: Action[];
+ constructor(triggerOptions: any, children: Action[], condition?: Condition);
+ _prepare(): void;
+ execute(evt: ActionEvent): void;
+ }
+ class ExecuteCodeAction extends Action {
+ func: (evt: ActionEvent) => void;
+ constructor(triggerOptions: any, func: (evt: ActionEvent) => void, condition?: Condition);
+ execute(evt: ActionEvent): void;
+ }
+ class SetParentAction extends Action {
+ private _parent;
+ private _target;
+ constructor(triggerOptions: any, target: any, parent: any, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+ class PlaySoundAction extends Action {
+ private _sound;
+ constructor(triggerOptions: any, sound: Sound, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+ class StopSoundAction extends Action {
+ private _sound;
+ constructor(triggerOptions: any, sound: Sound, condition?: Condition);
+ _prepare(): void;
+ execute(): void;
+ }
+}
+
+declare module BABYLON {
+ class InterpolateValueAction extends Action {
+ propertyPath: string;
+ value: any;
+ duration: number;
+ stopOtherAnimations: boolean;
+ private _target;
+ private _property;
+ constructor(triggerOptions: any, target: any, propertyPath: string, value: any, duration?: number, condition?: Condition, stopOtherAnimations?: boolean);
+ _prepare(): void;
+ execute(): void;
+ }
+}
+
+declare module BABYLON {
+ class Animatable {
+ target: any;
+ fromFrame: number;
+ toFrame: number;
+ loopAnimation: boolean;
+ speedRatio: number;
+ onAnimationEnd: any;
+ private _localDelayOffset;
+ private _pausedDelay;
+ private _animations;
+ private _paused;
+ private _scene;
+ animationStarted: boolean;
+ constructor(scene: Scene, target: any, fromFrame?: number, toFrame?: number, loopAnimation?: boolean, speedRatio?: number, onAnimationEnd?: any, animations?: any);
+ appendAnimations(target: any, animations: Animation[]): void;
+ getAnimationByTargetProperty(property: string): Animation;
+ reset(): void;
+ pause(): void;
+ restart(): void;
+ stop(): void;
+ _animate(delay: number): boolean;
+ }
+}
+
+declare module BABYLON {
+ class Animation {
+ name: string;
+ targetProperty: string;
+ framePerSecond: number;
+ dataType: number;
+ loopMode: number;
+ private _keys;
+ private _offsetsCache;
+ private _highLimitsCache;
+ private _stopped;
+ _target: any;
+ private _easingFunction;
+ targetPropertyPath: string[];
+ currentFrame: number;
+ allowMatricesInterpolation: boolean;
+ static CreateAndStartAnimation(name: string, mesh: AbstractMesh, targetProperty: string, framePerSecond: number, totalFrame: number, from: any, to: any, loopMode?: number, easingFunction?: EasingFunction): Animatable;
+ constructor(name: string, targetProperty: string, framePerSecond: number, dataType: number, loopMode?: number);
+ reset(): void;
+ isStopped(): boolean;
+ getKeys(): any[];
+ getEasingFunction(): IEasingFunction;
+ setEasingFunction(easingFunction: EasingFunction): void;
+ floatInterpolateFunction(startValue: number, endValue: number, gradient: number): number;
+ quaternionInterpolateFunction(startValue: Quaternion, endValue: Quaternion, gradient: number): Quaternion;
+ vector3InterpolateFunction(startValue: Vector3, endValue: Vector3, gradient: number): Vector3;
+ vector2InterpolateFunction(startValue: Vector2, endValue: Vector2, gradient: number): Vector2;
+ color3InterpolateFunction(startValue: Color3, endValue: Color3, gradient: number): Color3;
+ matrixInterpolateFunction(startValue: Matrix, endValue: Matrix, gradient: number): Matrix;
+ clone(): Animation;
+ setKeys(values: Array): void;
+ private _getKeyValue(value);
+ private _interpolate(currentFrame, repeatCount, loopMode, offsetValue?, highLimitValue?);
+ animate(delay: number, from: number, to: number, loop: boolean, speedRatio: number): boolean;
+ private static _ANIMATIONTYPE_FLOAT;
+ private static _ANIMATIONTYPE_VECTOR3;
+ private static _ANIMATIONTYPE_QUATERNION;
+ private static _ANIMATIONTYPE_MATRIX;
+ private static _ANIMATIONTYPE_COLOR3;
+ private static _ANIMATIONTYPE_VECTOR2;
+ private static _ANIMATIONLOOPMODE_RELATIVE;
+ private static _ANIMATIONLOOPMODE_CYCLE;
+ private static _ANIMATIONLOOPMODE_CONSTANT;
+ static ANIMATIONTYPE_FLOAT: number;
+ static ANIMATIONTYPE_VECTOR3: number;
+ static ANIMATIONTYPE_VECTOR2: number;
+ static ANIMATIONTYPE_QUATERNION: number;
+ static ANIMATIONTYPE_MATRIX: number;
+ static ANIMATIONTYPE_COLOR3: number;
+ static ANIMATIONLOOPMODE_RELATIVE: number;
+ static ANIMATIONLOOPMODE_CYCLE: number;
+ static ANIMATIONLOOPMODE_CONSTANT: number;
+ }
+}
+
+declare module BABYLON {
+ interface IEasingFunction {
+ ease(gradient: number): number;
+ }
+ class EasingFunction implements IEasingFunction {
+ private static _EASINGMODE_EASEIN;
+ private static _EASINGMODE_EASEOUT;
+ private static _EASINGMODE_EASEINOUT;
+ static EASINGMODE_EASEIN: number;
+ static EASINGMODE_EASEOUT: number;
+ static EASINGMODE_EASEINOUT: number;
+ private _easingMode;
+ setEasingMode(easingMode: number): void;
+ getEasingMode(): number;
+ easeInCore(gradient: number): number;
+ ease(gradient: number): number;
+ }
+ class CircleEase extends EasingFunction implements IEasingFunction {
+ easeInCore(gradient: number): number;
+ }
+ class BackEase extends EasingFunction implements IEasingFunction {
+ amplitude: number;
+ constructor(amplitude?: number);
+ easeInCore(gradient: number): number;
+ }
+ class BounceEase extends EasingFunction implements IEasingFunction {
+ bounces: number;
+ bounciness: number;
+ constructor(bounces?: number, bounciness?: number);
+ easeInCore(gradient: number): number;
+ }
+ class CubicEase extends EasingFunction implements IEasingFunction {
+ easeInCore(gradient: number): number;
+ }
+ class ElasticEase extends EasingFunction implements IEasingFunction {
+ oscillations: number;
+ springiness: number;
+ constructor(oscillations?: number, springiness?: number);
+ easeInCore(gradient: number): number;
+ }
+ class ExponentialEase extends EasingFunction implements IEasingFunction {
+ exponent: number;
+ constructor(exponent?: number);
+ easeInCore(gradient: number): number;
+ }
+ class PowerEase extends EasingFunction implements IEasingFunction {
+ power: number;
+ constructor(power?: number);
+ easeInCore(gradient: number): number;
+ }
+ class QuadraticEase extends EasingFunction implements IEasingFunction {
+ easeInCore(gradient: number): number;
+ }
+ class QuarticEase extends EasingFunction implements IEasingFunction {
+ easeInCore(gradient: number): number;
+ }
+ class QuinticEase extends EasingFunction implements IEasingFunction {
+ easeInCore(gradient: number): number;
+ }
+ class SineEase extends EasingFunction implements IEasingFunction {
+ easeInCore(gradient: number): number;
+ }
+ class BezierCurveEase extends EasingFunction implements IEasingFunction {
+ x1: number;
+ y1: number;
+ x2: number;
+ y2: number;
+ constructor(x1?: number, y1?: number, x2?: number, y2?: number);
+ easeInCore(gradient: number): number;
+ }
+}
+
+declare module BABYLON {
+ class Analyser {
+ SMOOTHING: number;
+ FFT_SIZE: number;
+ BARGRAPHAMPLITUDE: number;
+ DEBUGCANVASPOS: {
+ x: number;
+ y: number;
+ };
+ DEBUGCANVASSIZE: {
+ width: number;
+ height: number;
+ };
+ private _byteFreqs;
+ private _byteTime;
+ private _floatFreqs;
+ private _webAudioAnalyser;
+ private _debugCanvas;
+ private _debugCanvasContext;
+ private _scene;
+ private _registerFunc;
+ private _audioEngine;
+ constructor(scene: Scene);
+ getFrequencyBinCount(): number;
+ getByteFrequencyData(): Uint8Array;
+ getByteTimeDomainData(): Uint8Array;
+ getFloatFrequencyData(): Uint8Array;
+ drawDebugCanvas(): void;
+ stopDebugCanvas(): void;
+ connectAudioNodes(inputAudioNode: AudioNode, outputAudioNode: AudioNode): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class AudioEngine {
+ private _audioContext;
+ private _audioContextInitialized;
+ canUseWebAudio: boolean;
+ masterGain: GainNode;
+ private _connectedAnalyser;
+ WarnedWebAudioUnsupported: boolean;
+ audioContext: AudioContext;
+ constructor();
+ private _initializeAudioContext();
+ dispose(): void;
+ getGlobalVolume(): number;
+ setGlobalVolume(newVolume: number): void;
+ connectToAnalyser(analyser: Analyser): void;
+ }
+}
+
+declare module BABYLON {
+ class Sound {
+ name: string;
+ autoplay: boolean;
+ loop: boolean;
+ useCustomAttenuation: boolean;
+ soundTrackId: number;
+ spatialSound: boolean;
+ refDistance: number;
+ rolloffFactor: number;
+ maxDistance: number;
+ distanceModel: string;
+ private _panningModel;
+ onended: () => any;
+ private _playbackRate;
+ private _startTime;
+ private _startOffset;
+ private _position;
+ private _localDirection;
+ private _volume;
+ private _isLoaded;
+ private _isReadyToPlay;
+ isPlaying: boolean;
+ isPaused: boolean;
+ private _isDirectional;
+ private _readyToPlayCallback;
+ private _audioBuffer;
+ private _soundSource;
+ private _soundPanner;
+ private _soundGain;
+ private _inputAudioNode;
+ private _ouputAudioNode;
+ private _coneInnerAngle;
+ private _coneOuterAngle;
+ private _coneOuterGain;
+ private _scene;
+ private _connectedMesh;
+ private _customAttenuationFunction;
+ private _registerFunc;
+ private _isOutputConnected;
+ /**
+ * Create a sound and attach it to a scene
+ * @param name Name of your sound
+ * @param urlOrArrayBuffer Url to the sound to load async or ArrayBuffer
+ * @param readyToPlayCallback Provide a callback function if you'd like to load your code once the sound is ready to be played
+ * @param options Objects to provide with the current available options: autoplay, loop, volume, spatialSound, maxDistance, rolloffFactor, refDistance, distanceModel, panningModel
+ */
+ constructor(name: string, urlOrArrayBuffer: any, scene: Scene, readyToPlayCallback?: () => void, options?: any);
+ dispose(): void;
+ private _soundLoaded(audioData);
+ setAudioBuffer(audioBuffer: AudioBuffer): void;
+ updateOptions(options: any): void;
+ private _createSpatialParameters();
+ private _updateSpatialParameters();
+ switchPanningModelToHRTF(): void;
+ switchPanningModelToEqualPower(): void;
+ private _switchPanningModel();
+ connectToSoundTrackAudioNode(soundTrackAudioNode: AudioNode): void;
+ /**
+ * Transform this sound into a directional source
+ * @param coneInnerAngle Size of the inner cone in degree
+ * @param coneOuterAngle Size of the outer cone in degree
+ * @param coneOuterGain Volume of the sound outside the outer cone (between 0.0 and 1.0)
+ */
+ setDirectionalCone(coneInnerAngle: number, coneOuterAngle: number, coneOuterGain: number): void;
+ setPosition(newPosition: Vector3): void;
+ setLocalDirectionToMesh(newLocalDirection: Vector3): void;
+ private _updateDirection();
+ updateDistanceFromListener(): void;
+ setAttenuationFunction(callback: (currentVolume: number, currentDistance: number, maxDistance: number, refDistance: number, rolloffFactor: number) => number): void;
+ /**
+ * Play the sound
+ * @param time (optional) Start the sound after X seconds. Start immediately (0) by default.
+ */
+ play(time?: number): void;
+ private _onended();
+ /**
+ * Stop the sound
+ * @param time (optional) Stop the sound after X seconds. Stop immediately (0) by default.
+ */
+ stop(time?: number): void;
+ pause(): void;
+ setVolume(newVolume: number, time?: number): void;
+ setPlaybackRate(newPlaybackRate: number): void;
+ getVolume(): number;
+ attachToMesh(meshToConnectTo: AbstractMesh): void;
+ private _onRegisterAfterWorldMatrixUpdate(connectedMesh);
+ }
+}
+
+declare module BABYLON {
+ class SoundTrack {
+ private _audioEngine;
+ private _outputAudioNode;
+ private _inputAudioNode;
+ private _trackConvolver;
+ private _scene;
+ id: number;
+ soundCollection: Array;
+ private _isMainTrack;
+ private _connectedAnalyser;
+ constructor(scene: Scene, options?: any);
+ dispose(): void;
+ AddSound(sound: Sound): void;
+ RemoveSound(sound: Sound): void;
+ setVolume(newVolume: number): void;
+ switchPanningModelToHRTF(): void;
+ switchPanningModelToEqualPower(): void;
+ connectToAnalyser(analyser: Analyser): void;
+ }
+}
+
+declare module BABYLON {
+ class Bone extends Node {
+ name: string;
+ children: Bone[];
+ animations: Animation[];
+ private _skeleton;
+ private _matrix;
+ private _baseMatrix;
+ private _worldTransform;
+ private _absoluteTransform;
+ private _invertedAbsoluteTransform;
+ private _parent;
+ constructor(name: string, skeleton: Skeleton, parentBone: Bone, matrix: Matrix);
+ getParent(): Bone;
+ getLocalMatrix(): Matrix;
+ getBaseMatrix(): Matrix;
+ getWorldMatrix(): Matrix;
+ getInvertedAbsoluteTransform(): Matrix;
+ getAbsoluteMatrix(): Matrix;
+ updateMatrix(matrix: Matrix): void;
+ private _updateDifferenceMatrix();
+ markAsDirty(): void;
+ }
+}
+
+declare module BABYLON {
+ class Skeleton {
+ name: string;
+ id: string;
+ bones: Bone[];
+ private _scene;
+ private _isDirty;
+ private _transformMatrices;
+ private _animatables;
+ private _identity;
+ constructor(name: string, id: string, scene: Scene);
+ getTransformMatrices(): Float32Array;
+ getScene(): Scene;
+ _markAsDirty(): void;
+ prepare(): void;
+ getAnimatables(): IAnimatable[];
+ clone(name: string, id: string): Skeleton;
+ }
+}
+
+declare module BABYLON {
+ class ArcRotateCamera extends TargetCamera {
+ alpha: number;
+ beta: number;
+ radius: number;
+ target: any;
+ inertialAlphaOffset: number;
+ inertialBetaOffset: number;
+ inertialRadiusOffset: number;
+ lowerAlphaLimit: any;
+ upperAlphaLimit: any;
+ lowerBetaLimit: number;
+ upperBetaLimit: number;
+ lowerRadiusLimit: any;
+ upperRadiusLimit: any;
+ angularSensibilityX: number;
+ angularSensibilityY: number;
+ wheelPrecision: number;
+ pinchPrecision: number;
+ panningSensibility: number;
+ inertialPanningX: number;
+ inertialPanningY: number;
+ keysUp: number[];
+ keysDown: number[];
+ keysLeft: number[];
+ keysRight: number[];
+ zoomOnFactor: number;
+ targetScreenOffset: Vector2;
+ pinchInwards: boolean;
+ allowUpsideDown: boolean;
+ private _keys;
+ _viewMatrix: Matrix;
+ private _attachedElement;
+ private _onContextMenu;
+ private _onPointerDown;
+ private _onPointerUp;
+ private _onPointerMove;
+ private _wheel;
+ private _onMouseMove;
+ private _onKeyDown;
+ private _onKeyUp;
+ private _onLostFocus;
+ _reset: () => void;
+ private _onGestureStart;
+ private _onGesture;
+ private _MSGestureHandler;
+ private _localDirection;
+ private _transformedDirection;
+ private _isRightClick;
+ private _isCtrlPushed;
+ onCollide: (collidedMesh: AbstractMesh) => void;
+ checkCollisions: boolean;
+ collisionRadius: Vector3;
+ private _collider;
+ private _previousPosition;
+ private _collisionVelocity;
+ private _newPosition;
+ private _previousAlpha;
+ private _previousBeta;
+ private _previousRadius;
+ private _collisionTriggered;
+ angularSensibility: number;
+ constructor(name: string, alpha: number, beta: number, radius: number, target: any, scene: Scene);
+ _getTargetPosition(): Vector3;
+ _initCache(): void;
+ _updateCache(ignoreParentClass?: boolean): void;
+ _isSynchronizedViewMatrix(): boolean;
+ attachControl(element: HTMLElement, noPreventDefault?: boolean, useCtrlForPanning?: boolean): void;
+ detachControl(element: HTMLElement): void;
+ _checkInputs(): void;
+ private _checkLimits();
+ setPosition(position: Vector3): void;
+ setTarget(target: Vector3): void;
+ _getViewMatrix(): Matrix;
+ private _onCollisionPositionChange;
+ zoomOn(meshes?: AbstractMesh[], doNotUpdateMaxZ?: boolean): void;
+ focusOn(meshesOrMinMaxVectorAndDistance: any, doNotUpdateMaxZ?: boolean): void;
+ /**
+ * @override
+ * Override Camera.createRigCamera
+ */
+ createRigCamera(name: string, cameraIndex: number): Camera;
+ /**
+ * @override
+ * Override Camera._updateRigCameras
+ */
+ _updateRigCameras(): void;
+ }
+}
+
+declare module BABYLON {
+ class VRCameraMetrics {
+ hResolution: number;
+ vResolution: number;
+ hScreenSize: number;
+ vScreenSize: number;
+ vScreenCenter: number;
+ eyeToScreenDistance: number;
+ lensSeparationDistance: number;
+ interpupillaryDistance: number;
+ distortionK: number[];
+ chromaAbCorrection: number[];
+ postProcessScaleFactor: number;
+ lensCenterOffset: number;
+ compensateDistorsion: boolean;
+ aspectRatio: number;
+ aspectRatioFov: number;
+ leftHMatrix: Matrix;
+ rightHMatrix: Matrix;
+ leftPreViewMatrix: Matrix;
+ rightPreViewMatrix: Matrix;
+ static GetDefault(): VRCameraMetrics;
+ }
+ class Camera extends Node {
+ position: Vector3;
+ private static _PERSPECTIVE_CAMERA;
+ private static _ORTHOGRAPHIC_CAMERA;
+ private static _FOVMODE_VERTICAL_FIXED;
+ private static _FOVMODE_HORIZONTAL_FIXED;
+ private static _RIG_MODE_NONE;
+ private static _RIG_MODE_STEREOSCOPIC_ANAGLYPH;
+ private static _RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL;
+ private static _RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED;
+ private static _RIG_MODE_STEREOSCOPIC_OVERUNDER;
+ private static _RIG_MODE_VR;
+ static PERSPECTIVE_CAMERA: number;
+ static ORTHOGRAPHIC_CAMERA: number;
+ static FOVMODE_VERTICAL_FIXED: number;
+ static FOVMODE_HORIZONTAL_FIXED: number;
+ static RIG_MODE_NONE: number;
+ static RIG_MODE_STEREOSCOPIC_ANAGLYPH: number;
+ static RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL: number;
+ static RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED: number;
+ static RIG_MODE_STEREOSCOPIC_OVERUNDER: number;
+ static RIG_MODE_VR: number;
+ upVector: Vector3;
+ orthoLeft: any;
+ orthoRight: any;
+ orthoBottom: any;
+ orthoTop: any;
+ fov: number;
+ minZ: number;
+ maxZ: number;
+ inertia: number;
+ mode: number;
+ isIntermediate: boolean;
+ viewport: Viewport;
+ layerMask: number;
+ fovMode: number;
+ cameraRigMode: number;
+ _cameraRigParams: any;
+ _rigCameras: Camera[];
+ private _computedViewMatrix;
+ _projectionMatrix: Matrix;
+ private _worldMatrix;
+ _postProcesses: PostProcess[];
+ _postProcessesTakenIndices: any[];
+ _activeMeshes: SmartArray;
+ private _globalPosition;
+ constructor(name: string, position: Vector3, scene: Scene);
+ globalPosition: Vector3;
+ getActiveMeshes(): SmartArray;
+ isActiveMesh(mesh: Mesh): boolean;
+ _initCache(): void;
+ _updateCache(ignoreParentClass?: boolean): void;
+ _updateFromScene(): void;
+ _isSynchronized(): boolean;
+ _isSynchronizedViewMatrix(): boolean;
+ _isSynchronizedProjectionMatrix(): boolean;
+ attachControl(element: HTMLElement): void;
+ detachControl(element: HTMLElement): void;
+ _update(): void;
+ _checkInputs(): void;
+ attachPostProcess(postProcess: PostProcess, insertAt?: number): number;
+ detachPostProcess(postProcess: PostProcess, atIndices?: any): number[];
+ getWorldMatrix(): Matrix;
+ _getViewMatrix(): Matrix;
+ getViewMatrix(force?: boolean): Matrix;
+ _computeViewMatrix(force?: boolean): Matrix;
+ getProjectionMatrix(force?: boolean): Matrix;
+ dispose(): void;
+ setCameraRigMode(mode: number, rigParams: any): void;
+ private _getVRProjectionMatrix();
+ setCameraRigParameter(name: string, value: any): void;
+ /**
+ * May needs to be overridden by children so sub has required properties to be copied
+ */
+ createRigCamera(name: string, cameraIndex: number): Camera;
+ /**
+ * May needs to be overridden by children
+ */
+ _updateRigCameras(): void;
+ }
+}
+
+declare module BABYLON {
+ class DeviceOrientationCamera extends FreeCamera {
+ private _offsetX;
+ private _offsetY;
+ private _orientationGamma;
+ private _orientationBeta;
+ private _initialOrientationGamma;
+ private _initialOrientationBeta;
+ private _attachedCanvas;
+ private _orientationChanged;
+ angularSensibility: number;
+ moveSensibility: number;
+ constructor(name: string, position: Vector3, scene: Scene);
+ attachControl(canvas: HTMLCanvasElement, noPreventDefault: boolean): void;
+ detachControl(canvas: HTMLCanvasElement): void;
+ _checkInputs(): void;
+ }
+}
+
+declare module BABYLON {
+ class FollowCamera extends TargetCamera {
+ radius: number;
+ rotationOffset: number;
+ heightOffset: number;
+ cameraAcceleration: number;
+ maxCameraSpeed: number;
+ target: AbstractMesh;
+ constructor(name: string, position: Vector3, scene: Scene);
+ private getRadians(degrees);
+ private follow(cameraTarget);
+ _checkInputs(): void;
+ }
+ class ArcFollowCamera extends TargetCamera {
+ alpha: number;
+ beta: number;
+ radius: number;
+ target: AbstractMesh;
+ private _cartesianCoordinates;
+ constructor(name: string, alpha: number, beta: number, radius: number, target: AbstractMesh, scene: Scene);
+ private follow();
+ _checkInputs(): void;
+ }
+}
+
+declare module BABYLON {
+ class FreeCamera extends TargetCamera {
+ ellipsoid: Vector3;
+ keysUp: number[];
+ keysDown: number[];
+ keysLeft: number[];
+ keysRight: number[];
+ checkCollisions: boolean;
+ applyGravity: boolean;
+ angularSensibility: number;
+ onCollide: (collidedMesh: AbstractMesh) => void;
+ private _keys;
+ private _collider;
+ private _needMoveForGravity;
+ private _oldPosition;
+ private _diffPosition;
+ private _newPosition;
+ private _attachedElement;
+ private _localDirection;
+ private _transformedDirection;
+ private _onMouseDown;
+ private _onMouseUp;
+ private _onMouseOut;
+ private _onMouseMove;
+ private _onKeyDown;
+ private _onKeyUp;
+ _onLostFocus: (e: FocusEvent) => any;
+ _waitingLockedTargetId: string;
+ constructor(name: string, position: Vector3, scene: Scene);
+ attachControl(element: HTMLElement, noPreventDefault?: boolean): void;
+ detachControl(element: HTMLElement): void;
+ _collideWithWorld(velocity: Vector3): void;
+ private _onCollisionPositionChange;
+ _checkInputs(): void;
+ _decideIfNeedsToMove(): boolean;
+ _updatePosition(): void;
+ }
+}
+
+declare module BABYLON {
+ class GamepadCamera extends FreeCamera {
+ private _gamepad;
+ private _gamepads;
+ angularSensibility: number;
+ moveSensibility: number;
+ constructor(name: string, position: Vector3, scene: Scene);
+ private _onNewGameConnected(gamepad);
+ _checkInputs(): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class AnaglyphFreeCamera extends FreeCamera {
+ constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
+ }
+ class AnaglyphArcRotateCamera extends ArcRotateCamera {
+ constructor(name: string, alpha: number, beta: number, radius: number, target: any, interaxialDistance: number, scene: Scene);
+ }
+ class AnaglyphGamepadCamera extends GamepadCamera {
+ constructor(name: string, position: Vector3, interaxialDistance: number, scene: Scene);
+ }
+ class StereoscopicFreeCamera extends FreeCamera {
+ constructor(name: string, position: Vector3, interaxialDistance: number, isSideBySide: boolean, scene: Scene);
+ }
+ class StereoscopicArcRotateCamera extends ArcRotateCamera {
+ constructor(name: string, alpha: number, beta: number, radius: number, target: any, interaxialDistance: number, isSideBySide: boolean, scene: Scene);
+ }
+ class StereoscopicGamepadCamera extends GamepadCamera {
+ constructor(name: string, position: Vector3, interaxialDistance: number, isSideBySide: boolean, scene: Scene);
+ }
+}
+
+declare module BABYLON {
+ class TargetCamera extends Camera {
+ cameraDirection: Vector3;
+ cameraRotation: Vector2;
+ rotation: Vector3;
+ speed: number;
+ noRotationConstraint: boolean;
+ lockedTarget: any;
+ _currentTarget: Vector3;
+ _viewMatrix: Matrix;
+ _camMatrix: Matrix;
+ _cameraTransformMatrix: Matrix;
+ _cameraRotationMatrix: Matrix;
+ private _rigCamTransformMatrix;
+ _referencePoint: Vector3;
+ _transformedReferencePoint: Vector3;
+ _lookAtTemp: Matrix;
+ _tempMatrix: Matrix;
+ _reset: () => void;
+ _waitingLockedTargetId: string;
+ constructor(name: string, position: Vector3, scene: Scene);
+ getFrontPosition(distance: number): Vector3;
+ _getLockedTargetPosition(): Vector3;
+ _initCache(): void;
+ _updateCache(ignoreParentClass?: boolean): void;
+ _isSynchronizedViewMatrix(): boolean;
+ _computeLocalCameraSpeed(): number;
+ setTarget(target: Vector3): void;
+ getTarget(): Vector3;
+ _decideIfNeedsToMove(): boolean;
+ _updatePosition(): void;
+ _checkInputs(): void;
+ _getViewMatrix(): Matrix;
+ _getVRViewMatrix(): Matrix;
+ /**
+ * @override
+ * Override Camera.createRigCamera
+ */
+ createRigCamera(name: string, cameraIndex: number): Camera;
+ /**
+ * @override
+ * Override Camera._updateRigCameras
+ */
+ _updateRigCameras(): void;
+ private _getRigCamPosition(halfSpace, result);
+ }
+}
+
+declare module BABYLON {
+ class TouchCamera extends FreeCamera {
+ private _offsetX;
+ private _offsetY;
+ private _pointerCount;
+ private _pointerPressed;
+ private _attachedCanvas;
+ private _onPointerDown;
+ private _onPointerUp;
+ private _onPointerMove;
+ angularSensibility: number;
+ moveSensibility: number;
+ constructor(name: string, position: Vector3, scene: Scene);
+ attachControl(canvas: HTMLCanvasElement, noPreventDefault: boolean): void;
+ detachControl(canvas: HTMLCanvasElement): void;
+ _checkInputs(): void;
+ }
+}
+
+declare module BABYLON {
+ class VirtualJoysticksCamera extends FreeCamera {
+ private _leftjoystick;
+ private _rightjoystick;
+ constructor(name: string, position: Vector3, scene: Scene);
+ getLeftJoystick(): VirtualJoystick;
+ getRightJoystick(): VirtualJoystick;
+ _checkInputs(): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class Collider {
+ radius: Vector3;
+ retry: number;
+ velocity: Vector3;
+ basePoint: Vector3;
+ epsilon: number;
+ collisionFound: boolean;
+ velocityWorldLength: number;
+ basePointWorld: Vector3;
+ velocityWorld: Vector3;
+ normalizedVelocity: Vector3;
+ initialVelocity: Vector3;
+ initialPosition: Vector3;
+ nearestDistance: number;
+ intersectionPoint: Vector3;
+ collidedMesh: AbstractMesh;
+ private _collisionPoint;
+ private _planeIntersectionPoint;
+ private _tempVector;
+ private _tempVector2;
+ private _tempVector3;
+ private _tempVector4;
+ private _edge;
+ private _baseToVertex;
+ private _destinationPoint;
+ private _slidePlaneNormal;
+ private _displacementVector;
+ _initialize(source: Vector3, dir: Vector3, e: number): void;
+ _checkPointInTriangle(point: Vector3, pa: Vector3, pb: Vector3, pc: Vector3, n: Vector3): boolean;
+ _canDoCollision(sphereCenter: Vector3, sphereRadius: number, vecMin: Vector3, vecMax: Vector3): boolean;
+ _testTriangle(faceIndex: number, trianglePlaneArray: Array, p1: Vector3, p2: Vector3, p3: Vector3, hasMaterial: boolean): void;
+ _collide(trianglePlaneArray: Array, pts: Vector3[], indices: number[], indexStart: number, indexEnd: number, decal: number, hasMaterial: boolean): void;
+ _getResponse(pos: Vector3, vel: Vector3): void;
+ }
+}
+
+declare module BABYLON {
+ var CollisionWorker: string;
+ interface ICollisionCoordinator {
+ getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
+ init(scene: Scene): void;
+ destroy(): void;
+ onMeshAdded(mesh: AbstractMesh): any;
+ onMeshUpdated(mesh: AbstractMesh): any;
+ onMeshRemoved(mesh: AbstractMesh): any;
+ onGeometryAdded(geometry: Geometry): any;
+ onGeometryUpdated(geometry: Geometry): any;
+ onGeometryDeleted(geometry: Geometry): any;
+ }
+ interface SerializedMesh {
+ id: string;
+ name: string;
+ uniqueId: number;
+ geometryId: string;
+ sphereCenter: Array;
+ sphereRadius: number;
+ boxMinimum: Array;
+ boxMaximum: Array;
+ worldMatrixFromCache: any;
+ subMeshes: Array;
+ checkCollisions: boolean;
+ }
+ interface SerializedSubMesh {
+ position: number;
+ verticesStart: number;
+ verticesCount: number;
+ indexStart: number;
+ indexCount: number;
+ hasMaterial: boolean;
+ sphereCenter: Array;
+ sphereRadius: number;
+ boxMinimum: Array;
+ boxMaximum: Array;
+ }
+ interface SerializedGeometry {
+ id: string;
+ positions: Float32Array;
+ indices: Int32Array;
+ normals: Float32Array;
+ }
+ interface BabylonMessage {
+ taskType: WorkerTaskType;
+ payload: InitPayload | CollidePayload | UpdatePayload;
+ }
+ interface SerializedColliderToWorker {
+ position: Array;
+ velocity: Array;
+ radius: Array;
+ }
+ enum WorkerTaskType {
+ INIT = 0,
+ UPDATE = 1,
+ COLLIDE = 2,
+ }
+ interface WorkerReply {
+ error: WorkerReplyType;
+ taskType: WorkerTaskType;
+ payload?: any;
+ }
+ interface CollisionReplyPayload {
+ newPosition: Array;
+ collisionId: number;
+ collidedMeshUniqueId: number;
+ }
+ interface InitPayload {
+ }
+ interface CollidePayload {
+ collisionId: number;
+ collider: SerializedColliderToWorker;
+ maximumRetry: number;
+ excludedMeshUniqueId?: number;
+ }
+ interface UpdatePayload {
+ updatedMeshes: {
+ [n: number]: SerializedMesh;
+ };
+ updatedGeometries: {
+ [s: string]: SerializedGeometry;
+ };
+ removedMeshes: Array;
+ removedGeometries: Array;
+ }
+ enum WorkerReplyType {
+ SUCCESS = 0,
+ UNKNOWN_ERROR = 1,
+ }
+ class CollisionCoordinatorWorker implements ICollisionCoordinator {
+ private _scene;
+ private _scaledPosition;
+ private _scaledVelocity;
+ private _collisionsCallbackArray;
+ private _init;
+ private _runningUpdated;
+ private _runningCollisionTask;
+ private _worker;
+ private _addUpdateMeshesList;
+ private _addUpdateGeometriesList;
+ private _toRemoveMeshesArray;
+ private _toRemoveGeometryArray;
+ constructor();
+ static SerializeMesh: (mesh: AbstractMesh) => SerializedMesh;
+ static SerializeGeometry: (geometry: Geometry) => SerializedGeometry;
+ getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
+ init(scene: Scene): void;
+ destroy(): void;
+ onMeshAdded(mesh: AbstractMesh): void;
+ onMeshUpdated: (mesh: AbstractMesh) => void;
+ onMeshRemoved(mesh: AbstractMesh): void;
+ onGeometryAdded(geometry: Geometry): void;
+ onGeometryUpdated: (geometry: Geometry) => void;
+ onGeometryDeleted(geometry: Geometry): void;
+ private _afterRender;
+ private _onMessageFromWorker;
+ }
+ class CollisionCoordinatorLegacy implements ICollisionCoordinator {
+ private _scene;
+ private _scaledPosition;
+ private _scaledVelocity;
+ private _finalPosition;
+ getNewPosition(position: Vector3, velocity: Vector3, collider: Collider, maximumRetry: number, excludedMesh: AbstractMesh, onNewPosition: (collisionIndex: number, newPosition: Vector3, collidedMesh?: AbstractMesh) => void, collisionIndex: number): void;
+ init(scene: Scene): void;
+ destroy(): void;
+ onMeshAdded(mesh: AbstractMesh): void;
+ onMeshUpdated(mesh: AbstractMesh): void;
+ onMeshRemoved(mesh: AbstractMesh): void;
+ onGeometryAdded(geometry: Geometry): void;
+ onGeometryUpdated(geometry: Geometry): void;
+ onGeometryDeleted(geometry: Geometry): void;
+ private _collideWithWorld(position, velocity, collider, maximumRetry, finalPosition, excludedMesh?);
+ }
+}
+
+declare module BABYLON {
+ var WorkerIncluded: boolean;
+ class CollisionCache {
+ private _meshes;
+ private _geometries;
+ getMeshes(): {
+ [n: number]: SerializedMesh;
+ };
+ getGeometries(): {
+ [s: number]: SerializedGeometry;
+ };
+ getMesh(id: any): SerializedMesh;
+ addMesh(mesh: SerializedMesh): void;
+ getGeometry(id: string): SerializedGeometry;
+ addGeometry(geometry: SerializedGeometry): void;
+ }
+ class CollideWorker {
+ collider: Collider;
+ private _collisionCache;
+ private finalPosition;
+ private collisionsScalingMatrix;
+ private collisionTranformationMatrix;
+ constructor(collider: Collider, _collisionCache: CollisionCache, finalPosition: Vector3);
+ collideWithWorld(position: Vector3, velocity: Vector3, maximumRetry: number, excludedMeshUniqueId?: number): void;
+ private checkCollision(mesh);
+ private processCollisionsForSubMeshes(transformMatrix, mesh);
+ private collideForSubMesh(subMesh, transformMatrix, meshGeometry);
+ private checkSubmeshCollision(subMesh);
+ }
+ interface ICollisionDetector {
+ onInit(payload: InitPayload): void;
+ onUpdate(payload: UpdatePayload): void;
+ onCollision(payload: CollidePayload): void;
+ }
+ class CollisionDetectorTransferable implements ICollisionDetector {
+ private _collisionCache;
+ onInit(payload: InitPayload): void;
+ onUpdate(payload: UpdatePayload): void;
+ onCollision(payload: CollidePayload): void;
+ }
+}
+
+declare module BABYLON {
+ class IntersectionInfo {
+ bu: number;
+ bv: number;
+ distance: number;
+ faceId: number;
+ subMeshId: number;
+ constructor(bu: number, bv: number, distance: number);
+ }
+ class PickingInfo {
+ hit: boolean;
+ distance: number;
+ pickedPoint: Vector3;
+ pickedMesh: AbstractMesh;
+ bu: number;
+ bv: number;
+ faceId: number;
+ subMeshId: number;
+ getNormal(useWorldCoordinates?: boolean, useVerticesNormals?: boolean): Vector3;
+ getTextureCoordinates(): Vector2;
+ }
+}
+
+declare module BABYLON {
+ class BoundingBox {
+ minimum: Vector3;
+ maximum: Vector3;
+ vectors: Vector3[];
+ center: Vector3;
+ extendSize: Vector3;
+ directions: Vector3[];
+ vectorsWorld: Vector3[];
+ minimumWorld: Vector3;
+ maximumWorld: Vector3;
+ private _worldMatrix;
+ constructor(minimum: Vector3, maximum: Vector3);
+ getWorldMatrix(): Matrix;
+ _update(world: Matrix): void;
+ isInFrustum(frustumPlanes: Plane[]): boolean;
+ isCompletelyInFrustum(frustumPlanes: Plane[]): boolean;
+ intersectsPoint(point: Vector3): boolean;
+ intersectsSphere(sphere: BoundingSphere): boolean;
+ intersectsMinMax(min: Vector3, max: Vector3): boolean;
+ static Intersects(box0: BoundingBox, box1: BoundingBox): boolean;
+ static IntersectsSphere(minPoint: Vector3, maxPoint: Vector3, sphereCenter: Vector3, sphereRadius: number): boolean;
+ static IsCompletelyInFrustum(boundingVectors: Vector3[], frustumPlanes: Plane[]): boolean;
+ static IsInFrustum(boundingVectors: Vector3[], frustumPlanes: Plane[]): boolean;
+ }
+}
+
+declare module BABYLON {
+ class BoundingInfo {
+ minimum: Vector3;
+ maximum: Vector3;
+ boundingBox: BoundingBox;
+ boundingSphere: BoundingSphere;
+ constructor(minimum: Vector3, maximum: Vector3);
+ _update(world: Matrix): void;
+ isInFrustum(frustumPlanes: Plane[]): boolean;
+ isCompletelyInFrustum(frustumPlanes: Plane[]): boolean;
+ _checkCollision(collider: Collider): boolean;
+ intersectsPoint(point: Vector3): boolean;
+ intersects(boundingInfo: BoundingInfo, precise: boolean): boolean;
+ }
+}
+
+declare module BABYLON {
+ class BoundingSphere {
+ minimum: Vector3;
+ maximum: Vector3;
+ center: Vector3;
+ radius: number;
+ centerWorld: Vector3;
+ radiusWorld: number;
+ private _tempRadiusVector;
+ constructor(minimum: Vector3, maximum: Vector3);
+ _update(world: Matrix): void;
+ isInFrustum(frustumPlanes: Plane[]): boolean;
+ intersectsPoint(point: Vector3): boolean;
+ static Intersects(sphere0: BoundingSphere, sphere1: BoundingSphere): boolean;
+ }
+}
+
+declare module BABYLON {
+ class DebugLayer {
+ private _scene;
+ private _camera;
+ private _transformationMatrix;
+ private _enabled;
+ private _labelsEnabled;
+ private _displayStatistics;
+ private _displayTree;
+ private _displayLogs;
+ private _globalDiv;
+ private _statsDiv;
+ private _statsSubsetDiv;
+ private _optionsDiv;
+ private _optionsSubsetDiv;
+ private _logDiv;
+ private _logSubsetDiv;
+ private _treeDiv;
+ private _treeSubsetDiv;
+ private _drawingCanvas;
+ private _drawingContext;
+ private _syncPositions;
+ private _syncData;
+ private _syncUI;
+ private _onCanvasClick;
+ private _clickPosition;
+ private _ratio;
+ private _identityMatrix;
+ private _showUI;
+ private _needToRefreshMeshesTree;
+ shouldDisplayLabel: (node: Node) => boolean;
+ shouldDisplayAxis: (mesh: Mesh) => boolean;
+ axisRatio: number;
+ accentColor: string;
+ customStatsFunction: () => string;
+ constructor(scene: Scene);
+ private _refreshMeshesTreeContent();
+ private _renderSingleAxis(zero, unit, unitText, label, color);
+ private _renderAxis(projectedPosition, mesh, globalViewport);
+ private _renderLabel(text, projectedPosition, labelOffset, onClick, getFillStyle);
+ private _isClickInsideRect(x, y, width, height);
+ isVisible(): boolean;
+ hide(): void;
+ show(showUI?: boolean, camera?: Camera): void;
+ private _clearLabels();
+ private _generateheader(root, text);
+ private _generateTexBox(root, title, color);
+ private _generateAdvancedCheckBox(root, leftTitle, rightTitle, initialState, task, tag?);
+ private _generateCheckBox(root, title, initialState, task, tag?);
+ private _generateButton(root, title, task, tag?);
+ private _generateRadio(root, title, name, initialState, task, tag?);
+ private _generateDOMelements();
+ private _displayStats();
+ }
+}
+
+declare module BABYLON {
+ class Layer {
+ name: string;
+ texture: Texture;
+ isBackground: boolean;
+ color: Color4;
+ onDispose: () => void;
+ private _scene;
+ private _vertexDeclaration;
+ private _vertexStrideSize;
+ private _vertexBuffer;
+ private _indexBuffer;
+ private _effect;
+ constructor(name: string, imgUrl: string, scene: Scene, isBackground?: boolean, color?: Color4);
+ render(): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class LensFlare {
+ size: number;
+ position: number;
+ color: Color3;
+ texture: Texture;
+ private _system;
+ constructor(size: number, position: number, color: any, imgUrl: string, system: LensFlareSystem);
+ dispose: () => void;
+ }
+}
+
+declare module BABYLON {
+ class LensFlareSystem {
+ name: string;
+ lensFlares: LensFlare[];
+ borderLimit: number;
+ meshesSelectionPredicate: (mesh: Mesh) => boolean;
+ layerMask: number;
+ private _scene;
+ private _emitter;
+ private _vertexDeclaration;
+ private _vertexStrideSize;
+ private _vertexBuffer;
+ private _indexBuffer;
+ private _effect;
+ private _positionX;
+ private _positionY;
+ private _isEnabled;
+ constructor(name: string, emitter: any, scene: Scene);
+ isEnabled: boolean;
+ getScene(): Scene;
+ getEmitter(): any;
+ setEmitter(newEmitter: any): void;
+ getEmitterPosition(): Vector3;
+ computeEffectivePosition(globalViewport: Viewport): boolean;
+ _isVisible(): boolean;
+ render(): boolean;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class DirectionalLight extends Light implements IShadowLight {
+ direction: Vector3;
+ position: Vector3;
+ private _transformedDirection;
+ transformedPosition: Vector3;
+ private _worldMatrix;
+ shadowOrthoScale: number;
+ constructor(name: string, direction: Vector3, scene: Scene);
+ getAbsolutePosition(): Vector3;
+ setDirectionToTarget(target: Vector3): Vector3;
+ setShadowProjectionMatrix(matrix: Matrix, viewMatrix: Matrix, renderList: Array): void;
+ supportsVSM(): boolean;
+ needRefreshPerFrame(): boolean;
+ computeTransformedPosition(): boolean;
+ transferToEffect(effect: Effect, directionUniformName: string): void;
+ _getWorldMatrix(): Matrix;
+ }
+}
+
+declare module BABYLON {
+ class HemisphericLight extends Light {
+ direction: Vector3;
+ groundColor: Color3;
+ private _worldMatrix;
+ constructor(name: string, direction: Vector3, scene: Scene);
+ setDirectionToTarget(target: Vector3): Vector3;
+ getShadowGenerator(): ShadowGenerator;
+ transferToEffect(effect: Effect, directionUniformName: string, groundColorUniformName: string): void;
+ _getWorldMatrix(): Matrix;
+ }
+}
+
+declare module BABYLON {
+ interface IShadowLight {
+ position: Vector3;
+ direction: Vector3;
+ transformedPosition: Vector3;
+ name: string;
+ computeTransformedPosition(): boolean;
+ getScene(): Scene;
+ setShadowProjectionMatrix(matrix: Matrix, viewMatrix: Matrix, renderList: Array): void;
+ supportsVSM(): boolean;
+ needRefreshPerFrame(): boolean;
+ _shadowGenerator: ShadowGenerator;
+ }
+ class Light extends Node {
+ diffuse: Color3;
+ specular: Color3;
+ intensity: number;
+ range: number;
+ includeOnlyWithLayerMask: number;
+ includedOnlyMeshes: AbstractMesh[];
+ excludedMeshes: AbstractMesh[];
+ excludeWithLayerMask: number;
+ _shadowGenerator: ShadowGenerator;
+ private _parentedWorldMatrix;
+ _excludedMeshesIds: string[];
+ _includedOnlyMeshesIds: string[];
+ constructor(name: string, scene: Scene);
+ getShadowGenerator(): ShadowGenerator;
+ getAbsolutePosition(): Vector3;
+ transferToEffect(effect: Effect, uniformName0?: string, uniformName1?: string): void;
+ _getWorldMatrix(): Matrix;
+ canAffectMesh(mesh: AbstractMesh): boolean;
+ getWorldMatrix(): Matrix;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class PointLight extends Light {
+ position: Vector3;
+ private _worldMatrix;
+ private _transformedPosition;
+ constructor(name: string, position: Vector3, scene: Scene);
+ getAbsolutePosition(): Vector3;
+ transferToEffect(effect: Effect, positionUniformName: string): void;
+ getShadowGenerator(): ShadowGenerator;
+ _getWorldMatrix(): Matrix;
+ }
+}
+
+declare module BABYLON {
+ class SpotLight extends Light implements IShadowLight {
+ position: Vector3;
+ direction: Vector3;
+ angle: number;
+ exponent: number;
+ transformedPosition: Vector3;
+ private _transformedDirection;
+ private _worldMatrix;
+ constructor(name: string, position: Vector3, direction: Vector3, angle: number, exponent: number, scene: Scene);
+ getAbsolutePosition(): Vector3;
+ setShadowProjectionMatrix(matrix: Matrix, viewMatrix: Matrix, renderList: Array): void;
+ supportsVSM(): boolean;
+ needRefreshPerFrame(): boolean;
+ setDirectionToTarget(target: Vector3): Vector3;
+ computeTransformedPosition(): boolean;
+ transferToEffect(effect: Effect, positionUniformName: string, directionUniformName: string): void;
+ _getWorldMatrix(): Matrix;
+ }
+}
+
+declare module BABYLON {
+ interface ISceneLoaderPlugin {
+ extensions: string;
+ importMesh: (meshesNames: any, scene: Scene, data: any, rootUrl: string, meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => boolean;
+ load: (scene: Scene, data: string, rootUrl: string) => boolean;
+ }
+ class SceneLoader {
+ private static _ForceFullSceneLoadingForIncremental;
+ private static _ShowLoadingScreen;
+ static ForceFullSceneLoadingForIncremental: boolean;
+ static ShowLoadingScreen: boolean;
+ private static _registeredPlugins;
+ private static _getPluginForFilename(sceneFilename);
+ static RegisterPlugin(plugin: ISceneLoaderPlugin): void;
+ static ImportMesh(meshesNames: any, rootUrl: string, sceneFilename: string, scene: Scene, onsuccess?: (meshes: AbstractMesh[], particleSystems: ParticleSystem[], skeletons: Skeleton[]) => void, progressCallBack?: () => void, onerror?: (scene: Scene, e: any) => void): void;
+ /**
+ * Load a scene
+ * @param rootUrl a string that defines the root url for scene and resources
+ * @param sceneFilename a string that defines the name of the scene file. can start with "data:" following by the stringified version of the scene
+ * @param engine is the instance of BABYLON.Engine to use to create the scene
+ */
+ static Load(rootUrl: string, sceneFilename: any, engine: Engine, onsuccess?: (scene: Scene) => void, progressCallBack?: any, onerror?: (scene: Scene) => void): void;
+ /**
+ * Append a scene
+ * @param rootUrl a string that defines the root url for scene and resources
+ * @param sceneFilename a string that defines the name of the scene file. can start with "data:" following by the stringified version of the scene
+ * @param scene is the instance of BABYLON.Scene to append to
+ */
+ static Append(rootUrl: string, sceneFilename: any, scene: Scene, onsuccess?: (scene: Scene) => void, progressCallBack?: any, onerror?: (scene: Scene) => void): void;
+ }
+}
+
+declare module BABYLON {
+ class EffectFallbacks {
+ private _defines;
+ private _currentRank;
+ private _maxRank;
+ addFallback(rank: number, define: string): void;
+ isMoreFallbacks: boolean;
+ reduce(currentDefines: string): string;
+ }
+ class Effect {
+ name: any;
+ defines: string;
+ onCompiled: (effect: Effect) => void;
+ onError: (effect: Effect, errors: string) => void;
+ onBind: (effect: Effect) => void;
+ private _engine;
+ private _uniformsNames;
+ private _samplers;
+ private _isReady;
+ private _compilationError;
+ private _attributesNames;
+ private _attributes;
+ private _uniforms;
+ _key: string;
+ private _program;
+ private _valueCache;
+ constructor(baseName: any, attributesNames: string[], uniformsNames: string[], samplers: string[], engine: any, defines?: string, fallbacks?: EffectFallbacks, onCompiled?: (effect: Effect) => void, onError?: (effect: Effect, errors: string) => void);
+ isReady(): boolean;
+ getProgram(): WebGLProgram;
+ getAttributesNames(): string[];
+ getAttributeLocation(index: number): number;
+ getAttributeLocationByName(name: string): number;
+ getAttributesCount(): number;
+ getUniformIndex(uniformName: string): number;
+ getUniform(uniformName: string): WebGLUniformLocation;
+ getSamplers(): string[];
+ getCompilationError(): string;
+ _loadVertexShader(vertex: any, callback: (data: any) => void): void;
+ _loadFragmentShader(fragment: any, callback: (data: any) => void): void;
+ private _prepareEffect(vertexSourceCode, fragmentSourceCode, attributesNames, defines, fallbacks?);
+ _bindTexture(channel: string, texture: WebGLTexture): void;
+ setTexture(channel: string, texture: BaseTexture): void;
+ setTextureFromPostProcess(channel: string, postProcess: PostProcess): void;
+ _cacheFloat2(uniformName: string, x: number, y: number): void;
+ _cacheFloat3(uniformName: string, x: number, y: number, z: number): void;
+ _cacheFloat4(uniformName: string, x: number, y: number, z: number, w: number): void;
+ setArray(uniformName: string, array: number[]): Effect;
+ setArray2(uniformName: string, array: number[]): Effect;
+ setArray3(uniformName: string, array: number[]): Effect;
+ setArray4(uniformName: string, array: number[]): Effect;
+ setMatrices(uniformName: string, matrices: Float32Array): Effect;
+ setMatrix(uniformName: string, matrix: Matrix): Effect;
+ setMatrix3x3(uniformName: string, matrix: Float32Array): Effect;
+ setMatrix2x2(uniformname: string, matrix: Float32Array): Effect;
+ setFloat(uniformName: string, value: number): Effect;
+ setBool(uniformName: string, bool: boolean): Effect;
+ setVector2(uniformName: string, vector2: Vector2): Effect;
+ setFloat2(uniformName: string, x: number, y: number): Effect;
+ setVector3(uniformName: string, vector3: Vector3): Effect;
+ setFloat3(uniformName: string, x: number, y: number, z: number): Effect;
+ setVector4(uniformName: string, vector4: Vector4): Effect;
+ setFloat4(uniformName: string, x: number, y: number, z: number, w: number): Effect;
+ setColor3(uniformName: string, color3: Color3): Effect;
+ setColor4(uniformName: string, color3: Color3, alpha: number): Effect;
+ static ShadersStore: {};
+ }
+}
+
+declare module BABYLON {
+ class Material {
+ name: string;
+ private static _TriangleFillMode;
+ private static _WireFrameFillMode;
+ private static _PointFillMode;
+ static TriangleFillMode: number;
+ static WireFrameFillMode: number;
+ static PointFillMode: number;
+ id: string;
+ checkReadyOnEveryCall: boolean;
+ checkReadyOnlyOnce: boolean;
+ state: string;
+ alpha: number;
+ backFaceCulling: boolean;
+ onCompiled: (effect: Effect) => void;
+ onError: (effect: Effect, errors: string) => void;
+ onDispose: () => void;
+ onBind: (material: Material, mesh: Mesh) => void;
+ getRenderTargetTextures: () => SmartArray;
+ alphaMode: number;
+ disableDepthWrite: boolean;
+ _effect: Effect;
+ _wasPreviouslyReady: boolean;
+ private _scene;
+ private _fillMode;
+ private _cachedDepthWriteState;
+ pointSize: number;
+ zOffset: number;
+ wireframe: boolean;
+ pointsCloud: boolean;
+ fillMode: number;
+ constructor(name: string, scene: Scene, doNotAdd?: boolean);
+ isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean;
+ getEffect(): Effect;
+ getScene(): Scene;
+ needAlphaBlending(): boolean;
+ needAlphaTesting(): boolean;
+ getAlphaTestTexture(): BaseTexture;
+ trackCreation(onCompiled: (effect: Effect) => void, onError: (effect: Effect, errors: string) => void): void;
+ _preBind(): void;
+ bind(world: Matrix, mesh?: Mesh): void;
+ bindOnlyWorldMatrix(world: Matrix): void;
+ unbind(): void;
+ clone(name: string): Material;
+ dispose(forceDisposeEffect?: boolean): void;
+ }
+}
+
+declare module BABYLON {
+ class MultiMaterial extends Material {
+ subMaterials: Material[];
+ constructor(name: string, scene: Scene);
+ getSubMaterial(index: any): Material;
+ isReady(mesh?: AbstractMesh): boolean;
+ clone(name: string): MultiMaterial;
+ }
+}
+
+declare module BABYLON {
+ class ShaderMaterial extends Material {
+ private _shaderPath;
+ private _options;
+ private _textures;
+ private _floats;
+ private _floatsArrays;
+ private _colors3;
+ private _colors4;
+ private _vectors2;
+ private _vectors3;
+ private _vectors4;
+ private _matrices;
+ private _matrices3x3;
+ private _matrices2x2;
+ private _cachedWorldViewMatrix;
+ private _renderId;
+ constructor(name: string, scene: Scene, shaderPath: any, options: any);
+ needAlphaBlending(): boolean;
+ needAlphaTesting(): boolean;
+ private _checkUniform(uniformName);
+ setTexture(name: string, texture: Texture): ShaderMaterial;
+ setFloat(name: string, value: number): ShaderMaterial;
+ setFloats(name: string, value: number[]): ShaderMaterial;
+ setColor3(name: string, value: Color3): ShaderMaterial;
+ setColor4(name: string, value: Color4): ShaderMaterial;
+ setVector2(name: string, value: Vector2): ShaderMaterial;
+ setVector3(name: string, value: Vector3): ShaderMaterial;
+ setVector4(name: string, value: Vector4): ShaderMaterial;
+ setMatrix(name: string, value: Matrix): ShaderMaterial;
+ setMatrix3x3(name: string, value: Float32Array): ShaderMaterial;
+ setMatrix2x2(name: string, value: Float32Array): ShaderMaterial;
+ isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean;
+ bindOnlyWorldMatrix(world: Matrix): void;
+ bind(world: Matrix, mesh?: Mesh): void;
+ clone(name: string): ShaderMaterial;
+ dispose(forceDisposeEffect?: boolean): void;
+ }
+}
+
+declare module BABYLON {
+ class FresnelParameters {
+ isEnabled: boolean;
+ leftColor: Color3;
+ rightColor: Color3;
+ bias: number;
+ power: number;
+ }
+ class StandardMaterial extends Material {
+ diffuseTexture: BaseTexture;
+ ambientTexture: BaseTexture;
+ opacityTexture: BaseTexture;
+ reflectionTexture: BaseTexture;
+ emissiveTexture: BaseTexture;
+ specularTexture: BaseTexture;
+ bumpTexture: BaseTexture;
+ ambientColor: Color3;
+ diffuseColor: Color3;
+ specularColor: Color3;
+ specularPower: number;
+ emissiveColor: Color3;
+ useAlphaFromDiffuseTexture: boolean;
+ useEmissiveAsIllumination: boolean;
+ useReflectionFresnelFromSpecular: boolean;
+ useSpecularOverAlpha: boolean;
+ fogEnabled: boolean;
+ roughness: number;
+ diffuseFresnelParameters: FresnelParameters;
+ opacityFresnelParameters: FresnelParameters;
+ reflectionFresnelParameters: FresnelParameters;
+ emissiveFresnelParameters: FresnelParameters;
+ useGlossinessFromSpecularMapAlpha: boolean;
+ private _renderTargets;
+ private _worldViewProjectionMatrix;
+ private _globalAmbientColor;
+ private _scaledDiffuse;
+ private _scaledSpecular;
+ private _renderId;
+ private _defines;
+ private _cachedDefines;
+ constructor(name: string, scene: Scene);
+ needAlphaBlending(): boolean;
+ needAlphaTesting(): boolean;
+ private _shouldUseAlphaFromDiffuseTexture();
+ getAlphaTestTexture(): BaseTexture;
+ isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean;
+ unbind(): void;
+ bindOnlyWorldMatrix(world: Matrix): void;
+ bind(world: Matrix, mesh?: Mesh): void;
+ getAnimatables(): IAnimatable[];
+ dispose(forceDisposeEffect?: boolean): void;
+ clone(name: string): StandardMaterial;
+ static DiffuseTextureEnabled: boolean;
+ static AmbientTextureEnabled: boolean;
+ static OpacityTextureEnabled: boolean;
+ static ReflectionTextureEnabled: boolean;
+ static EmissiveTextureEnabled: boolean;
+ static SpecularTextureEnabled: boolean;
+ static BumpTextureEnabled: boolean;
+ static FresnelEnabled: boolean;
+ }
+}
+
+declare module BABYLON {
+ class Color3 {
+ r: number;
+ g: number;
+ b: number;
+ constructor(r?: number, g?: number, b?: number);
+ toString(): string;
+ toArray(array: number[], index?: number): Color3;
+ toColor4(alpha?: number): Color4;
+ asArray(): number[];
+ toLuminance(): number;
+ multiply(otherColor: Color3): Color3;
+ multiplyToRef(otherColor: Color3, result: Color3): Color3;
+ equals(otherColor: Color3): boolean;
+ equalsFloats(r: number, g: number, b: number): boolean;
+ scale(scale: number): Color3;
+ scaleToRef(scale: number, result: Color3): Color3;
+ add(otherColor: Color3): Color3;
+ addToRef(otherColor: Color3, result: Color3): Color3;
+ subtract(otherColor: Color3): Color3;
+ subtractToRef(otherColor: Color3, result: Color3): Color3;
+ clone(): Color3;
+ copyFrom(source: Color3): Color3;
+ copyFromFloats(r: number, g: number, b: number): Color3;
+ toHexString(): string;
+ static FromHexString(hex: string): Color3;
+ static FromArray(array: number[], offset?: number): Color3;
+ static FromInts(r: number, g: number, b: number): Color3;
+ static Lerp(start: Color3, end: Color3, amount: number): Color3;
+ static Red(): Color3;
+ static Green(): Color3;
+ static Blue(): Color3;
+ static Black(): Color3;
+ static White(): Color3;
+ static Purple(): Color3;
+ static Magenta(): Color3;
+ static Yellow(): Color3;
+ static Gray(): Color3;
+ }
+ class Color4 {
+ r: number;
+ g: number;
+ b: number;
+ a: number;
+ constructor(r: number, g: number, b: number, a: number);
+ addInPlace(right: any): Color4;
+ asArray(): number[];
+ toArray(array: number[], index?: number): Color4;
+ add(right: Color4): Color4;
+ subtract(right: Color4): Color4;
+ subtractToRef(right: Color4, result: Color4): Color4;
+ scale(scale: number): Color4;
+ scaleToRef(scale: number, result: Color4): Color4;
+ toString(): string;
+ clone(): Color4;
+ copyFrom(source: Color4): Color4;
+ toHexString(): string;
+ static FromHexString(hex: string): Color4;
+ static Lerp(left: Color4, right: Color4, amount: number): Color4;
+ static LerpToRef(left: Color4, right: Color4, amount: number, result: Color4): void;
+ static FromArray(array: number[], offset?: number): Color4;
+ static FromInts(r: number, g: number, b: number, a: number): Color4;
+ }
+ class Vector2 {
+ x: number;
+ y: number;
+ constructor(x: number, y: number);
+ toString(): string;
+ toArray(array: number[], index?: number): Vector2;
+ asArray(): number[];
+ copyFrom(source: Vector2): Vector2;
+ copyFromFloats(x: number, y: number): Vector2;
+ add(otherVector: Vector2): Vector2;
+ addVector3(otherVector: Vector3): Vector2;
+ subtract(otherVector: Vector2): Vector2;
+ subtractInPlace(otherVector: Vector2): Vector2;
+ multiplyInPlace(otherVector: Vector2): Vector2;
+ multiply(otherVector: Vector2): Vector2;
+ multiplyToRef(otherVector: Vector2, result: Vector2): Vector2;
+ multiplyByFloats(x: number, y: number): Vector2;
+ divide(otherVector: Vector2): Vector2;
+ divideToRef(otherVector: Vector2, result: Vector2): Vector2;
+ negate(): Vector2;
+ scaleInPlace(scale: number): Vector2;
+ scale(scale: number): Vector2;
+ equals(otherVector: Vector2): boolean;
+ equalsWithEpsilon(otherVector: Vector2, epsilon?: number): boolean;
+ length(): number;
+ lengthSquared(): number;
+ normalize(): Vector2;
+ clone(): Vector2;
+ static Zero(): Vector2;
+ static FromArray(array: number[], offset?: number): Vector2;
+ static FromArrayToRef(array: number[], offset: number, result: Vector2): void;
+ static CatmullRom(value1: Vector2, value2: Vector2, value3: Vector2, value4: Vector2, amount: number): Vector2;
+ static Clamp(value: Vector2, min: Vector2, max: Vector2): Vector2;
+ static Hermite(value1: Vector2, tangent1: Vector2, value2: Vector2, tangent2: Vector2, amount: number): Vector2;
+ static Lerp(start: Vector2, end: Vector2, amount: number): Vector2;
+ static Dot(left: Vector2, right: Vector2): number;
+ static Normalize(vector: Vector2): Vector2;
+ static Minimize(left: Vector2, right: Vector2): Vector2;
+ static Maximize(left: Vector2, right: Vector2): Vector2;
+ static Transform(vector: Vector2, transformation: Matrix): Vector2;
+ static Distance(value1: Vector2, value2: Vector2): number;
+ static DistanceSquared(value1: Vector2, value2: Vector2): number;
+ }
+ class Vector3 {
+ x: number;
+ y: number;
+ z: number;
+ constructor(x: number, y: number, z: number);
+ toString(): string;
+ asArray(): number[];
+ toArray(array: number[], index?: number): Vector3;
+ toQuaternion(): Quaternion;
+ addInPlace(otherVector: Vector3): Vector3;
+ add(otherVector: Vector3): Vector3;
+ addToRef(otherVector: Vector3, result: Vector3): Vector3;
+ subtractInPlace(otherVector: Vector3): Vector3;
+ subtract(otherVector: Vector3): Vector3;
+ subtractToRef(otherVector: Vector3, result: Vector3): Vector3;
+ subtractFromFloats(x: number, y: number, z: number): Vector3;
+ subtractFromFloatsToRef(x: number, y: number, z: number, result: Vector3): Vector3;
+ negate(): Vector3;
+ scaleInPlace(scale: number): Vector3;
+ scale(scale: number): Vector3;
+ scaleToRef(scale: number, result: Vector3): void;
+ equals(otherVector: Vector3): boolean;
+ equalsWithEpsilon(otherVector: Vector3, epsilon?: number): boolean;
+ equalsToFloats(x: number, y: number, z: number): boolean;
+ multiplyInPlace(otherVector: Vector3): Vector3;
+ multiply(otherVector: Vector3): Vector3;
+ multiplyToRef(otherVector: Vector3, result: Vector3): Vector3;
+ multiplyByFloats(x: number, y: number, z: number): Vector3;
+ divide(otherVector: Vector3): Vector3;
+ divideToRef(otherVector: Vector3, result: Vector3): Vector3;
+ MinimizeInPlace(other: Vector3): Vector3;
+ MaximizeInPlace(other: Vector3): Vector3;
+ length(): number;
+ lengthSquared(): number;
+ normalize(): Vector3;
+ clone(): Vector3;
+ copyFrom(source: Vector3): Vector3;
+ copyFromFloats(x: number, y: number, z: number): Vector3;
+ static GetClipFactor(vector0: Vector3, vector1: Vector3, axis: Vector3, size: any): number;
+ static FromArray(array: number[], offset?: number): Vector3;
+ static FromFloatArray(array: Float32Array, offset?: number): Vector3;
+ static FromArrayToRef(array: number[], offset: number, result: Vector3): void;
+ static FromFloatArrayToRef(array: Float32Array, offset: number, result: Vector3): void;
+ static FromFloatsToRef(x: number, y: number, z: number, result: Vector3): void;
+ static Zero(): Vector3;
+ static Up(): Vector3;
+ static TransformCoordinates(vector: Vector3, transformation: Matrix): Vector3;
+ static TransformCoordinatesToRef(vector: Vector3, transformation: Matrix, result: Vector3): void;
+ static TransformCoordinatesFromFloatsToRef(x: number, y: number, z: number, transformation: Matrix, result: Vector3): void;
+ static TransformCoordinatesToRefSIMD(vector: Vector3, transformation: Matrix, result: Vector3): void;
+ static TransformCoordinatesFromFloatsToRefSIMD(x: number, y: number, z: number, transformation: Matrix, result: Vector3): void;
+ static TransformNormal(vector: Vector3, transformation: Matrix): Vector3;
+ static TransformNormalToRef(vector: Vector3, transformation: Matrix, result: Vector3): void;
+ static TransformNormalFromFloatsToRef(x: number, y: number, z: number, transformation: Matrix, result: Vector3): void;
+ static CatmullRom(value1: Vector3, value2: Vector3, value3: Vector3, value4: Vector3, amount: number): Vector3;
+ static Clamp(value: Vector3, min: Vector3, max: Vector3): Vector3;
+ static Hermite(value1: Vector3, tangent1: Vector3, value2: Vector3, tangent2: Vector3, amount: number): Vector3;
+ static Lerp(start: Vector3, end: Vector3, amount: number): Vector3;
+ static Dot(left: Vector3, right: Vector3): number;
+ static Cross(left: Vector3, right: Vector3): Vector3;
+ static CrossToRef(left: Vector3, right: Vector3, result: Vector3): void;
+ static Normalize(vector: Vector3): Vector3;
+ static NormalizeToRef(vector: Vector3, result: Vector3): void;
+ static Project(vector: Vector3, world: Matrix, transform: Matrix, viewport: Viewport): Vector3;
+ static UnprojectFromTransform(source: Vector3, viewportWidth: number, viewportHeight: number, world: Matrix, transform: Matrix): Vector3;
+ static Unproject(source: Vector3, viewportWidth: number, viewportHeight: number, world: Matrix, view: Matrix, projection: Matrix): Vector3;
+ static Minimize(left: Vector3, right: Vector3): Vector3;
+ static Maximize(left: Vector3, right: Vector3): Vector3;
+ static Distance(value1: Vector3, value2: Vector3): number;
+ static DistanceSquared(value1: Vector3, value2: Vector3): number;
+ static Center(value1: Vector3, value2: Vector3): Vector3;
+ /**
+ * Given three orthogonal left-handed oriented Vector3 axis in space (target system),
+ * RotationFromAxis() returns the rotation Euler angles (ex : rotation.x, rotation.y, rotation.z) to apply
+ * to something in order to rotate it from its local system to the given target system.
+ */
+ static RotationFromAxis(axis1: Vector3, axis2: Vector3, axis3: Vector3): Vector3;
+ /**
+ * The same than RotationFromAxis but updates the passed ref Vector3 parameter.
+ */
+ static RotationFromAxisToRef(axis1: Vector3, axis2: Vector3, axis3: Vector3, ref: Vector3): void;
+ }
+ class Vector4 {
+ x: number;
+ y: number;
+ z: number;
+ w: number;
+ constructor(x: number, y: number, z: number, w: number);
+ toString(): string;
+ asArray(): number[];
+ toArray(array: number[], index?: number): Vector4;
+ addInPlace(otherVector: Vector4): Vector4;
+ add(otherVector: Vector4): Vector4;
+ addToRef(otherVector: Vector4, result: Vector4): Vector4;
+ subtractInPlace(otherVector: Vector4): Vector4;
+ subtract(otherVector: Vector4): Vector4;
+ subtractToRef(otherVector: Vector4, result: Vector4): Vector4;
+ subtractFromFloats(x: number, y: number, z: number, w: number): Vector4;
+ subtractFromFloatsToRef(x: number, y: number, z: number, w: number, result: Vector4): Vector4;
+ negate(): Vector4;
+ scaleInPlace(scale: number): Vector4;
+ scale(scale: number): Vector4;
+ scaleToRef(scale: number, result: Vector4): void;
+ equals(otherVector: Vector4): boolean;
+ equalsWithEpsilon(otherVector: Vector4, epsilon?: number): boolean;
+ equalsToFloats(x: number, y: number, z: number, w: number): boolean;
+ multiplyInPlace(otherVector: Vector4): Vector4;
+ multiply(otherVector: Vector4): Vector4;
+ multiplyToRef(otherVector: Vector4, result: Vector4): Vector4;
+ multiplyByFloats(x: number, y: number, z: number, w: number): Vector4;
+ divide(otherVector: Vector4): Vector4;
+ divideToRef(otherVector: Vector4, result: Vector4): Vector4;
+ MinimizeInPlace(other: Vector4): Vector4;
+ MaximizeInPlace(other: Vector4): Vector4;
+ length(): number;
+ lengthSquared(): number;
+ normalize(): Vector4;
+ clone(): Vector4;
+ copyFrom(source: Vector4): Vector4;
+ copyFromFloats(x: number, y: number, z: number, w: number): Vector4;
+ static FromArray(array: number[], offset?: number): Vector4;
+ static FromArrayToRef(array: number[], offset: number, result: Vector4): void;
+ static FromFloatArrayToRef(array: Float32Array, offset: number, result: Vector4): void;
+ static FromFloatsToRef(x: number, y: number, z: number, w: number, result: Vector4): void;
+ static Zero(): Vector4;
+ static Normalize(vector: Vector4): Vector4;
+ static NormalizeToRef(vector: Vector4, result: Vector4): void;
+ static Minimize(left: Vector4, right: Vector4): Vector4;
+ static Maximize(left: Vector4, right: Vector4): Vector4;
+ static Distance(value1: Vector4, value2: Vector4): number;
+ static DistanceSquared(value1: Vector4, value2: Vector4): number;
+ static Center(value1: Vector4, value2: Vector4): Vector4;
+ }
+ class Quaternion {
+ x: number;
+ y: number;
+ z: number;
+ w: number;
+ constructor(x?: number, y?: number, z?: number, w?: number);
+ toString(): string;
+ asArray(): number[];
+ equals(otherQuaternion: Quaternion): boolean;
+ clone(): Quaternion;
+ copyFrom(other: Quaternion): Quaternion;
+ copyFromFloats(x: number, y: number, z: number, w: number): Quaternion;
+ add(other: Quaternion): Quaternion;
+ subtract(other: Quaternion): Quaternion;
+ scale(value: number): Quaternion;
+ multiply(q1: Quaternion): Quaternion;
+ multiplyToRef(q1: Quaternion, result: Quaternion): Quaternion;
+ length(): number;
+ normalize(): Quaternion;
+ toEulerAngles(): Vector3;
+ toEulerAnglesToRef(result: Vector3): Quaternion;
+ toRotationMatrix(result: Matrix): Quaternion;
+ fromRotationMatrix(matrix: Matrix): Quaternion;
+ static FromRotationMatrix(matrix: Matrix): Quaternion;
+ static FromRotationMatrixToRef(matrix: Matrix, result: Quaternion): void;
+ static Inverse(q: Quaternion): Quaternion;
+ static Identity(): Quaternion;
+ static RotationAxis(axis: Vector3, angle: number): Quaternion;
+ static FromArray(array: number[], offset?: number): Quaternion;
+ static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Quaternion;
+ static RotationYawPitchRollToRef(yaw: number, pitch: number, roll: number, result: Quaternion): void;
+ static RotationAlphaBetaGamma(alpha: number, beta: number, gamma: number): Quaternion;
+ static RotationAlphaBetaGammaToRef(alpha: number, beta: number, gamma: number, result: Quaternion): void;
+ static Slerp(left: Quaternion, right: Quaternion, amount: number): Quaternion;
+ }
+ class Matrix {
+ private static _tempQuaternion;
+ private static _xAxis;
+ private static _yAxis;
+ private static _zAxis;
+ m: Float32Array;
+ isIdentity(): boolean;
+ determinant(): number;
+ toArray(): Float32Array;
+ asArray(): Float32Array;
+ invert(): Matrix;
+ reset(): Matrix;
+ add(other: Matrix): Matrix;
+ addToRef(other: Matrix, result: Matrix): Matrix;
+ addToSelf(other: Matrix): Matrix;
+ invertToRef(other: Matrix): Matrix;
+ invertToRefSIMD(other: Matrix): Matrix;
+ setTranslation(vector3: Vector3): Matrix;
+ multiply(other: Matrix): Matrix;
+ copyFrom(other: Matrix): Matrix;
+ copyToArray(array: Float32Array, offset?: number): Matrix;
+ multiplyToRef(other: Matrix, result: Matrix): Matrix;
+ multiplyToArray(other: Matrix, result: Float32Array, offset: number): Matrix;
+ multiplyToArraySIMD(other: Matrix, result: Matrix, offset?: number): void;
+ equals(value: Matrix): boolean;
+ clone(): Matrix;
+ decompose(scale: Vector3, rotation: Quaternion, translation: Vector3): boolean;
+ static FromArray(array: number[], offset?: number): Matrix;
+ static FromArrayToRef(array: number[], offset: number, result: Matrix): void;
+ static FromFloat32ArrayToRefScaled(array: Float32Array, offset: number, scale: number, result: Matrix): void;
+ static FromValuesToRef(initialM11: number, initialM12: number, initialM13: number, initialM14: number, initialM21: number, initialM22: number, initialM23: number, initialM24: number, initialM31: number, initialM32: number, initialM33: number, initialM34: number, initialM41: number, initialM42: number, initialM43: number, initialM44: number, result: Matrix): void;
+ static FromValues(initialM11: number, initialM12: number, initialM13: number, initialM14: number, initialM21: number, initialM22: number, initialM23: number, initialM24: number, initialM31: number, initialM32: number, initialM33: number, initialM34: number, initialM41: number, initialM42: number, initialM43: number, initialM44: number): Matrix;
+ static Compose(scale: Vector3, rotation: Quaternion, translation: Vector3): Matrix;
+ static Identity(): Matrix;
+ static IdentityToRef(result: Matrix): void;
+ static Zero(): Matrix;
+ static RotationX(angle: number): Matrix;
+ static Invert(source: Matrix): Matrix;
+ static RotationXToRef(angle: number, result: Matrix): void;
+ static RotationY(angle: number): Matrix;
+ static RotationYToRef(angle: number, result: Matrix): void;
+ static RotationZ(angle: number): Matrix;
+ static RotationZToRef(angle: number, result: Matrix): void;
+ static RotationAxis(axis: Vector3, angle: number): Matrix;
+ static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Matrix;
+ static RotationYawPitchRollToRef(yaw: number, pitch: number, roll: number, result: Matrix): void;
+ static Scaling(x: number, y: number, z: number): Matrix;
+ static ScalingToRef(x: number, y: number, z: number, result: Matrix): void;
+ static Translation(x: number, y: number, z: number): Matrix;
+ static TranslationToRef(x: number, y: number, z: number, result: Matrix): void;
+ static LookAtLH(eye: Vector3, target: Vector3, up: Vector3): Matrix;
+ static LookAtLHToRef(eye: Vector3, target: Vector3, up: Vector3, result: Matrix): void;
+ static LookAtLHToRefSIMD(eyeRef: Vector3, targetRef: Vector3, upRef: Vector3, result: Matrix): void;
+ static OrthoLH(width: number, height: number, znear: number, zfar: number): Matrix;
+ static OrthoLHToRef(width: number, height: number, znear: number, zfar: number, result: Matrix): void;
+ static OrthoOffCenterLH(left: number, right: number, bottom: number, top: number, znear: number, zfar: number): Matrix;
+ static OrthoOffCenterLHToRef(left: number, right: any, bottom: number, top: number, znear: number, zfar: number, result: Matrix): void;
+ static PerspectiveLH(width: number, height: number, znear: number, zfar: number): Matrix;
+ static PerspectiveFovLH(fov: number, aspect: number, znear: number, zfar: number): Matrix;
+ static PerspectiveFovLHToRef(fov: number, aspect: number, znear: number, zfar: number, result: Matrix, fovMode?: number): void;
+ static GetFinalMatrix(viewport: Viewport, world: Matrix, view: Matrix, projection: Matrix, zmin: number, zmax: number): Matrix;
+ static GetAsMatrix2x2(matrix: Matrix): Float32Array;
+ static GetAsMatrix3x3(matrix: Matrix): Float32Array;
+ static Transpose(matrix: Matrix): Matrix;
+ static Reflection(plane: Plane): Matrix;
+ static ReflectionToRef(plane: Plane, result: Matrix): void;
+ }
+ class Plane {
+ normal: Vector3;
+ d: number;
+ constructor(a: number, b: number, c: number, d: number);
+ asArray(): number[];
+ clone(): Plane;
+ normalize(): Plane;
+ transform(transformation: Matrix): Plane;
+ dotCoordinate(point: any): number;
+ copyFromPoints(point1: Vector3, point2: Vector3, point3: Vector3): Plane;
+ isFrontFacingTo(direction: Vector3, epsilon: number): boolean;
+ signedDistanceTo(point: Vector3): number;
+ static FromArray(array: number[]): Plane;
+ static FromPoints(point1: any, point2: any, point3: any): Plane;
+ static FromPositionAndNormal(origin: Vector3, normal: Vector3): Plane;
+ static SignedDistanceToPlaneFromPositionAndNormal(origin: Vector3, normal: Vector3, point: Vector3): number;
+ }
+ class Viewport {
+ x: number;
+ y: number;
+ width: number;
+ height: number;
+ constructor(x: number, y: number, width: number, height: number);
+ toGlobal(engine: any): Viewport;
+ }
+ class Frustum {
+ static GetPlanes(transform: Matrix): Plane[];
+ static GetPlanesToRef(transform: Matrix, frustumPlanes: Plane[]): void;
+ }
+ class Ray {
+ origin: Vector3;
+ direction: Vector3;
+ length: number;
+ private _edge1;
+ private _edge2;
+ private _pvec;
+ private _tvec;
+ private _qvec;
+ constructor(origin: Vector3, direction: Vector3, length?: number);
+ intersectsBoxMinMax(minimum: Vector3, maximum: Vector3): boolean;
+ intersectsBox(box: BoundingBox): boolean;
+ intersectsSphere(sphere: any): boolean;
+ intersectsTriangle(vertex0: Vector3, vertex1: Vector3, vertex2: Vector3): IntersectionInfo;
+ static CreateNew(x: number, y: number, viewportWidth: number, viewportHeight: number, world: Matrix, view: Matrix, projection: Matrix): Ray;
+ /**
+ * Function will create a new transformed ray starting from origin and ending at the end point. Ray's length will be set, and ray will be
+ * transformed to the given world matrix.
+ * @param origin The origin point
+ * @param end The end point
+ * @param world a matrix to transform the ray to. Default is the identity matrix.
+ */
+ static CreateNewFromTo(origin: Vector3, end: Vector3, world?: Matrix): Ray;
+ static Transform(ray: Ray, matrix: Matrix): Ray;
+ }
+ enum Space {
+ LOCAL = 0,
+ WORLD = 1,
+ }
+ class Axis {
+ static X: Vector3;
+ static Y: Vector3;
+ static Z: Vector3;
+ }
+ class BezierCurve {
+ static interpolate(t: number, x1: number, y1: number, x2: number, y2: number): number;
+ }
+ enum Orientation {
+ CW = 0,
+ CCW = 1,
+ }
+ class Angle {
+ private _radians;
+ constructor(radians: number);
+ degrees: () => number;
+ radians: () => number;
+ static BetweenTwoPoints(a: Vector2, b: Vector2): Angle;
+ static FromRadians(radians: number): Angle;
+ static FromDegrees(degrees: number): Angle;
+ }
+ class Arc2 {
+ startPoint: Vector2;
+ midPoint: Vector2;
+ endPoint: Vector2;
+ centerPoint: Vector2;
+ radius: number;
+ angle: Angle;
+ startAngle: Angle;
+ orientation: Orientation;
+ constructor(startPoint: Vector2, midPoint: Vector2, endPoint: Vector2);
+ }
+ class PathCursor {
+ private path;
+ private _onchange;
+ value: number;
+ animations: Animation[];
+ constructor(path: Path2);
+ getPoint(): Vector3;
+ moveAhead(step?: number): PathCursor;
+ moveBack(step?: number): PathCursor;
+ move(step: number): PathCursor;
+ private ensureLimits();
+ private markAsDirty(propertyName);
+ private raiseOnChange();
+ onchange(f: (cursor: PathCursor) => void): PathCursor;
+ }
+ class Path2 {
+ private _points;
+ private _length;
+ closed: boolean;
+ constructor(x: number, y: number);
+ addLineTo(x: number, y: number): Path2;
+ addArcTo(midX: number, midY: number, endX: number, endY: number, numberOfSegments?: number): Path2;
+ close(): Path2;
+ length(): number;
+ getPoints(): Vector2[];
+ getPointAtLengthPosition(normalizedLengthPosition: number): Vector2;
+ static StartingAt(x: number, y: number): Path2;
+ }
+ class Path3D {
+ path: Vector3[];
+ private _curve;
+ private _distances;
+ private _tangents;
+ private _normals;
+ private _binormals;
+ private _raw;
+ /**
+ * new Path3D(path, normal, raw)
+ * path : an array of Vector3, the curve axis of the Path3D
+ * normal (optional) : Vector3, the first wanted normal to the curve. Ex (0, 1, 0) for a vertical normal.
+ * raw (optional, default false) : boolean, if true the returned Path3D isn't normalized. Useful to depict path acceleration or speed.
+ */
+ constructor(path: Vector3[], firstNormal?: Vector3, raw?: boolean);
+ getCurve(): Vector3[];
+ getTangents(): Vector3[];
+ getNormals(): Vector3[];
+ getBinormals(): Vector3[];
+ getDistances(): number[];
+ update(path: Vector3[], firstNormal?: Vector3): Path3D;
+ private _compute(firstNormal);
+ private _getFirstNonNullVector(index);
+ private _getLastNonNullVector(index);
+ private _normalVector(v0, vt, va);
+ }
+ class Curve3 {
+ private _points;
+ private _length;
+ static CreateQuadraticBezier(v0: Vector3, v1: Vector3, v2: Vector3, nbPoints: number): Curve3;
+ static CreateCubicBezier(v0: Vector3, v1: Vector3, v2: Vector3, v3: Vector3, nbPoints: number): Curve3;
+ static CreateHermiteSpline(p1: Vector3, t1: Vector3, p2: Vector3, t2: Vector3, nbPoints: number): Curve3;
+ constructor(points: Vector3[]);
+ getPoints(): Vector3[];
+ length(): number;
+ continue(curve: Curve3): Curve3;
+ private _computeLength(path);
+ }
+ class PositionNormalVertex {
+ position: Vector3;
+ normal: Vector3;
+ constructor(position?: Vector3, normal?: Vector3);
+ clone(): PositionNormalVertex;
+ }
+ class PositionNormalTextureVertex {
+ position: Vector3;
+ normal: Vector3;
+ uv: Vector2;
+ constructor(position?: Vector3, normal?: Vector3, uv?: Vector2);
+ clone(): PositionNormalTextureVertex;
+ }
+ class SIMDHelper {
+ private static _isEnabled;
+ static IsEnabled: boolean;
+ static DisableSIMD(): void;
+ static EnableSIMD(): void;
+ }
+}
+
+declare module BABYLON {
+ class AbstractMesh extends Node implements IDisposable {
+ private static _BILLBOARDMODE_NONE;
+ private static _BILLBOARDMODE_X;
+ private static _BILLBOARDMODE_Y;
+ private static _BILLBOARDMODE_Z;
+ private static _BILLBOARDMODE_ALL;
+ static BILLBOARDMODE_NONE: number;
+ static BILLBOARDMODE_X: number;
+ static BILLBOARDMODE_Y: number;
+ static BILLBOARDMODE_Z: number;
+ static BILLBOARDMODE_ALL: number;
+ definedFacingForward: boolean;
+ position: Vector3;
+ rotation: Vector3;
+ rotationQuaternion: Quaternion;
+ scaling: Vector3;
+ billboardMode: number;
+ visibility: number;
+ alphaIndex: number;
+ infiniteDistance: boolean;
+ isVisible: boolean;
+ isPickable: boolean;
+ showBoundingBox: boolean;
+ showSubMeshesBoundingBox: boolean;
+ onDispose: any;
+ isBlocker: boolean;
+ skeleton: Skeleton;
+ renderingGroupId: number;
+ material: Material;
+ receiveShadows: boolean;
+ actionManager: ActionManager;
+ renderOutline: boolean;
+ outlineColor: Color3;
+ outlineWidth: number;
+ renderOverlay: boolean;
+ overlayColor: Color3;
+ overlayAlpha: number;
+ hasVertexAlpha: boolean;
+ useVertexColors: boolean;
+ applyFog: boolean;
+ computeBonesUsingShaders: boolean;
+ useOctreeForRenderingSelection: boolean;
+ useOctreeForPicking: boolean;
+ useOctreeForCollisions: boolean;
+ layerMask: number;
+ alwaysSelectAsActiveMesh: boolean;
+ _physicImpostor: number;
+ _physicsMass: number;
+ _physicsFriction: number;
+ _physicRestitution: number;
+ private _checkCollisions;
+ ellipsoid: Vector3;
+ ellipsoidOffset: Vector3;
+ private _collider;
+ private _oldPositionForCollisions;
+ private _diffPositionForCollisions;
+ private _newPositionForCollisions;
+ onCollide: (collidedMesh: AbstractMesh) => void;
+ private _meshToBoneReferal;
+ edgesWidth: number;
+ edgesColor: Color4;
+ _edgesRenderer: EdgesRenderer;
+ private _localScaling;
+ private _localRotation;
+ private _localTranslation;
+ private _localBillboard;
+ private _localPivotScaling;
+ private _localPivotScalingRotation;
+ private _localMeshReferalTransform;
+ private _localWorld;
+ _worldMatrix: Matrix;
+ private _rotateYByPI;
+ private _absolutePosition;
+ private _collisionsTransformMatrix;
+ private _collisionsScalingMatrix;
+ _positions: Vector3[];
+ private _isDirty;
+ _masterMesh: AbstractMesh;
+ _boundingInfo: BoundingInfo;
+ private _pivotMatrix;
+ _isDisposed: boolean;
+ _renderId: number;
+ subMeshes: SubMesh[];
+ _submeshesOctree: Octree;
+ _intersectionsInProgress: AbstractMesh[];
+ private _onAfterWorldMatrixUpdate;
+ private _isWorldMatrixFrozen;
+ _waitingActions: any;
+ _waitingFreezeWorldMatrix: boolean;
+ constructor(name: string, scene: Scene);
+ disableEdgesRendering(): void;
+ enableEdgesRendering(epsilon?: number, checkVerticesInsteadOfIndices?: boolean): void;
+ isBlocked: boolean;
+ getLOD(camera: Camera): AbstractMesh;
+ getTotalVertices(): number;
+ getIndices(): number[];
+ getVerticesData(kind: string): number[];
+ isVerticesDataPresent(kind: string): boolean;
+ getBoundingInfo(): BoundingInfo;
+ useBones: boolean;
+ _preActivate(): void;
+ _activate(renderId: number): void;
+ getWorldMatrix(): Matrix;
+ worldMatrixFromCache: Matrix;
+ absolutePosition: Vector3;
+ freezeWorldMatrix(): void;
+ unfreezeWorldMatrix(): void;
+ isWorldMatrixFrozen: boolean;
+ rotate(axis: Vector3, amount: number, space: Space): void;
+ translate(axis: Vector3, distance: number, space: Space): void;
+ getAbsolutePosition(): Vector3;
+ setAbsolutePosition(absolutePosition: Vector3): void;
+ /**
+ * Perform relative position change from the point of view of behind the front of the mesh.
+ * This is performed taking into account the meshes current rotation, so you do not have to care.
+ * Supports definition of mesh facing forward or backward.
+ * @param {number} amountRight
+ * @param {number} amountUp
+ * @param {number} amountForward
+ */
+ movePOV(amountRight: number, amountUp: number, amountForward: number): void;
+ /**
+ * Calculate relative position change from the point of view of behind the front of the mesh.
+ * This is performed taking into account the meshes current rotation, so you do not have to care.
+ * Supports definition of mesh facing forward or backward.
+ * @param {number} amountRight
+ * @param {number} amountUp
+ * @param {number} amountForward
+ */
+ calcMovePOV(amountRight: number, amountUp: number, amountForward: number): Vector3;
+ /**
+ * Perform relative rotation change from the point of view of behind the front of the mesh.
+ * Supports definition of mesh facing forward or backward.
+ * @param {number} flipBack
+ * @param {number} twirlClockwise
+ * @param {number} tiltRight
+ */
+ rotatePOV(flipBack: number, twirlClockwise: number, tiltRight: number): void;
+ /**
+ * Calculate relative rotation change from the point of view of behind the front of the mesh.
+ * Supports definition of mesh facing forward or backward.
+ * @param {number} flipBack
+ * @param {number} twirlClockwise
+ * @param {number} tiltRight
+ */
+ calcRotatePOV(flipBack: number, twirlClockwise: number, tiltRight: number): Vector3;
+ setPivotMatrix(matrix: Matrix): void;
+ getPivotMatrix(): Matrix;
+ _isSynchronized(): boolean;
+ _initCache(): void;
+ markAsDirty(property: string): void;
+ _updateBoundingInfo(): void;
+ _updateSubMeshesBoundingInfo(matrix: Matrix): void;
+ computeWorldMatrix(force?: boolean): Matrix;
+ /**
+ * If you'd like to be callbacked after the mesh position, rotation or scaling has been updated
+ * @param func: callback function to add
+ */
+ registerAfterWorldMatrixUpdate(func: (mesh: AbstractMesh) => void): void;
+ unregisterAfterWorldMatrixUpdate(func: (mesh: AbstractMesh) => void): void;
+ setPositionWithLocalVector(vector3: Vector3): void;
+ getPositionExpressedInLocalSpace(): Vector3;
+ locallyTranslate(vector3: Vector3): void;
+ lookAt(targetPoint: Vector3, yawCor: number, pitchCor: number, rollCor: number): void;
+ attachToBone(bone: Bone, affectedMesh: AbstractMesh): void;
+ detachFromBone(): void;
+ isInFrustum(frustumPlanes: Plane[]): boolean;
+ isCompletelyInFrustum(camera?: Camera): boolean;
+ intersectsMesh(mesh: AbstractMesh, precise?: boolean): boolean;
+ intersectsPoint(point: Vector3): boolean;
+ setPhysicsState(impostor?: any, options?: PhysicsBodyCreationOptions): any;
+ getPhysicsImpostor(): number;
+ getPhysicsMass(): number;
+ getPhysicsFriction(): number;
+ getPhysicsRestitution(): number;
+ getPositionInCameraSpace(camera?: Camera): Vector3;
+ getDistanceToCamera(camera?: Camera): number;
+ applyImpulse(force: Vector3, contactPoint: Vector3): void;
+ setPhysicsLinkWith(otherMesh: Mesh, pivot1: Vector3, pivot2: Vector3, options?: any): void;
+ updatePhysicsBodyPosition(): void;
+ checkCollisions: boolean;
+ moveWithCollisions(velocity: Vector3): void;
+ private _onCollisionPositionChange;
+ /**
+ * This function will create an octree to help select the right submeshes for rendering, picking and collisions
+ * Please note that you must have a decent number of submeshes to get performance improvements when using octree
+ */
+ createOrUpdateSubmeshesOctree(maxCapacity?: number, maxDepth?: number): Octree;
+ _collideForSubMesh(subMesh: SubMesh, transformMatrix: Matrix, collider: Collider): void;
+ _processCollisionsForSubMeshes(collider: Collider, transformMatrix: Matrix): void;
+ _checkCollision(collider: Collider): void;
+ _generatePointsArray(): boolean;
+ intersects(ray: Ray, fastCheck?: boolean): PickingInfo;
+ clone(name: string, newParent: Node, doNotCloneChildren?: boolean): AbstractMesh;
+ releaseSubMeshes(): void;
+ dispose(doNotRecurse?: boolean): void;
+ }
+}
+
+declare module BABYLON {
+ class CSG {
+ private polygons;
+ matrix: Matrix;
+ position: Vector3;
+ rotation: Vector3;
+ rotationQuaternion: Quaternion;
+ scaling: Vector3;
+ static FromMesh(mesh: Mesh): CSG;
+ private static FromPolygons(polygons);
+ clone(): CSG;
+ private toPolygons();
+ union(csg: CSG): CSG;
+ unionInPlace(csg: CSG): void;
+ subtract(csg: CSG): CSG;
+ subtractInPlace(csg: CSG): void;
+ intersect(csg: CSG): CSG;
+ intersectInPlace(csg: CSG): void;
+ inverse(): CSG;
+ inverseInPlace(): void;
+ copyTransformAttributes(csg: CSG): CSG;
+ buildMeshGeometry(name: string, scene: Scene, keepSubMeshes: boolean): Mesh;
+ toMesh(name: string, material: Material, scene: Scene, keepSubMeshes: boolean): Mesh;
+ }
+}
+
+declare module BABYLON {
+ class Geometry implements IGetSetVerticesData {
+ id: string;
+ delayLoadState: number;
+ delayLoadingFile: string;
+ onGeometryUpdated: (geometry: Geometry, kind?: string) => void;
+ private _scene;
+ private _engine;
+ private _meshes;
+ private _totalVertices;
+ private _indices;
+ private _vertexBuffers;
+ private _isDisposed;
+ _delayInfo: any;
+ private _indexBuffer;
+ _boundingInfo: BoundingInfo;
+ _delayLoadingFunction: (any: any, geometry: Geometry) => void;
+ constructor(id: string, scene: Scene, vertexData?: VertexData, updatable?: boolean, mesh?: Mesh);
+ getScene(): Scene;
+ getEngine(): Engine;
+ isReady(): boolean;
+ setAllVerticesData(vertexData: VertexData, updatable?: boolean): void;
+ setVerticesData(kind: string, data: number[], updatable?: boolean, stride?: number): void;
+ updateVerticesDataDirectly(kind: string, data: Float32Array, offset: number): void;
+ updateVerticesData(kind: string, data: number[], updateExtends?: boolean): void;
+ getTotalVertices(): number;
+ getVerticesData(kind: string, copyWhenShared?: boolean): number[];
+ getVertexBuffer(kind: string): VertexBuffer;
+ getVertexBuffers(): VertexBuffer[];
+ isVerticesDataPresent(kind: string): boolean;
+ getVerticesDataKinds(): string[];
+ setIndices(indices: number[], totalVertices?: number): void;
+ getTotalIndices(): number;
+ getIndices(copyWhenShared?: boolean): number[];
+ getIndexBuffer(): any;
+ releaseForMesh(mesh: Mesh, shouldDispose?: boolean): void;
+ applyToMesh(mesh: Mesh): void;
+ private _applyToMesh(mesh);
+ private notifyUpdate(kind?);
+ load(scene: Scene, onLoaded?: () => void): void;
+ isDisposed(): boolean;
+ dispose(): void;
+ copy(id: string): Geometry;
+ static ExtractFromMesh(mesh: Mesh, id: string): Geometry;
+ static RandomId(): string;
+ }
+ module Geometry.Primitives {
+ class _Primitive extends Geometry {
+ private _beingRegenerated;
+ private _canBeRegenerated;
+ constructor(id: string, scene: Scene, vertexData?: VertexData, canBeRegenerated?: boolean, mesh?: Mesh);
+ canBeRegenerated(): boolean;
+ regenerate(): void;
+ asNewGeometry(id: string): Geometry;
+ setAllVerticesData(vertexData: VertexData, updatable?: boolean): void;
+ setVerticesData(kind: string, data: number[], updatable?: boolean): void;
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class Ribbon extends _Primitive {
+ pathArray: Vector3[][];
+ closeArray: boolean;
+ closePath: boolean;
+ offset: number;
+ side: number;
+ constructor(id: string, scene: Scene, pathArray: Vector3[][], closeArray: boolean, closePath: boolean, offset: number, canBeRegenerated?: boolean, mesh?: Mesh, side?: number);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class Box extends _Primitive {
+ size: number;
+ side: number;
+ constructor(id: string, scene: Scene, size: number, canBeRegenerated?: boolean, mesh?: Mesh, side?: number);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class Sphere extends _Primitive {
+ segments: number;
+ diameter: number;
+ side: number;
+ constructor(id: string, scene: Scene, segments: number, diameter: number, canBeRegenerated?: boolean, mesh?: Mesh, side?: number);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class Cylinder extends _Primitive {
+ height: number;
+ diameterTop: number;
+ diameterBottom: number;
+ tessellation: number;
+ subdivisions: number;
+ side: number;
+ constructor(id: string, scene: Scene, height: number, diameterTop: number, diameterBottom: number, tessellation: number, subdivisions?: number, canBeRegenerated?: boolean, mesh?: Mesh, side?: number);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class Torus extends _Primitive {
+ diameter: number;
+ thickness: number;
+ tessellation: number;
+ side: number;
+ constructor(id: string, scene: Scene, diameter: number, thickness: number, tessellation: number, canBeRegenerated?: boolean, mesh?: Mesh, side?: number);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class Ground extends _Primitive {
+ width: number;
+ height: number;
+ subdivisions: number;
+ constructor(id: string, scene: Scene, width: number, height: number, subdivisions: number, canBeRegenerated?: boolean, mesh?: Mesh);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class TiledGround extends _Primitive {
+ xmin: number;
+ zmin: number;
+ xmax: number;
+ zmax: number;
+ subdivisions: {
+ w: number;
+ h: number;
+ };
+ precision: {
+ w: number;
+ h: number;
+ };
+ constructor(id: string, scene: Scene, xmin: number, zmin: number, xmax: number, zmax: number, subdivisions: {
+ w: number;
+ h: number;
+ }, precision: {
+ w: number;
+ h: number;
+ }, canBeRegenerated?: boolean, mesh?: Mesh);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class Plane extends _Primitive {
+ size: number;
+ side: number;
+ constructor(id: string, scene: Scene, size: number, canBeRegenerated?: boolean, mesh?: Mesh, side?: number);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ class TorusKnot extends _Primitive {
+ radius: number;
+ tube: number;
+ radialSegments: number;
+ tubularSegments: number;
+ p: number;
+ q: number;
+ side: number;
+ constructor(id: string, scene: Scene, radius: number, tube: number, radialSegments: number, tubularSegments: number, p: number, q: number, canBeRegenerated?: boolean, mesh?: Mesh, side?: number);
+ _regenerateVertexData(): VertexData;
+ copy(id: string): Geometry;
+ }
+ }
+}
+
+declare module BABYLON {
+ class GroundMesh extends Mesh {
+ generateOctree: boolean;
+ private _worldInverse;
+ _subdivisions: number;
+ constructor(name: string, scene: Scene);
+ subdivisions: number;
+ optimize(chunksCount: number, octreeBlocksSize?: number): void;
+ getHeightAtCoordinates(x: number, z: number): number;
+ }
+}
+
+declare module BABYLON {
+ /**
+ * Creates an instance based on a source mesh.
+ */
+ class InstancedMesh extends AbstractMesh {
+ private _sourceMesh;
+ private _currentLOD;
+ constructor(name: string, source: Mesh);
+ receiveShadows: boolean;
+ material: Material;
+ visibility: number;
+ skeleton: Skeleton;
+ getTotalVertices(): number;
+ sourceMesh: Mesh;
+ getVerticesData(kind: string): number[];
+ isVerticesDataPresent(kind: string): boolean;
+ getIndices(): number[];
+ _positions: Vector3[];
+ refreshBoundingInfo(): void;
+ _preActivate(): void;
+ _activate(renderId: number): void;
+ getLOD(camera: Camera): AbstractMesh;
+ _syncSubMeshes(): void;
+ _generatePointsArray(): boolean;
+ clone(name: string, newParent: Node, doNotCloneChildren?: boolean): InstancedMesh;
+ dispose(doNotRecurse?: boolean): void;
+ }
+}
+
+declare module BABYLON {
+ class LinesMesh extends Mesh {
+ color: Color3;
+ alpha: number;
+ private _colorShader;
+ constructor(name: string, scene: Scene, parent?: Node, source?: Mesh, doNotCloneChildren?: boolean);
+ material: Material;
+ isPickable: boolean;
+ checkCollisions: boolean;
+ _bind(subMesh: SubMesh, effect: Effect, fillMode: number): void;
+ _draw(subMesh: SubMesh, fillMode: number, instancesCount?: number): void;
+ intersects(ray: Ray, fastCheck?: boolean): any;
+ dispose(doNotRecurse?: boolean): void;
+ clone(name: string, newParent?: Node, doNotCloneChildren?: boolean): LinesMesh;
+ }
+}
+
+declare module BABYLON {
+ class _InstancesBatch {
+ mustReturn: boolean;
+ visibleInstances: InstancedMesh[][];
+ renderSelf: boolean[];
+ }
+ class Mesh extends AbstractMesh implements IGetSetVerticesData {
+ static _FRONTSIDE: number;
+ static _BACKSIDE: number;
+ static _DOUBLESIDE: number;
+ static _DEFAULTSIDE: number;
+ static _NO_CAP: number;
+ static _CAP_START: number;
+ static _CAP_END: number;
+ static _CAP_ALL: number;
+ static FRONTSIDE: number;
+ static BACKSIDE: number;
+ static DOUBLESIDE: number;
+ static DEFAULTSIDE: number;
+ static NO_CAP: number;
+ static CAP_START: number;
+ static CAP_END: number;
+ static CAP_ALL: number;
+ delayLoadState: number;
+ instances: InstancedMesh[];
+ delayLoadingFile: string;
+ _binaryInfo: any;
+ private _LODLevels;
+ onLODLevelSelection: (distance: number, mesh: Mesh, selectedLevel: Mesh) => void;
+ _geometry: Geometry;
+ private _onBeforeRenderCallbacks;
+ private _onAfterRenderCallbacks;
+ _delayInfo: any;
+ _delayLoadingFunction: (any: any, mesh: Mesh) => void;
+ _visibleInstances: any;
+ private _renderIdForInstances;
+ private _batchCache;
+ private _worldMatricesInstancesBuffer;
+ private _worldMatricesInstancesArray;
+ private _instancesBufferSize;
+ _shouldGenerateFlatShading: boolean;
+ private _preActivateId;
+ private _sideOrientation;
+ private _areNormalsFrozen;
+ private _sourcePositions;
+ private _sourceNormals;
+ /**
+ * @constructor
+ * @param {string} name - The value used by scene.getMeshByName() to do a lookup.
+ * @param {Scene} scene - The scene to add this mesh to.
+ * @param {Node} parent - The parent of this mesh, if it has one
+ * @param {Mesh} source - An optional Mesh from which geometry is shared, cloned.
+ * @param {boolean} doNotCloneChildren - When cloning, skip cloning child meshes of source, default False.
+ * When false, achieved by calling a clone(), also passing False.
+ * This will make creation of children, recursive.
+ */
+ constructor(name: string, scene: Scene, parent?: Node, source?: Mesh, doNotCloneChildren?: boolean);
+ hasLODLevels: boolean;
+ private _sortLODLevels();
+ /**
+ * Add a mesh as LOD level triggered at the given distance.
+ * @param {number} distance - the distance from the center of the object to show this level
+ * @param {BABYLON.Mesh} mesh - the mesh to be added as LOD level
+ * @return {BABYLON.Mesh} this mesh (for chaining)
+ */
+ addLODLevel(distance: number, mesh: Mesh): Mesh;
+ getLODLevelAtDistance(distance: number): Mesh;
+ /**
+ * Remove a mesh from the LOD array
+ * @param {BABYLON.Mesh} mesh - the mesh to be removed.
+ * @return {BABYLON.Mesh} this mesh (for chaining)
+ */
+ removeLODLevel(mesh: Mesh): Mesh;
+ getLOD(camera: Camera, boundingSphere?: BoundingSphere): AbstractMesh;
+ geometry: Geometry;
+ getTotalVertices(): number;
+ getVerticesData(kind: string, copyWhenShared?: boolean): number[];
+ getVertexBuffer(kind: any): VertexBuffer;
+ isVerticesDataPresent(kind: string): boolean;
+ getVerticesDataKinds(): string[];
+ getTotalIndices(): number;
+ getIndices(copyWhenShared?: boolean): number[];
+ isBlocked: boolean;
+ isReady(): boolean;
+ isDisposed(): boolean;
+ sideOrientation: number;
+ areNormalsFrozen: boolean;
+ /** This function affects parametric shapes on update only : ribbons, tubes, etc. It has no effect at all on other shapes */
+ freezeNormals(): void;
+ /** This function affects parametric shapes on update only : ribbons, tubes, etc. It has no effect at all on other shapes */
+ unfreezeNormals(): void;
+ _preActivate(): void;
+ _registerInstanceForRenderId(instance: InstancedMesh, renderId: number): void;
+ refreshBoundingInfo(): void;
+ _createGlobalSubMesh(): SubMesh;
+ subdivide(count: number): void;
+ setVerticesData(kind: any, data: any, updatable?: boolean, stride?: number): void;
+ updateVerticesData(kind: string, data: number[], updateExtends?: boolean, makeItUnique?: boolean): void;
+ updateVerticesDataDirectly(kind: string, data: Float32Array, offset?: number, makeItUnique?: boolean): void;
+ updateMeshPositions(positionFunction: any, computeNormals?: boolean): void;
+ makeGeometryUnique(): void;
+ setIndices(indices: number[], totalVertices?: number): void;
+ _bind(subMesh: SubMesh, effect: Effect, fillMode: number): void;
+ _draw(subMesh: SubMesh, fillMode: number, instancesCount?: number): void;
+ registerBeforeRender(func: (mesh: AbstractMesh) => void): void;
+ unregisterBeforeRender(func: (mesh: AbstractMesh) => void): void;
+ registerAfterRender(func: (mesh: AbstractMesh) => void): void;
+ unregisterAfterRender(func: (mesh: AbstractMesh) => void): void;
+ _getInstancesRenderList(subMeshId: number): _InstancesBatch;
+ _renderWithInstances(subMesh: SubMesh, fillMode: number, batch: _InstancesBatch, effect: Effect, engine: Engine): void;
+ _processRendering(subMesh: SubMesh, effect: Effect, fillMode: number, batch: _InstancesBatch, hardwareInstancedRendering: boolean, onBeforeDraw: (isInstance: boolean, world: Matrix) => void): void;
+ render(subMesh: SubMesh, enableAlphaMode: boolean): void;
+ getEmittedParticleSystems(): ParticleSystem[];
+ getHierarchyEmittedParticleSystems(): ParticleSystem[];
+ getChildren(): Node[];
+ _checkDelayState(): void;
+ isInFrustum(frustumPlanes: Plane[]): boolean;
+ setMaterialByID(id: string): void;
+ getAnimatables(): IAnimatable[];
+ bakeTransformIntoVertices(transform: Matrix): void;
+ bakeCurrentTransformIntoVertices(): void;
+ _resetPointsArrayCache(): void;
+ _generatePointsArray(): boolean;
+ clone(name: string, newParent?: Node, doNotCloneChildren?: boolean): Mesh;
+ dispose(doNotRecurse?: boolean): void;
+ applyDisplacementMap(url: string, minHeight: number, maxHeight: number, onSuccess?: (mesh: Mesh) => void): void;
+ applyDisplacementMapFromBuffer(buffer: Uint8Array, heightMapWidth: number, heightMapHeight: number, minHeight: number, maxHeight: number): void;
+ convertToFlatShadedMesh(): void;
+ flipFaces(flipNormals?: boolean): void;
+ createInstance(name: string): InstancedMesh;
+ synchronizeInstances(): void;
+ /**
+ * Simplify the mesh according to the given array of settings.
+ * Function will return immediately and will simplify async.
+ * @param settings a collection of simplification settings.
+ * @param parallelProcessing should all levels calculate parallel or one after the other.
+ * @param type the type of simplification to run.
+ * @param successCallback optional success callback to be called after the simplification finished processing all settings.
+ */
+ simplify(settings: Array, parallelProcessing?: boolean, simplificationType?: SimplificationType, successCallback?: (mesh?: Mesh, submeshIndex?: number) => void): void;
+ /**
+ * Optimization of the mesh's indices, in case a mesh has duplicated vertices.
+ * The function will only reorder the indices and will not remove unused vertices to avoid problems with submeshes.
+ * This should be used together with the simplification to avoid disappearing triangles.
+ * @param successCallback an optional success callback to be called after the optimization finished.
+ */
+ optimizeIndices(successCallback?: (mesh?: Mesh) => void): void;
+ static CreateRibbon(name: string, pathArray: Vector3[][], closeArray: boolean, closePath: boolean, offset: number, scene: Scene, updatable?: boolean, sideOrientation?: number, ribbonInstance?: Mesh): Mesh;
+ static CreateDisc(name: string, radius: number, tessellation: number, scene: Scene, updatable?: boolean, sideOrientation?: number): Mesh;
+ static CreateBox(name: string, size: number, scene: Scene, updatable?: boolean, sideOrientation?: number): Mesh;
+ static CreateBox(name: string, options: {
+ width?: number;
+ height?: number;
+ depth?: number;
+ faceUV?: Vector4[];
+ faceColors?: Color4[];
+ sideOrientation?: number;
+ updatable?: boolean;
+ }, scene: Scene): Mesh;
+ static CreateSphere(name: string, segments: number, diameter: number, scene?: Scene, updatable?: boolean, sideOrientation?: number): Mesh;
+ static CreateSphere(name: string, options: {
+ segments?: number;
+ diameterX?: number;
+ diameterY?: number;
+ diameterZ?: number;
+ sideOrientation?: number;
+ updatable?: boolean;
+ }, scene: any): Mesh;
+ static CreateCylinder(name: string, height: number, diameterTop: number, diameterBottom: number, tessellation: number, subdivisions: any, scene: Scene, updatable?: any, sideOrientation?: number): Mesh;
+ static CreateTorus(name: string, diameter: number, thickness: number, tessellation: number, scene: Scene, updatable?: boolean, sideOrientation?: number): Mesh;
+ static CreateTorusKnot(name: string, radius: number, tube: number, radialSegments: number, tubularSegments: number, p: number, q: number, scene: Scene, updatable?: boolean, sideOrientation?: number): Mesh;
+ static CreateLines(name: string, points: Vector3[], scene: Scene, updatable?: boolean, linesInstance?: LinesMesh): LinesMesh;
+ static CreateDashedLines(name: string, points: Vector3[], dashSize: number, gapSize: number, dashNb: number, scene: Scene, updatable?: boolean, linesInstance?: LinesMesh): LinesMesh;
+ static ExtrudeShape(name: string, shape: Vector3[], path: Vector3[], scale: number, rotation: number, cap: number, scene: Scene, updatable?: boolean, sideOrientation?: number, extrudedInstance?: Mesh): Mesh;
+ static ExtrudeShapeCustom(name: string, shape: Vector3[], path: Vector3[], scaleFunction: any, rotationFunction: any, ribbonCloseArray: boolean, ribbonClosePath: boolean, cap: number, scene: Scene, updatable?: boolean, sideOrientation?: number, extrudedInstance?: Mesh): Mesh;
+ private static _ExtrudeShapeGeneric(name, shape, curve, scale, rotation, scaleFunction, rotateFunction, rbCA, rbCP, cap, custom, scene, updtbl, side, instance);
+ static CreateLathe(name: string, shape: Vector3[], radius: number, tessellation: number, scene: Scene, updatable?: boolean, sideOrientation?: number): Mesh;
+ static CreatePlane(name: string, size: number, scene: Scene, updatable?: boolean, sideOrientation?: number): Mesh;
+ static CreatePlane(name: string, options: {
+ width?: number;
+ height?: number;
+ sideOrientation?: number;
+ updatable?: boolean;
+ }, scene: Scene): Mesh;
+ static CreateGround(name: string, width: number, height: number, subdivisions: number, scene: Scene, updatable?: boolean): Mesh;
+ static CreateGround(name: string, options: {
+ width?: number;
+ height?: number;
+ subdivisions?: number;
+ sideOrientation?: number;
+ updatable?: boolean;
+ }, scene: any): Mesh;
+ static CreateTiledGround(name: string, xmin: number, zmin: number, xmax: number, zmax: number, subdivisions: {
+ w: number;
+ h: number;
+ }, precision: {
+ w: number;
+ h: number;
+ }, scene: Scene, updatable?: boolean): Mesh;
+ static CreateGroundFromHeightMap(name: string, url: string, width: number, height: number, subdivisions: number, minHeight: number, maxHeight: number, scene: Scene, updatable?: boolean, onReady?: (mesh: GroundMesh) => void): GroundMesh;
+ static CreateTube(name: string, path: Vector3[], radius: number, tessellation: number, radiusFunction: {
+ (i: number, distance: number): number;
+ }, cap: number, scene: Scene, updatable?: boolean, sideOrientation?: number, tubeInstance?: Mesh): Mesh;
+ static CreateDecal(name: string, sourceMesh: AbstractMesh, position: Vector3, normal: Vector3, size: Vector3, angle?: number): Mesh;
+ /**
+ * Update the vertex buffers by applying transformation from the bones
+ * @param {skeleton} skeleton to apply
+ */
+ applySkeleton(skeleton: Skeleton): Mesh;
+ static MinMax(meshes: AbstractMesh[]): {
+ min: Vector3;
+ max: Vector3;
+ };
+ static Center(meshesOrMinMaxVector: any): Vector3;
+ /**
+ * Merge the array of meshes into a single mesh for performance reasons.
+ * @param {Array} meshes - The vertices source. They should all be of the same material. Entries can empty
+ * @param {boolean} disposeSource - When true (default), dispose of the vertices from the source meshes
+ * @param {boolean} allow32BitsIndices - When the sum of the vertices > 64k, this must be set to true.
+ * @param {Mesh} meshSubclass - When set, vertices inserted into this Mesh. Meshes can then be merged into a Mesh sub-class.
+ */
+ static MergeMeshes(meshes: Array, disposeSource?: boolean, allow32BitsIndices?: boolean, meshSubclass?: Mesh): Mesh;
+ }
+}
+
+declare module BABYLON {
+ interface IGetSetVerticesData {
+ isVerticesDataPresent(kind: string): boolean;
+ getVerticesData(kind: string, copyWhenShared?: boolean): number[];
+ getIndices(copyWhenShared?: boolean): number[];
+ setVerticesData(kind: string, data: number[], updatable?: boolean): void;
+ updateVerticesData(kind: string, data: number[], updateExtends?: boolean, makeItUnique?: boolean): void;
+ setIndices(indices: number[]): void;
+ }
+ class VertexData {
+ positions: number[];
+ normals: number[];
+ uvs: number[];
+ uvs2: number[];
+ uvs3: number[];
+ uvs4: number[];
+ uvs5: number[];
+ uvs6: number[];
+ colors: number[];
+ matricesIndices: number[];
+ matricesWeights: number[];
+ indices: number[];
+ set(data: number[], kind: string): void;
+ applyToMesh(mesh: Mesh, updatable?: boolean): void;
+ applyToGeometry(geometry: Geometry, updatable?: boolean): void;
+ updateMesh(mesh: Mesh, updateExtends?: boolean, makeItUnique?: boolean): void;
+ updateGeometry(geometry: Geometry, updateExtends?: boolean, makeItUnique?: boolean): void;
+ private _applyTo(meshOrGeometry, updatable?);
+ private _update(meshOrGeometry, updateExtends?, makeItUnique?);
+ transform(matrix: Matrix): void;
+ merge(other: VertexData): void;
+ static ExtractFromMesh(mesh: Mesh, copyWhenShared?: boolean): VertexData;
+ static ExtractFromGeometry(geometry: Geometry, copyWhenShared?: boolean): VertexData;
+ private static _ExtractFrom(meshOrGeometry, copyWhenShared?);
+ static CreateRibbon(pathArray: Vector3[][], closeArray: boolean, closePath: boolean, offset: number, sideOrientation?: number): VertexData;
+ static CreateBox(options: {
+ width?: number;
+ height?: number;
+ depth?: number;
+ faceUV?: Vector4[];
+ faceColors?: Color4[];
+ sideOrientation?: number;
+ }): VertexData;
+ static CreateBox(size: number, sideOrientation?: number): VertexData;
+ static CreateSphere(options: {
+ segments?: number;
+ diameterX?: number;
+ diameterY?: number;
+ diameterZ?: number;
+ sideOrientation?: number;
+ }): VertexData;
+ static CreateSphere(segments: number, diameter?: number, sideOrientation?: number): VertexData;
+ static CreateCylinder(height: number, diameterTop: number, diameterBottom: number, tessellation: number, subdivisions?: number, sideOrientation?: number): VertexData;
+ static CreateTorus(diameter: any, thickness: any, tessellation: any, sideOrientation?: number): VertexData;
+ static CreateLines(points: Vector3[]): VertexData;
+ static CreateDashedLines(points: Vector3[], dashSize: number, gapSize: number, dashNb: number): VertexData;
+ static CreateGround(options: {
+ width?: number;
+ height?: number;
+ subdivisions?: number;
+ sideOrientation?: number;
+ }): VertexData;
+ static CreateGround(width: number, height: number, subdivisions?: number): VertexData;
+ static CreateTiledGround(xmin: number, zmin: number, xmax: number, zmax: number, subdivisions?: {
+ w: number;
+ h: number;
+ }, precision?: {
+ w: number;
+ h: number;
+ }): VertexData;
+ static CreateGroundFromHeightMap(width: number, height: number, subdivisions: number, minHeight: number, maxHeight: number, buffer: Uint8Array, bufferWidth: number, bufferHeight: number): VertexData;
+ static CreatePlane(options: {
+ width?: number;
+ height?: number;
+ sideOrientation?: number;
+ }): VertexData;
+ static CreatePlane(size: number, sideOrientation?: number): VertexData;
+ static CreateDisc(radius: number, tessellation: number, sideOrientation?: number): VertexData;
+ static CreateTorusKnot(radius: number, tube: number, radialSegments: number, tubularSegments: number, p: number, q: number, sideOrientation?: number): VertexData;
+ /**
+ * @param {any} - positions (number[] or Float32Array)
+ * @param {any} - indices (number[] or Uint16Array)
+ * @param {any} - normals (number[] or Float32Array)
+ */
+ static ComputeNormals(positions: any, indices: any, normals: any): void;
+ private static _ComputeSides(sideOrientation, positions, indices, normals, uvs);
+ }
+}
+
+declare module BABYLON.Internals {
+ class MeshLODLevel {
+ distance: number;
+ mesh: Mesh;
+ constructor(distance: number, mesh: Mesh);
+ }
+}
+
+declare module BABYLON {
+ /**
+ * A simplifier interface for future simplification implementations.
+ */
+ interface ISimplifier {
+ /**
+ * Simplification of a given mesh according to the given settings.
+ * Since this requires computation, it is assumed that the function runs async.
+ * @param settings The settings of the simplification, including quality and distance
+ * @param successCallback A callback that will be called after the mesh was simplified.
+ * @param errorCallback in case of an error, this callback will be called. optional.
+ */
+ simplify(settings: ISimplificationSettings, successCallback: (simplifiedMeshes: Mesh) => void, errorCallback?: () => void): void;
+ }
+ /**
+ * Expected simplification settings.
+ * Quality should be between 0 and 1 (1 being 100%, 0 being 0%);
+ */
+ interface ISimplificationSettings {
+ quality: number;
+ distance: number;
+ optimizeMesh?: boolean;
+ }
+ class SimplificationSettings implements ISimplificationSettings {
+ quality: number;
+ distance: number;
+ optimizeMesh: boolean;
+ constructor(quality: number, distance: number, optimizeMesh?: boolean);
+ }
+ interface ISimplificationTask {
+ settings: Array;
+ simplificationType: SimplificationType;
+ mesh: Mesh;
+ successCallback?: () => void;
+ parallelProcessing: boolean;
+ }
+ class SimplificationQueue {
+ private _simplificationArray;
+ running: any;
+ constructor();
+ addTask(task: ISimplificationTask): void;
+ executeNext(): void;
+ runSimplification(task: ISimplificationTask): void;
+ private getSimplifier(task);
+ }
+ /**
+ * The implemented types of simplification.
+ * At the moment only Quadratic Error Decimation is implemented.
+ */
+ enum SimplificationType {
+ QUADRATIC = 0,
+ }
+ class DecimationTriangle {
+ vertices: Array;
+ normal: Vector3;
+ error: Array;
+ deleted: boolean;
+ isDirty: boolean;
+ borderFactor: number;
+ deletePending: boolean;
+ originalOffset: number;
+ constructor(vertices: Array);
+ }
+ class DecimationVertex {
+ position: Vector3;
+ id: any;
+ q: QuadraticMatrix;
+ isBorder: boolean;
+ triangleStart: number;
+ triangleCount: number;
+ originalOffsets: Array;
+ constructor(position: Vector3, id: any);
+ updatePosition(newPosition: Vector3): void;
+ }
+ class QuadraticMatrix {
+ data: Array;
+ constructor(data?: Array);
+ det(a11: any, a12: any, a13: any, a21: any, a22: any, a23: any, a31: any, a32: any, a33: any): number;
+ addInPlace(matrix: QuadraticMatrix): void;
+ addArrayInPlace(data: Array): void;
+ add(matrix: QuadraticMatrix): QuadraticMatrix;
+ static FromData(a: number, b: number, c: number, d: number): QuadraticMatrix;
+ static DataFromNumbers(a: number, b: number, c: number, d: number): number[];
+ }
+ class Reference {
+ vertexId: number;
+ triangleId: number;
+ constructor(vertexId: number, triangleId: number);
+ }
+ /**
+ * An implementation of the Quadratic Error simplification algorithm.
+ * Original paper : http://www1.cs.columbia.edu/~cs4162/html05s/garland97.pdf
+ * Ported mostly from QSlim and http://voxels.blogspot.de/2014/05/quadric-mesh-simplification-with-source.html to babylon JS
+ * @author RaananW
+ */
+ class QuadraticErrorSimplification implements ISimplifier {
+ private _mesh;
+ private triangles;
+ private vertices;
+ private references;
+ private initialized;
+ private _reconstructedMesh;
+ syncIterations: number;
+ aggressiveness: number;
+ decimationIterations: number;
+ boundingBoxEpsilon: number;
+ constructor(_mesh: Mesh);
+ simplify(settings: ISimplificationSettings, successCallback: (simplifiedMesh: Mesh) => void): void;
+ private isTriangleOnBoundingBox(triangle);
+ private runDecimation(settings, submeshIndex, successCallback);
+ private initWithMesh(submeshIndex, callback, optimizeMesh?);
+ private init(callback);
+ private reconstructMesh(submeshIndex);
+ private initDecimatedMesh();
+ private isFlipped(vertex1, vertex2, point, deletedArray, borderFactor, delTr);
+ private updateTriangles(origVertex, vertex, deletedArray, deletedTriangles);
+ private identifyBorder();
+ private updateMesh(identifyBorders?);
+ private vertexError(q, point);
+ private calculateError(vertex1, vertex2, pointResult?, normalResult?, uvResult?, colorResult?);
+ }
+}
+
+declare module BABYLON {
+ class Polygon {
+ static Rectangle(xmin: number, ymin: number, xmax: number, ymax: number): Vector2[];
+ static Circle(radius: number, cx?: number, cy?: number, numberOfSides?: number): Vector2[];
+ static Parse(input: string): Vector2[];
+ static StartingAt(x: number, y: number): Path2;
+ }
+ class PolygonMeshBuilder {
+ private _swctx;
+ private _points;
+ private _outlinepoints;
+ private _holes;
+ private _name;
+ private _scene;
+ constructor(name: string, contours: Path2, scene: Scene);
+ constructor(name: string, contours: Vector2[], scene: Scene);
+ addHole(hole: Vector2[]): PolygonMeshBuilder;
+ build(updatable?: boolean, depth?: number): Mesh;
+ private addSide(positions, normals, uvs, indices, bounds, points, depth, flip);
+ }
+}
+
+declare module BABYLON {
+ class SubMesh {
+ materialIndex: number;
+ verticesStart: number;
+ verticesCount: number;
+ indexStart: any;
+ indexCount: number;
+ linesIndexCount: number;
+ private _mesh;
+ private _renderingMesh;
+ private _boundingInfo;
+ private _linesIndexBuffer;
+ _lastColliderWorldVertices: Vector3[];
+ _trianglePlanes: Plane[];
+ _lastColliderTransformMatrix: Matrix;
+ _renderId: number;
+ _alphaIndex: number;
+ _distanceToCamera: number;
+ _id: number;
+ constructor(materialIndex: number, verticesStart: number, verticesCount: number, indexStart: any, indexCount: number, mesh: AbstractMesh, renderingMesh?: Mesh, createBoundingBox?: boolean);
+ getBoundingInfo(): BoundingInfo;
+ getMesh(): AbstractMesh;
+ getRenderingMesh(): Mesh;
+ getMaterial(): Material;
+ refreshBoundingInfo(): void;
+ _checkCollision(collider: Collider): boolean;
+ updateBoundingInfo(world: Matrix): void;
+ isInFrustum(frustumPlanes: Plane[]): boolean;
+ render(enableAlphaMode: boolean): void;
+ getLinesIndexBuffer(indices: number[], engine: any): WebGLBuffer;
+ canIntersects(ray: Ray): boolean;
+ intersects(ray: Ray, positions: Vector3[], indices: number[], fastCheck?: boolean): IntersectionInfo;
+ clone(newMesh: AbstractMesh, newRenderingMesh?: Mesh): SubMesh;
+ dispose(): void;
+ static CreateFromIndices(materialIndex: number, startIndex: number, indexCount: number, mesh: AbstractMesh, renderingMesh?: Mesh): SubMesh;
+ }
+}
+
+declare module BABYLON {
+ class VertexBuffer {
+ private _mesh;
+ private _engine;
+ private _buffer;
+ private _data;
+ private _updatable;
+ private _kind;
+ private _strideSize;
+ constructor(engine: any, data: number[], kind: string, updatable: boolean, postponeInternalCreation?: boolean, stride?: number);
+ isUpdatable(): boolean;
+ getData(): number[];
+ getBuffer(): WebGLBuffer;
+ getStrideSize(): number;
+ create(data?: number[]): void;
+ update(data: number[]): void;
+ updateDirectly(data: Float32Array, offset: number): void;
+ dispose(): void;
+ private static _PositionKind;
+ private static _NormalKind;
+ private static _UVKind;
+ private static _UV2Kind;
+ private static _UV3Kind;
+ private static _UV4Kind;
+ private static _UV5Kind;
+ private static _UV6Kind;
+ private static _ColorKind;
+ private static _MatricesIndicesKind;
+ private static _MatricesWeightsKind;
+ static PositionKind: string;
+ static NormalKind: string;
+ static UVKind: string;
+ static UV2Kind: string;
+ static UV3Kind: string;
+ static UV4Kind: string;
+ static UV5Kind: string;
+ static UV6Kind: string;
+ static ColorKind: string;
+ static MatricesIndicesKind: string;
+ static MatricesWeightsKind: string;
+ }
+}
+
+declare module BABYLON {
+ class Particle {
+ position: Vector3;
+ direction: Vector3;
+ color: Color4;
+ colorStep: Color4;
+ lifeTime: number;
+ age: number;
+ size: number;
+ angle: number;
+ angularSpeed: number;
+ copyTo(other: Particle): void;
+ }
+}
+
+declare module BABYLON {
+ class ParticleSystem implements IDisposable {
+ name: string;
+ static BLENDMODE_ONEONE: number;
+ static BLENDMODE_STANDARD: number;
+ id: string;
+ renderingGroupId: number;
+ emitter: any;
+ emitRate: number;
+ manualEmitCount: number;
+ updateSpeed: number;
+ targetStopDuration: number;
+ disposeOnStop: boolean;
+ minEmitPower: number;
+ maxEmitPower: number;
+ minLifeTime: number;
+ maxLifeTime: number;
+ minSize: number;
+ maxSize: number;
+ minAngularSpeed: number;
+ maxAngularSpeed: number;
+ particleTexture: Texture;
+ layerMask: number;
+ onDispose: () => void;
+ updateFunction: (particles: Particle[]) => void;
+ blendMode: number;
+ forceDepthWrite: boolean;
+ gravity: Vector3;
+ direction1: Vector3;
+ direction2: Vector3;
+ minEmitBox: Vector3;
+ maxEmitBox: Vector3;
+ color1: Color4;
+ color2: Color4;
+ colorDead: Color4;
+ textureMask: Color4;
+ startDirectionFunction: (emitPower: number, worldMatrix: Matrix, directionToUpdate: Vector3) => void;
+ startPositionFunction: (worldMatrix: Matrix, positionToUpdate: Vector3) => void;
+ private particles;
+ private _capacity;
+ private _scene;
+ private _vertexDeclaration;
+ private _vertexStrideSize;
+ private _stockParticles;
+ private _newPartsExcess;
+ private _vertexBuffer;
+ private _indexBuffer;
+ private _vertices;
+ private _effect;
+ private _customEffect;
+ private _cachedDefines;
+ private _scaledColorStep;
+ private _colorDiff;
+ private _scaledDirection;
+ private _scaledGravity;
+ private _currentRenderId;
+ private _alive;
+ private _started;
+ private _stopped;
+ private _actualFrame;
+ private _scaledUpdateSpeed;
+ constructor(name: string, capacity: number, scene: Scene, customEffect?: Effect);
+ recycleParticle(particle: Particle): void;
+ getCapacity(): number;
+ isAlive(): boolean;
+ isStarted(): boolean;
+ start(): void;
+ stop(): void;
+ _appendParticleVertex(index: number, particle: Particle, offsetX: number, offsetY: number): void;
+ private _update(newParticles);
+ private _getEffect();
+ animate(): void;
+ render(): number;
+ dispose(): void;
+ clone(name: string, newEmitter: any): ParticleSystem;
+ }
+}
+
+declare module BABYLON {
+ interface IPhysicsEnginePlugin {
+ initialize(iterations?: number): any;
+ setGravity(gravity: Vector3): void;
+ runOneStep(delta: number): void;
+ registerMesh(mesh: AbstractMesh, impostor: number, options: PhysicsBodyCreationOptions): any;
+ registerMeshesAsCompound(parts: PhysicsCompoundBodyPart[], options: PhysicsBodyCreationOptions): any;
+ unregisterMesh(mesh: AbstractMesh): any;
+ applyImpulse(mesh: AbstractMesh, force: Vector3, contactPoint: Vector3): void;
+ createLink(mesh1: AbstractMesh, mesh2: AbstractMesh, pivot1: Vector3, pivot2: Vector3, options?: any): boolean;
+ dispose(): void;
+ isSupported(): boolean;
+ updateBodyPosition(mesh: AbstractMesh): void;
+ }
+ interface PhysicsBodyCreationOptions {
+ mass: number;
+ friction: number;
+ restitution: number;
+ }
+ interface PhysicsCompoundBodyPart {
+ mesh: Mesh;
+ impostor: number;
+ }
+ class PhysicsEngine {
+ gravity: Vector3;
+ private _currentPlugin;
+ constructor(plugin?: IPhysicsEnginePlugin);
+ _initialize(gravity?: Vector3): void;
+ _runOneStep(delta: number): void;
+ _setGravity(gravity: Vector3): void;
+ _registerMesh(mesh: AbstractMesh, impostor: number, options: PhysicsBodyCreationOptions): any;
+ _registerMeshesAsCompound(parts: PhysicsCompoundBodyPart[], options: PhysicsBodyCreationOptions): any;
+ _unregisterMesh(mesh: AbstractMesh): void;
+ _applyImpulse(mesh: AbstractMesh, force: Vector3, contactPoint: Vector3): void;
+ _createLink(mesh1: AbstractMesh, mesh2: AbstractMesh, pivot1: Vector3, pivot2: Vector3, options?: any): boolean;
+ _updateBodyPosition(mesh: AbstractMesh): void;
+ dispose(): void;
+ isSupported(): boolean;
+ static NoImpostor: number;
+ static SphereImpostor: number;
+ static BoxImpostor: number;
+ static PlaneImpostor: number;
+ static MeshImpostor: number;
+ static CapsuleImpostor: number;
+ static ConeImpostor: number;
+ static CylinderImpostor: number;
+ static ConvexHullImpostor: number;
+ static Epsilon: number;
+ }
+}
+
+declare module BABYLON {
+ class BoundingBoxRenderer {
+ frontColor: Color3;
+ backColor: Color3;
+ showBackLines: boolean;
+ renderList: SmartArray;
+ private _scene;
+ private _colorShader;
+ private _vb;
+ private _ib;
+ constructor(scene: Scene);
+ private _prepareRessources();
+ reset(): void;
+ render(): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class DepthRenderer {
+ private _scene;
+ private _depthMap;
+ private _effect;
+ private _viewMatrix;
+ private _projectionMatrix;
+ private _transformMatrix;
+ private _worldViewProjection;
+ private _cachedDefines;
+ constructor(scene: Scene, type?: number);
+ isReady(subMesh: SubMesh, useInstances: boolean): boolean;
+ getDepthMap(): RenderTargetTexture;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class EdgesRenderer {
+ private _source;
+ private _linesPositions;
+ private _linesNormals;
+ private _linesIndices;
+ private _epsilon;
+ private _indicesCount;
+ private _lineShader;
+ private _vb0;
+ private _vb1;
+ private _ib;
+ private _buffers;
+ private _checkVerticesInsteadOfIndices;
+ constructor(source: AbstractMesh, epsilon?: number, checkVerticesInsteadOfIndices?: boolean);
+ private _prepareRessources();
+ dispose(): void;
+ private _processEdgeForAdjacencies(pa, pb, p0, p1, p2);
+ private _processEdgeForAdjacenciesWithVertices(pa, pb, p0, p1, p2);
+ private _checkEdge(faceIndex, edge, faceNormals, p0, p1);
+ _generateEdgesLines(): void;
+ render(): void;
+ }
+}
+
+declare module BABYLON {
+ class OutlineRenderer {
+ private _scene;
+ private _effect;
+ private _cachedDefines;
+ constructor(scene: Scene);
+ render(subMesh: SubMesh, batch: _InstancesBatch, useOverlay?: boolean): void;
+ isReady(subMesh: SubMesh, useInstances: boolean): boolean;
+ }
+}
+
+declare module BABYLON {
+ class RenderingGroup {
+ index: number;
+ private _scene;
+ private _opaqueSubMeshes;
+ private _transparentSubMeshes;
+ private _alphaTestSubMeshes;
+ private _activeVertices;
+ constructor(index: number, scene: Scene);
+ render(customRenderFunction: (opaqueSubMeshes: SmartArray, transparentSubMeshes: SmartArray, alphaTestSubMeshes: SmartArray) => void): boolean;
+ prepare(): void;
+ dispatch(subMesh: SubMesh): void;
+ }
+}
+
+declare module BABYLON {
+ class RenderingManager {
+ static MAX_RENDERINGGROUPS: number;
+ private _scene;
+ private _renderingGroups;
+ private _depthBufferAlreadyCleaned;
+ constructor(scene: Scene);
+ private _renderParticles(index, activeMeshes);
+ private _renderSprites(index);
+ private _clearDepthBuffer();
+ render(customRenderFunction: (opaqueSubMeshes: SmartArray, transparentSubMeshes: SmartArray, alphaTestSubMeshes: SmartArray) => void, activeMeshes: AbstractMesh[], renderParticles: boolean, renderSprites: boolean): void;
+ reset(): void;
+ dispatch(subMesh: SubMesh): void;
+ }
+}
+
+declare module BABYLON {
+ class AnaglyphPostProcess extends PostProcess {
+ constructor(name: string, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class BlackAndWhitePostProcess extends PostProcess {
+ constructor(name: string, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class BlurPostProcess extends PostProcess {
+ direction: Vector2;
+ blurWidth: number;
+ constructor(name: string, direction: Vector2, blurWidth: number, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class ColorCorrectionPostProcess extends PostProcess {
+ private _colorTableTexture;
+ constructor(name: string, colorTableUrl: string, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class ConvolutionPostProcess extends PostProcess {
+ kernel: number[];
+ constructor(name: string, kernel: number[], ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ static EdgeDetect0Kernel: number[];
+ static EdgeDetect1Kernel: number[];
+ static EdgeDetect2Kernel: number[];
+ static SharpenKernel: number[];
+ static EmbossKernel: number[];
+ static GaussianKernel: number[];
+ }
+}
+
+declare module BABYLON {
+ class DisplayPassPostProcess extends PostProcess {
+ constructor(name: string, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class FilterPostProcess extends PostProcess {
+ kernelMatrix: Matrix;
+ constructor(name: string, kernelMatrix: Matrix, ratio: number, camera?: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class FxaaPostProcess extends PostProcess {
+ texelWidth: number;
+ texelHeight: number;
+ constructor(name: string, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class HDRRenderingPipeline extends PostProcessRenderPipeline implements IDisposable {
+ /**
+ * Public members
+ */
+ /**
+ * Gaussian blur coefficient
+ * @type {number}
+ */
+ gaussCoeff: number;
+ /**
+ * Gaussian blur mean
+ * @type {number}
+ */
+ gaussMean: number;
+ /**
+ * Gaussian blur standard deviation
+ * @type {number}
+ */
+ gaussStandDev: number;
+ /**
+ * Exposure, controls the overall intensity of the pipeline
+ * @type {number}
+ */
+ exposure: number;
+ /**
+ * Minimum luminance that the post-process can output. Luminance is >= 0
+ * @type {number}
+ */
+ minimumLuminance: number;
+ /**
+ * Maximum luminance that the post-process can output. Must be suprerior to minimumLuminance
+ * @type {number}
+ */
+ maximumLuminance: number;
+ /**
+ * Increase rate for luminance: eye adaptation speed to dark
+ * @type {number}
+ */
+ luminanceIncreaserate: number;
+ /**
+ * Decrease rate for luminance: eye adaptation speed to bright
+ * @type {number}
+ */
+ luminanceDecreaseRate: number;
+ /**
+ * Minimum luminance needed to compute HDR
+ * @type {number}
+ */
+ brightThreshold: number;
+ /**
+ * Private members
+ */
+ private _guassianBlurHPostProcess;
+ private _guassianBlurVPostProcess;
+ private _brightPassPostProcess;
+ private _textureAdderPostProcess;
+ private _downSampleX4PostProcess;
+ private _originalPostProcess;
+ private _hdrPostProcess;
+ private _hdrCurrentLuminance;
+ private _hdrOutputLuminance;
+ static LUM_STEPS: number;
+ private _downSamplePostProcesses;
+ private _scene;
+ private _needUpdate;
+ /**
+ * @constructor
+ * @param {string} name - The rendering pipeline name
+ * @param {BABYLON.Scene} scene - The scene linked to this pipeline
+ * @param {any} ratio - The size of the postprocesses (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)
+ * @param {BABYLON.PostProcess} originalPostProcess - the custom original color post-process. Must be "reusable". Can be null.
+ * @param {BABYLON.Camera[]} cameras - The array of cameras that the rendering pipeline will be attached to
+ */
+ constructor(name: string, scene: Scene, ratio: number, originalPostProcess?: PostProcess, cameras?: Camera[]);
+ /**
+ * Tells the pipeline to update its post-processes
+ */
+ update(): void;
+ /**
+ * Returns the current calculated luminance
+ */
+ getCurrentLuminance(): number;
+ /**
+ * Returns the currently drawn luminance
+ */
+ getOutputLuminance(): number;
+ /**
+ * Releases the rendering pipeline and its internal effects. Detaches pipeline from cameras
+ */
+ dispose(): void;
+ /**
+ * Creates the HDR post-process and computes the luminance adaptation
+ */
+ private _createHDRPostProcess(scene, ratio);
+ /**
+ * Texture Adder post-process
+ */
+ private _createTextureAdderPostProcess(scene, ratio);
+ /**
+ * Down sample X4 post-process
+ */
+ private _createDownSampleX4PostProcess(scene, ratio);
+ /**
+ * Bright pass post-process
+ */
+ private _createBrightPassPostProcess(scene, ratio);
+ /**
+ * Luminance generator. Creates the luminance post-process and down sample post-processes
+ */
+ private _createLuminanceGeneratorPostProcess(scene);
+ /**
+ * Gaussian blur post-processes. Horizontal and Vertical
+ */
+ private _createGaussianBlurPostProcess(scene, ratio);
+ }
+}
+
+declare module BABYLON {
+ class LensRenderingPipeline extends PostProcessRenderPipeline {
+ /**
+ * The chromatic aberration PostProcess id in the pipeline
+ * @type {string}
+ */
+ LensChromaticAberrationEffect: string;
+ /**
+ * The highlights enhancing PostProcess id in the pipeline
+ * @type {string}
+ */
+ HighlightsEnhancingEffect: string;
+ /**
+ * The depth-of-field PostProcess id in the pipeline
+ * @type {string}
+ */
+ LensDepthOfFieldEffect: string;
+ private _scene;
+ private _depthTexture;
+ private _grainTexture;
+ private _chromaticAberrationPostProcess;
+ private _highlightsPostProcess;
+ private _depthOfFieldPostProcess;
+ private _edgeBlur;
+ private _grainAmount;
+ private _chromaticAberration;
+ private _distortion;
+ private _highlightsGain;
+ private _highlightsThreshold;
+ private _dofDistance;
+ private _dofAperture;
+ private _dofDarken;
+ private _dofPentagon;
+ private _blurNoise;
+ /**
+ * @constructor
+ *
+ * Effect parameters are as follow:
+ * {
+ * chromatic_aberration: number; // from 0 to x (1 for realism)
+ * edge_blur: number; // from 0 to x (1 for realism)
+ * distortion: number; // from 0 to x (1 for realism)
+ * grain_amount: number; // from 0 to 1
+ * grain_texture: BABYLON.Texture; // texture to use for grain effect; if unset, use random B&W noise
+ * dof_focus_distance: number; // depth-of-field: focus distance; unset to disable (disabled by default)
+ * dof_aperture: number; // depth-of-field: focus blur bias (default: 1)
+ * dof_darken: number; // depth-of-field: darken that which is out of focus (from 0 to 1, disabled by default)
+ * dof_pentagon: boolean; // depth-of-field: makes a pentagon-like "bokeh" effect
+ * dof_gain: number; // depth-of-field: highlights gain; unset to disable (disabled by default)
+ * dof_threshold: number; // depth-of-field: highlights threshold (default: 1)
+ * blur_noise: boolean; // add a little bit of noise to the blur (default: true)
+ * }
+ * Note: if an effect parameter is unset, effect is disabled
+ *
+ * @param {string} name - The rendering pipeline name
+ * @param {object} parameters - An object containing all parameters (see above)
+ * @param {BABYLON.Scene} scene - The scene linked to this pipeline
+ * @param {number} ratio - The size of the postprocesses (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)
+ * @param {BABYLON.Camera[]} cameras - The array of cameras that the rendering pipeline will be attached to
+ */
+ constructor(name: string, parameters: any, scene: Scene, ratio?: number, cameras?: Camera[]);
+ setEdgeBlur(amount: number): void;
+ disableEdgeBlur(): void;
+ setGrainAmount(amount: number): void;
+ disableGrain(): void;
+ setChromaticAberration(amount: number): void;
+ disableChromaticAberration(): void;
+ setEdgeDistortion(amount: number): void;
+ disableEdgeDistortion(): void;
+ setFocusDistance(amount: number): void;
+ disableDepthOfField(): void;
+ setAperture(amount: number): void;
+ setDarkenOutOfFocus(amount: number): void;
+ enablePentagonBokeh(): void;
+ disablePentagonBokeh(): void;
+ enableNoiseBlur(): void;
+ disableNoiseBlur(): void;
+ setHighlightsGain(amount: number): void;
+ setHighlightsThreshold(amount: number): void;
+ disableHighlights(): void;
+ /**
+ * Removes the internal pipeline assets and detaches the pipeline from the scene cameras
+ */
+ dispose(disableDepthRender?: boolean): void;
+ private _createChromaticAberrationPostProcess(ratio);
+ private _createHighlightsPostProcess(ratio);
+ private _createDepthOfFieldPostProcess(ratio);
+ private _createGrainTexture();
+ }
+}
+
+declare module BABYLON {
+ class PassPostProcess extends PostProcess {
+ constructor(name: string, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ }
+}
+
+declare module BABYLON {
+ class PostProcess {
+ name: string;
+ onApply: (effect: Effect) => void;
+ onBeforeRender: (effect: Effect) => void;
+ onAfterRender: (effect: Effect) => void;
+ onSizeChanged: () => void;
+ onActivate: (camera: Camera) => void;
+ width: number;
+ height: number;
+ renderTargetSamplingMode: number;
+ clearColor: Color4;
+ private _camera;
+ private _scene;
+ private _engine;
+ private _renderRatio;
+ private _reusable;
+ private _textureType;
+ _textures: SmartArray;
+ _currentRenderTextureInd: number;
+ private _effect;
+ constructor(name: string, fragmentUrl: string, parameters: string[], samplers: string[], ratio: number | any, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean, defines?: string, textureType?: number);
+ isReusable(): boolean;
+ activate(camera: Camera, sourceTexture?: WebGLTexture): void;
+ apply(): Effect;
+ dispose(camera?: Camera): void;
+ }
+}
+
+declare module BABYLON {
+ class PostProcessManager {
+ private _scene;
+ private _indexBuffer;
+ private _vertexDeclaration;
+ private _vertexStrideSize;
+ private _vertexBuffer;
+ constructor(scene: Scene);
+ private _prepareBuffers();
+ _prepareFrame(sourceTexture?: WebGLTexture): boolean;
+ directRender(postProcesses: PostProcess[], targetTexture?: WebGLTexture): void;
+ _finalizeFrame(doNotPresent?: boolean, targetTexture?: WebGLTexture, postProcesses?: PostProcess[]): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class RefractionPostProcess extends PostProcess {
+ color: Color3;
+ depth: number;
+ colorLevel: number;
+ private _refRexture;
+ constructor(name: string, refractionTextureUrl: string, color: Color3, depth: number, colorLevel: number, ratio: number, camera: Camera, samplingMode?: number, engine?: Engine, reusable?: boolean);
+ dispose(camera: Camera): void;
+ }
+}
+
+declare module BABYLON {
+ class SSAORenderingPipeline extends PostProcessRenderPipeline {
+ /**
+ * The PassPostProcess id in the pipeline that contains the original scene color
+ * @type {string}
+ */
+ SSAOOriginalSceneColorEffect: string;
+ /**
+ * The SSAO PostProcess id in the pipeline
+ * @type {string}
+ */
+ SSAORenderEffect: string;
+ /**
+ * The horizontal blur PostProcess id in the pipeline
+ * @type {string}
+ */
+ SSAOBlurHRenderEffect: string;
+ /**
+ * The vertical blur PostProcess id in the pipeline
+ * @type {string}
+ */
+ SSAOBlurVRenderEffect: string;
+ /**
+ * The PostProcess id in the pipeline that combines the SSAO-Blur output with the original scene color (SSAOOriginalSceneColorEffect)
+ * @type {string}
+ */
+ SSAOCombineRenderEffect: string;
+ /**
+ * The output strength of the SSAO post-process. Default value is 1.0.
+ * @type {number}
+ */
+ totalStrength: number;
+ /**
+ * The radius around the analyzed pixel used by the SSAO post-process. Default value is 0.0002
+ * @type {number}
+ */
+ radius: number;
+ /**
+ * Related to fallOff, used to interpolate SSAO samples (first interpolate function input) based on the occlusion difference of each pixel
+ * Must not be equal to fallOff and superior to fallOff.
+ * Default value is 0.0075
+ * @type {number}
+ */
+ area: number;
+ /**
+ * Related to area, used to interpolate SSAO samples (second interpolate function input) based on the occlusion difference of each pixel
+ * Must not be equal to area and inferior to area.
+ * Default value is 0.0002
+ * @type {number}
+ */
+ fallOff: number;
+ private _scene;
+ private _depthTexture;
+ private _randomTexture;
+ private _originalColorPostProcess;
+ private _ssaoPostProcess;
+ private _blurHPostProcess;
+ private _blurVPostProcess;
+ private _ssaoCombinePostProcess;
+ private _firstUpdate;
+ /**
+ * @constructor
+ * @param {string} name - The rendering pipeline name
+ * @param {BABYLON.Scene} scene - The scene linked to this pipeline
+ * @param {any} ratio - The size of the postprocesses. Can be a number shared between passes or an object for more precision: { ssaoRatio: 0.5, combineRatio: 1.0 }
+ * @param {BABYLON.Camera[]} cameras - The array of cameras that the rendering pipeline will be attached to
+ */
+ constructor(name: string, scene: Scene, ratio: any, cameras?: Camera[]);
+ /**
+ * Returns the horizontal blur PostProcess
+ * @return {BABYLON.BlurPostProcess} The horizontal blur post-process
+ */
+ getBlurHPostProcess(): BlurPostProcess;
+ /**
+ * Returns the vertical blur PostProcess
+ * @return {BABYLON.BlurPostProcess} The vertical blur post-process
+ */
+ getBlurVPostProcess(): BlurPostProcess;
+ /**
+ * Removes the internal pipeline assets and detatches the pipeline from the scene cameras
+ */
+ dispose(disableDepthRender?: boolean): void;
+ private _createSSAOPostProcess(ratio);
+ private _createSSAOCombinePostProcess(ratio);
+ private _createRandomTexture();
+ }
+}
+
+declare module BABYLON {
+ class StereoscopicInterlacePostProcess extends PostProcess {
+ private _stepSize;
+ constructor(name: string, camB: Camera, postProcessA: PostProcess, isStereoscopicHoriz: boolean, samplingMode?: number);
+ }
+}
+
+declare module BABYLON {
+ enum TonemappingOperator {
+ Hable = 0,
+ Reinhard = 1,
+ HejiDawson = 2,
+ Photographic = 3,
+ }
+ class TonemapPostProcess extends PostProcess {
+ private _operator;
+ private _exposureAdjustment;
+ constructor(name: string, operator: TonemappingOperator, exposureAdjustment: number, camera: Camera, samplingMode?: number, engine?: Engine, textureFormat?: number);
+ }
+}
+
+declare module BABYLON {
+ class VolumetricLightScatteringPostProcess extends PostProcess {
+ private _volumetricLightScatteringPass;
+ private _volumetricLightScatteringRTT;
+ private _viewPort;
+ private _screenCoordinates;
+ private _cachedDefines;
+ private _customMeshPosition;
+ /**
+ * Set if the post-process should use a custom position for the light source (true) or the internal mesh position (false)
+ * @type {boolean}
+ */
+ useCustomMeshPosition: boolean;
+ /**
+ * If the post-process should inverse the light scattering direction
+ * @type {boolean}
+ */
+ invert: boolean;
+ /**
+ * The internal mesh used by the post-process
+ * @type {boolean}
+ */
+ mesh: Mesh;
+ /**
+ * Set to true to use the diffuseColor instead of the diffuseTexture
+ * @type {boolean}
+ */
+ useDiffuseColor: boolean;
+ /**
+ * Array containing the excluded meshes not rendered in the internal pass
+ */
+ excludedMeshes: AbstractMesh[];
+ /**
+ * Controls the overall intensity of the post-process
+ * @type {number}
+ */
+ exposure: number;
+ /**
+ * Dissipates each sample's contribution in range [0, 1]
+ * @type {number}
+ */
+ decay: number;
+ /**
+ * Controls the overall intensity of each sample
+ * @type {number}
+ */
+ weight: number;
+ /**
+ * Controls the density of each sample
+ * @type {number}
+ */
+ density: number;
+ /**
+ * @constructor
+ * @param {string} name - The post-process name
+ * @param {any} ratio - The size of the post-process and/or internal pass (0.5 means that your postprocess will have a width = canvas.width 0.5 and a height = canvas.height 0.5)
+ * @param {BABYLON.Camera} camera - The camera that the post-process will be attached to
+ * @param {BABYLON.Mesh} mesh - The mesh used to create the light scattering
+ * @param {number} samples - The post-process quality, default 100
+ * @param {number} samplingMode - The post-process filtering mode
+ * @param {BABYLON.Engine} engine - The babylon engine
+ * @param {boolean} reusable - If the post-process is reusable
+ * @param {BABYLON.Scene} scene - The constructor needs a scene reference to initialize internal components. If "camera" is null (RenderPipelineà, "scene" must be provided
+ */
+ constructor(name: string, ratio: any, camera: Camera, mesh?: Mesh, samples?: number, samplingMode?: number, engine?: Engine, reusable?: boolean, scene?: Scene);
+ isReady(subMesh: SubMesh, useInstances: boolean): boolean;
+ /**
+ * Sets the new light position for light scattering effect
+ * @param {BABYLON.Vector3} The new custom light position
+ */
+ setCustomMeshPosition(position: Vector3): void;
+ /**
+ * Returns the light position for light scattering effect
+ * @return {BABYLON.Vector3} The custom light position
+ */
+ getCustomMeshPosition(): Vector3;
+ /**
+ * Disposes the internal assets and detaches the post-process from the camera
+ */
+ dispose(camera: Camera): void;
+ /**
+ * Returns the render target texture used by the post-process
+ * @return {BABYLON.RenderTargetTexture} The render target texture used by the post-process
+ */
+ getPass(): RenderTargetTexture;
+ private _meshExcluded(mesh);
+ private _createPass(scene, ratio);
+ private _updateMeshScreenCoordinates(scene);
+ /**
+ * Creates a default mesh for the Volumeric Light Scattering post-process
+ * @param {string} The mesh name
+ * @param {BABYLON.Scene} The scene where to create the mesh
+ * @return {BABYLON.Mesh} the default mesh
+ */
+ static CreateDefaultMesh(name: string, scene: Scene): Mesh;
+ }
+}
+
+declare module BABYLON {
+ class VRDistortionCorrectionPostProcess extends PostProcess {
+ aspectRatio: number;
+ private _isRightEye;
+ private _distortionFactors;
+ private _postProcessScaleFactor;
+ private _lensCenterOffset;
+ private _scaleIn;
+ private _scaleFactor;
+ private _lensCenter;
+ constructor(name: string, camera: Camera, isRightEye: boolean, vrMetrics: VRCameraMetrics);
+ }
+}
+
+declare module BABYLON {
+ class Sprite {
+ name: string;
+ position: Vector3;
+ color: Color4;
+ width: number;
+ height: number;
+ angle: number;
+ cellIndex: number;
+ invertU: number;
+ invertV: number;
+ disposeWhenFinishedAnimating: boolean;
+ animations: Animation[];
+ private _animationStarted;
+ private _loopAnimation;
+ private _fromIndex;
+ private _toIndex;
+ private _delay;
+ private _direction;
+ private _frameCount;
+ private _manager;
+ private _time;
+ size: number;
+ constructor(name: string, manager: SpriteManager);
+ playAnimation(from: number, to: number, loop: boolean, delay: number): void;
+ stopAnimation(): void;
+ _animate(deltaTime: number): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class SpriteManager {
+ name: string;
+ cellSize: number;
+ sprites: Sprite[];
+ renderingGroupId: number;
+ layerMask: number;
+ onDispose: () => void;
+ fogEnabled: boolean;
+ private _capacity;
+ private _spriteTexture;
+ private _epsilon;
+ private _scene;
+ private _vertexDeclaration;
+ private _vertexStrideSize;
+ private _vertexBuffer;
+ private _indexBuffer;
+ private _vertices;
+ private _effectBase;
+ private _effectFog;
+ constructor(name: string, imgUrl: string, capacity: number, cellSize: number, scene: Scene, epsilon?: number, samplingMode?: number);
+ private _appendSpriteVertex(index, sprite, offsetX, offsetY, rowSize);
+ render(): void;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON.Internals {
+ class AndOrNotEvaluator {
+ static Eval(query: string, evaluateCallback: (val: any) => boolean): boolean;
+ private static _HandleParenthesisContent(parenthesisContent, evaluateCallback);
+ private static _SimplifyNegation(booleanString);
+ }
+}
+
+declare module BABYLON {
+ interface IAssetTask {
+ onSuccess: (task: IAssetTask) => void;
+ onError: (task: IAssetTask) => void;
+ isCompleted: boolean;
+ run(scene: Scene, onSuccess: () => void, onError: () => void): any;
+ }
+ class MeshAssetTask implements IAssetTask {
+ name: string;
+ meshesNames: any;
+ rootUrl: string;
+ sceneFilename: string;
+ loadedMeshes: Array;
+ loadedParticleSystems: Array;
+ loadedSkeletons: Array;
+ onSuccess: (task: IAssetTask) => void;
+ onError: (task: IAssetTask) => void;
+ isCompleted: boolean;
+ constructor(name: string, meshesNames: any, rootUrl: string, sceneFilename: string);
+ run(scene: Scene, onSuccess: () => void, onError: () => void): void;
+ }
+ class TextFileAssetTask implements IAssetTask {
+ name: string;
+ url: string;
+ onSuccess: (task: IAssetTask) => void;
+ onError: (task: IAssetTask) => void;
+ isCompleted: boolean;
+ text: string;
+ constructor(name: string, url: string);
+ run(scene: Scene, onSuccess: () => void, onError: () => void): void;
+ }
+ class BinaryFileAssetTask implements IAssetTask {
+ name: string;
+ url: string;
+ onSuccess: (task: IAssetTask) => void;
+ onError: (task: IAssetTask) => void;
+ isCompleted: boolean;
+ data: ArrayBuffer;
+ constructor(name: string, url: string);
+ run(scene: Scene, onSuccess: () => void, onError: () => void): void;
+ }
+ class ImageAssetTask implements IAssetTask {
+ name: string;
+ url: string;
+ onSuccess: (task: IAssetTask) => void;
+ onError: (task: IAssetTask) => void;
+ isCompleted: boolean;
+ image: HTMLImageElement;
+ constructor(name: string, url: string);
+ run(scene: Scene, onSuccess: () => void, onError: () => void): void;
+ }
+ class TextureAssetTask implements IAssetTask {
+ name: string;
+ url: string;
+ noMipmap: boolean;
+ invertY: boolean;
+ samplingMode: number;
+ onSuccess: (task: IAssetTask) => void;
+ onError: (task: IAssetTask) => void;
+ isCompleted: boolean;
+ texture: Texture;
+ constructor(name: string, url: string, noMipmap?: boolean, invertY?: boolean, samplingMode?: number);
+ run(scene: Scene, onSuccess: () => void, onError: () => void): void;
+ }
+ class AssetsManager {
+ private _tasks;
+ private _scene;
+ private _waitingTasksCount;
+ onFinish: (tasks: IAssetTask[]) => void;
+ onTaskSuccess: (task: IAssetTask) => void;
+ onTaskError: (task: IAssetTask) => void;
+ useDefaultLoadingScreen: boolean;
+ constructor(scene: Scene);
+ addMeshTask(taskName: string, meshesNames: any, rootUrl: string, sceneFilename: string): IAssetTask;
+ addTextFileTask(taskName: string, url: string): IAssetTask;
+ addBinaryFileTask(taskName: string, url: string): IAssetTask;
+ addImageTask(taskName: string, url: string): IAssetTask;
+ addTextureTask(taskName: string, url: string, noMipmap?: boolean, invertY?: boolean, samplingMode?: number): IAssetTask;
+ private _decreaseWaitingTasksCount();
+ private _runTask(task);
+ reset(): AssetsManager;
+ load(): AssetsManager;
+ }
+}
+
+declare module BABYLON {
+ class Database {
+ private callbackManifestChecked;
+ private currentSceneUrl;
+ private db;
+ private enableSceneOffline;
+ private enableTexturesOffline;
+ private manifestVersionFound;
+ private mustUpdateRessources;
+ private hasReachedQuota;
+ private isSupported;
+ private idbFactory;
+ static IsUASupportingBlobStorage: boolean;
+ static IDBStorageEnabled: boolean;
+ constructor(urlToScene: string, callbackManifestChecked: (checked: boolean) => any);
+ static parseURL: (url: string) => string;
+ static ReturnFullUrlLocation: (url: string) => string;
+ checkManifestFile(): void;
+ openAsync(successCallback: any, errorCallback: any): void;
+ loadImageFromDB(url: string, image: HTMLImageElement): void;
+ private _loadImageFromDBAsync(url, image, notInDBCallback);
+ private _saveImageIntoDBAsync(url, image);
+ private _checkVersionFromDB(url, versionLoaded);
+ private _loadVersionFromDBAsync(url, callback, updateInDBCallback);
+ private _saveVersionIntoDBAsync(url, callback);
+ private loadFileFromDB(url, sceneLoaded, progressCallBack, errorCallback, useArrayBuffer?);
+ private _loadFileFromDBAsync(url, callback, notInDBCallback, useArrayBuffer?);
+ private _saveFileIntoDBAsync(url, callback, progressCallback, useArrayBuffer?);
+ }
+}
+
+declare module BABYLON {
+ class FilesInput {
+ private _engine;
+ private _currentScene;
+ private _canvas;
+ private _sceneLoadedCallback;
+ private _progressCallback;
+ private _additionnalRenderLoopLogicCallback;
+ private _textureLoadingCallback;
+ private _startingProcessingFilesCallback;
+ private _elementToMonitor;
+ static FilesTextures: any[];
+ static FilesToLoad: any[];
+ private _sceneFileToLoad;
+ private _filesToLoad;
+ constructor(p_engine: Engine, p_scene: Scene, p_canvas: HTMLCanvasElement, p_sceneLoadedCallback: any, p_progressCallback: any, p_additionnalRenderLoopLogicCallback: any, p_textureLoadingCallback: any, p_startingProcessingFilesCallback: any);
+ monitorElementForDragNDrop(p_elementToMonitor: HTMLElement): void;
+ private renderFunction();
+ private drag(e);
+ private drop(eventDrop);
+ loadFiles(event: any): void;
+ reload(): void;
+ }
+}
+
+declare module BABYLON {
+ class Gamepads {
+ private babylonGamepads;
+ private oneGamepadConnected;
+ private isMonitoring;
+ private gamepadEventSupported;
+ private gamepadSupportAvailable;
+ private _callbackGamepadConnected;
+ private buttonADataURL;
+ private static gamepadDOMInfo;
+ constructor(ongamedpadconnected: (gamepad: Gamepad) => void);
+ private _insertGamepadDOMInstructions();
+ private _insertGamepadDOMNotSupported();
+ dispose(): void;
+ private _onGamepadConnected(evt);
+ private _addNewGamepad(gamepad);
+ private _onGamepadDisconnected(evt);
+ private _startMonitoringGamepads();
+ private _stopMonitoringGamepads();
+ private _checkGamepadsStatus();
+ private _updateGamepadObjects();
+ }
+ class StickValues {
+ x: any;
+ y: any;
+ constructor(x: any, y: any);
+ }
+ class Gamepad {
+ id: string;
+ index: number;
+ browserGamepad: any;
+ private _leftStick;
+ private _rightStick;
+ private _onleftstickchanged;
+ private _onrightstickchanged;
+ constructor(id: string, index: number, browserGamepad: any);
+ onleftstickchanged(callback: (values: StickValues) => void): void;
+ onrightstickchanged(callback: (values: StickValues) => void): void;
+ leftStick: StickValues;
+ rightStick: StickValues;
+ update(): void;
+ }
+ class GenericPad extends Gamepad {
+ id: string;
+ index: number;
+ gamepad: any;
+ private _buttons;
+ private _onbuttondown;
+ private _onbuttonup;
+ onbuttondown(callback: (buttonPressed: number) => void): void;
+ onbuttonup(callback: (buttonReleased: number) => void): void;
+ constructor(id: string, index: number, gamepad: any);
+ private _setButtonValue(newValue, currentValue, buttonIndex);
+ update(): void;
+ }
+ enum Xbox360Button {
+ A = 0,
+ B = 1,
+ X = 2,
+ Y = 3,
+ Start = 4,
+ Back = 5,
+ LB = 6,
+ RB = 7,
+ LeftStick = 8,
+ RightStick = 9,
+ }
+ enum Xbox360Dpad {
+ Up = 0,
+ Down = 1,
+ Left = 2,
+ Right = 3,
+ }
+ class Xbox360Pad extends Gamepad {
+ private _leftTrigger;
+ private _rightTrigger;
+ private _onlefttriggerchanged;
+ private _onrighttriggerchanged;
+ private _onbuttondown;
+ private _onbuttonup;
+ private _ondpaddown;
+ private _ondpadup;
+ private _buttonA;
+ private _buttonB;
+ private _buttonX;
+ private _buttonY;
+ private _buttonBack;
+ private _buttonStart;
+ private _buttonLB;
+ private _buttonRB;
+ private _buttonLeftStick;
+ private _buttonRightStick;
+ private _dPadUp;
+ private _dPadDown;
+ private _dPadLeft;
+ private _dPadRight;
+ onlefttriggerchanged(callback: (value: number) => void): void;
+ onrighttriggerchanged(callback: (value: number) => void): void;
+ leftTrigger: number;
+ rightTrigger: number;
+ onbuttondown(callback: (buttonPressed: Xbox360Button) => void): void;
+ onbuttonup(callback: (buttonReleased: Xbox360Button) => void): void;
+ ondpaddown(callback: (dPadPressed: Xbox360Dpad) => void): void;
+ ondpadup(callback: (dPadReleased: Xbox360Dpad) => void): void;
+ private _setButtonValue(newValue, currentValue, buttonType);
+ private _setDPadValue(newValue, currentValue, buttonType);
+ buttonA: number;
+ buttonB: number;
+ buttonX: number;
+ buttonY: number;
+ buttonStart: number;
+ buttonBack: number;
+ buttonLB: number;
+ buttonRB: number;
+ buttonLeftStick: number;
+ buttonRightStick: number;
+ dPadUp: number;
+ dPadDown: number;
+ dPadLeft: number;
+ dPadRight: number;
+ update(): void;
+ }
+}
+interface Navigator {
+ getGamepads(func?: any): any;
+ webkitGetGamepads(func?: any): any;
+ msGetGamepads(func?: any): any;
+ webkitGamepads(func?: any): any;
+}
+
+declare module BABYLON {
+ class SceneOptimization {
+ priority: number;
+ apply: (scene: Scene) => boolean;
+ constructor(priority?: number);
+ }
+ class TextureOptimization extends SceneOptimization {
+ priority: number;
+ maximumSize: number;
+ constructor(priority?: number, maximumSize?: number);
+ apply: (scene: Scene) => boolean;
+ }
+ class HardwareScalingOptimization extends SceneOptimization {
+ priority: number;
+ maximumScale: number;
+ private _currentScale;
+ constructor(priority?: number, maximumScale?: number);
+ apply: (scene: Scene) => boolean;
+ }
+ class ShadowsOptimization extends SceneOptimization {
+ apply: (scene: Scene) => boolean;
+ }
+ class PostProcessesOptimization extends SceneOptimization {
+ apply: (scene: Scene) => boolean;
+ }
+ class LensFlaresOptimization extends SceneOptimization {
+ apply: (scene: Scene) => boolean;
+ }
+ class ParticlesOptimization extends SceneOptimization {
+ apply: (scene: Scene) => boolean;
+ }
+ class RenderTargetsOptimization extends SceneOptimization {
+ apply: (scene: Scene) => boolean;
+ }
+ class MergeMeshesOptimization extends SceneOptimization {
+ static _UpdateSelectionTree: boolean;
+ static UpdateSelectionTree: boolean;
+ private _canBeMerged;
+ apply: (scene: Scene, updateSelectionTree?: boolean) => boolean;
+ }
+ class SceneOptimizerOptions {
+ targetFrameRate: number;
+ trackerDuration: number;
+ optimizations: SceneOptimization[];
+ constructor(targetFrameRate?: number, trackerDuration?: number);
+ static LowDegradationAllowed(targetFrameRate?: number): SceneOptimizerOptions;
+ static ModerateDegradationAllowed(targetFrameRate?: number): SceneOptimizerOptions;
+ static HighDegradationAllowed(targetFrameRate?: number): SceneOptimizerOptions;
+ }
+ class SceneOptimizer {
+ static _CheckCurrentState(scene: Scene, options: SceneOptimizerOptions, currentPriorityLevel: number, onSuccess?: () => void, onFailure?: () => void): void;
+ static OptimizeAsync(scene: Scene, options?: SceneOptimizerOptions, onSuccess?: () => void, onFailure?: () => void): void;
+ }
+}
+
+declare module BABYLON {
+ class SceneSerializer {
+ static Serialize(scene: Scene): any;
+ static SerializeMesh(toSerialize: any, withParents?: boolean, withChildren?: boolean): any;
+ }
+}
+
+declare module BABYLON {
+ class SmartArray {
+ data: Array;
+ length: number;
+ private _id;
+ private _duplicateId;
+ constructor(capacity: number);
+ push(value: any): void;
+ pushNoDuplicate(value: any): void;
+ sort(compareFn: any): void;
+ reset(): void;
+ concat(array: any): void;
+ concatWithNoDuplicate(array: any): void;
+ indexOf(value: any): number;
+ private static _GlobalId;
+ }
+}
+
+declare module BABYLON {
+ class SmartCollection {
+ count: number;
+ items: any;
+ private _keys;
+ private _initialCapacity;
+ constructor(capacity?: number);
+ add(key: any, item: any): number;
+ remove(key: any): number;
+ removeItemOfIndex(index: number): number;
+ indexOf(key: any): number;
+ item(key: any): any;
+ getAllKeys(): any[];
+ getKeyByIndex(index: number): any;
+ getItemByIndex(index: number): any;
+ empty(): void;
+ forEach(block: (item: any) => void): void;
+ }
+}
+
+declare module BABYLON {
+ class Tags {
+ static EnableFor(obj: any): void;
+ static DisableFor(obj: any): void;
+ static HasTags(obj: any): boolean;
+ static GetTags(obj: any): any;
+ static AddTagsTo(obj: any, tagsString: string): void;
+ static _AddTagTo(obj: any, tag: string): void;
+ static RemoveTagsFrom(obj: any, tagsString: string): void;
+ static _RemoveTagFrom(obj: any, tag: string): void;
+ static MatchesQuery(obj: any, tagsQuery: string): boolean;
+ }
+}
+
+declare module BABYLON.Internals {
+ interface DDSInfo {
+ width: number;
+ height: number;
+ mipmapCount: number;
+ isFourCC: boolean;
+ isRGB: boolean;
+ isLuminance: boolean;
+ isCube: boolean;
+ }
+ class DDSTools {
+ static GetDDSInfo(arrayBuffer: any): DDSInfo;
+ private static GetRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer);
+ private static GetRGBArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer);
+ private static GetLuminanceArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer);
+ static UploadDDSLevels(gl: WebGLRenderingContext, ext: any, arrayBuffer: any, info: DDSInfo, loadMipmaps: boolean, faces: number): void;
+ }
+}
+
+declare module BABYLON.Internals {
+ class TGATools {
+ private static _TYPE_NO_DATA;
+ private static _TYPE_INDEXED;
+ private static _TYPE_RGB;
+ private static _TYPE_GREY;
+ private static _TYPE_RLE_INDEXED;
+ private static _TYPE_RLE_RGB;
+ private static _TYPE_RLE_GREY;
+ private static _ORIGIN_MASK;
+ private static _ORIGIN_SHIFT;
+ private static _ORIGIN_BL;
+ private static _ORIGIN_BR;
+ private static _ORIGIN_UL;
+ private static _ORIGIN_UR;
+ static GetTGAHeader(data: Uint8Array): any;
+ static UploadContent(gl: WebGLRenderingContext, data: Uint8Array): void;
+ static _getImageData8bits(header: any, palettes: Uint8Array, pixel_data: Uint8Array, y_start: number, y_step: number, y_end: number, x_start: number, x_step: number, x_end: number): Uint8Array;
+ static _getImageData16bits(header: any, palettes: Uint8Array, pixel_data: Uint8Array, y_start: number, y_step: number, y_end: number, x_start: number, x_step: number, x_end: number): Uint8Array;
+ static _getImageData24bits(header: any, palettes: Uint8Array, pixel_data: Uint8Array, y_start: number, y_step: number, y_end: number, x_start: number, x_step: number, x_end: number): Uint8Array;
+ static _getImageData32bits(header: any, palettes: Uint8Array, pixel_data: Uint8Array, y_start: number, y_step: number, y_end: number, x_start: number, x_step: number, x_end: number): Uint8Array;
+ static _getImageDataGrey8bits(header: any, palettes: Uint8Array, pixel_data: Uint8Array, y_start: number, y_step: number, y_end: number, x_start: number, x_step: number, x_end: number): Uint8Array;
+ static _getImageDataGrey16bits(header: any, palettes: Uint8Array, pixel_data: Uint8Array, y_start: number, y_step: number, y_end: number, x_start: number, x_step: number, x_end: number): Uint8Array;
+ }
+}
+
+declare module BABYLON {
+ interface IAnimatable {
+ animations: Array;
+ }
+ interface ISize {
+ width: number;
+ height: number;
+ }
+ class Tools {
+ static BaseUrl: string;
+ static ToHex(i: number): string;
+ static SetImmediate(action: () => void): void;
+ static IsExponantOfTwo(value: number): boolean;
+ static GetExponantOfTwo(value: number, max: number): number;
+ static GetFilename(path: string): string;
+ static GetDOMTextContent(element: HTMLElement): string;
+ static ToDegrees(angle: number): number;
+ static ToRadians(angle: number): number;
+ static ExtractMinAndMaxIndexed(positions: number[], indices: number[], indexStart: number, indexCount: number): {
+ minimum: Vector3;
+ maximum: Vector3;
+ };
+ static ExtractMinAndMax(positions: number[], start: number, count: number): {
+ minimum: Vector3;
+ maximum: Vector3;
+ };
+ static MakeArray(obj: any, allowsNullUndefined?: boolean): Array;
+ static GetPointerPrefix(): string;
+ static QueueNewFrame(func: any): void;
+ static RequestFullscreen(element: any): void;
+ static ExitFullscreen(): void;
+ static CleanUrl(url: string): string;
+ static LoadImage(url: string, onload: any, onerror: any, database: any): HTMLImageElement;
+ static LoadFile(url: string, callback: (data: any) => void, progressCallBack?: () => void, database?: any, useArrayBuffer?: boolean, onError?: () => void): void;
+ static ReadFileAsDataURL(fileToLoad: any, callback: any, progressCallback: any): void;
+ static ReadFile(fileToLoad: any, callback: any, progressCallBack: any, useArrayBuffer?: boolean): void;
+ static Clamp(value: number, min?: number, max?: number): number;
+ static Sign(value: number): number;
+ static Format(value: number, decimals?: number): string;
+ static CheckExtends(v: Vector3, min: Vector3, max: Vector3): void;
+ static WithinEpsilon(a: number, b: number, epsilon?: number): boolean;
+ static DeepCopy(source: any, destination: any, doNotCopyList?: string[], mustCopyList?: string[]): void;
+ static IsEmpty(obj: any): boolean;
+ static RegisterTopRootEvents(events: {
+ name: string;
+ handler: EventListener;
+ }[]): void;
+ static UnregisterTopRootEvents(events: {
+ name: string;
+ handler: EventListener;
+ }[]): void;
+ static DumpFramebuffer(width: number, height: number, engine: Engine, successCallback?: (data: String) => void): void;
+ static CreateScreenshot(engine: Engine, camera: Camera, size: any, successCallback?: (data: String) => void): void;
+ static ValidateXHRData(xhr: XMLHttpRequest, dataType?: number): boolean;
+ private static _NoneLogLevel;
+ private static _MessageLogLevel;
+ private static _WarningLogLevel;
+ private static _ErrorLogLevel;
+ private static _LogCache;
+ static errorsCount: number;
+ static OnNewCacheEntry: (entry: string) => void;
+ static NoneLogLevel: number;
+ static MessageLogLevel: number;
+ static WarningLogLevel: number;
+ static ErrorLogLevel: number;
+ static AllLogLevel: number;
+ private static _AddLogEntry(entry);
+ private static _FormatMessage(message);
+ static Log: (message: string) => void;
+ private static _LogDisabled(message);
+ private static _LogEnabled(message);
+ static Warn: (message: string) => void;
+ private static _WarnDisabled(message);
+ private static _WarnEnabled(message);
+ static Error: (message: string) => void;
+ private static _ErrorDisabled(message);
+ private static _ErrorEnabled(message);
+ static LogCache: string;
+ static ClearLogCache(): void;
+ static LogLevels: number;
+ private static _PerformanceNoneLogLevel;
+ private static _PerformanceUserMarkLogLevel;
+ private static _PerformanceConsoleLogLevel;
+ private static _performance;
+ static PerformanceNoneLogLevel: number;
+ static PerformanceUserMarkLogLevel: number;
+ static PerformanceConsoleLogLevel: number;
+ static PerformanceLogLevel: number;
+ static _StartPerformanceCounterDisabled(counterName: string, condition?: boolean): void;
+ static _EndPerformanceCounterDisabled(counterName: string, condition?: boolean): void;
+ static _StartUserMark(counterName: string, condition?: boolean): void;
+ static _EndUserMark(counterName: string, condition?: boolean): void;
+ static _StartPerformanceConsole(counterName: string, condition?: boolean): void;
+ static _EndPerformanceConsole(counterName: string, condition?: boolean): void;
+ static StartPerformanceCounter: (counterName: string, condition?: boolean) => void;
+ static EndPerformanceCounter: (counterName: string, condition?: boolean) => void;
+ static Now: number;
+ static GetFps(): number;
+ }
+ /**
+ * An implementation of a loop for asynchronous functions.
+ */
+ class AsyncLoop {
+ iterations: number;
+ private _fn;
+ private _successCallback;
+ index: number;
+ private _done;
+ /**
+ * Constroctor.
+ * @param iterations the number of iterations.
+ * @param _fn the function to run each iteration
+ * @param _successCallback the callback that will be called upon succesful execution
+ * @param offset starting offset.
+ */
+ constructor(iterations: number, _fn: (asyncLoop: AsyncLoop) => void, _successCallback: () => void, offset?: number);
+ /**
+ * Execute the next iteration. Must be called after the last iteration was finished.
+ */
+ executeNext(): void;
+ /**
+ * Break the loop and run the success callback.
+ */
+ breakLoop(): void;
+ /**
+ * Helper function
+ */
+ static Run(iterations: number, _fn: (asyncLoop: AsyncLoop) => void, _successCallback: () => void, offset?: number): AsyncLoop;
+ /**
+ * A for-loop that will run a given number of iterations synchronous and the rest async.
+ * @param iterations total number of iterations
+ * @param syncedIterations number of synchronous iterations in each async iteration.
+ * @param fn the function to call each iteration.
+ * @param callback a success call back that will be called when iterating stops.
+ * @param breakFunction a break condition (optional)
+ * @param timeout timeout settings for the setTimeout function. default - 0.
+ * @constructor
+ */
+ static SyncAsyncForLoop(iterations: number, syncedIterations: number, fn: (iteration: number) => void, callback: () => void, breakFunction?: () => boolean, timeout?: number): void;
+ }
+}
+
+declare module BABYLON {
+ enum JoystickAxis {
+ X = 0,
+ Y = 1,
+ Z = 2,
+ }
+ class VirtualJoystick {
+ reverseLeftRight: boolean;
+ reverseUpDown: boolean;
+ deltaPosition: Vector3;
+ pressed: boolean;
+ private static _globalJoystickIndex;
+ private static vjCanvas;
+ private static vjCanvasContext;
+ private static vjCanvasWidth;
+ private static vjCanvasHeight;
+ private static halfWidth;
+ private static halfHeight;
+ private _action;
+ private _axisTargetedByLeftAndRight;
+ private _axisTargetedByUpAndDown;
+ private _joystickSensibility;
+ private _inversedSensibility;
+ private _rotationSpeed;
+ private _inverseRotationSpeed;
+ private _rotateOnAxisRelativeToMesh;
+ private _joystickPointerID;
+ private _joystickColor;
+ private _joystickPointerPos;
+ private _joystickPreviousPointerPos;
+ private _joystickPointerStartPos;
+ private _deltaJoystickVector;
+ private _leftJoystick;
+ private _joystickIndex;
+ private _touches;
+ private _onPointerDownHandlerRef;
+ private _onPointerMoveHandlerRef;
+ private _onPointerUpHandlerRef;
+ private _onPointerOutHandlerRef;
+ private _onResize;
+ constructor(leftJoystick?: boolean);
+ setJoystickSensibility(newJoystickSensibility: number): void;
+ private _onPointerDown(e);
+ private _onPointerMove(e);
+ private _onPointerUp(e);
+ /**
+ * Change the color of the virtual joystick
+ * @param newColor a string that must be a CSS color value (like "red") or the hexa value (like "#FF0000")
+ */
+ setJoystickColor(newColor: string): void;
+ setActionOnTouch(action: () => any): void;
+ setAxisForLeftRight(axis: JoystickAxis): void;
+ setAxisForUpDown(axis: JoystickAxis): void;
+ private _clearCanvas();
+ private _drawVirtualJoystick();
+ releaseCanvas(): void;
+ }
+}
+
+declare module BABYLON {
+ class VRDeviceOrientationFreeCamera extends FreeCamera {
+ _alpha: number;
+ _beta: number;
+ _gamma: number;
+ private _offsetOrientation;
+ private _deviceOrientationHandler;
+ constructor(name: string, position: Vector3, scene: Scene, compensateDistorsion?: boolean);
+ _onOrientationEvent(evt: DeviceOrientationEvent): void;
+ attachControl(element: HTMLElement, noPreventDefault?: boolean): void;
+ detachControl(element: HTMLElement): void;
+ }
+}
+
+declare var HMDVRDevice: any;
+declare var PositionSensorVRDevice: any;
+declare module BABYLON {
+ class WebVRFreeCamera extends FreeCamera {
+ _hmdDevice: any;
+ _sensorDevice: any;
+ _cacheState: any;
+ _cacheQuaternion: Quaternion;
+ _cacheRotation: Vector3;
+ _vrEnabled: boolean;
+ constructor(name: string, position: Vector3, scene: Scene, compensateDistorsion?: boolean);
+ private _getWebVRDevices(devices);
+ _checkInputs(): void;
+ attachControl(element: HTMLElement, noPreventDefault?: boolean): void;
+ detachControl(element: HTMLElement): void;
+ }
+}
+
+declare module BABYLON {
+ interface IOctreeContainer {
+ blocks: Array>;
+ }
+ class Octree {
+ maxDepth: number;
+ blocks: Array>;
+ dynamicContent: T[];
+ private _maxBlockCapacity;
+ private _selectionContent;
+ private _creationFunc;
+ constructor(creationFunc: (entry: T, block: OctreeBlock) => void, maxBlockCapacity?: number, maxDepth?: number);
+ update(worldMin: Vector3, worldMax: Vector3, entries: T[]): void;
+ addMesh(entry: T): void;
+ select(frustumPlanes: Plane[], allowDuplicate?: boolean): SmartArray;
+ intersects(sphereCenter: Vector3, sphereRadius: number, allowDuplicate?: boolean): SmartArray;
+ intersectsRay(ray: Ray): SmartArray;
+ static _CreateBlocks(worldMin: Vector3, worldMax: Vector3, entries: T[], maxBlockCapacity: number, currentDepth: number, maxDepth: number, target: IOctreeContainer, creationFunc: (entry: T, block: OctreeBlock) => void): void;
+ static CreationFuncForMeshes: (entry: AbstractMesh, block: OctreeBlock) => void;
+ static CreationFuncForSubMeshes: (entry: SubMesh, block: OctreeBlock) => void;
+ }
+}
+
+declare module BABYLON {
+ class OctreeBlock {
+ entries: T[];
+ blocks: Array>;
+ private _depth;
+ private _maxDepth;
+ private _capacity;
+ private _minPoint;
+ private _maxPoint;
+ private _boundingVectors;
+ private _creationFunc;
+ constructor(minPoint: Vector3, maxPoint: Vector3, capacity: number, depth: number, maxDepth: number, creationFunc: (entry: T, block: OctreeBlock) => void);
+ capacity: number;
+ minPoint: Vector3;
+ maxPoint: Vector3;
+ addEntry(entry: T): void;
+ addEntries(entries: T[]): void;
+ select(frustumPlanes: Plane[], selection: SmartArray, allowDuplicate?: boolean): void;
+ intersects(sphereCenter: Vector3, sphereRadius: number, selection: SmartArray, allowDuplicate?: boolean): void;
+ intersectsRay(ray: Ray, selection: SmartArray): void;
+ createInnerBlocks(): void;
+ }
+}
+
+declare module BABYLON {
+ class ShadowGenerator {
+ private static _FILTER_NONE;
+ private static _FILTER_VARIANCESHADOWMAP;
+ private static _FILTER_POISSONSAMPLING;
+ private static _FILTER_BLURVARIANCESHADOWMAP;
+ static FILTER_NONE: number;
+ static FILTER_VARIANCESHADOWMAP: number;
+ static FILTER_POISSONSAMPLING: number;
+ static FILTER_BLURVARIANCESHADOWMAP: number;
+ private _filter;
+ blurScale: number;
+ private _blurBoxOffset;
+ private _bias;
+ private _lightDirection;
+ bias: number;
+ blurBoxOffset: number;
+ filter: number;
+ useVarianceShadowMap: boolean;
+ usePoissonSampling: boolean;
+ useBlurVarianceShadowMap: boolean;
+ private _light;
+ private _scene;
+ private _shadowMap;
+ private _shadowMap2;
+ private _darkness;
+ private _transparencyShadow;
+ private _effect;
+ private _viewMatrix;
+ private _projectionMatrix;
+ private _transformMatrix;
+ private _worldViewProjection;
+ private _cachedPosition;
+ private _cachedDirection;
+ private _cachedDefines;
+ private _currentRenderID;
+ private _downSamplePostprocess;
+ private _boxBlurPostprocess;
+ private _mapSize;
+ constructor(mapSize: number, light: IShadowLight);
+ isReady(subMesh: SubMesh, useInstances: boolean): boolean;
+ getShadowMap(): RenderTargetTexture;
+ getShadowMapForRendering(): RenderTargetTexture;
+ getLight(): IShadowLight;
+ getTransformMatrix(): Matrix;
+ getDarkness(): number;
+ setDarkness(darkness: number): void;
+ setTransparencyShadow(hasShadow: boolean): void;
+ private _packHalf(depth);
+ dispose(): void;
+ }
+}
+
+declare module BABYLON.Internals {
+}
+
+declare module BABYLON {
+ class BaseTexture {
+ name: string;
+ delayLoadState: number;
+ hasAlpha: boolean;
+ getAlphaFromRGB: boolean;
+ level: number;
+ isCube: boolean;
+ isRenderTarget: boolean;
+ animations: Animation[];
+ onDispose: () => void;
+ coordinatesIndex: number;
+ coordinatesMode: number;
+ wrapU: number;
+ wrapV: number;
+ uScale: number;
+ vScale: number;
+ anisotropicFilteringLevel: number;
+ _cachedAnisotropicFilteringLevel: number;
+ private _scene;
+ _texture: WebGLTexture;
+ constructor(scene: Scene);
+ getScene(): Scene;
+ getTextureMatrix(): Matrix;
+ getReflectionTextureMatrix(): Matrix;
+ getInternalTexture(): WebGLTexture;
+ isReady(): boolean;
+ getSize(): ISize;
+ getBaseSize(): ISize;
+ scale(ratio: number): void;
+ canRescale: boolean;
+ _removeFromCache(url: string, noMipmap: boolean): void;
+ _getFromCache(url: string, noMipmap: boolean, sampling?: number): WebGLTexture;
+ delayLoad(): void;
+ releaseInternalTexture(): void;
+ clone(): BaseTexture;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class CubeTexture extends BaseTexture {
+ url: string;
+ coordinatesMode: number;
+ private _noMipmap;
+ private _extensions;
+ private _textureMatrix;
+ constructor(rootUrl: string, scene: Scene, extensions?: string[], noMipmap?: boolean);
+ clone(): CubeTexture;
+ delayLoad(): void;
+ getReflectionTextureMatrix(): Matrix;
+ }
+}
+
+declare module BABYLON {
+ class DynamicTexture extends Texture {
+ private _generateMipMaps;
+ private _canvas;
+ private _context;
+ constructor(name: string, options: any, scene: Scene, generateMipMaps: boolean, samplingMode?: number);
+ canRescale: boolean;
+ scale(ratio: number): void;
+ getContext(): CanvasRenderingContext2D;
+ clear(): void;
+ update(invertY?: boolean): void;
+ drawText(text: string, x: number, y: number, font: string, color: string, clearColor: string, invertY?: boolean, update?: boolean): void;
+ clone(): DynamicTexture;
+ }
+}
+
+declare module BABYLON {
+ class MirrorTexture extends RenderTargetTexture {
+ mirrorPlane: Plane;
+ private _transformMatrix;
+ private _mirrorMatrix;
+ private _savedViewMatrix;
+ constructor(name: string, size: number, scene: Scene, generateMipMaps?: boolean);
+ clone(): MirrorTexture;
+ }
+}
+
+declare module BABYLON {
+ class RawTexture extends Texture {
+ format: number;
+ constructor(data: ArrayBufferView, width: number, height: number, format: number, scene: Scene, generateMipMaps?: boolean, invertY?: boolean, samplingMode?: number);
+ update(data: ArrayBufferView): void;
+ static CreateLuminanceTexture(data: ArrayBufferView, width: number, height: number, scene: Scene, generateMipMaps?: boolean, invertY?: boolean, samplingMode?: number): RawTexture;
+ static CreateLuminanceAlphaTexture(data: ArrayBufferView, width: number, height: number, scene: Scene, generateMipMaps?: boolean, invertY?: boolean, samplingMode?: number): RawTexture;
+ static CreateAlphaTexture(data: ArrayBufferView, width: number, height: number, scene: Scene, generateMipMaps?: boolean, invertY?: boolean, samplingMode?: number): RawTexture;
+ static CreateRGBTexture(data: ArrayBufferView, width: number, height: number, scene: Scene, generateMipMaps?: boolean, invertY?: boolean, samplingMode?: number): RawTexture;
+ static CreateRGBATexture(data: ArrayBufferView, width: number, height: number, scene: Scene, generateMipMaps?: boolean, invertY?: boolean, samplingMode?: number): RawTexture;
+ }
+}
+
+declare module BABYLON {
+ class RenderTargetTexture extends Texture {
+ renderList: AbstractMesh[];
+ renderParticles: boolean;
+ renderSprites: boolean;
+ coordinatesMode: number;
+ onBeforeRender: () => void;
+ onAfterRender: () => void;
+ onAfterUnbind: () => void;
+ onClear: (engine: Engine) => void;
+ activeCamera: Camera;
+ customRenderFunction: (opaqueSubMeshes: SmartArray, transparentSubMeshes: SmartArray, alphaTestSubMeshes: SmartArray, beforeTransparents?: () => void) => void;
+ private _size;
+ _generateMipMaps: boolean;
+ private _renderingManager;
+ _waitingRenderList: string[];
+ private _doNotChangeAspectRatio;
+ private _currentRefreshId;
+ private _refreshRate;
+ constructor(name: string, size: any, scene: Scene, generateMipMaps?: boolean, doNotChangeAspectRatio?: boolean, type?: number);
+ resetRefreshCounter(): void;
+ refreshRate: number;
+ _shouldRender(): boolean;
+ isReady(): boolean;
+ getRenderSize(): number;
+ canRescale: boolean;
+ scale(ratio: number): void;
+ resize(size: any, generateMipMaps?: boolean): void;
+ render(useCameraPostProcess?: boolean, dumpForDebug?: boolean): void;
+ clone(): RenderTargetTexture;
+ }
+}
+
+declare module BABYLON {
+ class Texture extends BaseTexture {
+ static NEAREST_SAMPLINGMODE: number;
+ static BILINEAR_SAMPLINGMODE: number;
+ static TRILINEAR_SAMPLINGMODE: number;
+ static EXPLICIT_MODE: number;
+ static SPHERICAL_MODE: number;
+ static PLANAR_MODE: number;
+ static CUBIC_MODE: number;
+ static PROJECTION_MODE: number;
+ static SKYBOX_MODE: number;
+ static CLAMP_ADDRESSMODE: number;
+ static WRAP_ADDRESSMODE: number;
+ static MIRROR_ADDRESSMODE: number;
+ url: string;
+ uOffset: number;
+ vOffset: number;
+ uScale: number;
+ vScale: number;
+ uAng: number;
+ vAng: number;
+ wAng: number;
+ private _noMipmap;
+ _invertY: boolean;
+ private _rowGenerationMatrix;
+ private _cachedTextureMatrix;
+ private _projectionModeMatrix;
+ private _t0;
+ private _t1;
+ private _t2;
+ private _cachedUOffset;
+ private _cachedVOffset;
+ private _cachedUScale;
+ private _cachedVScale;
+ private _cachedUAng;
+ private _cachedVAng;
+ private _cachedWAng;
+ private _cachedCoordinatesMode;
+ _samplingMode: number;
+ private _buffer;
+ private _deleteBuffer;
+ constructor(url: string, scene: Scene, noMipmap?: boolean, invertY?: boolean, samplingMode?: number, onLoad?: () => void, onError?: () => void, buffer?: any, deleteBuffer?: boolean);
+ delayLoad(): void;
+ updateSamplingMode(samplingMode: number): void;
+ private _prepareRowForTextureGeneration(x, y, z, t);
+ getTextureMatrix(): Matrix;
+ getReflectionTextureMatrix(): Matrix;
+ clone(): Texture;
+ static CreateFromBase64String(data: string, name: string, scene: Scene, noMipmap?: boolean, invertY?: boolean, samplingMode?: number, onLoad?: () => void, onError?: () => void): Texture;
+ }
+}
+
+declare module BABYLON {
+ class VideoTexture extends Texture {
+ video: HTMLVideoElement;
+ private _autoLaunch;
+ private _lastUpdate;
+ constructor(name: string, urls: string[], scene: Scene, generateMipMaps?: boolean, invertY?: boolean, samplingMode?: number);
+ update(): boolean;
+ }
+}
+
+declare module BABYLON {
+ class CannonJSPlugin implements IPhysicsEnginePlugin {
+ checkWithEpsilon: (value: number) => number;
+ private _world;
+ private _registeredMeshes;
+ private _physicsMaterials;
+ initialize(iterations?: number): void;
+ private _checkWithEpsilon(value);
+ runOneStep(delta: number): void;
+ setGravity(gravity: Vector3): void;
+ registerMesh(mesh: AbstractMesh, impostor: number, options?: PhysicsBodyCreationOptions): any;
+ private _createSphere(radius, mesh, options?);
+ private _createBox(x, y, z, mesh, options?);
+ private _createPlane(mesh, options?);
+ private _createConvexPolyhedron(rawVerts, rawFaces, mesh, options?);
+ private _addMaterial(friction, restitution);
+ private _createRigidBodyFromShape(shape, mesh, mass, friction, restitution);
+ registerMeshesAsCompound(parts: PhysicsCompoundBodyPart[], options: PhysicsBodyCreationOptions): any;
+ private _unbindBody(body);
+ unregisterMesh(mesh: AbstractMesh): void;
+ applyImpulse(mesh: AbstractMesh, force: Vector3, contactPoint: Vector3): void;
+ updateBodyPosition: (mesh: AbstractMesh) => void;
+ createLink(mesh1: AbstractMesh, mesh2: AbstractMesh, pivot1: Vector3, pivot2: Vector3): boolean;
+ dispose(): void;
+ isSupported(): boolean;
+ }
+}
+
+declare module BABYLON {
+ class OimoJSPlugin implements IPhysicsEnginePlugin {
+ private _world;
+ private _registeredMeshes;
+ private _checkWithEpsilon(value);
+ initialize(iterations?: number): void;
+ setGravity(gravity: Vector3): void;
+ registerMesh(mesh: AbstractMesh, impostor: number, options: PhysicsBodyCreationOptions): any;
+ registerMeshesAsCompound(parts: PhysicsCompoundBodyPart[], options: PhysicsBodyCreationOptions): any;
+ private _createBodyAsCompound(part, options, initialMesh);
+ unregisterMesh(mesh: AbstractMesh): void;
+ private _unbindBody(body);
+ /**
+ * Update the body position according to the mesh position
+ * @param mesh
+ */
+ updateBodyPosition: (mesh: AbstractMesh) => void;
+ applyImpulse(mesh: AbstractMesh, force: Vector3, contactPoint: Vector3): void;
+ createLink(mesh1: AbstractMesh, mesh2: AbstractMesh, pivot1: Vector3, pivot2: Vector3, options?: any): boolean;
+ dispose(): void;
+ isSupported(): boolean;
+ private _getLastShape(body);
+ runOneStep(time: number): void;
+ }
+}
+
+declare module BABYLON {
+ class PostProcessRenderEffect {
+ private _engine;
+ private _postProcesses;
+ private _getPostProcess;
+ private _singleInstance;
+ private _cameras;
+ private _indicesForCamera;
+ private _renderPasses;
+ private _renderEffectAsPasses;
+ _name: string;
+ applyParameters: (postProcess: PostProcess) => void;
+ constructor(engine: Engine, name: string, getPostProcess: () => PostProcess, singleInstance?: boolean);
+ _update(): void;
+ addPass(renderPass: PostProcessRenderPass): void;
+ removePass(renderPass: PostProcessRenderPass): void;
+ addRenderEffectAsPass(renderEffect: PostProcessRenderEffect): void;
+ getPass(passName: string): void;
+ emptyPasses(): void;
+ _attachCameras(cameras: Camera): any;
+ _attachCameras(cameras: Camera[]): any;
+ _detachCameras(cameras: Camera): any;
+ _detachCameras(cameras: Camera[]): any;
+ _enable(cameras: Camera): any;
+ _enable(cameras: Camera[]): any;
+ _disable(cameras: Camera): any;
+ _disable(cameras: Camera[]): any;
+ getPostProcess(camera?: Camera): PostProcess;
+ private _linkParameters();
+ private _linkTextures(effect);
+ }
+}
+
+declare module BABYLON {
+ class PostProcessRenderPass {
+ private _enabled;
+ private _renderList;
+ private _renderTexture;
+ private _scene;
+ private _refCount;
+ _name: string;
+ constructor(scene: Scene, name: string, size: number, renderList: Mesh[], beforeRender: () => void, afterRender: () => void);
+ _incRefCount(): number;
+ _decRefCount(): number;
+ _update(): void;
+ setRenderList(renderList: Mesh[]): void;
+ getRenderTexture(): RenderTargetTexture;
+ }
+}
+
+declare module BABYLON {
+ class PostProcessRenderPipeline {
+ private _engine;
+ private _renderEffects;
+ private _renderEffectsForIsolatedPass;
+ private _cameras;
+ _name: string;
+ private static PASS_EFFECT_NAME;
+ private static PASS_SAMPLER_NAME;
+ constructor(engine: Engine, name: string);
+ addEffect(renderEffect: PostProcessRenderEffect): void;
+ _enableEffect(renderEffectName: string, cameras: Camera): any;
+ _enableEffect(renderEffectName: string, cameras: Camera[]): any;
+ _disableEffect(renderEffectName: string, cameras: Camera): any;
+ _disableEffect(renderEffectName: string, cameras: Camera[]): any;
+ _attachCameras(cameras: Camera, unique: boolean): any;
+ _attachCameras(cameras: Camera[], unique: boolean): any;
+ _detachCameras(cameras: Camera): any;
+ _detachCameras(cameras: Camera[]): any;
+ _enableDisplayOnlyPass(passName: any, cameras: Camera): any;
+ _enableDisplayOnlyPass(passName: any, cameras: Camera[]): any;
+ _disableDisplayOnlyPass(cameras: Camera): any;
+ _disableDisplayOnlyPass(cameras: Camera[]): any;
+ _update(): void;
+ }
+}
+
+declare module BABYLON {
+ class PostProcessRenderPipelineManager {
+ private _renderPipelines;
+ constructor();
+ addPipeline(renderPipeline: PostProcessRenderPipeline): void;
+ attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera, unique?: boolean): any;
+ attachCamerasToRenderPipeline(renderPipelineName: string, cameras: Camera[], unique?: boolean): any;
+ detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: Camera): any;
+ detachCamerasFromRenderPipeline(renderPipelineName: string, cameras: Camera[]): any;
+ enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera): any;
+ enableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[]): any;
+ disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera): any;
+ disableEffectInPipeline(renderPipelineName: string, renderEffectName: string, cameras: Camera[]): any;
+ enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera): any;
+ enableDisplayOnlyPassInPipeline(renderPipelineName: string, passName: string, cameras: Camera[]): any;
+ disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera): any;
+ disableDisplayOnlyPassInPipeline(renderPipelineName: string, cameras: Camera[]): any;
+ update(): void;
+ }
+}
+
+declare module BABYLON {
+ class CustomProceduralTexture extends ProceduralTexture {
+ private _animate;
+ private _time;
+ private _config;
+ private _texturePath;
+ constructor(name: string, texturePath: any, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ private loadJson(jsonUrl);
+ isReady(): boolean;
+ render(useCameraPostProcess?: boolean): void;
+ updateTextures(): void;
+ updateShaderUniforms(): void;
+ animate: boolean;
+ }
+}
+
+declare module BABYLON {
+ class ProceduralTexture extends Texture {
+ private _size;
+ _generateMipMaps: boolean;
+ isEnabled: boolean;
+ private _doNotChangeAspectRatio;
+ private _currentRefreshId;
+ private _refreshRate;
+ private _vertexBuffer;
+ private _indexBuffer;
+ private _effect;
+ private _vertexDeclaration;
+ private _vertexStrideSize;
+ private _uniforms;
+ private _samplers;
+ private _fragment;
+ _textures: Texture[];
+ private _floats;
+ private _floatsArrays;
+ private _colors3;
+ private _colors4;
+ private _vectors2;
+ private _vectors3;
+ private _matrices;
+ private _fallbackTexture;
+ private _fallbackTextureUsed;
+ constructor(name: string, size: any, fragment: any, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ reset(): void;
+ isReady(): boolean;
+ resetRefreshCounter(): void;
+ setFragment(fragment: any): void;
+ refreshRate: number;
+ _shouldRender(): boolean;
+ getRenderSize(): number;
+ resize(size: any, generateMipMaps: any): void;
+ private _checkUniform(uniformName);
+ setTexture(name: string, texture: Texture): ProceduralTexture;
+ setFloat(name: string, value: number): ProceduralTexture;
+ setFloats(name: string, value: number[]): ProceduralTexture;
+ setColor3(name: string, value: Color3): ProceduralTexture;
+ setColor4(name: string, value: Color4): ProceduralTexture;
+ setVector2(name: string, value: Vector2): ProceduralTexture;
+ setVector3(name: string, value: Vector3): ProceduralTexture;
+ setMatrix(name: string, value: Matrix): ProceduralTexture;
+ render(useCameraPostProcess?: boolean): void;
+ clone(): ProceduralTexture;
+ dispose(): void;
+ }
+}
+
+declare module BABYLON {
+ class WoodProceduralTexture extends ProceduralTexture {
+ private _ampScale;
+ private _woodColor;
+ constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ updateShaderUniforms(): void;
+ ampScale: number;
+ woodColor: Color3;
+ }
+ class FireProceduralTexture extends ProceduralTexture {
+ private _time;
+ private _speed;
+ private _autoGenerateTime;
+ private _fireColors;
+ private _alphaThreshold;
+ constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ updateShaderUniforms(): void;
+ render(useCameraPostProcess?: boolean): void;
+ static PurpleFireColors: Color3[];
+ static GreenFireColors: Color3[];
+ static RedFireColors: Color3[];
+ static BlueFireColors: Color3[];
+ fireColors: Color3[];
+ time: number;
+ speed: Vector2;
+ alphaThreshold: number;
+ }
+ class CloudProceduralTexture extends ProceduralTexture {
+ private _skyColor;
+ private _cloudColor;
+ constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ updateShaderUniforms(): void;
+ skyColor: Color4;
+ cloudColor: Color4;
+ }
+ class GrassProceduralTexture extends ProceduralTexture {
+ private _grassColors;
+ private _herb1;
+ private _herb2;
+ private _herb3;
+ private _groundColor;
+ constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ updateShaderUniforms(): void;
+ grassColors: Color3[];
+ groundColor: Color3;
+ }
+ class RoadProceduralTexture extends ProceduralTexture {
+ private _roadColor;
+ constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ updateShaderUniforms(): void;
+ roadColor: Color3;
+ }
+ class BrickProceduralTexture extends ProceduralTexture {
+ private _numberOfBricksHeight;
+ private _numberOfBricksWidth;
+ private _jointColor;
+ private _brickColor;
+ constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ updateShaderUniforms(): void;
+ numberOfBricksHeight: number;
+ numberOfBricksWidth: number;
+ jointColor: Color3;
+ brickColor: Color3;
+ }
+ class MarbleProceduralTexture extends ProceduralTexture {
+ private _numberOfTilesHeight;
+ private _numberOfTilesWidth;
+ private _amplitude;
+ private _marbleColor;
+ private _jointColor;
+ constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean);
+ updateShaderUniforms(): void;
+ numberOfTilesHeight: number;
+ numberOfTilesWidth: number;
+ jointColor: Color3;
+ marbleColor: Color3;
+ }
+}
diff --git a/backbone.localstorage/backbone.localstorage-tests.ts b/backbone.localstorage/backbone.localstorage-tests.ts
new file mode 100644
index 0000000000..0d44897a80
--- /dev/null
+++ b/backbone.localstorage/backbone.localstorage-tests.ts
@@ -0,0 +1,6 @@
+///
+
+var store: Store = new Store('testStore');
+store.findAll();
+
+store.save();
diff --git a/backbone.localstorage/backbone.localstorage.d.ts b/backbone.localstorage/backbone.localstorage.d.ts
new file mode 100644
index 0000000000..122c475876
--- /dev/null
+++ b/backbone.localstorage/backbone.localstorage.d.ts
@@ -0,0 +1,51 @@
+// Type definitions for backbone.localStorage 1.0.0
+// Project: https://github.com/jeromegn/Backbone.localStorage
+// Definitions by: Louis Grignon
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module Backbone {
+ interface Serializer {
+ serialize(item: any): any;
+ deserialize(data: any): any;
+ }
+
+ class LocalStorage {
+ name: string;
+ serializer: Serializer;
+ records: string[];
+
+ constructor(name: string, serializer?: Serializer);
+
+ save(): void;
+
+ // Add a model, giving it a (hopefully)-unique GUID, if it doesn't already
+ // have an id of it's own.
+ create(model: any): any;
+
+ // Update a model by replacing its copy in `this.data`.
+ update(model: any): any;
+
+ // Retrieve a model from `this.data` by id.
+ find(model: any): any;
+
+ // Return the array of all models currently in storage.
+ findAll(): any;
+
+ // Delete a model from `this.data`, returning it.
+ destroy(model: T): T;
+
+ localStorage(): any;
+
+ // Clear localStorage for specific collection.
+ _clear(): void;
+
+ _storageSize(): number;
+
+ _itemName(id: any): string;
+ }
+}
+
+import Store = Backbone.LocalStorage;
+
diff --git a/backbone/backbone-global.d.ts b/backbone/backbone-global.d.ts
index 764aa83d75..c16e1a59e3 100644
--- a/backbone/backbone-global.d.ts
+++ b/backbone/backbone-global.d.ts
@@ -43,6 +43,7 @@ declare module Backbone {
interface PersistenceOptions {
url?: string;
+ data?: any;
beforeSend?: (jqxhr: JQueryXHR) => void;
success?: (modelOrCollection?: any, response?: any, options?: any) => void;
error?: (modelOrCollection?: any, jqxhr?: JQueryXHR, options?: any) => void;
diff --git a/bcrypt-nodejs/bcrypt-nodejs-tests.ts b/bcrypt-nodejs/bcrypt-nodejs-tests.ts
new file mode 100644
index 0000000000..2a151c1c7e
--- /dev/null
+++ b/bcrypt-nodejs/bcrypt-nodejs-tests.ts
@@ -0,0 +1,30 @@
+///
+
+import bCrypt = require("bcrypt-nodejs");
+
+function test_sync() {
+ var salt1 = bCrypt.genSaltSync();
+ var salt2 = bCrypt.genSaltSync(8);
+
+ var hash1 = bCrypt.hashSync('super secret');
+ var hash2 = bCrypt.hashSync('super secret', salt1);
+
+ var compare1 = bCrypt.compareSync('super secret', hash1);
+
+ var rounds1 = bCrypt.getRounds(hash2);
+}
+
+function test_async() {
+ var cbString = (error: Error, result: string) => {};
+ var cbVoid = () => {};
+ var cbBoolean = (error: Error, result: boolean) => {};
+
+ bCrypt.genSalt(8, cbString);
+
+ var salt = bCrypt.genSaltSync();
+ bCrypt.hash('super secret', salt, cbString);
+ bCrypt.hash('super secret', salt, cbVoid, cbString);
+
+ var hash = bCrypt.hashSync('super secret');
+ bCrypt.compare('super secret', hash, cbBoolean);
+}
\ No newline at end of file
diff --git a/bcrypt-nodejs/bcrypt-nodejs.d.ts b/bcrypt-nodejs/bcrypt-nodejs.d.ts
new file mode 100644
index 0000000000..32b735d68f
--- /dev/null
+++ b/bcrypt-nodejs/bcrypt-nodejs.d.ts
@@ -0,0 +1,68 @@
+// Type definitions for bcrypt-nodejs
+// Project: https://github.com/shaneGirish/bcrypt-nodejs
+// Definitions by: David Broder-Rodgers
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+declare module "bcrypt-nodejs" {
+ /**
+ * Generate a salt synchronously
+ * @param rounds Number of rounds to process the data for (default - 10)
+ * @return Generated salt
+ */
+ export function genSaltSync(rounds?: number): string;
+
+ /**
+ * Generate a salt asynchronously
+ * @param rounds Number of rounds to process the data for (default - 10)
+ * @param callback Callback with error and resulting salt, to be fired once the salt has been generated
+ */
+ export function genSalt(rounds: number, callback: (error: Error, result: string) => void): void;
+
+ /**
+ * Generate a hash synchronously
+ * @param data Data to be encrypted
+ * @param salt Salt to be used in encryption (default - new salt generated with 10 rounds)
+ * @return Generated hash
+ */
+ export function hashSync(data: string, salt?: string): string;
+
+ /**
+ * Generate a hash asynchronously
+ * @param data Data to be encrypted
+ * @param salt Salt to be used in encryption
+ * @param callback Callback with error and hashed result, to be fired once the data has been encrypted
+ */
+ export function hash(data: string, salt: string, callback: (error: Error, result: string) => void): void;
+
+ /**
+ * Generate a hash asynchronously
+ * @param data Data to be encrypted
+ * @param salt Salt to be used in encryption
+ * @param progressCallback Callback to be fired multiple times during the hash calculation to signify progress
+ * @param callback Callback with error and hashed result, to be fired once the data has been encrypted
+ */
+ export function hash(data: string, salt: string, progressCallback: () => void, callback: (error: Error, result: string) => void): void;
+
+ /**
+ * Compares data with a hash synchronously
+ * @param data Data to be compared
+ * @param hash Hash to be compared to
+ * @return true if matching, false otherwise
+ */
+ export function compareSync(data: string, hash: string): boolean;
+
+ /**
+ * Compares data with a hash asynchronously
+ * @param data Data to be compared
+ * @param hash Hash to be compared to
+ * @param callback Callback with error and match result, to be fired once the data has been compared
+ */
+ export function compare(data: string, hash: string, callback: (error: Error, result: boolean) => void): void;
+
+ /**
+ * Get number of rounds used for hash
+ * @param hash Hash from which the number of rounds used should be extracted
+ * @return number of rounds used to encrypt a given hash
+ */
+ export function getRounds(hash: string): number;
+}
diff --git a/bcryptjs/bcryptjs-tests.ts b/bcryptjs/bcryptjs-tests.ts
new file mode 100644
index 0000000000..acfc48e439
--- /dev/null
+++ b/bcryptjs/bcryptjs-tests.ts
@@ -0,0 +1,54 @@
+///
+
+import bcryptjs = require("bcryptjs");
+
+let str: string;
+let num: number;
+let bool: boolean;
+
+str = bcryptjs.genSaltSync();
+str = bcryptjs.genSaltSync(10);
+
+bcryptjs.genSalt((err: Error, salt: string) => {
+ str = salt;
+});
+bcryptjs.genSalt(10, (err: Error, salt: string) => {
+ str = salt;
+});
+
+str = bcryptjs.hashSync("string");
+str = bcryptjs.hashSync("string", 10);
+str = bcryptjs.hashSync("string", "salt");
+
+bcryptjs.hash("string", 10, (err: Error, hash: string) => {
+ str = hash;
+});
+bcryptjs.hash("string", 10, (err: Error, hash: string) => {
+ str = hash;
+}, (percent: number) => {
+ num = percent;
+});
+
+bcryptjs.hash("string", "salt", (err: Error, hash: string) => {
+ str = hash;
+});
+bcryptjs.hash("string", "salt", (err: Error, hash: string) => {
+ str = hash;
+}, (percent: number) => {
+ num = percent;
+});
+
+bool = bcryptjs.compareSync("string1", "string2");
+
+bcryptjs.compare("string1", "string2", (err: Error, success: boolean) => {
+ bool = success;
+});
+bcryptjs.compare("string1", "string2", (err: Error, success: boolean) => {
+ bool = success;
+}, (percent: number) => {
+ num = percent;
+});
+
+num = bcryptjs.getRounds("string");
+
+str = bcryptjs.getSalt("string");
diff --git a/bcryptjs/bcryptjs.d.ts b/bcryptjs/bcryptjs.d.ts
new file mode 100644
index 0000000000..3d3128d022
--- /dev/null
+++ b/bcryptjs/bcryptjs.d.ts
@@ -0,0 +1,82 @@
+// Type definitions for bcryptjs v2.3.0
+// Project: https://github.com/dcodeIO/bcrypt.js
+// Definitions by: Joshua Filby
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare module "bcryptjs" {
+
+ /**
+ * Sets the pseudo random number generator to use as a fallback if neither node's crypto module nor the Web Crypto API is available.
+ * Please note: It is highly important that the PRNG used is cryptographically secure and that it is seeded properly!
+ * @param random Function taking the number of bytes to generate as its sole argument, returning the corresponding array of cryptographically secure random byte values.
+ */
+ export function setRandomFallback(random: (random: number) => number[]): void;
+
+ /**
+ * Synchronously generates a salt.
+ * @param rounds Number of rounds to use, defaults to 10 if omitted
+ * @return Resulting salt
+ */
+ export function genSaltSync(rounds?: number): string;
+
+ /**
+ * Asynchronously generates a salt.
+ * @param callback Callback receiving the error, if any, and the resulting salt
+ */
+ export function genSalt(callback: (err: Error, salt: string) => void): void;
+
+ /**
+ * Asynchronously generates a salt.
+ * @param rounds Number of rounds to use, defaults to 10 if omitted
+ * @param callback Callback receiving the error, if any, and the resulting salt
+ */
+ export function genSalt(rounds: number, callback: (err: Error, salt: string) => void): void;
+
+ /**
+ * Synchronously generates a hash for the given string.
+ * @param s String to hash
+ * @param salt Salt length to generate or salt to use, default to 10
+ * @return Resulting hash
+ */
+ export function hashSync(s: string, salt?: number | string): string;
+
+ /**
+ * Asynchronously generates a hash for the given string.
+ * @param s String to hash
+ * @param salt Salt length to generate or salt to use
+ * @param callback Callback receiving the error, if any, and the resulting hash
+ * @param progressCallback Callback successively called with the percentage of rounds completed (0.0 - 1.0), maximally once per MAX_EXECUTION_TIME = 100 ms.
+ */
+ export function hash(s: string, salt: number | string, callback: (err: Error, hash: string) => void, progressCallback?: (percent: number) => void): void;
+
+ /**
+ * Synchronously tests a string against a hash.
+ * @param s String to compare
+ * @param hash Hash to test against
+ * @return true if matching, otherwise false
+ */
+ export function compareSync(s: string, hash: string): boolean;
+
+ /**
+ * Asynchronously compares the given data against the given hash.
+ * @param s Data to compare
+ * @param hash Data to be compared to
+ * @param callback Callback receiving the error, if any, otherwise the result
+ * @param progressCallback Callback successively called with the percentage of rounds completed (0.0 - 1.0), maximally once per MAX_EXECUTION_TIME = 100 ms.
+ */
+ export function compare(s: string, hash: string, callback: (err: Error, success: boolean) => void, progressCallback?: (percent: number) => void): void;
+
+ /**
+ * Gets the number of rounds used to encrypt the specified hash.
+ * @param hash Hash to extract the used number of rounds from
+ * @return Number of rounds used
+ */
+ export function getRounds(hash: string): number;
+
+ /**
+ * Gets the salt portion from a hash. Does not validate the hash.
+ * @param hash Hash to extract the salt from
+ * @return Extracted salt part
+ */
+ export function getSalt(hash: string): string;
+}
diff --git a/bezier-easing/bezier-easing-tests.ts b/bezier-easing/bezier-easing-tests.ts
new file mode 100644
index 0000000000..eab1fb4f15
--- /dev/null
+++ b/bezier-easing/bezier-easing-tests.ts
@@ -0,0 +1,21 @@
+///
+
+function test_create_from_array() {
+ let easing: BezierEasing = BezierEasing([0, 0, 1, 0.5]);
+}
+
+function test_create_from_params() {
+ let easing: BezierEasing = BezierEasing(0, 0, 1, 0.5);
+}
+
+function test_create_from_builtins() {
+ let easing: BezierEasing = BezierEasing.css['ease-in'];
+}
+
+function test_methods() {
+ let easing: BezierEasing = BezierEasing.css['ease-in'];
+ let easedRatio: number = easing.get(0.5);
+ let points: Array = easing.getPoints();
+ let stringified: string = easing.toString();
+ let asCSS: string = easing.toCSS();
+}
diff --git a/bezier-easing/bezier-easing.d.ts b/bezier-easing/bezier-easing.d.ts
new file mode 100644
index 0000000000..695368e7af
--- /dev/null
+++ b/bezier-easing/bezier-easing.d.ts
@@ -0,0 +1,24 @@
+// Type definitions for bezier-easing
+// Project: https://github.com/gre/bezier-easing
+// Definitions by: brian ridley
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+declare interface BezierEasing {
+ get(ratio: number): number;
+ getPoints(): Array;
+ toString(): string;
+ toCSS(): string;
+}
+
+declare function BezierEasing(points: Array): BezierEasing;
+declare function BezierEasing(a: number, b: number, c: number, d: number): BezierEasing;
+
+declare namespace BezierEasing {
+ let css: {
+ 'ease': BezierEasing,
+ 'linear': BezierEasing,
+ 'ease-in': BezierEasing,
+ 'ease-out': BezierEasing,
+ 'ease-in-out': BezierEasing
+ };
+}
diff --git a/big.js/big.js.d.ts b/big.js/big.js.d.ts
index d4ca239e36..2ad360a564 100644
--- a/big.js/big.js.d.ts
+++ b/big.js/big.js.d.ts
@@ -200,4 +200,9 @@ declare module BigJsLibrary {
}
}
+declare module "big.js" {
+ var bigjs : BigJsLibrary.BigJS;
+ export = bigjs;
+}
+
declare var Big: BigJsLibrary.BigJS;
diff --git a/blue-tape/blue-tape-tests.ts b/blue-tape/blue-tape-tests.ts
new file mode 100644
index 0000000000..a01675a1c5
--- /dev/null
+++ b/blue-tape/blue-tape-tests.ts
@@ -0,0 +1,170 @@
+///
+///
+///
+
+import tape = require('blue-tape');
+import P = require('bluebird');
+
+var name: string;
+var cb: tape.TestCase;
+var opts: tape.TestOptions;
+var t: tape.Test;
+
+tape(cb);
+tape(name, cb);
+tape(opts, cb);
+tape(name, opts, cb);
+
+tape(name, (test: tape.Test) => {
+ t = test;
+});
+
+tape.skip(name, cb);
+tape.only(name, cb);
+
+
+var sopts: tape.StreamOptions;
+var rs: NodeJS.ReadableStream;
+rs = tape.createStream();
+rs = tape.createStream(sopts);
+
+
+var htest: typeof tape;
+htest = tape.createHarness();
+
+
+tape(name, (test: tape.Test) => {
+ var num: number;
+ var ms: number;
+ var value: any;
+ var actual: any;
+ var expected: any;
+ var err: any;
+ var fn = function() {};
+ var msg: string;
+
+ var exceptionExpected: RegExp | (() => void);
+
+ test.plan(num);
+ test.end();
+ test.end(err);
+
+ test.fail(msg);
+ test.pass(msg);
+ test.timeoutAfter(ms);
+ test.skip(msg);
+
+ test.ok(value);
+ test.ok(value, msg);
+ test.true(value);
+ test.true(value, msg);
+ test.assert(value);
+ test.assert(value, msg);
+
+ test.notOk(value);
+ test.notOk(value, msg);
+ test.false(value);
+ test.false(value, msg);
+ test.notok(value);
+ test.notok(value, msg);
+
+ test.error(err, msg);
+ test.ifError(err, msg);
+ test.ifErr(err, msg);
+ test.iferror(err, msg);
+
+ test.equal(actual, expected);
+ test.equal(actual, expected, msg);
+ test.equals(actual, expected);
+ test.equals(actual, expected, msg);
+ test.isEqual(actual, expected);
+ test.isEqual(actual, expected, msg);
+ test.is(actual, expected);
+ test.is(actual, expected, msg);
+ test.strictEqual(actual, expected);
+ test.strictEqual(actual, expected, msg);
+ test.strictEquals(actual, expected);
+ test.strictEquals(actual, expected, msg);
+
+ test.notEqual(actual, expected);
+ test.notEqual(actual, expected, msg);
+ test.notEquals(actual, expected);
+ test.notEquals(actual, expected, msg);
+ test.notStrictEqual(actual, expected);
+ test.notStrictEqual(actual, expected, msg);
+ test.notStrictEquals(actual, expected);
+ test.notStrictEquals(actual, expected, msg);
+ test.isNotEqual(actual, expected);
+ test.isNotEqual(actual, expected, msg);
+ test.isNot(actual, expected);
+ test.isNot(actual, expected, msg);
+ test.not(actual, expected);
+ test.not(actual, expected, msg);
+ test.doesNotEqual(actual, expected);
+ test.doesNotEqual(actual, expected, msg);
+ test.isInequal(actual, expected);
+ test.isInequal(actual, expected, msg);
+
+ test.deepEqual(actual, expected);
+ test.deepEqual(actual, expected, msg);
+ test.deepEquals(actual, expected);
+ test.deepEquals(actual, expected, msg);
+ test.isEquivalent(actual, expected);
+ test.isEquivalent(actual, expected, msg);
+ test.same(actual, expected);
+ test.same(actual, expected, msg);
+
+ test.notDeepEqual(actual, expected);
+ test.notDeepEqual(actual, expected, msg);
+ test.notEquivalent(actual, expected);
+ test.notEquivalent(actual, expected, msg);
+ test.notDeeply(actual, expected);
+ test.notDeeply(actual, expected, msg);
+ test.notSame(actual, expected);
+ test.notSame(actual, expected, msg);
+ test.isNotDeepEqual(actual, expected);
+ test.isNotDeepEqual(actual, expected, msg);
+ test.isNotDeeply(actual, expected);
+ test.isNotDeeply(actual, expected, msg);
+ test.isNotEquivalent(actual, expected);
+ test.isNotEquivalent(actual, expected, msg);
+ test.isInequivalent(actual, expected);
+ test.isInequivalent(actual, expected, msg);
+
+ test.deepLooseEqual(actual, expected);
+ test.deepLooseEqual(actual, expected, msg);
+ test.looseEqual(actual, expected);
+ test.looseEqual(actual, expected, msg);
+ test.looseEquals(actual, expected);
+ test.looseEquals(actual, expected, msg);
+
+ test.notDeepLooseEqual(actual, expected);
+ test.notDeepLooseEqual(actual, expected, msg);
+ test.notLooseEqual(actual, expected);
+ test.notLooseEqual(actual, expected, msg);
+ test.notLooseEquals(actual, expected);
+ test.notLooseEquals(actual, expected, msg);
+
+ test.throws(fn);
+ test.throws(fn, msg);
+ test.throws(fn, exceptionExpected);
+ test.throws(fn, exceptionExpected, msg);
+
+ test.doesNotThrow(fn);
+ test.doesNotThrow(fn, msg);
+ test.doesNotThrow(fn, exceptionExpected);
+ test.doesNotThrow(fn, exceptionExpected, msg);
+
+ test.test(name, (st) => {
+ t = st;
+ });
+
+ test.comment(msg);
+});
+
+tape('simple delay', (test) => P.delay(1));
+
+tape('nested tests with promises', function(test) {
+ test.test('delay1', () => P.delay(1) );
+ test.test('delay2', () => P.delay(1) );
+});
diff --git a/blue-tape/blue-tape.d.ts b/blue-tape/blue-tape.d.ts
new file mode 100644
index 0000000000..50bf0aab8d
--- /dev/null
+++ b/blue-tape/blue-tape.d.ts
@@ -0,0 +1,12 @@
+// Type definitions for blue-tape v0.1.11
+// Project: https://github.com/spion/blue-tape
+// Definitions by: Haoqun Jiang
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+///
+
+declare module 'blue-tape' {
+ import tape = require('tape');
+ export = tape;
+}
diff --git a/bluebird/bluebird-1.0.d.ts b/bluebird/bluebird-1.0.d.ts
index db9dd0dd24..b8287e57cc 100644
--- a/bluebird/bluebird-1.0.d.ts
+++ b/bluebird/bluebird-1.0.d.ts
@@ -394,7 +394,7 @@ declare class Promise implements Promise.Thenable {
* Note that the original methods on the object are not overwritten but new methods are created with the `Async`-postfix. For example, if you `promisifyAll()` the node.js `fs` object use `fs.statAsync()` to call the promisified `stat` method.
*/
// TODO how to model promisifyAll?
- static promisifyAll(target: Object): Object;
+ static promisifyAll(target: Object): any;
/**
* Returns a function that can use `yield` to run asynchronous code synchronously. This feature requires the support of generators which are drafted in the next version of the language. Node version greater than `0.11.2` is required and needs to be executed with the `--harmony-generators` (or `--harmony`) command-line switch.
diff --git a/bluebird/bluebird-tests.ts b/bluebird/bluebird-tests.ts
index bd4f46fc45..b1829c52ed 100644
--- a/bluebird/bluebird-tests.ts
+++ b/bluebird/bluebird-tests.ts
@@ -85,15 +85,15 @@ var bazProm: Promise;
// - - - - - - - - - - - - - - - - -
-var numThen: Promise.Thenable;
-var strThen: Promise.Thenable;
-var anyThen: Promise.Thenable;
-var boolThen: Promise.Thenable;
-var objThen: Promise.Thenable