6.1 KiB
6.1 KiB
| outline | ||
|---|---|---|
|
HtmlPanel
- 源文件:
packages/sdk/src/mesh/HtmlPanel.ts - 文档位置:
packages/docs/api/mesh/HtmlPanel.md
枚举:CssType
- 作用:CSS渲染类型枚举
| 枚举项 | 值 | 说明 |
|---|---|---|
CSS2D |
'css2d' |
枚举值 CSS2D。 |
CSS3D |
'css3d' |
枚举值 CSS3D。 |
CSS3DSprite |
'css3dsprite' |
枚举值 CSS3DSprite。 |
类:HtmlPanel
- 作用:HTML面板基础类
构造函数
new HtmlPanel(public type: CssType = CssType.CSS3D)
-
作用:构造函数
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
type |
CssType |
否 | CSS渲染类型 |
- 出参:
HtmlPanel - 返回说明:返回当前类实例。
属性
| 属性名 | 可见性 | 类型 | 作用 |
|---|---|---|---|
container |
public |
HTMLDivElement |
用于保存 container 对应的数据。 |
cssObject |
public |
THREE.Object3D |
用于保存 cssObject 对应的数据。 |
isVisible |
public |
boolean |
用于标记 isVisible 的启用状态。 |
position |
public |
THREE.Vector3 |
位置数据。 |
方法
getCssObject(): THREE.Object3D<THREE.Object3DEventMap>
-
作用:获取CSS对象
-
入参:无
-
出参:
THREE.Object3D<THREE.Object3DEventMap> -
返回说明:返回
THREE.Object3D<THREE.Object3DEventMap>。
getUniqueId(): string
-
作用:获取唯一ID
-
入参:无
-
出参:
string -
返回说明:CSS对象的UUID
show(): void
-
作用:显示面板
-
入参:无
-
出参:
void -
返回说明:无返回值。
hide(): void
-
作用:隐藏面板
-
入参:无
-
出参:
void -
返回说明:无返回值。
toggle(): void
-
作用:切换面板可见性
-
入参:无
-
出参:
void -
返回说明:无返回值。
updatePosition(position: THREE.Vector3): void
-
作用:更新面板位置
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
position |
THREE.Vector3 |
是 | 新位置 |
- 出参:
void - 返回说明:无返回值。
updateContent(content: string): void
-
作用:更新面板内容
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
content |
string |
是 | 新内容 |
- 出参:
void - 返回说明:无返回值。
getVisible(): boolean
-
作用:获取弹窗可见性
-
入参:无
-
出参:
boolean -
返回说明:返回布尔结果。
changeCssType(type: CssType): THREE.Object3D<THREE.Object3DEventMap>
-
作用:动态修改CSS类型
-
入参:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
type |
CssType |
是 | 新的CSS渲染类型 |
- 出参:
THREE.Object3D<THREE.Object3DEventMap> - 返回说明:新的CSS对象
getCssType(): CssType
-
作用:获取当前CSS类型
-
入参:无
-
出参:
CssType -
返回说明:返回
CssType。
dispose(): void
-
作用:销毁面板,清理所有资源
-
入参:无
-
出参:
void -
返回说明:无返回值。
createCssObject(): void
-
作用:创建CSS对象
-
入参:无
-
出参:
void -
返回说明:无返回值。
构造示例
- 来源:
packages/demo/src/components/htmlPanel/DrillingModal.ts
/**
* 钻进信息面板类
*/
export class DrillingModal extends HtmlPanel {
private drillingData: IDrillingData = {
pipeName: '',
drillingSpeed: 0,
currentDepth: 0,
targetDepth: 0,
progress: 0,
pipeRadius: 0,
status: 'stopped'
};
函数示例
HtmlPanel.getCssObject
- 来源:
packages/demo/src/panels/GoldMineScene/VentilationFillingPanel.vue
if (fillingHtmlPanel) {
viewer?.scene.remove(fillingHtmlPanel.getCssObject());
fillingHtmlPanel = null;
}
HtmlPanel.getUniqueId
- 来源:
packages/demo/src/htmlPanel/GoldMineScene/AirSupplyHtmlPanel.ts
/**
* 构造函数
* @param type CSS渲染类型
*/
constructor(type: CssType = CssType.CSS2D) {
super(type);
this.uuid = this.getUniqueId();
this.initContent();
this.attachDeleteEvent();
}
HtmlPanel.show
- 来源:
packages/demo/src/panels/GoldMineScene/VentilationFillingPanel.vue
// 初始化数据
fillingHtmlPanel.updateData({
progress: fillingStatus.value.progress,
currentTime: (Date.now() - fillingStatus.value.startTime) / 1000,
endTime: fillingParams.value.endTime,
material: fillingParams.value.material,
fillingRate: fillingParams.value.fillingRate,
pressure: fillingParams.value.pressure,
status: fillingStatus.value.isRunning ? 'running' : 'stopped'
});
fillingHtmlPanel.updatePosition(new THREE.Vector3(position.x, position.y + 1, position.z));
fillingHtmlPanel.show();
viewer?.scene.add(fillingHtmlPanel.getCssObject());
};
Demo 参考
CssType
以下示例文件中可以看到该 API 的实际调用方式:
packages/demo/src/components/htmlPanel/DrillingModal.tspackages/demo/src/components/htmlPanel/PrintModelModal.tspackages/demo/src/components/htmlPanel/RuptureEventModal.tspackages/demo/src/components/htmlPanel/SensorModal.tspackages/demo/src/components/htmlPanel/SingleSensorModal.tspackages/demo/src/components/htmlPanel/TunnelModal.tspackages/demo/src/disasterFormationPanel/TunnelScene/RockBurstPanel.vuepackages/demo/src/disasterFormationPanel/TunnelScene/RuptureEventPanel.vue
HtmlPanel
以下示例文件中可以看到该 API 的实际调用方式:
packages/demo/src/components/htmlPanel/DrillingModal.tspackages/demo/src/components/htmlPanel/PrintModelModal.tspackages/demo/src/components/htmlPanel/RuptureEventModal.tspackages/demo/src/components/htmlPanel/SensorModal.tspackages/demo/src/components/htmlPanel/SingleSensorModal.tspackages/demo/src/components/htmlPanel/TunnelModal.tspackages/demo/src/htmlPanel/GoldMineScene/AirSupplyHtmlPanel.tspackages/demo/src/htmlPanel/GoldMineScene/DrillingHtmlPanel.ts