SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
Generator.h
1 //=========================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //=========================================================================
10 #ifndef smtk_geometry_Generator_h
11 #define smtk_geometry_Generator_h
12 
13 #include "smtk/common/Generator.h"
14 
15 #include "smtk/PublicPointerDefs.h"
16 
17 #include <memory>
18 #include <tuple>
19 
20 namespace smtk
21 {
22 namespace geometry
23 {
24 class Backend;
25 class Geometry;
26 } // namespace geometry
27 } // namespace smtk
28 
29 #ifndef smtkCore_EXPORTS
30 extern
31 #endif
32  template class SMTKCORE_EXPORT smtk::common::Generator<
33  std::tuple<smtk::geometry::ResourcePtr, const smtk::geometry::Backend&>,
34  std::unique_ptr<smtk::geometry::Geometry>>;
35 
36 namespace smtk
37 {
38 namespace geometry
39 {
40 
41 using Specification = std::tuple<smtk::geometry::ResourcePtr, const smtk::geometry::Backend&>;
42 
48 
53 template<typename T>
54 class Supplier : public smtk::common::GeneratorType<Specification, GeometryPtr, T>
55 {
56 public:
57  using Specification = geometry::Specification;
58  using GeometryPtr = geometry::GeometryPtr;
59 };
60 
61 } // namespace geometry
62 } // namespace smtk
63 
64 #endif // smtk_geometry_Generator_h
smtk
The main namespace for the Simulation Modeling Tool Kit (SMTK).
Definition: doc.h:33
PublicPointerDefs.h
Generator.h
Generator templates.
smtk::common::Generator
Interface generator class.
Definition: Generator.h:137
smtk::common::GeneratorType
Base class for specific generator types.
Definition: Generator.h:228
smtk::geometry::Supplier
Declare the class used to register geometry classes specific to a backend.
Definition: Generator.h:54
smtk::geometry::GeometryPtr
std::unique_ptr< Geometry > GeometryPtr
Definition: PublicPointerDefs.h:325