//============================================================================ // 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. // // Copyright 2014 Sandia Corporation. // Copyright 2014 UT-Battelle, LLC. // Copyright 2014 Los Alamos National Security. // // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, // the U.S. Government retains certain rights in this software. // // Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National // Laboratory (LANL), the U.S. Government retains certain rights in // this software. //============================================================================ #include namespace vtkm { namespace filter { //----------------------------------------------------------------------------- PointElevation::PointElevation(): Worklet() { } //----------------------------------------------------------------------------- void PointElevation::SetLowPoint(vtkm::Float64 x, vtkm::Float64 y, vtkm::Float64 z) { this->Worklet.SetLowPoint( vtkm::make_Vec(x,y,z) ); } //----------------------------------------------------------------------------- void PointElevation::SetHighPoint(vtkm::Float64 x, vtkm::Float64 y, vtkm::Float64 z) { this->Worklet.SetHighPoint( vtkm::make_Vec(x,y,z) ); } //----------------------------------------------------------------------------- void PointElevation::SetRange(vtkm::Float64 low, vtkm::Float64 high) { this->Worklet.SetRange(low,high); } //----------------------------------------------------------------------------- template vtkm::filter::FieldResult PointElevation::DoExecute(const vtkm::cont::DataSet &, const vtkm::cont::ArrayHandle &field, const vtkm::filter::FieldMetadata&, const vtkm::filter::PolicyBase&, const DeviceAdapter&) { vtkm::cont::ArrayHandle outArray; vtkm::worklet::DispatcherMapField dispatcher(this->Worklet); //todo, we need to use the policy to determine the valid conversions //that the dispatcher should do dispatcher.Invoke(field, outArray); vtkm::cont::Field outField(this->GetOutputFieldName(), vtkm::cont::Field::ASSOC_WHOLE_MESH, outArray); return vtkm::filter::FieldResult(outField); } } } // namespace vtkm::filter