UNPKG

point-cloud-convert

Version:

A simple JavaScript tool converting point cloud file from one format to another.

125 lines (82 loc) 4.12 kB
# point-cloud-convert [point-cloud-convert](https://github.com/nightn/point-cloud-convert) is a simple JavaScript tool converting point cloud file from one format to another, which can use as both of JavaScript API in a browser or in Node.js and CLI. At present, the following convertions are supported. - `pcd` <-> `ply` - `asc` <-> `pcd` - `asc` <-> `ply` ## Installation In a browser: ```html <script src="point-cloud-convert.js"></script> ``` In Node.js: If you want `point-cloud-convert` as **API** for your JavaScript project, run the code: ```shell $ npm install --save point-cloud-convert ``` If you want `point-cloud-convert` as **CLI** to convert your local files, run the code: ```shell $ npm install --global point-cloud-convert ``` ## How to use ### (1) use point-cloud-convert as API There is only one function named `pointCloudConvert`,which takes **two parameters**, the first is input string, and the second is conversion type string, and return a output string. conversion type can be one of the following strings so far: `pcd2ply`, `pcd2asc`, `ply2pcd`, `ply2asc`, `asc2pcd`, `asc2ply` . in a browser: ```html <script src="point-cloud-convert.js"></script> <script> // inputStr has been loaded var conversionType = 'ply2pcd'; // convert ply to pcd var outputStr = pointCloudConvert(inputStr, conversionType); </script> ``` in Node.js: ```js const pointCloudConvert = require('node_module/point-cloud-convert/point-cloud-convert.js'); // [attention] it is not require('point-cloud-convert'), because index.js is used as CLI. // inputStr has been loaded let conversionType = 'ply2pcd'; // convert ply to pcd let outputStr = pointCloudConvert(inputStr, conversionType); ``` ### (2) use point-cloud-convert as CLI `point-cloud-convert` can be also used as CLI. it is really convenient and fase to convert point cloud file from one format to another, All you need to do is installing the `Node.js` and `point-cloud-convert` package in global. If you have already installed `Node.js` , then run the following code to install `point-cloud-convert` globally. ```shell $ npm install --global point-cloud-convert ``` The help doc: ```shell Usage: point-cloud-convert [options] <src> <dest> Options: -v, --version output the version number -t, --type <type> set format conversion type, eg. pcd2ply, it will be inferred if not set -d, --directory convert all files from one directory to another -h, --help output usage information Supported all conversion type among ply, pcd and asc, eg. pcd2ply, asc2pcd Examples: $ point-cloud-convert demo.pcd demo.ply -t pcd2ply $ point-cloue-convert demo.pcd demo.ply $ point-cloud-convert ./input ./output -t ply2pcd -d ``` Examples: - Convert `demo.pcd` to `demo.ply` . Option `-t pcd2ply` specifies the conversion type. ```shell $ point-cloud-convert demo.pcd demo.ply -t pcd2ply ``` This command will convert `demo.pcd` to `demo.ply`. - Indeed, if you forget type `-t` option, the conversion type will be inferred from the source filename `demo.pcd` and destination filename `demo.ply`. I think it is more convenient for converting a single file. ```shell $ point-cloud-convert demo.pcd demo.ply ``` - Converting directory is also supported by using `-d` option. In the following example, `./input` is source directory, `./output` is destination directory. But in this case, `-t` option is necessary, because conversion type can not be inferred any more. Again, do not forget `-d` option when converting point cloud directory. ```shell $ point-cloud-convert ./input ./output -t ply2pcd -d ``` This command will convert all `ply` files in `./input` directory to `pcd` files in `./output` directory. ## TODO - [ ] Create a simple browser demo to show basic function of `point-cloud-convert`. - [ ] Add `README-zh.md`. - [ ] Support point cloud format `wrl`. - [ ] Support converting directory recursively (using `-r` option). ## Bugs Please use the [Github issue tracker](https://github.com/nightn/point-cloud-convert/issues) for all bugs and feature requests.