如何在Forge Viewer中覆盖ModelStructurePanel以首先显示可用模型的列表但不加载它们,直到我单击其中任何一个

问题描述

我想在Forge Viewer中使用ModelStructurePanel向用户显示模型列表,他们可以选择要加载或卸载的模型,但是(即使卸载后)我仍需要模型显示在模型浏览器中。 基本上,我想在加载多个模型时使用ModelStructurePanel的常规行为,但是我想以一种方式覆盖它,在通过用户输入加载它们之前,可以使用它来显示多个模型。 加载模型后,ModelStructurePanel的所有功能都应相同。 这可能实现吗?

解决方法

您的方法似乎有些复杂,我看到有两种方法可以完成工作:

1 /您可以有一个仅显示模型的自定义控件(例如,树视图或列表),因此用户可以选择一个控件,并由查看器加载它,然后将其结构加载到内置面板中>

2 /您创建了一个代表您的模型的自定义instanceTree(但它必须模仿Forge instanceTree),然后将其传递给内置的modelstructure,以便它显示您的模型层次结构,然后用户可以选择其中一个并将加载在查看器中,此时将当前模型树加载到面板中。可以通过以下方法将数据加载到模型结构中:

viewer.modelstructure.setModel(instanceTree);

我个人会采用方法1,因为您可以更好地自定义控件,而不是摆弄并非为此目的而设计的模型结构