OWL
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
owl::Group Struct Referenceabstract

#include <Group.h>

Inheritance diagram for owl::Group:
owl::RegisteredObject owl::ContextObject owl::Object owl::GeomGroup owl::InstanceGroup owl::CurvesGeomGroup owl::SphereGeomGroup owl::TrianglesGeomGroup owl::UserGeomGroup

Classes

struct  DeviceData
 

Public Types

typedef std::shared_ptr< GroupSP
 
- Public Types inherited from owl::ContextObject
typedef std::shared_ptr< ContextObjectSP
 
- Public Types inherited from owl::Object
typedef std::shared_ptr< ObjectSP
 

Public Member Functions

 Group (Context *const context, ObjectRegistry &registry)
 
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
 
DeviceDatagetDD (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 &registry)
 
- 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
 
ObjectRegistryregistry
 
- 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
 

Detailed Description

abstract base class for any sort of group (ie, BVH), BLAS'es and IAS'es will be derived from this class

Constructor & Destructor Documentation

◆ Group()

owl::Group::Group ( Context *const  context,
ObjectRegistry registry 
)

constructor, that registers this group in the context's registry

Member Function Documentation

◆ buildAccel()

virtual void owl::Group::buildAccel ( LaunchParams::SP  launchParams = nullptr)
pure virtual

re*build* this accel - actual work depens on subclass

Implemented in owl::CurvesGeomGroup, owl::InstanceGroup, owl::SphereGeomGroup, owl::TrianglesGeomGroup, and owl::UserGeomGroup.

◆ createOn()

RegisteredObject::DeviceData::SP owl::Group::createOn ( const DeviceContext::SP &  device)
override

creates the device-specific data for this group

◆ getAccelSize()

void owl::Group::getAccelSize ( size_t &  memFinal,
size_t &  memPeak 
)
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.

◆ getDD()

Group::DeviceData & owl::Group::getDD ( const DeviceContext::SP &  device) const
inline

get reference to given device-specific data for this object

◆ getSBTOffset()

virtual int owl::Group::getSBTOffset ( ) const
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.

◆ getTraversable()

OptixTraversableHandle owl::Group::getTraversable ( const DeviceContext::SP &  device) const
inline

returns the (device-specific) optix traversable handle to traverse this group

◆ refitAccel()

virtual void owl::Group::refitAccel ( LaunchParams::SP  launchParams = nullptr)
pure virtual

re*fit* this accel - actual work depens on subclass

Implemented in owl::CurvesGeomGroup, owl::InstanceGroup, owl::SphereGeomGroup, owl::TrianglesGeomGroup, and owl::UserGeomGroup.

◆ toString()

std::string owl::Group::toString ( ) const
overridevirtual

pretty-printer, for printf-debugging

Reimplemented from owl::Object.

Reimplemented in owl::GeomGroup, owl::UserGeomGroup, owl::InstanceGroup, owl::SphereGeomGroup, and owl::TrianglesGeomGroup.

Member Data Documentation

◆ bounds

box3f owl::Group::bounds[2]

bounding box for t=0 and t=1; for motion blur.


The documentation for this struct was generated from the following files: