//============================================================================ // 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_WarpScalar_hxx #define vtk_m_filter_WarpScalar_hxx namespace vtkm { namespace filter { //----------------------------------------------------------------------------- inline VTKM_CONT WarpScalar::WarpScalar(vtkm::FloatDefault scaleAmount) : vtkm::filter::FilterField() , Worklet() , NormalFieldName("normal") , NormalFieldAssociation(vtkm::cont::Field::Association::ANY) , ScalarFactorFieldName("scalarfactor") , ScalarFactorFieldAssociation(vtkm::cont::Field::Association::ANY) , ScaleAmount(scaleAmount) { this->SetOutputFieldName("warpscalar"); } //----------------------------------------------------------------------------- template inline VTKM_CONT vtkm::cont::DataSet WarpScalar::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 normalF = inDataSet.GetField(this->NormalFieldName, this->NormalFieldAssociation); vtkm::cont::Field sfF = inDataSet.GetField(this->ScalarFactorFieldName, this->ScalarFactorFieldAssociation); vtkm::cont::ArrayHandle result; this->Worklet.Run(field, vtkm::filter::ApplyPolicyFieldOfType(normalF, policy, *this), vtkm::filter::ApplyPolicyFieldOfType(sfF, policy, *this), this->ScaleAmount, result); return CreateResult(inDataSet, result, this->GetOutputFieldName(), fieldMetadata); } } } #endif