如何使用 Forge Viewer Snapper?
How to use Forge Viewer Snapper?
我正在尝试使用 Forge Viewer 中的 Snapper 功能来要求用户选择一个点,然后检索所选点的点世界坐标。
我看了这个主题,但对我不起作用:
我这样加载扩展:
this.viewer.loadExtension('Autodesk.Snapping');
然后尝试像这样使用 Snapper:
console.log(this._viewer.toolController.getActiveToolName());
var snapper = new Autodesk.Viewing.Extensions.Snapping.Snapper(this._viewer, {});
this._viewer.toolController.registerTool(snapper);
this._viewer.toolController.activateTool('snapper');
console.log(this._viewer.toolController.getToolNames());
console.log(this._viewer.toolController.getActiveToolName());
var a = snapper.getSnapResult();
console.log(a);
在日志中,snapper 已激活,但我可以在查看器 ann 中选择一个点以使用 getSnapResult 函数获取结果。
提前致谢
snapper 工具适用于 2d 和 3d 模型,您将需要提供命中测试结果,例如通过点击 canvas,比如:
const snapper = new Autodesk.Viewing.Extensions.Snapping.Snapper(NOP_VIEWER)
const hitTestResult = NOP_VIEWER.impl.snappingHitTest(clickEvent.x, clickEvent.y)
snapper.snapping3D(hitTestResult)
snapper.getSnapResult()
您可以使用自定义工具订阅 canvas 点击事件 - 有关详细信息,请参阅 here。
我正在尝试使用 Forge Viewer 中的 Snapper 功能来要求用户选择一个点,然后检索所选点的点世界坐标。
我看了这个主题,但对我不起作用:
我这样加载扩展:
this.viewer.loadExtension('Autodesk.Snapping');
然后尝试像这样使用 Snapper:
console.log(this._viewer.toolController.getActiveToolName());
var snapper = new Autodesk.Viewing.Extensions.Snapping.Snapper(this._viewer, {});
this._viewer.toolController.registerTool(snapper);
this._viewer.toolController.activateTool('snapper');
console.log(this._viewer.toolController.getToolNames());
console.log(this._viewer.toolController.getActiveToolName());
var a = snapper.getSnapResult();
console.log(a);
在日志中,snapper 已激活,但我可以在查看器 ann 中选择一个点以使用 getSnapResult 函数获取结果。
提前致谢
snapper 工具适用于 2d 和 3d 模型,您将需要提供命中测试结果,例如通过点击 canvas,比如:
const snapper = new Autodesk.Viewing.Extensions.Snapping.Snapper(NOP_VIEWER)
const hitTestResult = NOP_VIEWER.impl.snappingHitTest(clickEvent.x, clickEvent.y)
snapper.snapping3D(hitTestResult)
snapper.getSnapResult()
您可以使用自定义工具订阅 canvas 点击事件 - 有关详细信息,请参阅 here。