UNPKG

@xeokit/xeokit-convert

Version:

JavaScript utilities to create .XKT files

54 lines (53 loc) 2.26 kB
/** * @desc Parses LAS and LAZ point cloud data into an {@link XKTModel}. * * This parser handles both the LASER file format (LAS) and its compressed version (LAZ), * a public format for the interchange of 3-dimensional point cloud data data, developed * for LIDAR mapping purposes. * * ## Usage * * In the example below we'll create an {@link XKTModel}, then load an LAZ point cloud model into it. * * ````javascript * utils.loadArraybuffer("./models/laz/autzen.laz", async (data) => { * * const xktModel = new XKTModel(); * * await parseLASIntoXKTModel({ * data, * xktModel, * rotateX: true, * log: (msg) => { console.log(msg); } * }).then(()=>{ * xktModel.finalize(); * }, * (msg) => { * console.error(msg); * }); * }); * ```` * * @param {Object} params Parsing params. * @param {ArrayBuffer} params.data LAS/LAZ file data. * @param {XKTModel} params.xktModel XKTModel to parse into. * @param {boolean} [params.center=false] Set true to center the LAS point positions to [0,0,0]. This is applied before the transformation matrix, if specified. * @param {Boolean} [params.transform] 4x4 transformation matrix to transform point positions. Use this to rotate, translate and scale them if neccessary. * @param {Number|String} [params.colorDepth=8] Whether colors encoded using 8 or 16 bits. Can be set to 'auto'. LAS specification recommends 16 bits. * @param {Boolean} [params.fp64=false] Configures if LASLoaderPlugin assumes that LAS positions are stored in 64-bit floats instead of 32-bit. * @param {Number} [params.skip=1] Read one from every n points. * @param {Object} [params.stats] Collects statistics. * @param {function} [params.log] Logging callback. * @returns {Promise} Resolves when LAS has been parsed. */ export function parseLASIntoXKTModel({ data, xktModel, center, transform, colorDepth, fp64, skip, stats, log }: { data: ArrayBuffer; xktModel: XKTModel; center?: boolean | undefined; transform?: boolean | undefined; colorDepth?: string | number | undefined; fp64?: boolean | undefined; skip?: number | undefined; stats?: Object | undefined; log?: Function | undefined; }): Promise<any>;