Как использовать Forge Viewer Snapper? - PullRequest
1 голос
/ 25 февраля 2020

Я пытаюсь использовать функциональные возможности Snapper из Forge Viewer для того, чтобы попросить пользователя выбрать точку, а затем получить мировые координаты точки выбранной точки.

Я смотрю на эту топи c, но не ' у меня не получается: Как активировать Autodesk Forge 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, но я могу выбрать точку в окне просмотра для получения результатов с помощью функции getSnapResult.

Заранее спасибо

1 Ответ

0 голосов
/ 26 февраля 2020

Инструмент snapper работает как с 2d, так и с 3d моделями, и вам нужно будет предоставить результат теста на удар, который будет проверен, например, щелчком по холсту, например:

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()

Вы можете подписаться чтобы холстить события клика с помощью вашего специального инструмента - подробности см. здесь .

...