1 //=============================================================================
2 //
3 //  Copyright (c) Kitware, Inc.
4 //  All rights reserved.
5 //  See LICENSE.txt for details.
6 //
7 //  This software is distributed WITHOUT ANY WARRANTY; without even
8 //  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9 //  PURPOSE.  See the above copyright notice for more information.
10 //
11 //  Copyright 2012 Sandia Corporation.
12 //  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
13 //  the U.S. Government retains certain rights in this software.
14 //
15 //=============================================================================
16 
17 #ifndef vtkmTags_h
18 #define vtkmTags_h
19 
20 #include "vtkCellArray.h"
21 #include "vtkPoints.h"
22 #include "vtkAOSDataArrayTemplate.h"
23 #include "vtkSOADataArrayTemplate.h"
24 
25 #include "vtkmConfig.h" //required for general vtkm setup
26 
27 namespace tovtkm {
28 
29 struct VTKM_ALWAYS_EXPORT vtkAOSArrayContainerTag
30 {
31 };
32 
33 struct VTKM_ALWAYS_EXPORT vtkSOAArrayContainerTag
34 {
35 };
36 
37 //this tag is used to construct points coordinates
38 struct VTKM_ALWAYS_EXPORT vtkCellArrayContainerTag
39 {
40 };
41 
42 template<typename T> struct VTKM_ALWAYS_EXPORT ArrayContainerTagType;
43 
44 template<typename T>
45 struct VTKM_ALWAYS_EXPORT ArrayContainerTagType< vtkAOSDataArrayTemplate< T > >
46 {
47   typedef vtkAOSArrayContainerTag TagType;
48 };
49 
50 template<typename T>
51 struct VTKM_ALWAYS_EXPORT ArrayContainerTagType< vtkSOADataArrayTemplate< T > >
52 {
53   typedef vtkSOAArrayContainerTag TagType;
54 };
55 
56 
57 }
58 
59 #endif
60 // VTK-HeaderTest-Exclude: vtkmTags.h
61