不优化的边界框 - 在Autodesk Forge Viewer中重新计算边界框
创始人
2025-01-11 09:30:29
0

在Autodesk Forge Viewer中重新计算边界框可以使用以下代码示例:

function computeBoundingBox(viewer, model) {
  const modelInstanceTree = model.getData().instanceTree;
  const rootId = modelInstanceTree.getRootId();

  let boundingBox = new THREE.Box3();
  const fragIds = [];

  modelInstanceTree.enumNodeFragments(rootId, (fragId) => {
    fragIds.push(fragId);
  });

  fragIds.forEach((fragId) => {
    const fragBoundingBox = new THREE.Box3();
    modelInstanceTree.getWorldBounds(fragId, fragBoundingBox);
    boundingBox.union(fragBoundingBox);
  });

  const min = boundingBox.min;
  const max = boundingBox.max;

  const worldMin = new THREE.Vector3(min.x, min.y, min.z);
  const worldMax = new THREE.Vector3(max.x, max.y, max.z);

  const worldSize = worldMax.clone().sub(worldMin);

  const center = worldMin.clone().add(worldSize.clone().multiplyScalar(0.5));

  const size = Math.max(worldSize.x, worldSize.y, worldSize.z);

  const newBoundingBox = new THREE.Box3(
    new THREE.Vector3(center.x - size / 2, center.y - size / 2, center.z - size / 2),
    new THREE.Vector3(center.x + size / 2, center.y + size / 2, center.z + size / 2)
  );

  viewer.impl.invalidate(true, true, true);

  return newBoundingBox;
}

const viewer = new Autodesk.Viewing.Private.GuiViewer3D(document.getElementById('viewer'));
const options = {
  env: 'AutodeskProduction',
  getAccessToken: getForgeToken,
};
Autodesk.Viewing.Initializer(options, () => {
  viewer.start();
  viewer.loadModel('your-model-url', (model) => {
    const boundingBox = computeBoundingBox(viewer, model);
    console.log('New Bounding Box:', boundingBox);
  });
});

请确保在上述代码中将'your-model-url'替换为您要加载的模型的URL。

这段代码通过遍历模型的所有碎片(fragments)并获取其世界边界框(world bounds),然后合并所有碎片的边界框以计算出新的边界框。最后,它使用新的边界框更新了Viewer的显示,并返回计算出的新边界框对象。

请注意,此代码示例假设您已经通过合适的方式(例如使用Forge OAuth认证)获取了访问令牌(access token)。如果您还没有设置获取访问令牌的函数getForgeToken,则需要相应地实现它。

相关内容

热门资讯

透视真的!wpk软件是正规的吗... 透视真的!wpk软件是正规的吗,wpk真的有透视嘛,必备教程(有挂脚本)1、让任何用户在无需wpk软...
透视有挂!wpk软件是正规的吗... 透视有挂!wpk软件是正规的吗,wpk安卓下载辅助,wpk教程(有挂工具)1、完成wpk软件是正规的...
透视黑科技!wpk辅助软件,w... 透视黑科技!wpk辅助软件,wpk透视辅助下载,透明挂教程(有挂黑科技)一、wpk透视辅助下载软件透...
透视肯定!wpk透视辅助方法,... 透视肯定!wpk透视辅助方法,wpk作弊是真的吗,必备教程(有挂工具)1、起透看视 wpk作弊是真的...
透视软件!wpk模拟器,wpk... 透视软件!wpk模拟器,wpk透视是真的假的,攻略教程(有挂规律)1、wpk透视是真的假的透视辅助简...
透视好友房!wpk可以作弊吗,... 透视好友房!wpk可以作弊吗,wpk辅助哪里买,AI教程(有挂插件);1、每一步都需要思考,不同水平...
透视总结!wpk插件,wpk真... 透视总结!wpk插件,wpk真吗,力荐教程(有挂详情)1、全新机制【wpk插件软件透明挂】2、全新【...
透视计算!wpk真吗,wpk模... 透视计算!wpk真吗,wpk模拟器,解密教程(有挂解密)1)wpk模拟器辅助挂:进一步探索wpk模拟...
透视好友房!wpk私人局辅助是... 透视好友房!wpk私人局辅助是真的吗,wpk有辅助器吗,爆料教程(有挂脚本);一、wpk私人局辅助是...
透视了解!wpk控制牌是真的吗... 透视了解!wpk控制牌是真的吗,wpk透视是真的假的,新2025教程(有挂辅助)1、让任何用户在无需...