import Scene from "./Scene"; import Entity from "./Entity"; import Resource from "./Resource"; /** * ローダークラス */ declare abstract class Loader { protected _scene: Scene; protected _resource: Resource; private _status; private _onLoad; protected _onEntity: Loader.EntityCallback; /** * @param scene 読み込み先のシーン * @param resource * @param options */ constructor(scene: Scene, resource: Resource, options?: Loader.Option); /** * 読み込み先のシーン */ get scene(): Scene; /** * シーンリソース */ get resource(): Resource; /** * ローダー読み込みの状態 */ get status(): Loader.Status; /** * */ private _setStatus; /** * 読み込みを実行します。 */ load(): Promise; /** * 読み込み処理の実態。継承クラスによって実装される。 */ protected abstract _load(): Promise; /** * 読み込みの取り消し * * 終了コールバック関数は `isSuccess == false` で呼び出される。 */ cancel(): void; /** * キャンセル時に行う処理。継承クラスによって実装される。 */ protected _cancel(): void; /** * 取り消し状態のとき例外を投げる */ protected _check_cancel(): void; } declare namespace Loader { interface Option { /** * 全ての読み込み完了時に呼ばれる */ onLoad?: FinishCallback; /** * エンティティが読み込まれるたびに呼ばれる */ onEntity?: Loader.EntityCallback; } /** * Entity読み込みコールバック * * 読み込み処理の中でEntityが生成される際に呼ばれる。 * 一度の読み込み(load()呼び出し)において複数のエンティティが生成される場合は、エンティティが生成されるたびに呼ばれる。 * この関数をLoaderに指定する場合は、callback処理の中でEntityをsceneへ追加する必要がある。 * geojsonのように、要素ごとにプロパティを含められるような場合は、propにより値にアクセスする。 * * @example * ```ts * const loader = new mapray.SceneLoader( viewer.scene, resource, { * onEntity: ( loader, entity, prop ) => { * entity.setScale( [ 2, 2, 2 ] ); * loader.scene.addEntity( entity ); * } * } ); * loader.load(); * ``` * * @param loader Loader * @param entity 読み込まれたEntity * @param prop エンティティ生成の元となるオブジェクト */ type EntityCallback = (loader: Loader, entity: Entity, prop: object) => void; /** * 終了コールバック * * シーンの読み込みが終了したときに呼び出される関数の型である。 * * @param loader 読み込みを実行したローダー * @param isSuccess 成功したとき true, 失敗したとき false */ type FinishCallback = (loader: Loader, isSuccess: boolean) => void; enum Status { NOT_LOADED = 0, LOADING = 1, LOADED = 2, CANCELED = 3, ERROR = 4, ABORTED = 5 } function defaultOnLoadCallback(loader: Loader, isSuccess: boolean): void; function defaultOnEntityCallback(loader: Loader, entity: Entity, prop: object): void; } export default Loader; //# sourceMappingURL=Loader.d.ts.map