Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VTK 9 API changes are causing compilation errors #118

Open
ktbolt opened this issue Mar 7, 2023 · 1 comment
Open

VTK 9 API changes are causing compilation errors #118

ktbolt opened this issue Mar 7, 2023 · 1 comment
Assignees

Comments

@ktbolt
Copy link
Contributor

ktbolt commented Mar 7, 2023

There were a lot of API changes from VTK 8 to VTK 9. This is causing compilation errors in some VTK calls

svSolver/Code/FlowSolvers/ThreeDSolver/svPre/helpers.cxx: In function ‘int VtkUtils_GetAllPolys(vtkPolyData*, int*, vtkIdType**)’:
svSolver/Code/FlowSolvers/ThreeDSolver/svPre/helpers.cxx:1927:40: error: binding reference of type ‘const vtkIdType*&’ {aka ‘const long long int*&’} to ‘vtkIdType*’ {aka ‘long long int*’} discards qualifiers
 1927 |     while ( pdPgns->GetNextCell( npts, pts ) ) {
      |                                        ^~~

The fix is to add a const declaration, for example change

 vtkIdType *pts;

to

vtkIdType const *pts;

We need to think about how we want to make these changes, maybe add a test for VTK versions.

@ktbolt ktbolt self-assigned this Mar 7, 2023
@ktbolt
Copy link
Contributor Author

ktbolt commented Jan 23, 2024

I've added a directive to test for VTK version >= 9 and selectively define vtkIdType *pts; depending on VTK version

    #ifdef VTK_USE_NEW_ID_TYPE
    vtkIdType const *pts;
    #else
    vtkIdType *pts;
    #endif

Tested on MacOS and Ubuntu.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant