import { Vector4, Matrix } from "./GeoMath"; import { URLResource } from "./Resource"; import Viewer from "./Viewer"; import RenderStage from "./RenderStage"; /** * 雲を表現するクラス */ declare class CloudVisualizer { static readonly CLOUD_WIDTH: number; static readonly CLOUD_HEIGHT: number; private _viewer; private _glenv; private _mesh; private _visibility; private _intensity; private _height; private _fade; private _image_width; private _image_height; private _context; private _initial_from_image_src; private _initial_to_image_src; private _loaded_image_src; private _imageArray; private _gradient_array; private _gradient_mode; private _vertices; private _indices; /** * constructor * * @param image_src image source * @param gradient_array gradient生成のためのcolor配列(RGBA) * @param gradient_mode gradientの表現方法 */ constructor(option?: CloudVisualizer.Option); /** * 初期化 * Viewerのコンストラクタで呼び出されます。 * * @param viewer 所属するViewer */ init(viewer: Viewer): void; /** * 破棄 */ destroy(): void; /** * 可視性フラグを取得 */ get visibility(): Boolean; /** * 可視性フラグを設定 * * @param visibility 可視性フラグ */ setVisibility(flag: boolean): void; /** * フェード係数を設定 * * @param value フェード係数 (0 - 1) 1でfromの画像 */ setFade(value: number): void; /** * 輝度係数を設定 * * @param value 輝度係数 (0, 1) 1で陰部分の影響を受けない */ setIntensity(value: number): void; /** * メッシュを生成 */ private _createMesh; /** * メッシュの雲量値を更新 */ private _updateMesh; /** * マテリアルを確認してCacheにセット */ private _checkMaterials; /** * マテリアルを確認してCacheにセット * すでにマテリアルがあれば更新 */ private _updateMaterials; /** * マテリアルを削除 */ private _deleteMaterials; /** * 雲を描画 * * @param render_stage レンダリングステージ * @param gocs_to_clip gocs_to_clip * @param view_to_gocs view_to_gocs */ draw(render_stage: RenderStage, gocs_to_clip: Matrix, view_to_gocs: Matrix): void; /** * コンターを変更 * @param gradient_array gradient生成のためのcolor配列(RGBA) * @param gradient_mode gradientの表現方法 */ setGradient(gradient_array: Vector4[], gradient_mode?: CloudVisualizer.GradientMode): void; /** * Fromにテクスチャ画像を設定 * @param image_src 画像のパス * @param fade fade係数 */ loadFrom(image_src: CloudVisualizer.ImageResource, fade?: number): Promise; /** * Toにテクスチャ画像を設定 * @param image_src 画像のパス * @param fade fade係数 */ loadTo(image_src: CloudVisualizer.ImageResource, fade?: number): Promise; /** * From,Toにテクスチャ画像を設定 * @param image_from From画像のパス * @param image_to To画像のパス * @param fade fade係数 */ loadData(image_from: CloudVisualizer.ImageResource, image_to?: CloudVisualizer.ImageResource, fade?: number): Promise; /** * Fromにテクスチャ画像を設定 * @param image_src 画像のパス * @param fade fade係数 */ pushFront(image_src: CloudVisualizer.ImageResource, fade?: number): Promise; /** * Toにテクスチャ画像を設定 * @param image_src 画像のパス * @param fade fade係数 */ pushBack(image_src: CloudVisualizer.ImageResource, fade?: number): Promise; /** * 2つのテクスチャ画像を設定 * @param from_src from画像のパス * @param to_src to画像のパス * @param fade fade値(2画像ロード後に適用) */ private _loadImages; /** * 画像情報からピクセルを読み込む * @param image_src 画像 * @param buf 結果を格納する配列 */ private _loadImageData; } declare namespace CloudVisualizer { type ImageResource = undefined | string | URLResource | CanvasImageSource; interface Option { from_image?: ImageResource; to_image?: ImageResource; height?: number; gradient_array?: Vector4[]; gradient_mode?: GradientMode; } enum ImageTarget { FROM = 0, TO = 1 } enum GradientMode { LINEAR = 0, STEP = 1 } } export default CloudVisualizer; //# sourceMappingURL=CloudVisualizer.d.ts.map