------------------------------------------------------------------------------
| 3747 | |
| 3748 | //------------------------------------------------------------------------------ |
| 3749 | int vtkGeometryFilter::DataSetExecute( |
| 3750 | vtkDataSet* input, vtkPolyData* output, vtkPolyData* excludedFaces) |
| 3751 | { |
| 3752 | bool use64BitsIds = |
| 3753 | (input->GetNumberOfPoints() > VTK_INT_MAX || input->GetNumberOfCells() > VTK_INT_MAX); |
| 3754 | if (use64BitsIds) |
| 3755 | { |
| 3756 | using TInputIdType = vtkIdType; |
| 3757 | vtkExcludedFaces<TInputIdType> exc; |
| 3758 | if (excludedFaces) |
| 3759 | { |
| 3760 | exc.ExcludedFaces = excludedFaces; |
| 3761 | vtkCellArray* excPolys = excludedFaces->GetPolys(); |
| 3762 | if (excPolys->GetNumberOfCells() > 0) |
| 3763 | { |
| 3764 | exc.Links = new vtkStaticCellLinksTemplate<TInputIdType>; |
| 3765 | exc.Links->BuildLinks(input->GetNumberOfPoints(), excPolys->GetNumberOfCells(), excPolys); |
| 3766 | } |
| 3767 | } |
| 3768 | return ExecuteDataSet<TInputIdType>(this, input, output, &exc); |
| 3769 | } |
| 3770 | else |
| 3771 | { |
| 3772 | using TInputIdType = int; |
| 3773 | vtkExcludedFaces<TInputIdType> exc; |
| 3774 | if (excludedFaces) |
| 3775 | { |
| 3776 | exc.ExcludedFaces = excludedFaces; |
| 3777 | vtkCellArray* excPolys = excludedFaces->GetPolys(); |
| 3778 | if (excPolys->GetNumberOfCells() > 0) |
| 3779 | { |
| 3780 | exc.Links = new vtkStaticCellLinksTemplate<TInputIdType>; |
| 3781 | exc.Links->BuildLinks(input->GetNumberOfPoints(), excPolys->GetNumberOfCells(), excPolys); |
| 3782 | } |
| 3783 | } |
| 3784 | return ExecuteDataSet<TInputIdType>(this, input, output, &exc); |
| 3785 | } |
| 3786 | } |
| 3787 | |
| 3788 | //------------------------------------------------------------------------------ |
| 3789 | int vtkGeometryFilter::DataSetExecute(vtkDataSet* input, vtkPolyData* output) |