enum/define conflict in vtkImplicitBoolean.h and vtkBooleanOperationPolyDataFilter.h
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
I am using vtk 5.10.0 and have to use vtkImplicitBoolean.h and vtkBooleanOperationPolyDataFilter.h at the same time. There was a commit which changes the operation type names to "VTK_UNION", "VTK_INTERSECTION" and "VTK_DIFFERENCE": http://vtk.org/gitweb?p=VTK.git;a=commitdiff;h=d856f10a103abd1209c5be3f4939fe9364b6afc8
unfortunately, due to this change the define lines in vtkImplicitBoolean.h become obsolete and are in conflict.
#define VTK_UNION 0 #define VTK_INTERSECTION 1 #define VTK_DIFFERENCE 2 #define VTK_UNION_OF_MAGNITUDES 3
just including in the wrong order like this:
#include <vtkImplicitBoolean.h> #include <vtkBooleanOperationPolyDataFilter.h>
leads to the following compile error:
/usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:55:5: error: expected identifier before numeric constant /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:55:5: error: expected '}' before numeric constant /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:55:5: error: expected unqualified-id before numeric constant /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void SetOperation(int)': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:62:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'int GetOperation()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void SetOperationToUnion()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:65:5: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void SetOperationToIntersection()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:67:5: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void SetOperationToDifference()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:69:5: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void SetReorientDifferenceCells(int)': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:74:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'int GetReorientDifferenceCells()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:76:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void ReorientDifferenceCellsOn()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:76:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:76:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void ReorientDifferenceCellsOff()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:76:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'void SetTolerance(double)': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:81:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: 'virtual' outside class declaration /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'double GetTolerance()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: error: invalid use of 'this' in non-member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: At global scope: /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:84:1: error: expected unqualified-id before 'protected' /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:86:39: error: expected constructor, destructor, or type conversion before ';' token /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:96:1: error: expected unqualified-id before 'private' /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:98:58: error: 'void operator=(const vtkBooleanOperationPolyDataFilter&)' must be a nonstatic member function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:123:1: error: expected declaration before '}' token /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'double GetTolerance()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:82:3: warning: control reaches end of non-void function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'int GetReorientDifferenceCells()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:75:3: warning: control reaches end of non-void function /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h: In function 'int GetOperation()': /usr/include/vtk-5.10/vtkBooleanOperationPolyDataFilter.h:63:3: warning: control reaches end of non-void function make: *** [main.o] Error 1