threepipe
Version:
A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.
58 lines • 2.5 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { createDiv, onChange, serialize } from 'ts-browser-helpers';
import { AViewerPluginSync } from '../../viewer';
import { uiToggle } from 'uiconfig.js';
export class AAssetManagerProcessStatePlugin extends AViewerPluginSync {
_onEnabledChange() {
if (!this.enabled)
this._mainDiv.style.display = 'none';
}
constructor(suffix, container) {
super();
this.container = container;
this.enabled = true;
this._mainDiv = createDiv({
id: 'assetManager' + suffix,
addToBody: false,
innerHTML: '',
});
this._contentDiv = createDiv({
id: 'assetManager' + suffix + 'Content',
addToBody: false,
innerHTML: '',
});
if (!this.enabled) {
this._mainDiv.style.display = 'none';
}
this._mainDiv.appendChild(this._contentDiv);
this._onProcessStateUpdate = this._onProcessStateUpdate.bind(this);
}
onAdded(viewer) {
super.onAdded(viewer);
(this.container ?? viewer.container).appendChild(this._mainDiv);
this._updateMainDiv(viewer.assetManager.processState);
viewer.assetManager.addEventListener('processStateUpdate', this._onProcessStateUpdate);
}
_onProcessStateUpdate() {
if (!this._viewer)
return;
this._updateMainDiv(this._viewer.assetManager.processState);
}
onRemove(viewer) {
this._mainDiv.remove();
// this._contentDiv?.remove()
viewer.assetManager.removeEventListener('processStateUpdate', this._onProcessStateUpdate);
return super.onRemove(viewer);
}
}
__decorate([
uiToggle('Enabled'),
onChange(AAssetManagerProcessStatePlugin.prototype._onEnabledChange),
serialize()
], AAssetManagerProcessStatePlugin.prototype, "enabled", void 0);
//# sourceMappingURL=AAssetManagerProcessStatePlugin.js.map