12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import { ILoaderPlugin } from "./loaderPlugin";
- import { telemetryManager } from "../../managers/telemetryManager";
- import { ViewerModel } from "../../model/viewerModel";
- import { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from "babylonjs/Loading/sceneLoader";
- import { PrecisionDate } from "babylonjs/Misc/precisionDate";
- export class TelemetryLoaderPlugin implements ILoaderPlugin {
- private _model: ViewerModel;
- private _loadStart: number;
- private _loadEnd: number;
- public onInit(loader: ISceneLoaderPlugin | ISceneLoaderPluginAsync, model: ViewerModel) {
- this._model = model;
- this._loadStart = PrecisionDate.Now;
- }
- public onLoaded(model: ViewerModel) {
- telemetryManager.broadcast("Model Loaded", model.getViewerId(), {
- model: model,
- loadTime: PrecisionDate.Now - this._loadStart
- });
- telemetryManager.flushWebGLErrors(model.rootMesh.getEngine(), model.getViewerId());
- }
- public onError(message: string, exception: any) {
- this._loadEnd = PrecisionDate.Now;
- telemetryManager.broadcast("Load Error", this._model.getViewerId(), {
- model: this._model,
- loadTime: this._loadEnd - this._loadStart
- });
- telemetryManager.flushWebGLErrors(this._model.rootMesh.getEngine(), this._model.getViewerId());
- }
- public onComplete() {
- this._loadEnd = PrecisionDate.Now;
- telemetryManager.broadcast("Load Complete", this._model.getViewerId(), {
- model: this._model,
- loadTime: this._loadEnd - this._loadStart
- });
- telemetryManager.flushWebGLErrors(this._model.rootMesh.getEngine(), this._model.getViewerId());
- }
- }
|