OWL
|
#include <Group.h>
Classes | |
struct | DeviceData |
Public Types | |
typedef std::shared_ptr< Group > | SP |
Public Types inherited from owl::ContextObject | |
typedef std::shared_ptr< ContextObject > | SP |
Public Types inherited from owl::Object | |
typedef std::shared_ptr< Object > | SP |
Public Member Functions | |
Group (Context *const context, ObjectRegistry ®istry) | |
std::string | toString () const override |
virtual void | buildAccel (LaunchParams::SP launchParams=nullptr)=0 |
virtual void | refitAccel (LaunchParams::SP launchParams=nullptr)=0 |
virtual int | getSBTOffset () const =0 |
DeviceData & | getDD (const DeviceContext::SP &device) const |
RegisteredObject::DeviceData::SP | createOn (const DeviceContext::SP &device) override |
OptixTraversableHandle | getTraversable (const DeviceContext::SP &device) const |
void | getAccelSize (size_t &memFinal, size_t &memPeak) |
Public Member Functions inherited from owl::RegisteredObject | |
RegisteredObject (Context *const context, ObjectRegistry ®istry) | |
Public Member Functions inherited from owl::ContextObject | |
ContextObject (Context *const context) | |
std::string | toString () const override |
Public Member Functions inherited from owl::Object | |
Object () | |
virtual std::string | toString () const |
virtual DeviceData::SP | createOn (const std::shared_ptr< DeviceContext > &device) |
void | createDeviceData (const std::vector< std::shared_ptr< DeviceContext > > &devices) |
template<typename T > | |
std::shared_ptr< T > | as () |
Public Attributes | |
box3f | bounds [2] |
Public Attributes inherited from owl::RegisteredObject | |
int | ID |
ObjectRegistry & | registry |
Public Attributes inherited from owl::ContextObject | |
Context *const | context |
Public Attributes inherited from owl::Object | |
const size_t | uniqueID |
std::vector< DeviceData::SP > | deviceData |
Additional Inherited Members | |
Static Public Attributes inherited from owl::Object | |
static std::atomic< uint64_t > | nextAvailableID |
abstract base class for any sort of group (ie, BVH), BLAS'es and IAS'es will be derived from this class
owl::Group::Group | ( | Context *const | context, |
ObjectRegistry & | registry | ||
) |
constructor, that registers this group in the context's registry
|
pure virtual |
re*build* this accel - actual work depens on subclass
Implemented in owl::CurvesGeomGroup, owl::InstanceGroup, owl::SphereGeomGroup, owl::TrianglesGeomGroup, and owl::UserGeomGroup.
|
override |
creates the device-specific data for this group
|
inline |
returns the (device) memory used for this group's acceleration structure (but excluding the memory for the geometries itself). "memFinal" is how much memory is used for the final version of the BVH (after it is done building), "memPeak" is peak memory used during construction. passing a NULL pointer to any value is valid; these values will get ignored.
|
inline |
get reference to given device-specific data for this object
|
pure virtual |
return the SBT offset (ie, the offset at which the geometries within this group will be written into the Shader Binding Table)
Implemented in owl::GeomGroup, and owl::InstanceGroup.
|
inline |
returns the (device-specific) optix traversable handle to traverse this group
|
pure virtual |
re*fit* this accel - actual work depens on subclass
Implemented in owl::CurvesGeomGroup, owl::InstanceGroup, owl::SphereGeomGroup, owl::TrianglesGeomGroup, and owl::UserGeomGroup.
|
overridevirtual |
pretty-printer, for printf-debugging
Reimplemented from owl::Object.
Reimplemented in owl::GeomGroup, owl::UserGeomGroup, owl::InstanceGroup, owl::SphereGeomGroup, and owl::TrianglesGeomGroup.
box3f owl::Group::bounds[2] |
bounding box for t=0 and t=1; for motion blur.