SMTK
@SMTK_VERSION@
Simulation Modeling Tool Kit
|
10 #ifndef smtk_geometry_Geometry_h
11 #define smtk_geometry_Geometry_h
13 #include "smtk/geometry/Backend.h"
14 #include "smtk/resource/PersistentObject.h"
75 static constexpr
GenerationNumber Invalid = std::numeric_limits<GenerationNumber>::lowest();
78 static constexpr
GenerationNumber Initial = std::numeric_limits<GenerationNumber>::lowest() + 1;
91 using Specification = std::tuple<smtk::resource::ResourcePtr, const smtk::geometry::Backend&>;
97 using UniquePtr = std::unique_ptr<smtk::geometry::Geometry>;
101 : m_lastModified(Initial)
108 virtual const Backend& backend()
const = 0;
130 virtual GenerationNumber generationNumber(
const resource::PersistentObject::Ptr&)
const = 0;
132 virtual void bounds(
const resource::PersistentObject::Ptr&,
BoundingBox& bds)
const = 0;
138 virtual void visit(Visitor fn)
const = 0;
152 virtual void markModified(
const resource::PersistentObject::Ptr& obj) = 0;
181 std::atomic<GenerationNumber> m_lastModified;
187 #endif // smtk_geometry_Geometry_h
The main namespace for the Simulation Modeling Tool Kit (SMTK).
Definition: doc.h:33
std::unique_ptr< smtk::geometry::Geometry > UniquePtr
The return type of the geometry-provider generator class.
Definition: Geometry.h:97
std::tuple< smtk::resource::ResourcePtr, const smtk::geometry::Backend & > Specification
The data needed to request a geometry provider (a resource and backend).
Definition: Geometry.h:91
virtual bool readLockRequired() const
Return true if the resource owning this geometryProvider must be read-locked before rendering prep.
Definition: Geometry.h:136
An API for computing the bounding box for a geometric resource or component.
Definition: BoundingBox.h:30
std::function< bool(const resource::PersistentObject::Ptr &, GenerationNumber)> Visitor
The signature of functions used to visit all objects with tessellation data.
Definition: Geometry.h:85
GenerationNumber lastModified() const
Indication of when the geometry has last been updated.
Definition: Geometry.h:123
#define smtkEnableSharedPtr(...)
An abbreviation for enabling shared pointers.
Definition: SharedFromThis.h:214
std::array< double, 6 > BoundingBox
A bounding box is represented as an array of 6 numbers, ordered xmin, xmax, ymin, ymax,...
Definition: Geometry.h:82
Definition: CopyOptions.h:31
A base class for objects which can provide renderable geometry.
Definition: Geometry.h:64
This is an empty class used by geometry providers to specify their interface.
Definition: Backend.h:28
std::shared_ptr< Resource > ResourcePtr
Definition: PublicPointerDefs.h:337
#define smtkTypeMacroBase(...)
Add typedefs to a class for identifcation.
Definition: SharedFromThis.h:131
size_t GenerationNumber
An integral type to hold monotonically increasing generation numbers (a.k.a.
Definition: Geometry.h:72