diff --git a/MeshLib/Vtk/VtkMappedPropertyVectorTemplate-impl.h b/MeshLib/Vtk/VtkMappedPropertyVectorTemplate-impl.h index 2198680722d1b3b90c36e24678d6a982ab82877f..964a0637ae11d6771f62239cfa9d2a2bd9f2c8be 100644 --- a/MeshLib/Vtk/VtkMappedPropertyVectorTemplate-impl.h +++ b/MeshLib/Vtk/VtkMappedPropertyVectorTemplate-impl.h @@ -209,13 +209,6 @@ template <class Scalar> void VtkMappedPropertyVectorTemplate<Scalar> } } -//------------------------------------------------------------------------------ -template <class Scalar> Scalar VtkMappedPropertyVectorTemplate<Scalar> -::GetValue(vtkIdType idx) -{ - return (*this->_propertyVector)[idx]; -} - //------------------------------------------------------------------------------ template <class Scalar> Scalar& VtkMappedPropertyVectorTemplate<Scalar> ::GetValueReference(vtkIdType idx) @@ -226,13 +219,6 @@ template <class Scalar> Scalar& VtkMappedPropertyVectorTemplate<Scalar> return value; } -//------------------------------------------------------------------------------ -template <class Scalar> void VtkMappedPropertyVectorTemplate<Scalar> -::GetTupleValue(vtkIdType tupleId, Scalar *tuple) -{ - *tuple = (*this->_propertyVector)[tupleId]; -} - //------------------------------------------------------------------------------ template <class Scalar> int VtkMappedPropertyVectorTemplate<Scalar> ::Allocate(vtkIdType, vtkIdType) @@ -392,28 +378,6 @@ template <class Scalar> void VtkMappedPropertyVectorTemplate<Scalar> vtkErrorMacro("Read only container.") } -//------------------------------------------------------------------------------ -template <class Scalar> void VtkMappedPropertyVectorTemplate<Scalar> -::SetTupleValue(vtkIdType, const Scalar*) -{ - vtkErrorMacro("Read only container.") -} - -//------------------------------------------------------------------------------ -template <class Scalar> void VtkMappedPropertyVectorTemplate<Scalar> -::InsertTupleValue(vtkIdType, const Scalar*) -{ - vtkErrorMacro("Read only container.") -} - -//------------------------------------------------------------------------------ -template <class Scalar> vtkIdType VtkMappedPropertyVectorTemplate<Scalar> -::InsertNextTupleValue(const Scalar *) -{ - vtkErrorMacro("Read only container.") - return -1; -} - //------------------------------------------------------------------------------ template <class Scalar> void VtkMappedPropertyVectorTemplate<Scalar> ::SetValue(vtkIdType, Scalar) @@ -471,4 +435,78 @@ template <class Scalar> vtkIdType VtkMappedPropertyVectorTemplate<Scalar> return -1; } +#if VTK_MAJOR_VERSION >= 7 && VTK_MINOR_VERSION >= 1 +//------------------------------------------------------------------------------ +template <class Scalar> +Scalar VtkMappedPropertyVectorTemplate<Scalar>::GetValue(vtkIdType idx) const +{ + return (*this->_propertyVector)[idx]; +} +//------------------------------------------------------------------------------ +template <class Scalar> +void VtkMappedPropertyVectorTemplate<Scalar>::GetTypedTuple(vtkIdType tupleId, + Scalar* tuple) const +{ + *tuple = (*this->_propertyVector)[tupleId]; +} +//------------------------------------------------------------------------------ +template <class Scalar> +void VtkMappedPropertyVectorTemplate<Scalar>::SetTypedTuple(vtkIdType, + const Scalar*) +{ + vtkErrorMacro("Read only container."); +} +//------------------------------------------------------------------------------ +template <class Scalar> +void VtkMappedPropertyVectorTemplate<Scalar>::InsertTypedTuple(vtkIdType, + const Scalar*) +{ + vtkErrorMacro("Read only container."); +} +//------------------------------------------------------------------------------ +template <class Scalar> +vtkIdType VtkMappedPropertyVectorTemplate<Scalar>::InsertNextTypedTuple( + const Scalar*) +{ + vtkErrorMacro("Read only container."); + return -1; +} +#else +//------------------------------------------------------------------------------ +template <class Scalar> +Scalar VtkMappedPropertyVectorTemplate<Scalar>::GetValue(vtkIdType idx) +{ + return (*this->_propertyVector)[idx]; +} +//------------------------------------------------------------------------------ +template <class Scalar> +void VtkMappedPropertyVectorTemplate<Scalar>::GetTupleValue(vtkIdType tupleId, + Scalar* tuple) +{ + *tuple = (*this->_propertyVector)[tupleId]; +} +//------------------------------------------------------------------------------ +template <class Scalar> +void VtkMappedPropertyVectorTemplate<Scalar>::SetTupleValue(vtkIdType, + const Scalar*) +{ + vtkErrorMacro("Read only container."); +} +//------------------------------------------------------------------------------ +template <class Scalar> +void VtkMappedPropertyVectorTemplate<Scalar>::InsertTupleValue(vtkIdType, + const Scalar*) +{ + vtkErrorMacro("Read only container."); +} +//------------------------------------------------------------------------------ +template <class Scalar> +vtkIdType VtkMappedPropertyVectorTemplate<Scalar>::InsertNextTupleValue( + const Scalar*) +{ + vtkErrorMacro("Read only container."); + return -1; +} + +#endif // vtk version } // end namespace MeshLib diff --git a/MeshLib/Vtk/VtkMappedPropertyVectorTemplate.h b/MeshLib/Vtk/VtkMappedPropertyVectorTemplate.h index 0388c3fd705e43b5e97368791f3cf469a796f0e6..8373f6454e9a4fb2cdf7136288ec5efb75f96b29 100644 --- a/MeshLib/Vtk/VtkMappedPropertyVectorTemplate.h +++ b/MeshLib/Vtk/VtkMappedPropertyVectorTemplate.h @@ -17,8 +17,9 @@ #define VTKMAPPEDELEMENTDATAARRAY_H_ #include <vtkMappedDataArray.h> -#include <vtkTypeTemplate.h> // For templated vtkObject API -#include <vtkObjectFactory.h> // for vtkStandardNewMacro +#include <vtkObjectFactory.h> // for vtkStandardNewMacro +#include <vtkTypeTemplate.h> // For templated vtkObject API +#include <vtkVersion.h> #include "MeshLib/Elements/Element.h" @@ -53,9 +54,7 @@ public: void GetTuple(vtkIdType i, double *tuple) override; vtkIdType LookupTypedValue(Scalar value) override; void LookupTypedValue(Scalar value, vtkIdList *ids) override; - Scalar GetValue(vtkIdType idx); Scalar& GetValueReference(vtkIdType idx) override; - void GetTupleValue(vtkIdType idx, Scalar *t); // Description: // This container is read only -- this method does nothing but print a @@ -86,13 +85,24 @@ public: void RemoveTuple(vtkIdType id) override; void RemoveFirstTuple() override; void RemoveLastTuple() override; - void SetTupleValue(vtkIdType i, const Scalar *t); - void InsertTupleValue(vtkIdType i, const Scalar *t); - vtkIdType InsertNextTupleValue(const Scalar *t); void SetValue(vtkIdType idx, Scalar value) override; vtkIdType InsertNextValue(Scalar v) override; void InsertValue(vtkIdType idx, Scalar v) override; +#if VTK_MAJOR_VERSION >= 7 && VTK_MINOR_VERSION >= 1 + Scalar GetValue(vtkIdType idx) const override; + void GetTypedTuple(vtkIdType idx, Scalar* t) const override; + void SetTypedTuple(vtkIdType i, const Scalar* t) override; + void InsertTypedTuple(vtkIdType i, const Scalar* t) override; + vtkIdType InsertNextTypedTuple(const Scalar* t) override; +#else + Scalar GetValue(vtkIdType idx) override; + void GetTupleValue(vtkIdType idx, Scalar* t) override; + void SetTupleValue(vtkIdType i, const Scalar* t) override; + void InsertTupleValue(vtkIdType i, const Scalar* t) override; + vtkIdType InsertNextTupleValue(const Scalar* t) override; +#endif // vtk version + protected: VtkMappedPropertyVectorTemplate(); ~VtkMappedPropertyVectorTemplate(); diff --git a/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate-impl.h b/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate-impl.h index f21973a241ea104a6ca1ea68c193bbcfad66f433..60d32422a3e33a2434ef9ef013a87452e383dff2 100644 --- a/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate-impl.h +++ b/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate-impl.h @@ -183,12 +183,6 @@ template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> ids->InsertNextId(index++); } -template <class Scalar> Scalar VtkMeshNodalCoordinatesTemplate<Scalar> -::GetValue(vtkIdType idx) -{ - return this->GetValueReference(idx); -} - template <class Scalar> Scalar& VtkMeshNodalCoordinatesTemplate<Scalar> ::GetValueReference(vtkIdType idx) { @@ -197,14 +191,6 @@ template <class Scalar> Scalar& VtkMeshNodalCoordinatesTemplate<Scalar> return (*(*this->_nodes)[tuple])[comp]; } -template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> -::GetTupleValue(vtkIdType tupleId, Scalar *tuple) -{ - tuple[0] = (*(*this->_nodes)[tupleId])[0]; - tuple[1] = (*(*this->_nodes)[tupleId])[1]; - tuple[2] = (*(*this->_nodes)[tupleId])[2]; -} - template <class Scalar> int VtkMeshNodalCoordinatesTemplate<Scalar> ::Allocate(vtkIdType, vtkIdType) { @@ -366,27 +352,6 @@ template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> return; } -template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> -::SetTupleValue(vtkIdType, const Scalar*) -{ - vtkErrorMacro("Read only container.") - return; -} - -template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> -::InsertTupleValue(vtkIdType, const Scalar*) -{ - vtkErrorMacro("Read only container.") - return; -} - -template <class Scalar> vtkIdType VtkMeshNodalCoordinatesTemplate<Scalar> -::InsertNextTupleValue(const Scalar *) -{ - vtkErrorMacro("Read only container.") - return -1; -} - template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> ::SetValue(vtkIdType, Scalar) { @@ -432,4 +397,85 @@ template <class Scalar> vtkIdType VtkMeshNodalCoordinatesTemplate<Scalar> return -1; } + +#if VTK_MAJOR_VERSION >= 7 && VTK_MINOR_VERSION >= 1 +template <class Scalar> Scalar& VtkMeshNodalCoordinatesTemplate<Scalar> +::GetValueReference(vtkIdType idx) const +{ + const vtkIdType tuple = idx / this->NumberOfComponents; + const vtkIdType comp = idx % this->NumberOfComponents; + return (*(*this->_nodes)[tuple])[comp]; +} + +template <class Scalar> Scalar VtkMeshNodalCoordinatesTemplate<Scalar> +::GetValue(vtkIdType idx) const +{ + return this->GetValueReference(idx); +} + +template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> +::GetTypedTuple(vtkIdType tupleId, Scalar *tuple) const +{ + tuple[0] = (*(*this->_nodes)[tupleId])[0]; + tuple[1] = (*(*this->_nodes)[tupleId])[1]; + tuple[2] = (*(*this->_nodes)[tupleId])[2]; +} + +template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> +::SetTypedTuple(vtkIdType, const Scalar*) +{ + vtkErrorMacro("Read only container."); + return; +} + +template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> +::InsertTypedTuple(vtkIdType, const Scalar*) +{ + vtkErrorMacro("Read only container."); + return; +} + +template <class Scalar> vtkIdType VtkMeshNodalCoordinatesTemplate<Scalar> +::InsertNextTypedTuple(const Scalar *) +{ + vtkErrorMacro("Read only container."); + return -1; +} + +#else +template <class Scalar> Scalar VtkMeshNodalCoordinatesTemplate<Scalar> +::GetValue(vtkIdType idx) +{ + return this->GetValueReference(idx); +} +template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> +::GetTupleValue(vtkIdType tupleId, Scalar *tuple) +{ + tuple[0] = (*(*this->_nodes)[tupleId])[0]; + tuple[1] = (*(*this->_nodes)[tupleId])[1]; + tuple[2] = (*(*this->_nodes)[tupleId])[2]; +} + +template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> +::SetTupleValue(vtkIdType, const Scalar*) +{ + vtkErrorMacro("Read only container."); + return; +} + +template <class Scalar> void VtkMeshNodalCoordinatesTemplate<Scalar> +::InsertTupleValue(vtkIdType, const Scalar*) +{ + vtkErrorMacro("Read only container."); + return; +} + +template <class Scalar> vtkIdType VtkMeshNodalCoordinatesTemplate<Scalar> +::InsertNextTupleValue(const Scalar *) +{ + vtkErrorMacro("Read only container."); + return -1; +} + +#endif // vtk version } // end namespace diff --git a/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate.h b/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate.h index 0e124a5befeb681b21cbfd070df1ae3ccc7e63b4..15bd4b72fb076b36bf9b1cdaae97b83d6d8ba97e 100644 --- a/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate.h +++ b/MeshLib/Vtk/VtkMeshNodalCoordinatesTemplate.h @@ -17,8 +17,9 @@ #define VTKMESHNODALCOORDINATES_H_ #include <vtkMappedDataArray.h> -#include <vtkTypeTemplate.h> // For templated vtkObject API -#include <vtkObjectFactory.h> // for vtkStandardNewMacro +#include <vtkObjectFactory.h> // for vtkStandardNewMacro +#include <vtkTypeTemplate.h> // For templated vtkObject API +#include <vtkVersion.h> namespace MeshLib { @@ -55,9 +56,7 @@ public: void GetTuple(vtkIdType i, double *tuple) override; vtkIdType LookupTypedValue(Scalar value) override; void LookupTypedValue(Scalar value, vtkIdList *ids) override; - Scalar GetValue(vtkIdType idx); Scalar& GetValueReference(vtkIdType idx) override; - void GetTupleValue(vtkIdType idx, Scalar *t); // This container is read only -- this method does nothing but print a // warning. @@ -87,13 +86,24 @@ public: void RemoveTuple(vtkIdType id) override; void RemoveFirstTuple() override; void RemoveLastTuple() override; - void SetTupleValue(vtkIdType i, const Scalar *t); - void InsertTupleValue(vtkIdType i, const Scalar *t); - vtkIdType InsertNextTupleValue(const Scalar *t); void SetValue(vtkIdType idx, Scalar value) override; vtkIdType InsertNextValue(Scalar v) override; void InsertValue(vtkIdType idx, Scalar v) override; +#if VTK_MAJOR_VERSION >= 7 && VTK_MINOR_VERSION >= 1 + Scalar& GetValueReference(vtkIdType idx) const; + Scalar GetValue(vtkIdType idx) const override; + void GetTypedTuple(vtkIdType idx, Scalar* t) const override; + void SetTypedTuple(vtkIdType i, const Scalar* t) override; + void InsertTypedTuple(vtkIdType i, const Scalar* t) override; + vtkIdType InsertNextTypedTuple(const Scalar* t) override; +#else + Scalar GetValue(vtkIdType idx) override; + void GetTupleValue(vtkIdType idx, Scalar* t) override; + void SetTupleValue(vtkIdType i, const Scalar* t) override; + void InsertTupleValue(vtkIdType i, const Scalar* t) override; + vtkIdType InsertNextTupleValue(const Scalar* t) override; +#endif // vtk version protected: VtkMeshNodalCoordinatesTemplate();