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

📄 cylinder.cxx

📁 VTK入门样例(种类齐全)
💻 CXX
📖 第 1 页 / 共 2 页
字号:
"MouseMoveEvent 243 42 0 0 0 0 i\n"
"MouseMoveEvent 245 41 0 0 0 0 i\n"
"MouseMoveEvent 246 40 0 0 0 0 i\n"
"MouseMoveEvent 246 39 0 0 0 0 i\n"
"MouseMoveEvent 247 39 0 0 0 0 i\n"
"MouseMoveEvent 248 38 0 0 0 0 i\n"
"MouseMoveEvent 249 38 0 0 0 0 i\n"
"MouseMoveEvent 250 38 0 0 0 0 i\n"
"MouseMoveEvent 250 37 0 0 0 0 i\n"
"MouseMoveEvent 252 36 0 0 0 0 i\n"
"MouseMoveEvent 253 36 0 0 0 0 i\n"
"MouseMoveEvent 254 36 0 0 0 0 i\n"
"MouseMoveEvent 254 37 0 0 0 0 i\n"
"MouseMoveEvent 255 37 0 0 0 0 i\n"
"MouseMoveEvent 256 37 0 0 0 0 i\n"
"MouseMoveEvent 257 37 0 0 0 0 i\n"
"MouseMoveEvent 258 37 0 0 0 0 i\n"
"MouseMoveEvent 259 38 0 0 0 0 i\n"
"MouseMoveEvent 260 39 0 0 0 0 i\n"
"MouseMoveEvent 260 40 0 0 0 0 i\n"
"MouseMoveEvent 259 40 0 0 0 0 i\n"
"MouseMoveEvent 258 40 0 0 0 0 i\n"
"MouseMoveEvent 257 40 0 0 0 0 i\n"
"MouseMoveEvent 257 41 0 0 0 0 i\n"
"MouseMoveEvent 257 42 0 0 0 0 i\n"
"MouseMoveEvent 257 43 0 0 0 0 i\n"
"MouseMoveEvent 257 44 0 0 0 0 i\n"
"MouseMoveEvent 258 44 0 0 0 0 i\n"
"LeftButtonPressEvent 258 44 0 0 0 0 i\n"
"MouseMoveEvent 258 45 0 0 0 0 i\n"
"MouseMoveEvent 259 45 0 0 0 0 i\n"
"MouseMoveEvent 259 46 0 0 0 0 i\n"
"MouseMoveEvent 259 47 0 0 0 0 i\n"
"MouseMoveEvent 259 49 0 0 0 0 i\n"
"MouseMoveEvent 259 50 0 0 0 0 i\n"
"MouseMoveEvent 259 51 0 0 0 0 i\n"
"MouseMoveEvent 259 52 0 0 0 0 i\n"
"MouseMoveEvent 260 53 0 0 0 0 i\n"
"MouseMoveEvent 260 54 0 0 0 0 i\n"
"MouseMoveEvent 260 55 0 0 0 0 i\n"
"MouseMoveEvent 260 56 0 0 0 0 i\n"
"MouseMoveEvent 260 57 0 0 0 0 i\n"
"MouseMoveEvent 261 58 0 0 0 0 i\n"
"MouseMoveEvent 261 59 0 0 0 0 i\n"
"MouseMoveEvent 261 60 0 0 0 0 i\n"
"MouseMoveEvent 261 61 0 0 0 0 i\n"
"MouseMoveEvent 261 60 0 0 0 0 i\n"
"MouseMoveEvent 260 59 0 0 0 0 i\n"
"MouseMoveEvent 258 58 0 0 0 0 i\n"
"MouseMoveEvent 255 57 0 0 0 0 i\n"
"MouseMoveEvent 252 55 0 0 0 0 i\n"
"MouseMoveEvent 251 54 0 0 0 0 i\n"
"MouseMoveEvent 251 53 0 0 0 0 i\n"
"MouseMoveEvent 249 51 0 0 0 0 i\n"
"MouseMoveEvent 246 50 0 0 0 0 i\n"
"MouseMoveEvent 245 50 0 0 0 0 i\n"
"MouseMoveEvent 245 49 0 0 0 0 i\n"
"MouseMoveEvent 244 48 0 0 0 0 i\n"
"MouseMoveEvent 242 45 0 0 0 0 i\n"
"MouseMoveEvent 241 44 0 0 0 0 i\n"
"MouseMoveEvent 240 44 0 0 0 0 i\n"
"MouseMoveEvent 239 44 0 0 0 0 i\n"
"MouseMoveEvent 238 42 0 0 0 0 i\n"
"MouseMoveEvent 237 42 0 0 0 0 i\n"
"MouseMoveEvent 236 42 0 0 0 0 i\n"
"MouseMoveEvent 236 41 0 0 0 0 i\n"
"LeftButtonReleaseEvent 236 41 0 0 0 0 i\n"
"MouseMoveEvent 236 40 0 0 0 0 i\n"
"MouseMoveEvent 235 40 0 0 0 0 i\n"
"MouseMoveEvent 234 40 0 0 0 0 i\n"
"MouseMoveEvent 233 40 0 0 0 0 i\n"
"MouseMoveEvent 233 41 0 0 0 0 i\n"
"MouseMoveEvent 233 42 0 0 0 0 i\n"
"MouseMoveEvent 232 42 0 0 0 0 i\n"
"MouseMoveEvent 231 42 0 0 0 0 i\n"
"MouseMoveEvent 231 43 0 0 0 0 i\n"
"RightButtonPressEvent 231 43 0 0 0 0 i\n"
"MouseMoveEvent 231 42 0 0 0 0 i\n"
"MouseMoveEvent 231 41 0 0 0 0 i\n"
"MouseMoveEvent 231 40 0 0 0 0 i\n"
"MouseMoveEvent 230 40 0 0 0 0 i\n"
"MouseMoveEvent 229 38 0 0 0 0 i\n"
"MouseMoveEvent 227 33 0 0 0 0 i\n"
"MouseMoveEvent 226 27 0 0 0 0 i\n"
"MouseMoveEvent 222 23 0 0 0 0 i\n"
"MouseMoveEvent 214 19 0 0 0 0 i\n"
"MouseMoveEvent 208 14 0 0 0 0 i\n"
"MouseMoveEvent 208 15 0 0 0 0 i\n"
"MouseMoveEvent 208 14 0 0 0 0 i\n"
"MouseMoveEvent 208 13 0 0 0 0 i\n"
"MouseMoveEvent 210 11 0 0 0 0 i\n"
"MouseMoveEvent 213 9 0 0 0 0 i\n"
"MouseMoveEvent 214 8 0 0 0 0 i\n"
"MouseMoveEvent 214 7 0 0 0 0 i\n"
"MouseMoveEvent 215 7 0 0 0 0 i\n"
"MouseMoveEvent 215 6 0 0 0 0 i\n"
"MouseMoveEvent 215 5 0 0 0 0 i\n"
"MouseMoveEvent 216 2 0 0 0 0 i\n"
"MouseMoveEvent 218 1 0 0 0 0 i\n"
"LeaveEvent 220 -1 0 0 0 0 i\n"
"MouseMoveEvent 220 -1 0 0 0 0 i\n"
"MouseMoveEvent 221 -1 0 0 0 0 i\n"
"MouseMoveEvent 221 -2 0 0 0 0 i\n"
"MouseMoveEvent 220 -2 0 0 0 0 i\n"
"MouseMoveEvent 220 -3 0 0 0 0 i\n"
"MouseMoveEvent 220 -4 0 0 0 0 i\n"
"MouseMoveEvent 220 -5 0 0 0 0 i\n"
"MouseMoveEvent 220 -6 0 0 0 0 i\n"
"MouseMoveEvent 220 -7 0 0 0 0 i\n"
"MouseMoveEvent 220 -8 0 0 0 0 i\n"
"MouseMoveEvent 220 -9 0 0 0 0 i\n"
"MouseMoveEvent 220 -11 0 0 0 0 i\n"
"MouseMoveEvent 220 -12 0 0 0 0 i\n"
"MouseMoveEvent 220 -13 0 0 0 0 i\n"
"MouseMoveEvent 220 -12 0 0 0 0 i\n"
"MouseMoveEvent 220 -11 0 0 0 0 i\n"
"RightButtonReleaseEvent 220 -11 0 0 0 0 i\n"
"EnterEvent 218 0 0 0 0 0 i\n"
"MouseMoveEvent 218 0 0 0 0 0 i\n"
"MouseMoveEvent 218 1 0 0 0 0 i\n"
"MouseMoveEvent 218 2 0 0 0 0 i\n"
"MouseMoveEvent 217 2 0 0 0 0 i\n"
"MouseMoveEvent 217 4 0 0 0 0 i\n"
"MouseMoveEvent 217 5 0 0 0 0 i\n"
"MouseMoveEvent 217 6 0 0 0 0 i\n"
"MouseMoveEvent 217 7 0 0 0 0 i\n"
"MouseMoveEvent 217 8 0 0 0 0 i\n"
"MouseMoveEvent 217 9 0 0 0 0 i\n"
"MouseMoveEvent 216 11 0 0 0 0 i\n"
"MouseMoveEvent 216 12 0 0 0 0 i\n"
"MouseMoveEvent 215 12 0 0 0 0 i\n"
"MouseMoveEvent 215 11 0 0 0 0 i\n"
"MouseMoveEvent 215 12 0 0 0 0 i\n"
"MouseMoveEvent 215 13 0 0 0 0 i\n"
"MouseMoveEvent 215 14 0 0 0 0 i\n"
;

