bc-model-viewer 1.7.23 → 1.7.45

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.
@@ -83,6 +83,17 @@
83
83
  <a href="index.html" class="back-button">返回示例列表</a>
84
84
  <div class="control-panel">
85
85
  <h2>🎭 场景页面管理器演示</h2>
86
+
87
+ <!-- 属性查看工具控制 -->
88
+ <div class="control-group">
89
+ <h3>🔍 属性查看工具</h3>
90
+ <button id="activatePropertyViewer" class="btn">激活属性查看</button>
91
+ <button id="deactivatePropertyViewer" class="btn" disabled>停用属性查看</button>
92
+ <div style="font-size: 12px; color: #666; margin-top: 5px;">
93
+ 工具状态: <span id="propertyViewerStatus">未激活</span>
94
+ </div>
95
+ </div>
96
+
86
97
  <div class="scene-buttons" id="modelScenesContainer">
87
98
  <!-- 模型中的场景按钮将在这里动态生成 -->
88
99
  </div>
@@ -111,7 +122,7 @@
111
122
 
112
123
  <script type="module">
113
124
  // 导入必要的组件
114
- import { Viewer } from '../../index.ts';
125
+ import { Viewer, PropertyViewerTool } from '../../index.ts';
115
126
 
116
127
  // 获取容器元素
117
128
  const container = document.getElementById('container');
@@ -125,22 +136,84 @@
125
136
  },
126
137
  });
127
138
 
139
+ // 属性查看工具实例
140
+ let propertyViewerTool = null;
141
+
142
+ // 属性查看工具控制函数
143
+ function setupPropertyViewerTool() {
144
+ const activateBtn = document.getElementById('activatePropertyViewer');
145
+ const deactivateBtn = document.getElementById('deactivatePropertyViewer');
146
+ const statusSpan = document.getElementById('propertyViewerStatus');
147
+
148
+ // 激活属性查看工具
149
+ activateBtn.addEventListener('click', () => {
150
+ if (!propertyViewerTool) {
151
+ propertyViewerTool = new PropertyViewerTool(viewer);
152
+ }
153
+ // 激活属性查看工具
154
+ propertyViewerTool.activate();
155
+
156
+ // 更新按钮状态
157
+ activateBtn.disabled = true;
158
+ deactivateBtn.disabled = false;
159
+ statusSpan.textContent = '已激活';
160
+ statusSpan.style.color = '#4CAF50';
161
+
162
+ console.log('属性查看工具已激活');
163
+ });
164
+
165
+ // 停用属性查看工具
166
+ deactivateBtn.addEventListener('click', () => {
167
+ if (propertyViewerTool) {
168
+ propertyViewerTool.deactivate();
169
+
170
+ // 更新按钮状态
171
+ activateBtn.disabled = false;
172
+ deactivateBtn.disabled = true;
173
+ statusSpan.textContent = '未激活';
174
+ statusSpan.style.color = '#666';
175
+
176
+ console.log('属性查看工具已停用');
177
+ }
178
+ });
179
+ }
180
+
181
+ // 初始化属性查看工具
182
+ setupPropertyViewerTool();
183
+
128
184
  // 加载测试模型 - 请根据实际情况修改模型路径
129
185
  try {
130
186
  // 尝试加载默认模型,如果失败会显示错误信息
131
- // await viewer.loadZipAsync('../../../assets/dgz/49F酒店室内.dgz');
132
- await viewer.loadZipAsync('../../../assets/dgz/地下室管综2.dgz');
133
- console.log('模型加载成功');
187
+ await viewer.loadZipAsync('../../../assets/p1.dgz');
188
+ // await viewer.loadZipAsync('../../../assets/dgz/地下室管综2.dgz');
134
189
 
135
190
  // 模型加载完成后,检查是否有内置场景
136
191
  console.log('模型中的场景:', viewer.scenePageManager.pages);
137
- console.log('场景数量:', viewer.scenePageManager.pages.length);
138
192
 
139
193
  // 设置场景页面事件监听
140
194
  setupScenePageEvents();
141
195
 
142
196
  // 自动加载模型中的场景
143
197
  loadAndDisplayModelScenes();
198
+
199
+ // 为模型对象添加一些测试用的用户数据
200
+ setTimeout(() => {
201
+ if (viewer.scene && viewer.scene.children.length > 0) {
202
+ viewer.scene.children.forEach((child, index) => {
203
+ // 添加一些测试用的用户数据
204
+ if (!child.userData) {
205
+ child.userData = {
206
+ material: 'Steel',
207
+ weight: '15kg',
208
+ manufacturer: 'Test Corp',
209
+ partNumber: `PN-${index + 1000}`,
210
+ description: '这是一个测试对象的描述信息'
211
+ };
212
+ }
213
+ });
214
+ }
215
+ }, 100);
216
+
144
217
  } catch (error) {
145
218
  // console.error('模型加载失败,请检查路径是否正确:', error);
146
219
  // alert('模型加载失败,请确保模型文件路径正确');
@@ -155,7 +228,6 @@
155
228
 
156
229
  // 监听页面切换开始事件
157
230
  scenePageManager.addEventListener('pageChangeStart', (event) => {
158
- console.log('PAGE_CHANGE_START', `开始切换到场景: ${event.page.name}`);
159
231
  });
160
232
 
161
233
  // 监听页面切换进度事件
@@ -165,20 +237,16 @@
165
237
  'cameraPositioned': '相机位置设置完成'
166
238
  };
167
239
  const stageDesc = stageDescriptions[event.stage] || event.stage;
168
- console.log('PAGE_CHANGE_PROGRESS', `进度: ${stageDesc}`);
169
240
  });
170
241
 
171
242
  // 监听页面切换完成事件
172
243
  scenePageManager.addEventListener('pageChangeComplete', (event) => {
173
- console.log('PAGE_CHANGE_COMPLETE', `成功切换到场景: ${event.page?.name || '未知'}`);
174
244
  });
175
245
 
176
246
  // 监听页面切换错误事件
177
247
  scenePageManager.addEventListener('pageChangeError', (event) => {
178
- console.log('PAGE_CHANGE_ERROR', `切换失败: ${event.error.message || '未知错误'}`);
179
248
  });
180
249
 
181
- console.log('已设置场景页面管理器事件监听器');
182
250
  }
183
251
 
184
252
  // 加载并显示模型中的场景
@@ -219,8 +287,6 @@
219
287
 
220
288
  // 显示第一个场景的详细信息
221
289
  displaySceneDetails(modelScenes[0]);
222
-
223
- console.log('已加载并显示模型中的所有场景');
224
290
  }
225
291
 
226
292
  // 显示场景详细信息
@@ -272,13 +338,10 @@
272
338
  }
273
339
  // 暴露viewer和辅助函数到全局以便调试
274
340
  window.viewer = viewer;
341
+ window.propertyViewerTool = propertyViewerTool;
275
342
  window.getModelScenes = getModelScenes;
276
343
  window.getSceneByName = getSceneByName;
277
344
  window.loadAndDisplayModelScenes = loadAndDisplayModelScenes;
278
-
279
- console.log('场景页面管理器演示已加载');
280
- console.log('可用场景:', viewer.scenePageManager.getAllSceneNames());
281
- console.log('模型中的场景详情:', viewer.scenePageManager.pages);
282
345
  </script>
283
346
  </body>
284
347
 
@@ -443,6 +443,17 @@
443
443
  </div>
444
444
  <a href="SelectionZoomTool.html" class="link-button">查看示例 →</a>
445
445
  </div>
446
+
447
+ <div class="example-card" data-name="属性查看" data-desc="对象属性">
448
+ <h3><span class="icon">🔍</span>属性查看工具</h3>
449
+ <div class="description">点击模型对象查看其属性信息,包括基本属性(位置、旋转、缩放等)和用户自定义数据。支持实时属性显示。</div>
450
+ <div class="tags">
451
+ <span class="tag tag-tool">查看工具</span>
452
+ <span class="tag tag-feature">属性查看</span>
453
+ <span class="tag tag-feature">用户数据</span>
454
+ </div>
455
+ <a href="PropertyViewerDemo.html" class="link-button">查看示例 →</a>
456
+ </div>
446
457
  </div>
447
458
  </section>
448
459
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bc-model-viewer",
3
- "version": "1.7.23",
3
+ "version": "1.7.45",
4
4
  "main": "./dist/bc-model-viewer.min.js",
5
5
  "module": "./dist/bc-model-viewer.min.js",
6
6
  "description": "A model viewer",