vtk多线程简单测试
vtkMultithreader is a class that provides support for multithreaded execution using sproc() on an SGI, or pthread_create on any platform supporting POSIX threads. This class can be used to execute a single method on multiple threads, or to specify a method per thread.
- Examples:
- vtkMultiThreader (Examples)
- Tests:
- vtkMultiThreader (Tests)

#ifndef INITIAL_OPENGL
#define INITIAL_OPENGL
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL)
VTK_MODULE_INIT(vtkInteractionStyle)
#endif
#include <iostream>
using namespace std;
#include "vtkSmartPointer.h" #include "vtkDEMReader.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkCamera.h"
#include "vtkImageDataGeometryFilter.h"
#include "vtkWarpScalar.h"
#include "vtkPolyDataNormals.h"
#include "vtkLODActor.h"
#include "vtkImageData.h"
#include "vtkLookupTable.h"
#include "vtkPoints.h"
#include "vtkCellArray.h"
#include "vtkPolyDataCollection.h"
#include "vtkTriangleFilter.h"
#include "vtkImageResample.h"
#include "vtkHandleWidget.h"
#include "vtkSphereHandleRepresentation.h"
#include "vtkTestUtilities.h"
#include "vtkTesting.h"
#include "vtkAbstractWidget.h"
#include "vtkDataSetWriter.h"
#include "vtkMultiThreader.h"
#include "vtkWarpScalar.h" int main(int argc, char*argv[])
{ //读入海拔高度图.SainteHelens.dem
char* fname = "D:/Qt/VTK6.3.0/vtkExampleModelFiles/SainteHelens.dem";
vtkMultiThreader::SetGlobalMaximumNumberOfThreads(); // Read height field.
//
vtkSmartPointer<vtkDEMReader> demReader = vtkSmartPointer<vtkDEMReader>::New();
demReader->SetFileName(fname);
delete [] fname; vtkSmartPointer<vtkImageResample> resample = vtkSmartPointer<vtkImageResample>::New();
resample->SetInputConnection(demReader->GetOutputPort());
resample->SetDimensionality();
resample->SetAxisMagnificationFactor(,);
resample->SetAxisMagnificationFactor(,); // Extract geometry
vtkSmartPointer<vtkImageDataGeometryFilter> surface = vtkSmartPointer<vtkImageDataGeometryFilter>::New();
surface->SetInputConnection(resample->GetOutputPort()); // The Dijkistra interpolator will not accept cells that aren't triangles
vtkSmartPointer<vtkTriangleFilter> triangleFilter = vtkSmartPointer<vtkTriangleFilter>::New();
triangleFilter->SetInputConnection( surface->GetOutputPort() );
triangleFilter->Update(); vtkSmartPointer<vtkWarpScalar> warp = vtkSmartPointer<vtkWarpScalar>::New();
warp->SetInputConnection(triangleFilter->GetOutputPort());
warp->SetScaleFactor();
warp->UseNormalOn();
warp->SetNormal(, , );
warp->Update(); // cout << warp->GetOutput()->GetNumberOfCells() << endl; // vtkSmartPointer<vtkDataSetWriter> writer = vtkSmartPointer<vtkDataSetWriter>::New();
// writer->SetInputConnection(resample->GetOutputPort());
// writer->SetFileName("foo.vtk");
// writer->Write(); // Define a LUT mapping for the height field double lo = demReader->GetOutput()->GetScalarRange()[];
double hi = demReader->GetOutput()->GetScalarRange()[]; vtkSmartPointer<vtkLookupTable> lut = vtkSmartPointer<vtkLookupTable>::New();
lut->SetHueRange(0.6, );
lut->SetSaturationRange(1.0, );
lut->SetValueRange(0.5, 1.0); vtkSmartPointer<vtkPolyDataNormals> normals = vtkSmartPointer<vtkPolyDataNormals>::New(); vtkSmartPointer<vtkPolyDataMapper> demMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
demMapper->SetInputConnection(warp->GetOutputPort());
demMapper->SetScalarRange(lo, hi);
demMapper->SetLookupTable(lut); vtkSmartPointer<vtkActor> demActor = vtkSmartPointer<vtkActor>::New();
demActor->SetMapper(demMapper); // Create the RenderWindow, Renderer and the DEM + path actors.
vtkSmartPointer<vtkRenderer> ren1 = vtkSmartPointer<vtkRenderer>::New();
vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
renWin->AddRenderer(ren1);
vtkSmartPointer<vtkRenderWindowInteractor> iren =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
iren->SetRenderWindow(renWin); // Add the actors to the renderer, set the background and size
ren1->AddActor(demActor);
ren1->GetActiveCamera()->SetViewUp(, , );
ren1->GetActiveCamera()->SetPosition(-, -, );
ren1->GetActiveCamera()->SetFocalPoint(, , );
ren1->ResetCamera();
ren1->ResetCameraClippingRange(); // Here comes the surface constrained handle widget stuff.....
vtkSmartPointer<vtkHandleWidget> widget = vtkSmartPointer<vtkHandleWidget>::New();
widget->SetInteractor(iren);
vtkSmartPointer<vtkSphereHandleRepresentation> rep = vtkSmartPointer<vtkSphereHandleRepresentation>::New();
widget->SetRepresentation( rep ); // Let the surface constrained point-placer be the sole constraint dictating
// the placement of handles. Lets not over-constrain it allowing axis
// constrained interactions.
widget->EnableAxisConstraintOff(); // Set some defaults on the handle widget
double d[] = {, 5.11396e+06, 2618.62};
rep->SetWorldPosition( d );
rep->GetProperty()->SetColor( 1.0, 0.0, 0.0 );
rep->GetProperty()->SetLineWidth(1.0);
rep->GetSelectedProperty()->SetColor( 0.2, 0.0, 1.0 );
renWin->Render();
iren->Initialize();
widget->EnabledOn();
renWin->Render();
ren1->ResetCamera();
ren1->ResetCameraClippingRange();
return vtkTesting::InteractorEventLoop(argc, argv, iren);
return ;
}
vtk多线程简单测试的更多相关文章
- testng多线程并行执行测试
testng多线程并行执行测试 testng多线程并行执行测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以 ...
- TODO:Golang UDP连接简单测试慎用Deadline
TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...
- iOS开发多线程篇—多线程简单介绍
iOS开发多线程篇—多线程简单介绍 一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcod ...
- .net orm比较之dapper和Entity Framework6的简单测试比较
.net orm比较之dapper和Entity Framework6的简单测试比较
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...
- ORACLE 数据库简单测试
ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库 非同一个用户的情况,用户是否可以 ...
- python多线程简单例子
python多线程简单例子 作者:vpoet mail:vpoet_sir@163.com import thread def childthread(threadid): print "I ...
- Javascript的简单测试环境
在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...
- struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
随机推荐
- Spring, MyBatis 多数据源的配置和管理
同一个项目有时会涉及到多个数据库,也就是多数据源.多数据源又可以分为两种情况: 1)两个或多个数据库没有相关性,各自独立,其实这种可以作为两个项目来开发.比如在游戏开发中一个数据库是平台数据库,其它还 ...
- MySQL 常用命令总结
http://blog.csdn.net/hanxin1987216/article/details/5976860 一.总结 1.Linux系统下启动MySQL的命令: mysqladmin sta ...
- sublime text 3 快捷键大全以及配置编译环境
Sublime text 3是码农最喜欢的代码编辑器,每天和代码打交道,必先利其器,掌握基本的代码编辑器的快捷键,能让你打码更有效率.刚开始可能有些生疏,只要花一两个星期坚持使用并熟悉这些常用的快捷键 ...
- android 关闭多个或指定activity
打开了.activityA,B,C,D,...然后到E一起关闭前面所有activity(转自:http://blog.csdn.net/lengguoxing/article/details/4214 ...
- jsp中的@include与jsp:include区别详解
1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...
- 基于TQ2440的SPI驱动学习(OLED)
平台简介 开发板:TQ2440 (NandFlash:256M 内存:64M) u-boot版本:u-boot-2015.04 内核版本:Linux-3.14 作者:彭东林 邮箱:pengdongl ...
- app开发项目简单的结构一
一 .Network (网络) 1. 接口类(可以一个放所有接口的头文件)ApiConfig.h. (1). 可以放服务器的地址.图片服务器的地址及其它接口的地址(这样做的好处是只用导入一个头文件即可 ...
- Java NIO (转)
Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(B ...
- [LeetCode] Strobogrammatic Number 对称数
A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside ...
- 2016第三届C++大会参会感悟(上)
继05年第一届C++大会,09年第二届,2016年10月28日-29日,在上海举行第三届C++大会.讲师主要有C++之父 / Bjarne Stroustrup,前Facebook研究科学家 / An ...