Viskores  1.0
CellLocatorGeneral.h
Go to the documentation of this file.
1 //============================================================================
2 // The contents of this file are covered by the Viskores license. See
3 // LICENSE.txt for details.
4 //
5 // By contributing to this file, all contributors agree to the Developer
6 // Certificate of Origin Version 1.1 (DCO 1.1) as stated in DCO.txt.
7 //============================================================================
8 
9 //============================================================================
10 // Copyright (c) Kitware, Inc.
11 // All rights reserved.
12 // See LICENSE.txt for details.
13 //
14 // This software is distributed WITHOUT ANY WARRANTY; without even
15 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
16 // PURPOSE. See the above copyright notice for more information.
17 //============================================================================
18 #ifndef viskores_cont_CellLocatorGeneral_h
19 #define viskores_cont_CellLocatorGeneral_h
20 
24 
26 
27 #include <viskores/cont/Variant.h>
28 
29 #include <functional>
30 #include <memory>
31 
32 namespace viskores
33 {
34 namespace cont
35 {
36 
49 class VISKORES_CONT_EXPORT CellLocatorGeneral : public viskores::cont::CellLocatorBase
50 {
51 public:
55 
57  viskores::cont::internal::ExecutionObjectType<viskores::cont::CellLocatorUniformGrid>,
58  viskores::cont::internal::ExecutionObjectType<viskores::cont::CellLocatorRectilinearGrid>,
59  viskores::cont::internal::ExecutionObjectType<viskores::cont::CellLocatorTwoLevel>>;
60 
62  using LastCell = typename ExecObjType::LastCell;
63 
65  viskores::cont::Token& token) const;
66 
67 private:
68  viskores::cont::ListAsVariant<ContLocatorList> LocatorImpl;
69 
70  VISKORES_CONT void Build() override;
71 
72  struct PrepareFunctor;
73 };
74 }
75 } // viskores::cont
76 
77 #endif // viskores_cont_CellLocatorGeneral_h
viskores::cont::CellLocatorBase
Base class for all CellLocator classes.
Definition: CellLocatorBase.h:42
CellLocatorMultiplexer.h
viskores::cont::CellLocatorGeneral::ExecObjType
viskores::ListApply< ExecLocatorList, viskores::exec::CellLocatorMultiplexer > ExecObjType
Definition: CellLocatorGeneral.h:61
viskores::ListApply
typename detail::ListApplyImpl< List, Target >::type ListApply
Applies the list of types to a template.
Definition: List.h:146
Variant.h
CellLocatorUniformGrid.h
viskores::List
A template used to hold a list of types.
Definition: List.h:47
VISKORES_CONT
#define VISKORES_CONT
Definition: ExportMacros.h:65
viskores
Groups connected points that have the same field value.
Definition: Atomic.h:27
CellLocatorTwoLevel.h
viskores::cont::CellLocatorUniformGrid
A cell locator optimized for finding cells in a uniform grid.
Definition: cont/CellLocatorUniformGrid.h:38
viskores::cont::CellLocatorTwoLevel
A locator that uses 2 nested levels of grids.
Definition: cont/CellLocatorTwoLevel.h:52
viskores::cont::CellLocatorGeneral
A CellLocator that works generally well for any supported cell set.
Definition: CellLocatorGeneral.h:49
viskores::cont::DeviceAdapterId
An object used to specify a device.
Definition: DeviceAdapterTag.h:66
viskores::cont::CellLocatorGeneral::LastCell
typename ExecObjType::LastCell LastCell
Definition: CellLocatorGeneral.h:62
CellLocatorRectilinearGrid.h
viskores::cont::CellLocatorRectilinearGrid
A cell locator optimized for finding cells in a rectilinear grid.
Definition: cont/CellLocatorRectilinearGrid.h:36
viskores::cont::CellLocatorGeneral::LocatorImpl
viskores::cont::ListAsVariant< ContLocatorList > LocatorImpl
Definition: CellLocatorGeneral.h:68
viskores::cont::Token
A token to hold the scope of an ArrayHandle or other object.
Definition: Token.h:43