@realsee/dnalogel 2.0.0-alpha.3 → 2.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/TERMS.txt +56 -0
  3. package/dist/dnalogel.cjs.js +2 -2
  4. package/dist/dnalogel.es.js +697 -62
  5. package/dist/dnalogel.umd.js +2 -2
  6. package/dist/style.css +1 -1
  7. package/docs/.nojekyll +1 -0
  8. package/docs/assets/highlight.css +29 -0
  9. package/docs/assets/icons.css +1043 -0
  10. package/docs/assets/icons.png +0 -0
  11. package/docs/assets/icons@2x.png +0 -0
  12. package/docs/assets/main.js +52 -0
  13. package/docs/assets/search.js +1 -0
  14. package/docs/assets/style.css +1413 -0
  15. package/docs/assets/widgets.png +0 -0
  16. package/docs/assets/widgets@2x.png +0 -0
  17. package/docs/classes/ModelRoomLabelController.html +20 -0
  18. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -0
  19. package/docs/enums/ModelFloorplanErrorType.html +1 -0
  20. package/docs/index.html +10 -0
  21. package/docs/interfaces/ModelChassisCompassPluginData.html +1 -0
  22. package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -0
  23. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -0
  24. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -0
  25. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -0
  26. package/docs/interfaces/ModelFloorplanParameterType.html +1 -0
  27. package/docs/interfaces/ModelFloorplanViewEvent.html +5 -0
  28. package/docs/interfaces/ModelRoomLabelPluginData.html +1 -0
  29. package/docs/interfaces/PanoCompassPluginData.html +1 -0
  30. package/docs/interfaces/PanoCompassPluginParameterType.html +1 -0
  31. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +11 -0
  32. package/docs/interfaces/PanoRulerPluginExportType.html +1 -0
  33. package/docs/interfaces/PanoRulerPluginOptions.html +1 -0
  34. package/docs/interfaces/PanoRulerPluginParameterType.html +1 -0
  35. package/docs/interfaces/RoomLabel.html +13 -0
  36. package/docs/interfaces/TopviewFloorplanPluginParameterType.html +1 -0
  37. package/docs/modules.html +26 -0
  38. package/libs/CSS3DRenderPlugin/index.js +1 -1
  39. package/libs/PanoCompassPlugin/Assets/roomInfoIcon.d.ts +1 -0
  40. package/libs/PanoCompassPlugin/Assets/roomInfoIcon.js +1 -0
  41. package/libs/PanoCompassPlugin/getRoomInfoInstance.d.ts +8 -0
  42. package/libs/PanoCompassPlugin/getRoomInfoInstance.js +48 -0
  43. package/libs/PanoCompassPlugin/index.d.ts +29 -3
  44. package/libs/PanoCompassPlugin/index.js +106 -36
  45. package/libs/PanoRulerPlugin/index.d.ts +31 -0
  46. package/libs/PanoRulerPlugin/index.js +398 -0
  47. package/libs/PanoRulerPlugin/style.d.ts +2 -0
  48. package/libs/PanoRulerPlugin/style.js +88 -0
  49. package/libs/PanoRulerPlugin/typings.d.ts +21 -0
  50. package/libs/PanoRulerPlugin/typings.js +1 -0
  51. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte +3 -3
  52. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte.map +1 -1
  53. package/libs/floorplan/ModelFloorplanPlugin/Controller.d.ts +2 -0
  54. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +3 -1
  55. package/libs/floorplan/TopviewFloorplanPlugin/Controller.d.ts +2 -0
  56. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +4 -3
  57. package/libs/floorplan/constant.d.ts +5 -0
  58. package/libs/floorplan/constant.js +6 -0
  59. package/libs/floorplan/typings/floorplanServerData.d.ts +4 -0
  60. package/libs/index.d.ts +4 -1
  61. package/libs/index.js +4 -1
  62. package/libs/shared-utils/getPxmm.d.ts +6 -1
  63. package/libs/shared-utils/getPxmm.js +26 -12
  64. package/package.json +4 -2
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>@realsee/dnalogel</title><meta name="description" content="Documentation for @realsee/dnalogel"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">@realsee/dnalogel</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><h1>@realsee/dnalogel</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Enumerations</h3><ul class="tsd-index-list"><li class="tsd-kind-enum"><a href="enums/FLOOR_PLAN_ATTACHED_TO.html" class="tsd-kind-icon">FLOOR_<wbr/>PLAN_<wbr/>ATTACHED_<wbr/>TO</a></li><li class="tsd-kind-enum"><a href="enums/ModelFloorplanErrorType.html" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Error<wbr/>Type</a></li></ul></section><section class="tsd-index-section "><h3>Classes</h3><ul class="tsd-index-list"><li class="tsd-kind-class"><a href="classes/ModelRoomLabelController.html" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Controller</a></li></ul></section><section class="tsd-index-section "><h3>Interfaces</h3><ul class="tsd-index-list"><li class="tsd-kind-interface"><a href="interfaces/ModelChassisCompassPluginData.html" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelChassisCompassPluginExportType.html" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelChassisCompassPluginParameterType.html" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelEntryDoorGuidePluginData.html" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelEntryDoorGuidePluginExportType.html" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelFloorplanParameterType.html" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelFloorplanViewEvent.html" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>View<wbr/>Event</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelRoomLabelPluginData.html" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoCompassPluginData.html" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoCompassPluginParameterType.html" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoCursorRaycasterPluginExportType.html" class="tsd-kind-icon">Pano<wbr/>Cursor<wbr/>Raycaster<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoRulerPluginExportType.html" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoRulerPluginOptions.html" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin<wbr/>Options</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoRulerPluginParameterType.html" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/RoomLabel.html" class="tsd-kind-icon">Room<wbr/>Label</a></li><li class="tsd-kind-interface"><a href="interfaces/TopviewFloorplanPluginParameterType.html" class="tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li></ul></section><section class="tsd-index-section "><h3>Type aliases</h3><ul class="tsd-index-list"><li class="tsd-kind-type-alias"><a href="modules.html#ModelEntryDoorGuidePluginParameterType" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelFloorplanEventHandlers" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Event<wbr/>Handlers</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelFloorplanPluginReturnType" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelFloorplanPluginsConfigs" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugins<wbr/>Configs</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelRoomLabelPluginParameters" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Parameters</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelRoomLabelPluginReturnType" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#PanoCompassPluginExportType" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#PanoFloorplanRadarPluginParameterType" class="tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#PanoFloorplanRadarPluginReturnType" class="tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#TopviewFloorplanPluginReturnType" class="tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li></ul></section><section class="tsd-index-section "><h3>Functions</h3><ul class="tsd-index-list"><li class="tsd-kind-function"><a href="modules.html#CSS3DRenderPlugin" class="tsd-kind-icon">CSS3DRender<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#CameraMovementPlugin" class="tsd-kind-icon">Camera<wbr/>Movement<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelChassisCompassPlugin" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelEntryDoorGuidePlugin" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelFloorplanPlugin" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelRoomLabelPlugin" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelViewPlugin" class="tsd-kind-icon">Model<wbr/>View<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoCompassPlugin" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoCursorRaycasterPlugin" class="tsd-kind-icon">Pano<wbr/>Cursor<wbr/>Raycaster<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoFloorplanRadarPlugin" class="tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoRulerPlugin" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#TopviewFloorplanPlugin" class="tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Type aliases</h2><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="ModelEntryDoorGuidePluginParameterType" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Parameter<wbr/>Type<a href="#ModelEntryDoorGuidePluginParameterType" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Parameter<wbr/>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>animationEnabled<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol"> &amp; </span><a href="interfaces/ModelEntryDoorGuidePluginData.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelEntryDoorGuidePluginData</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/ModelEntryDoorGuidePlugin/index.ts#L16">ModelEntryDoorGuidePlugin/index.ts:16</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="ModelFloorplanEventHandlers" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Model<wbr/>Floorplan<wbr/>Event<wbr/>Handlers<a href="#ModelFloorplanEventHandlers" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Event<wbr/>Handlers<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>click<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>hide<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">; </span>showAnimationEnded<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> }</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/ModelFloorplanPlugin/typings/events.type.ts#L9">floorplan/ModelFloorplanPlugin/typings/events.type.ts:9</a></li></ul></aside><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5>click<span class="tsd-signature-symbol">:</span>function</h5><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-type-literal"><li class="tsd-signature tsd-kind-icon">click<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/ModelFloorplanPlugin/typings/events.type.ts#L26">floorplan/ModelFloorplanPlugin/typings/events.type.ts:26</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
2
+ <p>点击户型图的回调</p>
3
+ </div></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span></h4><div><p>当返回 false 时,会阻止默认行为</p>
4
+ </div></li></ul></li><li class="tsd-parameter"><h5>hide<span class="tsd-signature-symbol">:</span>function</h5><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-type-literal"><li class="tsd-signature tsd-kind-icon">hide<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/ModelFloorplanViewEvent.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelFloorplanViewEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/ModelFloorplanPlugin/typings/events.type.ts#L20">floorplan/ModelFloorplanPlugin/typings/events.type.ts:20</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
5
+ <p>隐藏的回调</p>
6
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>event: <a href="interfaces/ModelFloorplanViewEvent.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelFloorplanViewEvent</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li><li class="tsd-parameter"><h5>show<wbr/>Animation<wbr/>Ended<span class="tsd-signature-symbol">:</span>function</h5><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-type-literal"><li class="tsd-signature tsd-kind-icon">show<wbr/>Animation<wbr/>Ended<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/ModelFloorplanViewEvent.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelFloorplanViewEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/ModelFloorplanPlugin/typings/events.type.ts#L14">floorplan/ModelFloorplanPlugin/typings/events.type.ts:14</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
7
+ <p>展示结束的回调</p>
8
+ <ul>
9
+ <li>@param event.auto 是否是自动展示</li>
10
+ </ul>
11
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>event: <a href="interfaces/ModelFloorplanViewEvent.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelFloorplanViewEvent</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="ModelFloorplanPluginReturnType" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Model<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type<a href="#ModelFloorplanPluginReturnType" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">FloorplanPluginController</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/ModelFloorplanPlugin/index.ts#L12">floorplan/ModelFloorplanPlugin/index.ts:12</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="ModelFloorplanPluginsConfigs" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Model<wbr/>Floorplan<wbr/>Plugins<wbr/>Configs<a href="#ModelFloorplanPluginsConfigs" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugins<wbr/>Configs<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Omit</span><span class="tsd-signature-symbol">&lt;</span><a href="interfaces/ModelFloorplanParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelFloorplanParameterType</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">&quot;selector&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;scale&quot;</span><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/ModelFloorplanPlugin/Controller.ts#L31">floorplan/ModelFloorplanPlugin/Controller.ts:31</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="ModelRoomLabelPluginParameters" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Parameters<a href="#ModelRoomLabelPluginParameters" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Parameters<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">undefined</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/ModelRoomLabelPlugin/Controller.ts#L6">ModelRoomLabelPlugin/Controller.ts:6</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="ModelRoomLabelPluginReturnType" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Return<wbr/>Type<a href="#ModelRoomLabelPluginReturnType" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Return<wbr/>Type<span class="tsd-signature-symbol">:</span> <a href="classes/ModelRoomLabelController.html" class="tsd-signature-type" data-tsd-kind="Class">ModelRoomLabelController</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/ModelRoomLabelPlugin/index.ts#L18">ModelRoomLabelPlugin/index.ts:18</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="PanoCompassPluginExportType" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Export<wbr/>Type<a href="#PanoCompassPluginExportType" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Export<wbr/>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">PanoCompassController</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/PanoCompassPlugin/index.ts#L20">PanoCompassPlugin/index.ts:20</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="PanoFloorplanRadarPluginParameterType" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Parameter<wbr/>Type<a href="#PanoFloorplanRadarPluginParameterType" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Parameter<wbr/>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ConstructorParameters</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-symbol">typeof </span><span class="tsd-signature-type">PanoFloorplanRadarPluginController</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">1</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/PanoFloorplanRadarPlugin/index.ts#L15">floorplan/PanoFloorplanRadarPlugin/index.ts:15</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="PanoFloorplanRadarPluginReturnType" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Return<wbr/>Type<a href="#PanoFloorplanRadarPluginReturnType" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Return<wbr/>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">PanoFloorplanRadarPluginController</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/PanoFloorplanRadarPlugin/index.ts#L14">floorplan/PanoFloorplanRadarPlugin/index.ts:14</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="TopviewFloorplanPluginReturnType" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Topview<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type<a href="#TopviewFloorplanPluginReturnType" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">TopviewFloorplanPluginController</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/TopviewFloorplanPlugin/Controller.ts#L28">floorplan/TopviewFloorplanPlugin/Controller.ts:28</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group "><h2>Functions</h2><section class="tsd-panel tsd-member tsd-kind-function"><a id="CSS3DRenderPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> CSS3DRender<wbr/>Plugin<a href="#CSS3DRenderPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">CSS3DRender<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">CSS3DRenderPluginExportType</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/CSS3DRenderPlugin/index.ts#L60">CSS3DRenderPlugin/index.ts:60</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
12
+ <p><strong>CSS3DRenderPlugin</strong> 提供矩形区域(三维空间四个坐标点),你可以在此矩形区域中渲染 DOM 内容。
13
+ 实现原理参考<a href="https://threejs.org/docs/index.html?q=CSS3D#examples/en/renderers/CSS3DRenderer">CSS3DRenderer</a>。</p>
14
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">CSS3DRenderPluginExportType</span></h4><div></div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="CameraMovementPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Camera<wbr/>Movement<wbr/>Plugin<a href="#CameraMovementPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Camera<wbr/>Movement<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">CameraMovementPluginParameterType</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">CameraMovementPluginExportType</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/CameraMovementPlugin/index.ts#L40">CameraMovementPlugin/index.ts:40</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
15
+ <p><strong>运镜插件</strong> 模拟类似于电影运镜效果。</p>
16
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <span class="tsd-signature-type">CameraMovementPluginParameterType</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">CameraMovementPluginExportType</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="ModelChassisCompassPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<a href="#ModelChassisCompassPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><a href="interfaces/ModelChassisCompassPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelChassisCompassPluginParameterType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="interfaces/ModelChassisCompassPluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelChassisCompassPluginExportType</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/ModelChassisCompassPlugin/index.ts#L32">ModelChassisCompassPlugin/index.ts:32</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
17
+ <p>模型底盘指南针插件</p>
18
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <a href="interfaces/ModelChassisCompassPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelChassisCompassPluginParameterType</a></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="interfaces/ModelChassisCompassPluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelChassisCompassPluginExportType</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="ModelEntryDoorGuidePlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<a href="#ModelEntryDoorGuidePlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><a href="modules.html#ModelEntryDoorGuidePluginParameterType" class="tsd-signature-type" data-tsd-kind="Type alias">ModelEntryDoorGuidePluginParameterType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="interfaces/ModelEntryDoorGuidePluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelEntryDoorGuidePluginExportType</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/ModelEntryDoorGuidePlugin/index.ts#L36">ModelEntryDoorGuidePlugin/index.ts:36</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
19
+ <p>模型入户门引导插件</p>
20
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <a href="modules.html#ModelEntryDoorGuidePluginParameterType" class="tsd-signature-type" data-tsd-kind="Type alias">ModelEntryDoorGuidePluginParameterType</a></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="interfaces/ModelEntryDoorGuidePluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelEntryDoorGuidePluginExportType</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="ModelFloorplanPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Model<wbr/>Floorplan<wbr/>Plugin<a href="#ModelFloorplanPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><a href="interfaces/ModelFloorplanParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelFloorplanParameterType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">default</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/ModelFloorplanPlugin/index.ts#L4">floorplan/ModelFloorplanPlugin/index.ts:4</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <a href="interfaces/ModelFloorplanParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">ModelFloorplanParameterType</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">default</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="ModelRoomLabelPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Model<wbr/>Room<wbr/>Label<wbr/>Plugin<a href="#ModelRoomLabelPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="classes/ModelRoomLabelController.html" class="tsd-signature-type" data-tsd-kind="Class">ModelRoomLabelController</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/ModelRoomLabelPlugin/index.ts#L4">ModelRoomLabelPlugin/index.ts:4</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="classes/ModelRoomLabelController.html" class="tsd-signature-type" data-tsd-kind="Class">ModelRoomLabelController</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="ModelViewPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Model<wbr/>View<wbr/>Plugin<a href="#ModelViewPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Model<wbr/>View<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ModelViewPluginExportType</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/ModelViewPlugin/index.tsx#L13">ModelViewPlugin/index.tsx:13</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
21
+ <p>Five 模型插件</p>
22
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">ModelViewPluginExportType</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="PanoCompassPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Pano<wbr/>Compass<wbr/>Plugin<a href="#PanoCompassPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><a href="interfaces/PanoCompassPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoCompassPluginParameterType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">PanoCompassController</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/PanoCompassPlugin/index.ts#L27">PanoCompassPlugin/index.ts:27</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <a href="interfaces/PanoCompassPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoCompassPluginParameterType</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">PanoCompassController</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="PanoCursorRaycasterPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Pano<wbr/>Cursor<wbr/>Raycaster<wbr/>Plugin<a href="#PanoCursorRaycasterPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Pano<wbr/>Cursor<wbr/>Raycaster<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">PanoCursorRaycasterPluginParameterType</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="interfaces/PanoCursorRaycasterPluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoCursorRaycasterPluginExportType</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/PanoCursorRaycasterPlugin/index.ts#L57">PanoCursorRaycasterPlugin/index.ts:57</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
23
+ <p>全景中对当前鼠标的位置进行碰撞监测</p>
24
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <span class="tsd-signature-type">PanoCursorRaycasterPluginParameterType</span></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="interfaces/PanoCursorRaycasterPluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoCursorRaycasterPluginExportType</a></h4><div></div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="PanoFloorplanRadarPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<a href="#PanoFloorplanRadarPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">PanoFloorplanRadarPluginControllerParameter</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">default</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/PanoFloorplanRadarPlugin/index.ts#L4">floorplan/PanoFloorplanRadarPlugin/index.ts:4</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <span class="tsd-signature-type">PanoFloorplanRadarPluginControllerParameter</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">default</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="PanoRulerPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Pano<wbr/>Ruler<wbr/>Plugin<a href="#PanoRulerPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><a href="interfaces/PanoRulerPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoRulerPluginParameterType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="interfaces/PanoRulerPluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoRulerPluginExportType</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/PanoRulerPlugin/index.ts#L99">PanoRulerPlugin/index.ts:99</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
25
+ <p>全景标尺插件</p>
26
+ </div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <a href="interfaces/PanoRulerPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoRulerPluginParameterType</a></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="interfaces/PanoRulerPluginExportType.html" class="tsd-signature-type" data-tsd-kind="Interface">PanoRulerPluginExportType</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-function"><a id="TopviewFloorplanPlugin" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagConst">Const</span> Topview<wbr/>Floorplan<wbr/>Plugin<a href="#TopviewFloorplanPlugin" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-function"><li class="tsd-signature tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin<span class="tsd-signature-symbol">(</span>five<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Five</span>, parameters<span class="tsd-signature-symbol">: </span><a href="interfaces/TopviewFloorplanPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">TopviewFloorplanPluginParameterType</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">TopviewFloorplanPluginController</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/realsee-developer/dnalogel/blob/cfe030d/plugins/src/floorplan/TopviewFloorplanPlugin/index.ts#L8">floorplan/TopviewFloorplanPlugin/index.ts:8</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>five: <span class="tsd-signature-type">Five</span></h5></li><li><h5>parameters: <a href="interfaces/TopviewFloorplanPluginParameterType.html" class="tsd-signature-type" data-tsd-kind="Interface">TopviewFloorplanPluginParameterType</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">TopviewFloorplanPluginController</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class="current"><a href="modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="tsd-kind-enum"><a href="enums/FLOOR_PLAN_ATTACHED_TO.html" class="tsd-kind-icon">FLOOR_<wbr/>PLAN_<wbr/>ATTACHED_<wbr/>TO</a></li><li class="tsd-kind-enum"><a href="enums/ModelFloorplanErrorType.html" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Error<wbr/>Type</a></li><li class="tsd-kind-class"><a href="classes/ModelRoomLabelController.html" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Controller</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelChassisCompassPluginData.html" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelChassisCompassPluginExportType.html" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelChassisCompassPluginParameterType.html" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelEntryDoorGuidePluginData.html" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelEntryDoorGuidePluginExportType.html" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelFloorplanParameterType.html" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelFloorplanViewEvent.html" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>View<wbr/>Event</a></li><li class="tsd-kind-interface"><a href="interfaces/ModelRoomLabelPluginData.html" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoCompassPluginData.html" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Data</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoCompassPluginParameterType.html" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoCursorRaycasterPluginExportType.html" class="tsd-kind-icon">Pano<wbr/>Cursor<wbr/>Raycaster<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoRulerPluginExportType.html" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoRulerPluginOptions.html" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin<wbr/>Options</a></li><li class="tsd-kind-interface"><a href="interfaces/PanoRulerPluginParameterType.html" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-interface"><a href="interfaces/RoomLabel.html" class="tsd-kind-icon">Room<wbr/>Label</a></li><li class="tsd-kind-interface"><a href="interfaces/TopviewFloorplanPluginParameterType.html" class="tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelEntryDoorGuidePluginParameterType" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelFloorplanEventHandlers" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Event<wbr/>Handlers</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelFloorplanPluginReturnType" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelFloorplanPluginsConfigs" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugins<wbr/>Configs</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelRoomLabelPluginParameters" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Parameters</a></li><li class="tsd-kind-type-alias"><a href="modules.html#ModelRoomLabelPluginReturnType" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#PanoCompassPluginExportType" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin<wbr/>Export<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#PanoFloorplanRadarPluginParameterType" class="tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Parameter<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#PanoFloorplanRadarPluginReturnType" class="tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li><li class="tsd-kind-type-alias"><a href="modules.html#TopviewFloorplanPluginReturnType" class="tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin<wbr/>Return<wbr/>Type</a></li><li class="tsd-kind-function"><a href="modules.html#CSS3DRenderPlugin" class="tsd-kind-icon">CSS3DRender<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#CameraMovementPlugin" class="tsd-kind-icon">Camera<wbr/>Movement<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelChassisCompassPlugin" class="tsd-kind-icon">Model<wbr/>Chassis<wbr/>Compass<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelEntryDoorGuidePlugin" class="tsd-kind-icon">Model<wbr/>Entry<wbr/>Door<wbr/>Guide<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelFloorplanPlugin" class="tsd-kind-icon">Model<wbr/>Floorplan<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelRoomLabelPlugin" class="tsd-kind-icon">Model<wbr/>Room<wbr/>Label<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#ModelViewPlugin" class="tsd-kind-icon">Model<wbr/>View<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoCompassPlugin" class="tsd-kind-icon">Pano<wbr/>Compass<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoCursorRaycasterPlugin" class="tsd-kind-icon">Pano<wbr/>Cursor<wbr/>Raycaster<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoFloorplanRadarPlugin" class="tsd-kind-icon">Pano<wbr/>Floorplan<wbr/>Radar<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#PanoRulerPlugin" class="tsd-kind-icon">Pano<wbr/>Ruler<wbr/>Plugin</a></li><li class="tsd-kind-function"><a href="modules.html#TopviewFloorplanPlugin" class="tsd-kind-icon">Topview<wbr/>Floorplan<wbr/>Plugin</a></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="assets/main.js"></script></body></html>
@@ -147,7 +147,7 @@ export const CSS3DRenderPlugin = (five) => {
147
147
  * [0,0,1] => [0,1,0] 为rolate Worldy正方向
148
148
  * [0,1,1] => [-1,0,0] 为rolate Worldz正方向
149
149
  */
150
- const rotateX = (vector12.z > 0 ? 1 : -1) * rotateXAngle;
150
+ const rotateX = (vector12.z > 0 ? -1 : 1) * rotateXAngle;
151
151
  const rotateY = (vector01.z < 0 ? 1 : -1) * rotateYAngle;
152
152
  const rotateZ = ((vector01.x > 0 && vector01.y < 0) || (vector01.x < 0 && vector01.y > 0) ? -1 : 1) * rotateZAngle;
153
153
  css3DObject.rotateOnWorldAxis(new Vector3(1, 0, 0), rotateX); // x
@@ -0,0 +1 @@
1
+ export declare const roomInfoIcon = "data:image/png;base64,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";
@@ -0,0 +1 @@
1
+ export const roomInfoIcon = 'data:image/png;base64,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';
@@ -0,0 +1,8 @@
1
+ import type { FloorplanServerRoomItem } from '../floorplan/typings/floorplanServerData';
2
+ export declare function getRoomInfoInstance(): {
3
+ appendTo(element: Element): void;
4
+ dispose(): void;
5
+ setRoom(room: FloorplanServerRoomItem): void;
6
+ show(): void;
7
+ hide(): void;
8
+ };
@@ -0,0 +1,48 @@
1
+ import { roomInfoIcon } from './Assets/roomInfoIcon';
2
+ export function getRoomInfoInstance() {
3
+ const infoDom = document.createElement('div');
4
+ const iconDom = document.createElement('i');
5
+ const textDom = document.createElement('span');
6
+ infoDom.appendChild(iconDom);
7
+ infoDom.appendChild(textDom);
8
+ // infoDom style
9
+ infoDom.style.position = 'relative';
10
+ infoDom.style.width = '100%';
11
+ infoDom.style.display = 'flex';
12
+ infoDom.style.flexDirection = 'column';
13
+ infoDom.style.alignItems = 'center';
14
+ infoDom.style.marginTop = `${150 / 16}rem`;
15
+ infoDom.style.opacity = '0';
16
+ infoDom.style.transition = 'opacity 1000ms linear';
17
+ // iconDom style
18
+ iconDom.style.display = 'block';
19
+ iconDom.style.width = `${134 / 16}rem`;
20
+ iconDom.style.height = `${22 / 16}rem`;
21
+ iconDom.style.backgroundSize = '100%';
22
+ iconDom.style.backgroundRepeat = 'no-repeat';
23
+ iconDom.style.backgroundImage = `url(${roomInfoIcon})`;
24
+ textDom.style.marginTop = `${10 / 16}rem`;
25
+ // textDom style
26
+ textDom.style.fontSize = `${16 / 16}rem`;
27
+ textDom.style.color = '#fff';
28
+ textDom.style.opacity = '0.7';
29
+ textDom.style.textShadow = '0 2px 16px rgb(22 34 83 / 24%)';
30
+ textDom.style.fontWeight = 'bold';
31
+ return {
32
+ appendTo(element) {
33
+ element.appendChild(infoDom);
34
+ },
35
+ dispose() {
36
+ infoDom.remove();
37
+ },
38
+ setRoom(room) {
39
+ textDom.innerHTML = room.name + ' ' + Math.floor(room.size / 1000000) + '㎡';
40
+ },
41
+ show() {
42
+ infoDom.style.opacity = '1';
43
+ },
44
+ hide() {
45
+ infoDom.style.opacity = '0';
46
+ }
47
+ };
48
+ }
@@ -1,25 +1,51 @@
1
1
  import type { Five, FivePlugin } from '@realsee/five';
2
+ import type { FloorplanServerRoomItem } from '../floorplan/typings/floorplanServerData';
2
3
  export interface PanoCompassPluginParameterType {
3
4
  compassImageUrl?: string;
5
+ entryDoorImageUrl?: string;
4
6
  }
5
7
  export interface PanoCompassPluginData {
6
- north_rad: number;
8
+ entrance: null | {
9
+ north_rad: number;
10
+ position: {
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ };
15
+ };
16
+ room_observers: {
17
+ index: number;
18
+ floor_index: number;
19
+ room: FloorplanServerRoomItem;
20
+ }[];
7
21
  }
8
22
  export declare type PanoCompassPluginExportType = PanoCompassController;
23
+ export declare const panoCompassPluginServerParams: {
24
+ name: string;
25
+ version: number;
26
+ };
9
27
  export declare const PanoCompassPlugin: FivePlugin<PanoCompassPluginParameterType | undefined, PanoCompassController>;
10
28
  export default PanoCompassPlugin;
11
29
  declare class PanoCompassController {
12
30
  five: Five;
13
31
  data?: PanoCompassPluginData;
14
32
  config?: PanoCompassPluginParameterType;
33
+ private group;
34
+ private modelLoaded;
35
+ private roomInfoInstance?;
36
+ private roomInfoWrapperInstance?;
15
37
  private compassMeshTween?;
16
38
  private compassMesh?;
39
+ private entryDoorMesh?;
17
40
  constructor(five: Five, config?: PanoCompassPluginParameterType);
18
41
  load(data: PanoCompassPluginData): void;
19
42
  dispose: () => void;
43
+ private onFiveFistPanoLoaded;
44
+ private init;
20
45
  private loadCompassMesh;
46
+ private loadEntryDoorMesh;
47
+ private loadRoomInfo;
21
48
  private onFivePanoWillArrive;
22
49
  private onFivePanoArrived;
23
- private fixPosition;
24
- private fixRotation;
50
+ private onFiveCameraDirectionUpdate;
25
51
  }
@@ -1,6 +1,12 @@
1
1
  import * as THREE from 'three';
2
+ import { getRoomInfoInstance } from './getRoomInfoInstance';
2
3
  import { loadTexture } from '../shared-utils/three/loadTexture';
4
+ import CSS3DRenderPlugin from '../CSS3DRenderPlugin';
3
5
  import { tweenProgress } from '../shared-utils/animationFrame/BetterTween';
6
+ export const panoCompassPluginServerParams = {
7
+ name: 'PanoCompassPlugin',
8
+ version: 0,
9
+ };
4
10
  export const PanoCompassPlugin = function (five, config) {
5
11
  return new PanoCompassController(five, config);
6
12
  };
@@ -9,50 +15,97 @@ class PanoCompassController {
9
15
  five;
10
16
  data;
11
17
  config;
18
+ group = new THREE.Group();
19
+ modelLoaded = false;
20
+ roomInfoInstance;
21
+ roomInfoWrapperInstance;
12
22
  compassMeshTween;
13
23
  compassMesh;
24
+ entryDoorMesh;
14
25
  constructor(five, config) {
15
26
  this.five = five;
16
27
  this.config = config;
17
- five.once('panoLoaded', this.loadCompassMesh);
28
+ this.five.scene.add(this.group);
18
29
  five.once('dispose', this.dispose);
30
+ five.once('modelLoaded', this.onFiveFistPanoLoaded);
19
31
  this.five.on('panoArrived', this.onFivePanoArrived);
20
32
  this.five.on('panoWillArrive', this.onFivePanoWillArrive);
33
+ this.five.on('cameraDirectionUpdate', this.onFiveCameraDirectionUpdate);
21
34
  }
22
35
  load(data) {
23
36
  this.data = data;
24
- if (this.compassMesh && !this.five.scene.children.includes(this.compassMesh)) {
25
- // 模型已经加载好了,才加载数据
26
- this.fixRotation(data.north_rad);
27
- this.fixPosition(this.five.panoIndex || 0);
28
- this.five.scene.add(this.compassMesh);
29
- }
37
+ if (this.modelLoaded)
38
+ this.init();
30
39
  }
31
40
  dispose = () => {
41
+ this.five.scene.remove(this.group);
42
+ this.group.remove(...this.group.children);
43
+ this.compassMesh?.material.map?.dispose();
44
+ this.entryDoorMesh?.material.map?.dispose();
32
45
  this.five.off('panoArrived', this.onFivePanoArrived);
33
46
  this.five.off('panoWillArrive', this.onFivePanoWillArrive);
34
- this.five.off();
35
47
  };
36
- loadCompassMesh = async () => {
48
+ onFiveFistPanoLoaded = () => {
49
+ this.modelLoaded = true;
50
+ if (this.data)
51
+ this.init();
52
+ };
53
+ async init() {
54
+ if (!this.data || !this.modelLoaded)
55
+ return;
56
+ this.compassMesh = await this.loadCompassMesh();
57
+ this.entryDoorMesh = await this.loadEntryDoorMesh();
58
+ this.roomInfoWrapperInstance = this.loadRoomInfo();
59
+ this.roomInfoInstance = getRoomInfoInstance();
60
+ this.compassMesh.rotateX(-Math.PI / 2);
61
+ this.entryDoorMesh.rotateX(-Math.PI / 2);
62
+ const northRad = this.data.entrance.north_rad;
63
+ this.compassMesh.rotateZ(northRad - Math.PI / 2);
64
+ this.onFivePanoArrived(this.five.panoIndex || 0);
65
+ this.group.add(this.compassMesh);
66
+ this.group.add(this.entryDoorMesh);
67
+ if (this.roomInfoWrapperInstance)
68
+ this.roomInfoInstance.appendTo(this.roomInfoWrapperInstance.container);
69
+ this.five.needsRender = true;
70
+ }
71
+ async loadCompassMesh() {
37
72
  const compassImageUrl = this.config?.compassImageUrl || '//vrlab-image4.ljcdn.com/release/web/v3/north-point-circle.96498e69.png';
38
- const texture = await loadTexture(compassImageUrl);
73
+ const compassTexture = await loadTexture(compassImageUrl);
39
74
  const compassGeometry = new THREE.CircleGeometry(0.7, 32);
40
75
  const compassMaterial = new THREE.MeshBasicMaterial({
41
- map: texture,
76
+ map: compassTexture,
42
77
  transparent: true,
43
- opacity: 1,
78
+ opacity: 0,
44
79
  depthTest: false,
45
80
  });
46
81
  const compassMesh = new THREE.Mesh(compassGeometry, compassMaterial);
47
- compassMesh.rotateX(-Math.PI / 2);
48
82
  compassMesh.name = 'pano-compass-mesh';
49
- this.compassMesh = compassMesh;
50
- this.fixPosition(this.five.panoIndex || 0);
51
- if (!this.data)
52
- return;
53
- this.fixRotation(this.data.north_rad);
54
- this.five.scene.add(compassMesh);
55
- };
83
+ return compassMesh;
84
+ }
85
+ async loadEntryDoorMesh() {
86
+ const entryDoorImageUrl = this.config?.entryDoorImageUrl || '//vrlab-image4.ljcdn.com/release/web/enterDoor.831b8208.png';
87
+ const entryDoorTexture = await loadTexture(entryDoorImageUrl);
88
+ const entryDoorGeometry = new THREE.PlaneGeometry(0.2, 0.16);
89
+ const entryDoorMaterial = new THREE.MeshBasicMaterial({
90
+ map: entryDoorTexture,
91
+ transparent: true,
92
+ opacity: 0.8,
93
+ depthTest: false,
94
+ });
95
+ const entryDoorMesh = new THREE.Mesh(entryDoorGeometry, entryDoorMaterial);
96
+ entryDoorMesh.name = 'pano-compass-entry-door';
97
+ return entryDoorMesh;
98
+ }
99
+ loadRoomInfo() {
100
+ const points = [
101
+ new THREE.Vector3(-0.7, 0, -0.7),
102
+ new THREE.Vector3(0.7, 0, -0.7),
103
+ new THREE.Vector3(0.7, 0, 0.7),
104
+ new THREE.Vector3(-0.7, 0, 0.7),
105
+ ];
106
+ const roomInfo = CSS3DRenderPlugin(this.five).create3DDomContainer(points);
107
+ return roomInfo;
108
+ }
56
109
  onFivePanoWillArrive = (panoIndex) => {
57
110
  if (panoIndex === this.five.panoIndex)
58
111
  return;
@@ -60,9 +113,33 @@ class PanoCompassController {
60
113
  this.compassMesh?.material.setValues({ opacity: 0 });
61
114
  };
62
115
  onFivePanoArrived = (panoIndex) => {
63
- if (this.compassMesh?.material.opacity !== 0)
116
+ if (!this.compassMesh || !this.entryDoorMesh || !this.roomInfoInstance || !this.roomInfoWrapperInstance)
117
+ return;
118
+ if (!this.data)
119
+ return;
120
+ // ======== fix compass position ========
121
+ const standingPosition = this.five.work.observers[panoIndex].standingPosition;
122
+ // 指南针上移 0.01m,防止与地板重合
123
+ this.compassMesh.position.copy(standingPosition.clone().setY(standingPosition.y + 0.01));
124
+ // ======== fix entry door label position and rotation ========
125
+ const entryDoorPosition = new THREE.Vector3(this.data.entrance.position.x, this.data.entrance.position.y, this.data.entrance.position.z);
126
+ const panoToEntryDoorVector = entryDoorPosition.clone().setY(standingPosition.y).sub(standingPosition).normalize();
127
+ const compassEntryDoorPosition = standingPosition
128
+ .clone()
129
+ .add(panoToEntryDoorVector.clone().multiplyScalar(0.7))
130
+ .setY(standingPosition.y + 0.01);
131
+ this.entryDoorMesh.rotation.z = new THREE.Vector3(0, 0, -1).angleTo(panoToEntryDoorVector);
132
+ this.entryDoorMesh.position.copy(compassEntryDoorPosition);
133
+ // ======== fix room info ========
134
+ this.roomInfoWrapperInstance.css3DObject.position.copy(standingPosition.clone().setY(standingPosition.y + 0.01));
135
+ this.roomInfoInstance.setRoom(this.data.room_observers[panoIndex].room);
136
+ // 不是客厅时,隐藏入户门指引
137
+ this.data?.room_observers[panoIndex].room.type === 1
138
+ ? this.entryDoorMesh?.material.setValues({ opacity: 1 })
139
+ : this.entryDoorMesh?.material.setValues({ opacity: 0 });
140
+ this.five.needsRender = true;
141
+ if (this.compassMesh.material.opacity !== 0)
64
142
  return;
65
- this.fixPosition(panoIndex);
66
143
  this.compassMeshTween?.dispose();
67
144
  this.compassMeshTween = tweenProgress(1000)
68
145
  .onUpdate(({ progress }) => {
@@ -71,19 +148,12 @@ class PanoCompassController {
71
148
  })
72
149
  .play();
73
150
  };
74
- fixPosition(panoIndex) {
75
- if (!this.compassMesh)
151
+ onFiveCameraDirectionUpdate = ({ longitude, latitude }) => {
152
+ if (!this.roomInfoWrapperInstance)
76
153
  return;
77
- const standingPosition = this.five.work.observers[panoIndex].standingPosition;
78
- // 指南针上移 0.01m,防止与地板重合
79
- const compassPosition = standingPosition.clone().add(new THREE.Vector3(0, 0.01, 0));
80
- this.compassMesh.position.copy(compassPosition);
81
- this.five.needsRender = true;
82
- }
83
- fixRotation(northRad) {
84
- if (!this.compassMesh)
85
- return;
86
- this.compassMesh.rotateZ(northRad - Math.PI / 2);
87
- this.five.needsRender = true;
88
- }
154
+ this.roomInfoWrapperInstance.css3DObject.rotation.z = longitude;
155
+ latitude > 0.66 && this.five.getCurrentState().mode === 'Panorama'
156
+ ? this.roomInfoInstance?.show()
157
+ : this.roomInfoInstance?.hide();
158
+ };
89
159
  }
@@ -0,0 +1,31 @@
1
+ import type { FivePlugin } from '@realsee/five';
2
+ import { RoomInfo, RoomRules } from './typings';
3
+ export interface PanoRulerPluginOptions {
4
+ distanceText?: (distance: number) => string;
5
+ className?: string;
6
+ }
7
+ interface PanoRulerPluginPluginState {
8
+ enable: boolean;
9
+ loaded: boolean;
10
+ options: PanoRulerPluginOptions;
11
+ }
12
+ export interface PanoRulerPluginParameterType {
13
+ roomInfo?: RoomInfo;
14
+ roomRules?: RoomRules;
15
+ options?: PanoRulerPluginOptions;
16
+ }
17
+ export interface PanoRulerPluginExportType {
18
+ enable: () => void;
19
+ disable: () => void;
20
+ load: (roomInfo?: RoomInfo, roomRules?: RoomRules, options?: PanoRulerPluginOptions) => Promise<boolean>;
21
+ state: PanoRulerPluginPluginState;
22
+ }
23
+ /**
24
+ * 全景标尺插件
25
+ */
26
+ export declare const PanoRulerPlugin: FivePlugin<PanoRulerPluginParameterType, PanoRulerPluginExportType>;
27
+ export declare const panoRulerPluginServerParams: {
28
+ name: string;
29
+ version: number;
30
+ };
31
+ export default PanoRulerPlugin;