import Scene from "./Scene"; import PointCloudProvider from "./PointCloudProvider"; /** * 点群データを表現するクラス * * ```typescript * const provider = new mapray.StandardPointCloudProvider({ * resource: { * prefix: "https://..." * } * }); * const point_cloud = viewer.point_cloud_collection.add( provider ); * point_cloud.setPointShape( mapray.PointCloud.PointShapeType.GRADIENT_CIRCLE ); * ``` * * @see {@link PointCloudProvider} */ declare class PointCloud { private _glenv; private _scene; private _provider; private _root; private _points_per_pixel; private _point_shape; private _point_size_type; private _point_size; private _point_size_limit; private _visibility; private _dispersion; private _rid?; private _debug_shader; private _debug_render_box; private _debug_render_ellipsoid; private _debug_render_axis; private _debug_render_section; /** * @param scene 所属するシーン * @param provider プロバイダ */ constructor(scene: Scene, provider: PointCloudProvider); /** * 可視性フラグを取得 */ getVisibility(): boolean; /** * 可視性フラグを設定 * @param visibility 可視性フラグ */ setVisibility(visibility: boolean): void; /** * プロバイダ */ get provider(): PointCloudProvider; /** * 点群Box読み込みを行う際の解像度[points/pixel] */ getPointsPerPixel(): number; /** * 点群Box読み込みを行う際の解像度[points/pixel]を設定 * @param val 設定する値 */ setPointsPerPixel(val: number): void; /** * 点を描画する際の形状 * @return {@link PointCloud.PointShapeType} */ getPointShape(): PointCloud.PointShapeType; /** * 点を描画する際の形状を設定 * @param {PointCloud.PointShapeType} val 設定する値 */ setPointShape(val: PointCloud.PointShapeType): void; /** * 点を描画する際のサイズの指定方法 * @return {PointCloud.PointSizeType} */ getPointSizeType(): PointCloud.PointSizeType; /** * 点を描画する際のサイズの指定方法を設定 * @param val 設定する値 */ setPointSizeType(val: PointCloud.PointSizeType): void; /** * 点を描画する際のサイズ * point_size_typeにより単位が異なる * @see {@link PointCloud.getPointSizeType} */ getPointSize(): number; /** * 点を描画する際のサイズを設定。 * {@link PointCloud.setPointSizeType}により指定された値によって解釈される単位が異なる。 * @param val 設定する値 */ setPointSize(val: number): void; /** * 点を描画する際の最大ピクセルサイズ */ getPointSizeLimit(): number; /** * 点を描画する際の最大ピクセルサイズを設定 * @param val 設定する値 */ setPointSizeLimit(val: number): void; /** */ private _checkMaterials; } declare namespace PointCloud { type StatisticsHandler = (statistics_obj: PointCloud.Statistics) => void; /** * 点描画の種類 */ enum PointShapeType { /** * 矩形 */ RECTANGLE = 0, /** * 円 */ CIRCLE = 1, /** * 境界線付きの円 */ CIRCLE_WITH_BORDER = 2, /** * グラデーションで塗り潰した円 */ GRADIENT_CIRCLE = 3 } const ListOfPointShapeTypes: PointShapeType[]; /** * 点描画のサイズ指定方法の種類 */ enum PointSizeType { /** * setPointSize()により指定された値をピクセルとして解釈する */ PIXEL = 0, /** * setPointSize()により指定された値をmmとして解釈する */ MILLIMETERS = 1, /** * setPointSize()により指定された値を参照せず、表示位置に応じて適切なサイズを自動的に指定する。 */ FLEXIBLE = 2 } type ChildInfo = object; interface BoxInfo { children: (ChildInfo | undefined)[]; indices: Int32Array; } const CHILDREN_INDICES: number[][]; interface VariancePoints { cos_ro: number[]; sin_ro: number[]; cos_th: number[]; sin_th: number[]; G: number; N: number; } const _variance_points_cache: VariancePoints; /** * Boxの状態。 * * ```text * NOT_LOADED ---------> LOADING ---------> LOADED -----------> DESTROYED * load() (async) dispose() ^ * | | * `-------------------------------------------------' * error * ``` * * @see Box.status */ enum Status { /** * 準備中 (初期状態)。 * load()を呼ぶと LOADING へ遷移し読み込み処理が開始される。 */ NOT_LOADED = 0, /** * 読み込み中。 * 読み込み処理が終了すると、LOADED か DESTROYED のいずれかに遷移する。 * 正常に処理が完了すると LOADED 、何らかのエラーが発生した場合は DESTROYED となる。 * また、LOADING 中に dispose() が呼ばれた場合、即座に DESTROYED に遷移する。 */ LOADING = 1, /** * 読み込み完了(描画可能)。 * dispose()を呼ぶと DESTROYED に遷移する。 */ LOADED = 2, /** * 破棄状態 * 他の状態に遷移することはない。 */ DESTROYED = 3 } const STATUS_COLOR_TABLE: Map; const MIN_INT: number; } export default PointCloud; //# sourceMappingURL=PointCloud.d.ts.map