import AltitudeMode from "./AltitudeMode"; import Scene from "./Scene"; import ModelContainer from "./ModelContainer"; import GeoRegion from "./GeoRegion"; /** * シーン・エンティティ * * シーン・エンティティの基底クラスである。 * @see {@link mapray.Scene} */ declare abstract class Entity { /** * 所属可能シーン */ readonly scene: Scene; /** * 高度モード */ protected _altitude_mode: AltitudeMode; /** * 再生成が必要であることを示すフラグ */ protected _need_to_create_regions: boolean; /** * 今のところ Entity (基底クラス) 自体のアニメーション可能パラメータと * 子孫は存在しないので animation には何も追加しない */ protected _animation: any; /** * 表示状態を示すフラグ */ protected _visibility: boolean; /** * Viewer.pick() の対象とするかどうか */ protected _pickable: boolean; /** アンカーモード */ protected _anchor_mode: boolean; /** * 可視性フラグを取得 */ get visibility(): boolean; /** * 可視性フラグを設定 * @param visibility 可視性フラグ */ setVisibility(visibility: boolean): void; /** * アニメーションパラメータ設定 */ get animation(): any; /** * 高度モード設定 */ set altitude_mode(value: AltitudeMode); /** * 高度モード取得 */ get altitude_mode(): AltitudeMode; /** * バウンディングボックスを算出 */ abstract getBounds(): GeoRegion; /** * 高度モードが変更された後の通知 * * this.altitude_mode が変更されたときに呼び出される。 * 既定の実装は何もしない。 * * @param prev_mode 直前のモード */ protected onChangeAltitudeMode(prev_mode: AltitudeMode): void; /** * PrimitiveProducer インタフェースを取得 * * PrimitiveProducer インタフェースを取得するためにシーンレンダラーが呼び出す。 * PrimitiveProducer インタフェースが実装されていなければ undefined を返す。 * 既定の実装は undefined を返す。 * @return PrimitiveProducer インタフェース */ getPrimitiveProducer(): Entity.PrimitiveProducer | undefined; /** * FlakePrimitiveProducer インタフェースを取得 * * FlakePrimitiveProducer インタフェースを取得するためにシーンレンダラーが呼び出す。 * FlakePrimitiveProducer インタフェースが実装されていなければ undefined を返す。 * * 既定の実装は undefined を返す。 * * @return FlakePrimitiveProducer インタフェース */ getFlakePrimitiveProducer(): Entity.FlakePrimitiveProducer | undefined; /** * このEntityを `Viewer.pick()` による選択対象とするかを設定する。 * @param pickable 選択可能か否か */ setPickable(pickable: boolean): void; /** * このEntityが `Viewer.pick()` による選択対象であるかを取得する。 */ isPickable(): boolean; /** * JSON データによる Entity 共通の初期化 */ private _setupEntityByJson; } declare namespace Entity { /** Entity Option */ interface Option { /** * 生成情報 */ json?: Entity.Json; /** 参照辞書 */ refs?: Entity.ReferenceMap; } /** Entity Json */ interface Json { id?: string; type: string; /** 高度モード */ altitude_mode?: "absolute" | "relative" | "clamp"; /** 可視性 */ visibility?: boolean; } interface ReferenceMap { [key: string]: ModelContainer | Entity; } /** * 領域状態の列挙型 */ enum AreaStatus { /** * 何もない領域 */ EMPTY = 0, /** * 完全に満たされた領域 */ FULL = 1, /** * 部分領域または領域不明 */ PARTIAL = 2 } } export default Entity; //# sourceMappingURL=Entity.d.ts.map