From 0d7914b6031d49f2aeb0c84210c15a611c98deb1 Mon Sep 17 00:00:00 2001 From: luoxuhai <15186743693@163.com> Date: Fri, 26 Aug 2022 08:45:25 +0800 Subject: [PATCH] docs: add Simple Example to readme.md --- README-zh_CN.md | 33 +++++++++++++++++++++++++++++++++ README.md | 35 +++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 69 insertions(+), 1 deletion(-) diff --git a/README-zh_CN.md b/README-zh_CN.md index 51ad120..b8fc7f2 100644 --- a/README-zh_CN.md +++ b/README-zh_CN.md @@ -99,6 +99,39 @@ async function main() { main(); ``` +### 简单示例 +```typescript +import PCL from 'pcl.js'; + +async function main() { + const pcl = await PCL.init({ + url: 'https://cdn.jsdelivr.net/npm/pcl.js/dist/pcl-core.wasm', + }); + // 写入 PCD 文件 + pcl.Module.FS.writeFile('/test.pcd', ArrayBuffer); + // 加载 PCD 文件,返回点云对象 + const pointCloud = pcl.io.loadPCDFile('/test.pcd'); + + // 使用 PassThrough 过滤器过滤点云, 参考: https://pcl.readthedocs.io/projects/tutorials/en/master/passthrough.html#passthrough + const pass = new pcl.filters.PassThrough(); + pass.setInputCloud(pointCloud); + pass.setFilterFieldName('z'); + pass.setFilterLimits(0.0, 1.0); + pass.filter(pointCloud); + + // 将过滤后的点云对象保存为 PCD 文件 + pcl.io.savePCDFileASCII('/test-filtered.pcd', pointCloud); + // 读取 PCD 文件内容, 内容为 ArrayBuffer + const pcd = pcl.Module.FS.readFile('/test-filtered.pcd'); + + // 删除所有 PCD 文件 + pcl.Module.FS.unlink('/test.pcd') + pcl.Module.FS.unlink('/test-filtered.pcd') + // ... +} + +main(); +``` ## 资源大小 diff --git a/README.md b/README.md index 52a2024..143fed5 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,41 @@ main(); ``` +### Simple Example +```typescript +import PCL from 'pcl.js'; + +async function main() { + const pcl = await PCL.init({ + url: 'https://cdn.jsdelivr.net/npm/pcl.js/dist/pcl-core.wasm', + }); + // Write a PCD file + pcl.Module.FS.writeFile('/test.pcd', ArrayBuffer); + // Load PCD file, return point cloud object + const pointCloud = pcl.io.loadPCDFile('/test.pcd'); + + // Filtering a PointCloud using a PassThrough filter, see: https://pcl.readthedocs.io/projects/tutorials/en/master/passthrough.html#passthrough + const pass = new pcl.filters.PassThrough(); + pass.setInputCloud(pointCloud); + pass.setFilterFieldName('z'); + pass.setFilterLimits(0.0, 1.0); + pass.filter(pointCloud); + + // Save filtered point cloud objects as PCD files + pcl.io.savePCDFileASCII('/test-filtered.pcd', pointCloud); + // Read PCD file content, the content is ArrayBuffer + const pcd = pcl.Module.FS.readFile('/test-filtered.pcd'); + + // Delete all PCD files + pcl.Module.FS.unlink('/test.pcd') + pcl.Module.FS.unlink('/test-filtered.pcd') + // ... +} + +main(); +``` + + ## Bundle Size > PCL.js Version: 0.2.0 diff --git a/package.json b/package.json index e3905c6..0a5a0ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pcl.js", - "version": "0.2.0", + "version": "0.2.1", "description": "PCL for browser and node, powered by WebAssembly.", "types": "dist/types/pcl.d.ts", "main": "dist/pcl.cjs.js",