启示收视器
最新版本的文件可在 https://cognittedata.github.io/reveal-docs/docs 互联网档案馆的存檔,存档日期2013-12-22。下一次发行的文件可从 https://cognittedata.github.io/reveal-docs/docs/next/ 页面存档备份,存于互联网档案馆。 。 。 .
文档有一堆 现场实例。 。 。 .
代码示例
import { Cognite3DViewer } from "@cognite/reveal";
import { CogniteClient, CogniteAuthentication } from "@cognite/sdk";
const appId = "com.cognite.reveal.example";
const client = new CogniteClient({
appId,
project,
getToken
});
async function start() {
await client.authenticate();
const viewer = new Cognite3DViewer({
sdk: client,
domElement: document.querySelector("#your-element-for-viewer")
});
viewer.addModel({ modelId: 4715379429968321, revisionId: 5688854005909501 });
}
const project = "publicdata";
const legacyInstance = new CogniteAuthentication({
project,
});
const getToken = async () => {
await legacyInstance.handleLoginRedirect();
let token = await legacyInstance.getCDFToken();
if (token) {
return token.accessToken;
}
token = await legacyInstance.login({ onAuthenticate: "REDIRECT" });
if (token) {
return token.accessToken;
}
throw new Error("authentication error");
};
start();
安装
npm install @cognite/reveal @cognite/sdk three@<version>
请在Github的发布文件中找到TreeJS的正确版本. 我们只保证支持 确切的TreeJS版本.
见 我们的文件 用于使用.
先决条件
为了开发,您需要安装 节点, (中文(简体) ), 小时 财务报告和审定财务报表 红宝石+ 货物。 。 。 .
运行 pnpm install 在观众中
本地软件包
"启示录"取景器采用本地包的结构.
这使得您可以在孤立状态下测试特性,并限制特性之间的逻辑障碍的依赖性.
软件包位于 /packages/ 子文件夹.
软件包没有强制结构,其布局和内容会因软件包向系统其他部分暴露的内容而异.
位于 viewer/package.json 将被共享,任何软件包都可以访问,无需在相应的软件包中明确宣布依赖性 package.json。 。 。 .
任何外部依赖(例如:. lodash, (中文(简体) ), threejs等)必须在根中声明 package.json 以便消费者能够正确安装 Reveal 国家防范机制一揽子计划.
创建本地软件包
创建一个新文件夹 /packages/ 文件夹,例如:. /packages/[MY-PACKAGE-NAME] 并包含一个包含以下结构的软件包:
{
"name": "@reveal/[MY-PACKAGE-NAME]",
"private": true,
"main": "index.ts",
}
技术上 private: true 可以省略字段,但人们强烈建议,不要不小心将本地软件包公布给国家预防机制 npm publish 命令.
这个 index.ts 应包含任何类型、功能和/或类别,以便向该套件的消费者曝光。 您也应该创建一个 README.md 文件用于解释其意图的软件包以及使用软件包所需的任何信息.
如果您的软件包依赖于另一个本地软件包,必须明确宣布它为依赖:
{
"name": "@reveal/[MY-PACKAGE-NAME]",
"private": true,
"main": "index.ts",
"dependencies": {
"@reveal/[SOME-LOCAL-PACKAGE]": "workspace:*"
}
}
这个 workspace 关键词宣布,依赖性是一个本地软件包,不应从国家预防机制获取.
还有 ':*' 语法意味着它应该只是抓取任何可用的版本. 见 这个 需要更多关于 pnpm 工作空间的文档.
如果您要在软件包中添加 Rust/Webassembly 代码, 您可以在其中添加以下脚本 package.json数字 :
{
"scripts": {
"run-wasm-pack": "pnpm -w run ws:update-cargo-index && wasm-pack"
}
}
并让货箱居住 <package-name>/wasm。 。 。 .
然后,箱子将自动 建造和测试 build 财务报告和审定财务报表 test 工作空间根中的脚本.
这个 ws:update-cargo-index 步骤确保地方 crates.io 索引在运行构建前已经更新 .
否则,索引更新将以安静的方式执行,命令可能看起来会被挂起几分钟.
当用Rust写作测试时,测试必须附加注释 #[wasm_bindgen_test] 属性,而不是常规 #[test],以及 wasm-bindgen-test 必须作为(非)依赖性加以补充。 所有测试都是正常的 pnpm run test 根文件夹中的脚本,但也可以手动运行,例如. wasm-pack test --chrome --headless 相关 wasm 文件夹.
也可以在与"启示录"其他部分隔开的情况下运行并测试一个本地包.
已经创建了方便功能来方便这些.
在您的软件包中添加以下脚本 package.json数字 :
{
"scripts": {
"test": "test": "vitest run --config ./../../vitest.config.ts",
}
}
运行 pnpm run test 将运行您包中的所有测试,以解析 *.test.* regex图案.
要运行包含您的软件包( 以及任何依赖性) 的测试应用程序, 请创建 /app/ 包含一个 index.ts 文档.
在您的软件包中添加以下脚本 package.json数字 :
{
"scripts": {
"start": "pnpm -w run ws:serve"
}
}
运行命令 pnpm start 将主机为本地主机,其中包含 HTML 模板 /app/index.ts 脚本已经转录到javascript.
看看这个例子 packages/camera-manager 软件包.
API 提取器
这个 viewer/reveal.api.md 文件包含了对Reveal公共API的描述. 在CI管道中 reveal.api.md 文件被 API 提取器选中为最新 .
为了在本地更新此文件, 运行 pnpm run update-api 之后 运行构建脚本。 这将用任何修改来更新API文件,这些修改应该在同一 PR 中被添加并执行.
调试
工人原始地图
当将源图与内嵌的网络工人捆绑在一起时,捆绑的大小会变得巨大. 因此,工人的原始地图默认被禁用。 为了给工人添加原始地图,通过 --env workerSourceMaps=true 页:1 pnpm run build 剧本.
创建和运行视觉测试
视觉测试文件必须在格式上 visual-tests/SomeTest.VisualTest.ts。参见现有的测试之一
例如如何创建测试.
视觉测试可以从 viewer/ 使用 pnpm run test:visual这将运行所有视觉测试。 你也可以这样
通过使用 pnpm run test:visual -- -t="SomeTest" (将用"Some Test"的名字进行所有测试). 注意参数只传递给客户端, 将参数传递给您需要手动启动服务器和客户端的服务器 .
关于视觉测试的更多信息,请参见: 视觉测试/README.md。 。 。 .
建议的软件包文件夹结构
├── app # Runnable app
│ └──index.ts # Entry point for runnable app
├── src # Source code for package
├── wasm # Rust/Webassembly source code for package
├── test # Automated tests
├── package.json # Package declaration
├── index.ts # Entry point for package
└── README.md # Readme