Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vtkNew<vtkDoubleArray> xArray;
- xArray->SetNumberOfComponents(1);
- xArray->SetName("x");
- vtkNew<vtkDoubleArray> yArray;
- yArray->SetNumberOfComponents(1);
- yArray->SetName("y");
- vtkNew<vtkDoubleArray> zArray;
- zArray->SetNumberOfComponents(1);
- zArray->SetName("z");
- vtkPolyData * polydata = reader->GetOutput();
- for (vtkIdType i = 0; i < polydata->GetNumberOfPoints(); i++)
- {
- double p[3];
- polydata->GetPoint(i, p);
- xArray->InsertNextValue(p[0]);
- yArray->InsertNextValue(p[1]);
- zArray->InsertNextValue(p[2]);
- }
- vtkNew<vtkTable> datasetTable;
- datasetTable->AddColumn(xArray);
- datasetTable->AddColumn(yArray);
- datasetTable->AddColumn(zArray);
- vtkNew<vtkPCAStatistics> pcaStatistics;
- pcaStatistics->SetInputData(vtkStatisticsAlgorithm::INPUT_DATA, datasetTable);
- pcaStatistics->SetColumnStatus("x", 1);
- pcaStatistics->SetColumnStatus("y", 1);
- pcaStatistics->SetColumnStatus("z", 1);
- pcaStatistics->RequestSelectedColumns();
- pcaStatistics->SetDeriveOption(true);
- pcaStatistics->Update();
- vtkNew<vtkDoubleArray> eigenvalues;
- pcaStatistics->GetEigenvalues(eigenvalues);
- vtkNew<vtkDoubleArray> eigenvectors;
- pcaStatistics->GetEigenvectors(eigenvectors);
- vtkNew<vtkDoubleArray> evec1;
- pcaStatistics->GetEigenvector(0, evec1);
- vtkNew<vtkDoubleArray> evec2;
- pcaStatistics->GetEigenvector(1, evec2);
- vtkNew<vtkDoubleArray> evec3;
- pcaStatistics->GetEigenvector(2, evec3);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement