Difference between revisions of "VTK/Examples/Cxx/PolyData/DeleteCells"

From KitwarePublic
< VTK‎ | Examples‎ | Cxx
Jump to navigationJump to search
(Replaced content with "= '''See [https://lorensen.github.io/VTKExamples/site/Cxx/PolyData/DeleteCells DeleteCells] on the new [https://lorensen.github.io/VTKExamples/site/ VTKExamples website].'...")
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
<div class="floatcenter">[[File:VTK_Examples_Baseline_PolyData_TestDeleteCells.png]]</div>
+
= '''See [https://lorensen.github.io/VTKExamples/site/Cxx/PolyData/DeleteCells DeleteCells] on the new [https://lorensen.github.io/VTKExamples/site/ VTKExamples website].''' =
== Delete a cell from vtkPolyData  ==
 
This example demonstrates how to delete a cell from a vtkPolyData. This is a three-step process: first, build upward-links from points to cells; second, mark cells for deletion; third, delete the marked cells. The first step is necessary to create a data structure suitable for efficient delete operations. Creating this data structure is computationally expensive, so it is only carried out before operations that need it, e.g. those that require changes to the topology.
 
 
 
==DeleteCells.cxx==
 
<source lang="cpp">
 
#include <vtkActor.h>
 
#include <vtkCellArray.h>
 
#include <vtkLine.h>
 
#include <vtkPoints.h>
 
#include <vtkPolyData.h>
 
#include <vtkPolyDataMapper.h>
 
#include <vtkRenderer.h>
 
#include <vtkRenderWindow.h>
 
#include <vtkRenderWindowInteractor.h>
 
#include <vtkSmartPointer.h>
 
 
int main(int, char *[])
 
{
 
  vtkSmartPointer<vtkPoints> points =
 
    vtkSmartPointer<vtkPoints>::New();
 
  points->InsertNextPoint(0,0,0);
 
  points->InsertNextPoint(1,0,0);
 
  points->InsertNextPoint(1,1,0);
 
  points->InsertNextPoint(0,1,0);
 
 
  vtkSmartPointer<vtkLine> line0 =
 
    vtkSmartPointer<vtkLine>::New();
 
  line0->GetPointIds()->SetId(0, 0);
 
  line0->GetPointIds()->SetId(1, 1);
 
 
  vtkSmartPointer<vtkLine> line1 =
 
    vtkSmartPointer<vtkLine>::New();
 
  line1->GetPointIds()->SetId(0, 1);
 
  line1->GetPointIds()->SetId(1, 2);
 
 
  vtkSmartPointer<vtkLine> line2 =
 
    vtkSmartPointer<vtkLine>::New();
 
  line2->GetPointIds()->SetId(0, 2);
 
  line2->GetPointIds()->SetId(1, 3);
 
 
  vtkSmartPointer<vtkCellArray> lines =
 
    vtkSmartPointer<vtkCellArray>::New();
 
  lines->InsertNextCell(line0);
 
  lines->InsertNextCell(line1);
 
  lines->InsertNextCell(line2);
 
 
  vtkSmartPointer<vtkPolyData> polydata =
 
    vtkSmartPointer<vtkPolyData>::New();
 
  polydata->SetPoints(points);
 
  polydata->SetLines(lines);
 
 
 
  // Tell the polydata to build 'upward' links from points to cells.
 
  polydata->BuildLinks();
 
  // Mark a cell as deleted.
 
  polydata->DeleteCell(1);
 
  // Remove the marked cell.
 
  polydata->RemoveDeletedCells();
 
 
 
  // Visualize
 
  vtkSmartPointer<vtkPolyDataMapper> mapper =
 
    vtkSmartPointer<vtkPolyDataMapper>::New();
 
  mapper->SetInputDataObject(polydata);
 
 
  vtkSmartPointer<vtkActor> actor =
 
    vtkSmartPointer<vtkActor>::New();
 
  actor->SetMapper(mapper);
 
 
  vtkSmartPointer<vtkRenderer> renderer =
 
    vtkSmartPointer<vtkRenderer>::New();
 
  vtkSmartPointer<vtkRenderWindow> renderWindow =
 
    vtkSmartPointer<vtkRenderWindow>::New();
 
  renderWindow->AddRenderer(renderer);
 
  vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
 
      vtkSmartPointer<vtkRenderWindowInteractor>::New();
 
  renderWindowInteractor->SetRenderWindow(renderWindow);
 
  renderer->AddActor(actor);
 
 
  renderWindow->Render();
 
  renderWindowInteractor->Start();
 
 
  return EXIT_SUCCESS;
 
}
 
 
 
</source>
 
{{VTKCMakeLists|{{SUBPAGENAME}}}}
 

Latest revision as of 17:12, 9 September 2019