SMTK  @SMTK_VERSION@
Simulation Modeling Tool Kit
GeometryForBackend.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_resource_GeometryForBackend_h
11 #define smtk_resource_GeometryForBackend_h
12 
13 #include "smtk/geometry/Geometry.h"
14 
15 namespace smtk
16 {
17 namespace geometry
18 {
19 
38 template<typename Format>
40 {
41 public:
42  smtkTypeMacro(GeometryForBackend);
43  smtkSuperclassMacro(Geometry);
44  using DataType = Format;
45 
46  ~GeometryForBackend() override = default;
47 
48  virtual void update() const {}
49  virtual void geometricBounds(const Format&, BoundingBox&) const = 0;
50 
54  virtual Format& data(const resource::PersistentObject::Ptr&) const = 0;
55 };
56 
57 } // namespace geometry
58 } // namespace smtk
59 
60 #endif // smtk_resource_GeometryForBackend_h
smtk
The main namespace for the Simulation Modeling Tool Kit (SMTK).
Definition: doc.h:33
smtk::geometry::GeometryForBackend
A base class for objects which can provide renderable geometry in a specific format.
Definition: GeometryForBackend.h:39
smtk::geometry::GeometryForBackend::data
virtual Format & data(const resource::PersistentObject::Ptr &) const =0
Return the data associated with an object.
smtk::geometry::Geometry::BoundingBox
std::array< double, 6 > BoundingBox
A bounding box is represented as an array of 6 numbers, ordered xmin, xmax, ymin, ymax,...
Definition: Geometry.h:78
smtk::geometry::Geometry
A base class for objects which can provide renderable geometry.
Definition: Geometry.h:60