3.2 创建应用程序
本节介绍使用四种编程语言Tcl,C++,Java和Python开发VTK应用程序所需的基本信息。阅读完此介绍之后,您应该跳到讨论您感兴趣的语言使用的小节。除了为您提供有关如何创建和运行简单应用程序的说明之外,每节还将向您展示如何利用该语言的回调。
用户方法、观察者和命令
回调(或用户方法)是使用主题/观察者和命令设计模式在VTK中实现的。这意味着VTK中几乎每个类(vtkObject的每个子类)都有一个AddObserver()方法,该方法可用于从VTK设置回调。观察者查看在对象上调用的每个事件,如果它与观察者正在观察的事件之一匹配,则将调用关联的命令(即回调)。例如,所有VTK筛选器都在开始执行之前立即调用StartEvent。如果您添加了一个监视StartEvent的观察器,则每次过滤器开始执行时都会调用该观察器。考虑以下Tcl脚本,该脚本创建vtkElevationFilter的实例,并为StartEvent添加观察者以调用过程PrintStatus。
proc PrintStatus {} {
puts "Starting to execute the elevation filter"
}
vtkElevationFilter foo
foo AddObserver StartEvent PrintStatus
VTK支持的所有语言均提供这种类型的功能(即回调)。接下来的每一节将简要说明如何使用它。第421页的“与窗口系统集成”中提供了有关用户方法的进一步讨论。(本节还讨论了用户界面集成问题。)
要创建自己的应用程序,建议从VTK附带的示例之一开始。可以在源代码发布的VTK/Examples中找到它们。在源代码分发中,示例首先按主题进行组织,然后按语言进行组织。在“VTK/Examples”下,您将找到不同主题的目录,并且在目录下将存在不同语言(例如Tcl)的子目录。
Tcl
Tcl是开始创建VTK应用程序的最简单的语言之一。一旦安装了VTK,就应该能够运行发行版随附的Tcl示例。在UNIX下,您必须按照第14页“在Unix系统上安装VTK”中所述使用Tcl支持编译VTK。在Windows下,您可以按照第10页“在Windows XP,Vista或更高版本上安装VTK”中的说明安装自解压存档。
Windows。 在Windows下,只需双击文件(在此示例中为Cone.tcl)即可运行Tcl脚本。如果没有任何反应,则可能是脚本错误或将Tcl文件与vtk.exe可执行文件相关联的问题。要检测到这一点,您需要先运行vtk.exe。vtk.exe可以在VTK下的开始菜单中找到。执行开始后,将出现一个控制台窗口,其中带有提示。在此提示符下,键入cd命令以更改为Cone.tcl所在的目录。以下是两个示例:
% cd "c:/VTK/Examples/Tutorial/Step1/Tcl"
然后,您需要使用以下命令来获取示例脚本:
% source Cone.tcl
Tcl将尝试执行Cone.tcl,您将能够看到错误或警告消息,否则它们将不会出现。
Unix。 在UNIX下,可以通过运行在二进制目录(例如,VTK-bin/bin/vtk,VTKSolaris/bin/vtk等)中找到的VTK可执行文件(在编译源代码之后)来完成Tcl开发。然后提供Tcl脚本作为第一个参数,如下所示。
unix machine> cd VTK/Examples/Tutorial/Step1/Tcl
unix machine> /home/VTK-Solaris/bin/vtk Cone.tcl
可以按照本节简介中所示设置用户方法。可以在Examples/Tutorial/Step2/Tcl/Cone2.tcl中找到一个示例。关键更改如下所示。
proc myCallback {} {
puts "Starting to render"
}
vtkRenderer ren1
ren1 AddObserver StartEvent myCallback
您可以改为直接将proc的主体直接提供给AddObserver()。
vtkRenderer ren1