//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt for details. // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notice for more information. //============================================================================ #ifndef vtk_m_filter_WarpVector_hxx #define vtk_m_filter_WarpVector_hxx namespace vtkm { namespace filter { //----------------------------------------------------------------------------- inline VTKM_CONT WarpVector::WarpVector(vtkm::FloatDefault scale) : vtkm::filter::FilterField() , Worklet() , VectorFieldName("normal") , VectorFieldAssociation(vtkm::cont::Field::Association::ANY) , Scale(scale) { this->SetOutputFieldName("warpvector"); } //----------------------------------------------------------------------------- template inline VTKM_CONT vtkm::cont::DataSet WarpVector::DoExecute( const vtkm::cont::DataSet& inDataSet, const vtkm::cont::ArrayHandle, StorageType>& field, const vtkm::filter::FieldMetadata& fieldMetadata, vtkm::filter::PolicyBase policy) { using vecType = vtkm::Vec; vtkm::cont::Field vectorF = inDataSet.GetField(this->VectorFieldName, this->VectorFieldAssociation); vtkm::cont::ArrayHandle result; this->Worklet.Run(field, vtkm::filter::ApplyPolicyFieldOfType(vectorF, policy, *this), this->Scale, result); return CreateResult(inDataSet, result, this->GetOutputFieldName(), fieldMetadata); } } } #endif