⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 task4.cxx

📁 a very goog book
💻 CXX
字号:
/*=========================================================================  Program:   Visualization Toolkit  Module:    $RCSfile: task4.cxx,v $  Language:  C++  Date:      $Date: 2002/09/30 20:37:43 $  Version:   $Revision: 1.5 $  Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen   All rights reserved.  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.     This software is distributed WITHOUT ANY WARRANTY; without even      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      PURPOSE.  See the above copyright notice for more information.=========================================================================*/#include "TaskParallelismWithPorts.h"#include "vtkImageData.h"#include "vtkOutputPort.h"#include "vtkPolyData.h"// Task 4 for TaskParallelism.// See TaskParallelismWithPorts.cxx for more information.void task4(double data){    double extent = data;  int iextent = static_cast<int>(data);      // The pipeline  // Synthetic image source.  vtkRTAnalyticSource* source1 = vtkRTAnalyticSource::New();  source1->SetWholeExtent (-1*iextent, iextent, -1*iextent, iextent,                            -1*iextent, iextent );  source1->SetCenter(0, 0, 0);  source1->SetStandardDeviation( 0.5 );  source1->SetMaximum( 255.0 );  source1->SetXFreq( 60 );  source1->SetXMag( 10 );  source1->SetYFreq( 30 );  source1->SetYMag( 18 );  source1->SetZFreq( 40 );  source1->SetZMag( 5 );  source1->GetOutput()->SetSpacing(2.0/extent,2.0/extent,2.0/extent);  // Gradient vector.  vtkImageGradient* grad = vtkImageGradient::New();  grad->SetDimensionality( 3 );  grad->SetInput(source1->GetOutput());  vtkImageShrink3D* mask = vtkImageShrink3D::New();  mask->SetInput(grad->GetOutput());  mask->SetShrinkFactors(5, 5, 5);  // Label the scalar field as the active vectors.  vtkAssignAttribute* aa = vtkAssignAttribute::New();  aa->SetInput(mask->GetOutput());  aa->Assign(vtkDataSetAttributes::SCALARS, vtkDataSetAttributes::VECTORS,             vtkAssignAttribute::POINT_DATA);  vtkGlyphSource2D* arrow = vtkGlyphSource2D::New();  arrow->SetGlyphTypeToArrow();  arrow->SetScale(0.2);  arrow->FilledOff();  // Glyph the gradient vector (with arrows)  vtkGlyph3D* glyph = vtkGlyph3D::New();  glyph->SetInput(aa->GetOutput());  glyph->SetSource(arrow->GetOutput());  glyph->ScalingOff();  glyph->OrientOn();  glyph->SetVectorModeToUseVector();  glyph->SetColorModeToColorByVector();  // Output port  vtkOutputPort* op = vtkOutputPort::New();  op->SetInput(glyph->GetOutput());  op->SetTag(11);  // Process requests  op->WaitForUpdate();  // Cleanup  op->Delete();  source1->Delete();  grad->Delete();  aa->Delete();  mask->Delete();  glyph->Delete();  arrow->Delete();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -