VTK
ImplicitFunctionConverter.h
Go to the documentation of this file.
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 #ifndef vtkmlib_ImplicitFunctionConverter_h
17 #define vtkmlib_ImplicitFunctionConverter_h
18 
19 #include "vtkAcceleratorsVTKmModule.h"
20 #include "vtkmConfig.h" //required for general vtkm setup
21 #include "vtkType.h" // For vtkMTimeType
22 
23 #include <memory> // For std::shared_ptr
24 
25 
27 
28 namespace vtkm {
29 namespace cont {
30 
31 class ImplicitFunction;
32 
33 }} // vtkm::cont
34 
35 namespace tovtkm {
36 
37 class VTKACCELERATORSVTKM_EXPORT ImplicitFunctionConverter
38 {
39 public:
41 
42  void Set(vtkImplicitFunction *);
43  const std::shared_ptr<vtkm::cont::ImplicitFunction>& Get() const;
44 
45 private:
46  vtkImplicitFunction *InFunction;
47  std::shared_ptr<vtkm::cont::ImplicitFunction> OutFunction;
48  mutable vtkMTimeType MTime;
49 };
50 
51 #ifdef VTKM_MSVC
52 extern template class VTKACCELERATORSVTKM_TEMPLATE_EXPORT
53  std::shared_ptr<vtkm::cont::ImplicitFunction>;
54 #endif
55 }
56 
57 #endif // vtkmlib_ImplicitFunctionConverter_h
abstract interface for implicit functions
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:300