#autodesk-forge #autodesk-viewer
Вопрос:
Я ищу способ отображения накруток, когда они не находятся в режиме редактирования. Я хочу иметь возможность рисовать накладки в окне просмотра, в то же время имея возможность использовать edit2D. Каждый раз, когда я звоню leaveEditMode()
в расширение пометок, пометки исчезают. Если бы был просто способ, чтобы они всегда отображались, даже если они не находятся в режиме редактирования, это сделало бы свое дело. Я видел кое-что о режиме просмотра, но enterViewMode (), должно быть, устарел, так как я не могу его найти.
Другим вариантом было бы оставить режим редактирования включенным в расширении разметки, а также одновременно использовать инструменты edit2D, изменив, какой слой/холст для рисования находится сверху? Хотя я понятия не имею, возможно ли это и как это сделать.
Любые идеи были бы полезны!
Комментарии:
1. Это звучит не столько как вопрос о программировании, сколько как «как использовать autodesk forge»? Вы спрашивали, где, по словам autodesk, можно найти поддержку сообщества?
2. Это их основная поддержка сообщества. Кроме того, я пытаюсь необычно вести себя с расширениями зрителя (что обычно поощряется ими) и спрашиваю, какие возможности существуют у кого-то, кто знает внутреннюю работу своего зрителя (команда forge).
3. такая странная вещь для приложения: «пожалуйста, спросите о stackoverflow», но эй, если это то, что они говорят, надеюсь, они действительно смотрят на свои собственные теги.
4. Я согласен, ха-ха. Но это на 100% то, что они делают. Они довольно хорошо отвечают, хотя это круто.
Ответ №1:
Ладно, я придумал способ, я не уверен, каковы будут последствия выкупа, но, похоже, он работает. Вот отредактированный фрагмент кода, который я быстро собрал для тестирования, и, похоже, он работает. В основном я делаю противоположное тому, что enterEditMode()
и leaveEditMode()
так делаю. В основном markupsExtension.editModeSvgLayerNode
содержит данные svg для всех наценок. Когда leaveEditMode()
вызывается, он очищается markupsExtension.svg
. Поэтому я просто добавляю его обратно после того, как он вызван вручную. Я также очищаю его перед повторным входом, потому что он делает это сам по себе, и это может помешать.
if (buttonName === 'markup') {
let markupsExtension = this.viewer.getExtension('Autodesk.Viewing.MarkupsCore');
if (this.selectedButton === buttonName) {
// Exit markups
markupsExtension.leaveEditMode();
// Shows the markup after leaving
if (markupsExtension.editModeSvgLayerNode.svg) {
markupsExtension.svg.appendChild(markupsExtension.editModeSvgLayerNode.svg);
}
}
else {
this.selectedButton = buttonName;
// Remove the svg set we added so it can redraw it in "enterEditMode()"
if (markupsExtension.editModeSvgLayerNode amp;amp; markupsExtension.editModeSvgLayerNode.svg.parentNode) {
markupsExtension.svg.removeChild(markupsExtension.editModeSvgLayerNode.svg);
}
markupsExtension.enterEditMode();
}
}