自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南!
内容与宇宙的关系
您可以下载本指南 here 的示例来源代码。
下图显示了一个简化的类图,其中API用户最重要的类的类层次结构和关系: <div class="thumbnail" >
Simplified class diagram showing the core classes of the 3D Viewer.
</div>
###宇宙类的层次结构
三个类的存在,它们共同提供了Universe的功能:
DefaultUniverse初始化场景图。它提供了搜索显示宇宙的窗口以及Java3D场景图的根BranchGroup的方法,所有对象都放置在该根下。DefaultAnimatableUniverse延伸DefaultUniverse。它提供动画和录制功能。Image3DUniverse§§依次延伸DefaultAnimatableUniverse。它提供了添加、删除和选择内容的方法。
Content和Image3DUniverse之间的关系
Image3DUniverse可以容纳多个Content。它们存储在一个位置上,由它们的名称标志。这要求Content的名称是唯一的。
Content本身拥有颜色、透明度等属性,但也包含局部变换和对ContentNode的引用。
Content和ContentNode之间的关系
ContentNode是代表3D对象的实际类。它是一个抽象类,是VoltexGroup(代表实体渲染)和MeshGroup(代表等值面)的子类。Content一次一个对§§4§§§的引用。
当需要所有ContentNode通用的功能时,与Content本身一起使用通常就足够了。然而,对于某种类型的Content的特殊功能,很可能需要与ContentNode一起使用。
例如,考虑体积编辑。该功能仅在体积渲染的上下文中才有意义,因此相应的方法位于VoltexGroup中。
Content和ContentNode之间的消息流
例如Content.setColor()被调用时,它首先检查指定的颜色是否与现有的颜色不同。如果是,它设置当前颜色(它是Content的字段)并调用colorUpdated()接口中定义的colorUpdated()方法。