有没有办法在 editMode 之外的查看器中显示标记?
Is there a way to show markup in the viewer outside of editMode?
我正在寻找一种在不处于编辑模式时显示标记的方法。我希望能够在查看器中绘制标记,同时能够使用 edit2D。每次我在标记扩展上调用 leaveEditMode()
时,标记都会消失。如果有一种方法可以让它们即使在不处于编辑模式时也始终显示,那就可以了。我看过有关视图模式的内容,但 enterViewMode() 一定是过时的,因为我找不到它。
另一种选择是在标记扩展中保持编辑模式,同时通过更改哪个绘图 layer/canvas 在上面来同时使用 edit2D 工具?我不知道这是否可能或如何去做。
任何想法都会有所帮助!
好吧,我想出了一个办法,我不确定回收会是什么,但它似乎有效。
这是我快速拼凑起来进行测试的经过编辑的代码片段,它似乎可以正常工作。基本上我做了与 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 && markupsExtension.editModeSvgLayerNode.svg.parentNode) {
markupsExtension.svg.removeChild(markupsExtension.editModeSvgLayerNode.svg);
}
markupsExtension.enterEditMode();
}
}
我正在寻找一种在不处于编辑模式时显示标记的方法。我希望能够在查看器中绘制标记,同时能够使用 edit2D。每次我在标记扩展上调用 leaveEditMode()
时,标记都会消失。如果有一种方法可以让它们即使在不处于编辑模式时也始终显示,那就可以了。我看过有关视图模式的内容,但 enterViewMode() 一定是过时的,因为我找不到它。
另一种选择是在标记扩展中保持编辑模式,同时通过更改哪个绘图 layer/canvas 在上面来同时使用 edit2D 工具?我不知道这是否可能或如何去做。
任何想法都会有所帮助!
好吧,我想出了一个办法,我不确定回收会是什么,但它似乎有效。
这是我快速拼凑起来进行测试的经过编辑的代码片段,它似乎可以正常工作。基本上我做了与 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 && markupsExtension.editModeSvgLayerNode.svg.parentNode) {
markupsExtension.svg.removeChild(markupsExtension.editModeSvgLayerNode.svg);
}
markupsExtension.enterEditMode();
}
}