WholeCellSetIn now uses the proper fetch tag.

This commit is contained in:
Robert Maynard 2016-11-23 11:45:50 -05:00
parent 7475f62d66
commit 9f2b680594
3 changed files with 73 additions and 1 deletions

@ -30,6 +30,7 @@ set(headers
FetchTagArrayTopologyMapIn.h
FetchTagExecObject.h
FetchTagCellSetIn.h
FetchTagWholeCellSetIn.h
FromCount.h
FromIndices.h
ThreadIndices.h

@ -0,0 +1,70 @@
//============================================================================
// 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.
//============================================================================
#ifndef vtk_m_exec_arg_FetchTagWholeCellSetIn_h
#define vtk_m_exec_arg_FetchTagWholeCellSetIn_h
#include <vtkm/exec/arg/AspectTagDefault.h>
#include <vtkm/exec/arg/Fetch.h>
#include <vtkm/exec/ExecutionObjectBase.h>
#include <type_traits>
namespace vtkm {
namespace exec {
namespace arg {
/// \brief \c Fetch tag for whole cell sets.
///
///
struct FetchTagWholeCellSetIn { };
template<typename ThreadIndicesType, typename ExecObjectType>
struct Fetch<
vtkm::exec::arg::FetchTagWholeCellSetIn,
vtkm::exec::arg::AspectTagDefault,
ThreadIndicesType,
ExecObjectType>
{
typedef ExecObjectType ValueType;
VTKM_SUPPRESS_EXEC_WARNINGS
VTKM_EXEC
ValueType Load(const ThreadIndicesType &vtkmNotUsed(indices),
const ExecObjectType &execObject) const
{
return execObject;
}
VTKM_EXEC
void Store(const ThreadIndicesType &,
const ExecObjectType &,
const ValueType &) const
{
// Store is a no-op for this fetch.
}
};
}
}
} // namespace vtkm::exec::arg
#endif //vtk_m_exec_arg_FetchTagWholeCellSetIn_h

@ -26,6 +26,7 @@
#include <vtkm/exec/FunctorBase.h>
#include <vtkm/exec/arg/BasicArg.h>
#include <vtkm/exec/arg/FetchTagExecObject.h>
#include <vtkm/exec/arg/FetchTagWholeCellSetIn.h>
#include <vtkm/exec/arg/ThreadIndices.h>
#include <vtkm/exec/arg/ThreadIndicesBasic.h>
#include <vtkm/exec/arg/VisitIndex.h>
@ -295,7 +296,7 @@ public:
struct WholeCellSetIn : vtkm::cont::arg::ControlSignatureTagBase {
typedef vtkm::cont::arg::TypeCheckTagCellSet TypeCheckTag;
typedef vtkm::cont::arg::TransportTagCellSetIn<FromType,ToType> TransportTag;
typedef vtkm::exec::arg::FetchTagExecObject FetchTag;
typedef vtkm::exec::arg::FetchTagWholeCellSetIn FetchTag;
};
/// \brief Creates a \c ThreadIndices object.