|
OWL
OptiX7 Wrapper Library
|
#include <InstanceGroup.h>
Classes | |
| struct | DeviceData |
Public Types | |
| typedef std::shared_ptr< InstanceGroup > | SP |
Public Types inherited from owl::Group | |
| 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 | |
| InstanceGroup (Context *const context, size_t numChildren, Group::SP *groups) | |
| std::string | toString () const override |
| void | setChild (int childID, Group::SP child) |
| void | setTransform (int childID, const affine3f &xfm) |
| void | setTransforms (uint32_t timeStep, const float *floatsForThisStimeStep, OWLMatrixFormat matrixFormat) |
| void | setInstanceIDs (const uint32_t *instanceIDs) |
| void | buildAccel () override |
| void | refitAccel () override |
| RegisteredObject::DeviceData::SP | createOn (const DeviceContext::SP &device) override |
| DeviceData & | getDD (const DeviceContext::SP &device) const |
| template<bool FULL_REBUILD> | |
| void | staticBuildOn (const DeviceContext::SP &device) |
| template<bool FULL_REBUILD> | |
| void | motionBlurBuildOn (const DeviceContext::SP &device) |
| int | getSBTOffset () const override |
Public Member Functions inherited from owl::Group | |
| Group (Context *const context, ObjectRegistry ®istry) | |
| DeviceData & | getDD (const DeviceContext::SP &device) const |
| RegisteredObject::DeviceData::SP | createOn (const DeviceContext::SP &device) override |
| OptixTraversableHandle | getTraversable (const DeviceContext::SP &device) const |
Public Member Functions inherited from owl::RegisteredObject | |
| RegisteredObject (Context *const context, ObjectRegistry ®istry) | |
| ~RegisteredObject () | |
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 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 | |
| std::vector< Group::SP > | children |
| std::vector< affine3f > | transforms [2] |
| std::vector< uint32_t > | instanceIDs |
Public Attributes inherited from owl::Group | |
| 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 |
a OWL Group / BVH over instances (i.e., a IAS)
| typedef std::shared_ptr<InstanceGroup> owl::InstanceGroup::SP |
| owl::InstanceGroup::InstanceGroup | ( | Context *const | context, |
| size_t | numChildren, | ||
| Group::SP * | groups | ||
| ) |
construct with given array of groups - transforms can be specified later
|
overridevirtual |
re*build* this accel - actual work depens on subclass
Implements owl::Group.
|
override |
creates the device-specific data for this group
|
inline |
get reference to given device-specific data for this object
|
inlineoverridevirtual |
return the SBT offset to use for this group - SBT offsets for instnace groups are always 0
Implements owl::Group.
| void owl::InstanceGroup::motionBlurBuildOn | ( | const DeviceContext::SP & | device | ) |
the N build inputs that go into the builder
|
overridevirtual |
re*fit* this accel - actual work depens on subclass
Implements owl::Group.
| void owl::InstanceGroup::setChild | ( | int | childID, |
| Group::SP | child | ||
| ) |
set given child to given group
| void owl::InstanceGroup::setInstanceIDs | ( | const uint32_t * | instanceIDs | ) |
| void owl::InstanceGroup::setTransform | ( | int | childID, |
| const affine3f & | xfm | ||
| ) |
set transformation matrix of given child
| void owl::InstanceGroup::setTransforms | ( | uint32_t | timeStep, |
| const float * | floatsForThisStimeStep, | ||
| OWLMatrixFormat | matrixFormat | ||
| ) |
set transformation matrix of given child
| void owl::InstanceGroup::staticBuildOn | ( | const DeviceContext::SP & | device | ) |
the N build inputs that go into the builder
|
overridevirtual |
pretty-printer, for printf-debugging
Reimplemented from owl::Group.
| std::vector<Group::SP> owl::InstanceGroup::children |
the list of children - note we do have to keep them both in the ll layer and here for the refcounting to work; the transforms are only stored once, on the ll layer
| std::vector<uint32_t> owl::InstanceGroup::instanceIDs |
vector of instnace IDs to use for these instances - if not specified we/optix will fill in automatically using instanceID=childID
| std::vector<affine3f> owl::InstanceGroup::transforms[2] |
set of transform matrices for t=0 and t=1, respectively. if we don't use motion blur, the second one may be unused