VTK用户指南 第三章 系统概览 3.2

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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值