Add mapfield method.
This commit is contained in:
parent
daf1171382
commit
1a0dfaa760
@ -46,6 +46,13 @@ public:
|
|||||||
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
|
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
|
||||||
const DeviceAdapter& tag);
|
const DeviceAdapter& tag);
|
||||||
|
|
||||||
|
template <typename T, typename StorageType, typename DerivedPolicy, typename DeviceAdapter>
|
||||||
|
VTKM_CONT bool DoMapField(vtkm::filter::Result& result,
|
||||||
|
const vtkm::cont::ArrayHandle<T, StorageType>& input,
|
||||||
|
const vtkm::filter::FieldMetadata& fieldMeta,
|
||||||
|
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
|
||||||
|
DeviceAdapter tag);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
vtkm::worklet::CrossProduct Worklet;
|
vtkm::worklet::CrossProduct Worklet;
|
||||||
std::string SecondaryFieldName;
|
std::string SecondaryFieldName;
|
||||||
|
@ -67,5 +67,18 @@ inline VTKM_CONT vtkm::filter::Result CrossProduct::DoExecute(
|
|||||||
fieldMetadata.GetAssociation(),
|
fieldMetadata.GetAssociation(),
|
||||||
fieldMetadata.GetCellSetName());
|
fieldMetadata.GetCellSetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
template <typename T, typename StorageType, typename DerivedPolicy, typename DeviceAdapter>
|
||||||
|
inline VTKM_CONT bool CrossProduct::DoMapField(vtkm::filter::Result& result,
|
||||||
|
const vtkm::cont::ArrayHandle<T, StorageType>& input,
|
||||||
|
const vtkm::filter::FieldMetadata& fieldMeta,
|
||||||
|
const vtkm::filter::PolicyBase<DerivedPolicy>&,
|
||||||
|
DeviceAdapter device)
|
||||||
|
{
|
||||||
|
//we copy the input handle to the result dataset, reusing the metadata
|
||||||
|
result.GetDataSet().AddField(fieldMeta.AsField(input));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} // namespace vtkm::filter
|
} // namespace vtkm::filter
|
||||||
|
@ -46,6 +46,13 @@ public:
|
|||||||
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
|
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
|
||||||
const DeviceAdapter& tag);
|
const DeviceAdapter& tag);
|
||||||
|
|
||||||
|
template <typename T, typename StorageType, typename DerivedPolicy, typename DeviceAdapter>
|
||||||
|
VTKM_CONT bool DoMapField(vtkm::filter::Result& result,
|
||||||
|
const vtkm::cont::ArrayHandle<T, StorageType>& input,
|
||||||
|
const vtkm::filter::FieldMetadata& fieldMeta,
|
||||||
|
const vtkm::filter::PolicyBase<DerivedPolicy>& policy,
|
||||||
|
DeviceAdapter tag);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
vtkm::worklet::DotProduct Worklet;
|
vtkm::worklet::DotProduct Worklet;
|
||||||
std::string SecondaryFieldName;
|
std::string SecondaryFieldName;
|
||||||
|
@ -67,5 +67,18 @@ inline VTKM_CONT vtkm::filter::Result DotProduct::DoExecute(
|
|||||||
fieldMetadata.GetAssociation(),
|
fieldMetadata.GetAssociation(),
|
||||||
fieldMetadata.GetCellSetName());
|
fieldMetadata.GetCellSetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
template <typename T, typename StorageType, typename DerivedPolicy, typename DeviceAdapter>
|
||||||
|
inline VTKM_CONT bool DotProduct::DoMapField(vtkm::filter::Result& result,
|
||||||
|
const vtkm::cont::ArrayHandle<T, StorageType>& input,
|
||||||
|
const vtkm::filter::FieldMetadata& fieldMeta,
|
||||||
|
const vtkm::filter::PolicyBase<DerivedPolicy>&,
|
||||||
|
DeviceAdapter device)
|
||||||
|
{
|
||||||
|
//we copy the input handle to the result dataset, reusing the metadata
|
||||||
|
result.GetDataSet().AddField(fieldMeta.AsField(input));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} // namespace vtkm::filter
|
} // namespace vtkm::filter
|
||||||
|
Loading…
Reference in New Issue
Block a user