// This does the actual work: updates the vtkPlane implicit function.
// This in turn causes the pipeline to update and clip the object.
// Callback for the interaction
class vtkTIPWCallback : public vtkCommand
{
public:
  static vtkTIPWCallback *New() 
    { return new vtkTIPWCallback; }
  virtual void Execute(vtkObject *caller, unsigned long, void*)
    {
      vtkImplicitPlaneWidget *planeWidget = 
        reinterpret_cast<vtkImplicitPlaneWidget*>(caller);
      planeWidget->GetPlane(this->Plane);
      this->Actor->VisibilityOn();
    }
  vtkTIPWCallback():Plane(0),Actor(0) {}
  vtkPlane *Plane;
  vtkActor *Actor;

};

int main( int argc, char *argv[] )
{
  // Create a mace out of filters.
  //
  vtkSphereSource *sphere = vtkSphereSource::New();
  vtkConeSource *cone = vtkConeSource::New();
  vtkGlyph3D *glyph = vtkGlyph3D::New();
  glyph->SetInputConnection(sphere->GetOutputPort());
  glyph->SetSource(cone->GetOutput());
  glyph->SetVectorModeToUseNormal();
  glyph->SetScaleModeToScaleByVector();
  glyph->SetScaleFactor(0.25);

  // The sphere and spikes are appended into a single polydata. 
  // This just makes things simpler to manage.
  vtkAppendPolyData *apd = vtkAppendPolyData::New();
  apd->AddInput(glyph->GetOutput());
  apd->AddInput(sphere->GetOutput());

  vtkPolyDataMapper *maceMapper = vtkPolyDataMapper::New();
  maceMapper->SetInputConnection(apd->GetOutputPort());

  vtkLODActor *maceActor = vtkLODActor::New();
  maceActor->SetMapper(maceMapper);
  maceActor->VisibilityOn();

  // This portion of the code clips the mace with the vtkPlanes 
  // implicit function. The clipped region is colored green.
  vtkPlane *plane = vtkPlane::New();
  vtkClipPolyData *clipper = vtkClipPolyData::New();
  clipper->SetInputConnection(apd->GetOutputPort());
  clipper->SetClipFunction(plane);
  clipper->InsideOutOn();

  vtkPolyDataMapper *selectMapper = vtkPolyDataMapper::New();
  selectMapper->SetInputConnection(clipper->GetOutputPort());

  vtkLODActor *selectActor = vtkLODActor::New();
  selectActor->SetMapper(selectMapper);
  selectActor->GetProperty()->SetColor(0,1,0);
  selectActor->VisibilityOff();
  selectActor->SetScale(1.01, 1.01, 1.01);

  // Create the RenderWindow, Renderer and both Actors
  //
  vtkRenderer *ren1 = vtkRenderer::New();
  vtkRenderWindow *renWin = vtkRenderWindow::New();
  renWin->AddRenderer(ren1);

  vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
  iren->SetRenderWindow(renWin);

  // The SetInteractor method is how 3D widgets are associated with the render
  // window interactor. Internally, SetInteractor sets up a bunch of callbacks
  // using the Command/Observer mechanism (AddObserver()).
  vtkTIPWCallback *myCallback = vtkTIPWCallback::New();
  myCallback->Plane = plane;
  myCallback->Actor = selectActor;

  vtkImplicitPlaneWidget *planeWidget = vtkImplicitPlaneWidget::New();
  planeWidget->SetInteractor(iren);
  planeWidget->SetPlaceFactor(1.25);
  planeWidget->SetInput(glyph->GetOutput());
  planeWidget->PlaceWidget();
  planeWidget->AddObserver(vtkCommand::InteractionEvent,myCallback);

  ren1->AddActor(maceActor);
  ren1->AddActor(selectActor);

  // Add the actors to the renderer, set the background and size
  //
  ren1->SetBackground(0.1, 0.2, 0.4);
  renWin->SetSize(300, 300);

  // record events
  vtkInteractorEventRecorder *recorder = vtkInteractorEventRecorder::New();
  recorder->SetInteractor(iren);
//  recorder->SetFileName("c:/record.log");
//  recorder->Record();
  recorder->ReadFromInputStringOn();
  recorder->SetInputString(eventLog);

  // render the image
  //
  iren->Initialize();
  renWin->Render();
  recorder->Play();

  // Remove the observers so we can go interactive. Without this the "-I"
  // testing option fails.
  recorder->Off();

  int retVal = vtkRegressionTestImage( renWin );
  if ( retVal == vtkRegressionTester::DO_INTERACTOR)
    {
    iren->Start();
    }

  recorder->Off();
  recorder->Delete();
  myCallback->Delete();
  sphere->Delete();
  cone->Delete();
  glyph->Delete();
  apd->Delete();
  maceMapper->Delete();
  maceActor->Delete();
  plane->Delete();
  clipper->Delete();
  selectMapper->Delete();
  selectActor->Delete();
  planeWidget->Delete();
  iren->Delete();
  renWin->Delete();
  ren1->Delete();
  
  return !retVal;
}

⌨️ 快捷键说明

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