SMTK
@SMTK_VERSION@
Simulation Modeling Tool Kit
|
A base class for objects which can provide renderable geometry in a specific format. More...
#include <GeometryForBackend.h>
Public Types | |
using | DataType = Format |
Public Types inherited from smtk::geometry::Geometry | |
using | GenerationNumber = size_t |
An integral type to hold monotonically increasing generation numbers (a.k.a. More... | |
using | BoundingBox = std::array< double, 6 > |
A bounding box is represented as an array of 6 numbers, ordered xmin, xmax, ymin, ymax, zmin, zmax. | |
using | Visitor = std::function< bool(const resource::PersistentObject::Ptr &, GenerationNumber)> |
The signature of functions used to visit all objects with tessellation data. | |
using | Specification = std::tuple< smtk::resource::ResourcePtr, const smtk::geometry::Backend & > |
The data needed to request a geometry provider (a resource and backend). More... | |
using | UniquePtr = std::unique_ptr< smtk::geometry::Geometry > |
The return type of the geometry-provider generator class. More... | |
Public Member Functions | |
smtkTypeMacro (GeometryForBackend) | |
smtkSuperclassMacro (Geometry) | |
virtual void | update () const |
virtual void | geometricBounds (const Format &, BoundingBox &) const =0 |
virtual Format & | data (const resource::PersistentObject::Ptr &) const =0 |
Return the data associated with an object. More... | |
Public Member Functions inherited from smtk::geometry::Geometry | |
smtkTypeMacroBase (Geometry) | |
virtual const Backend & | backend () const =0 |
Every provider must indicate the backend for which it is specialized. | |
virtual ResourcePtr | resource () const =0 |
Every provider must indicate the resource it provides geometry for. | |
GenerationNumber | lastModified () const |
Indication of when the geometry has last been updated. More... | |
virtual GenerationNumber | generationNumber (const resource::PersistentObject::Ptr &) const =0 |
Query methods. More... | |
virtual void | bounds (const resource::PersistentObject::Ptr &, BoundingBox &bds) const =0 |
Populate the bounds (bds) with the given object's bounds. | |
virtual bool | readLockRequired () const |
Return true if the resource owning this geometryProvider must be read-locked before rendering prep. More... | |
virtual void | visit (Visitor fn) const =0 |
Visit each persistent object that has renderable geometry. | |
virtual void | markModified (const resource::PersistentObject::Ptr &obj)=0 |
Modfication methods. More... | |
virtual bool | erase (const smtk::common::UUID &uid)=0 |
Inform the geometry provider that an object is about to be or has been deleted. More... | |
Additional Inherited Members | |
Static Public Attributes inherited from smtk::geometry::Geometry | |
static constexpr GenerationNumber | Invalid = std::numeric_limits<GenerationNumber>::lowest() |
A special generation number that marks an object as having no geometric representation. | |
static constexpr GenerationNumber | Initial = std::numeric_limits<GenerationNumber>::lowest() + 1 |
The lowest valid generation number (which may be used as the initial value). | |
Protected Attributes inherited from smtk::geometry::Geometry | |
std::atomic< GenerationNumber > | m_lastModified |
A base class for objects which can provide renderable geometry in a specific format.
All concrete geometry providers should inherit this class; it exists so that rendering backends can cast providers to a subclass that allows geometry to be fetched in a format they can handle.
The template parameter must be a type (struct, class, or primitive type) that meets the following requirements:
Additionally, it is preferable (but not required) for the template parameter type to be move-constructible.
|
pure virtual |
Return the data associated with an object.
Only call this method after ensuring that generationNumber(obj) != Invalid.