19#include "RegisteredObject.h"
42 typedef std::shared_ptr<GeomType> SP;
48 struct DeviceData :
public RegisteredObject::DeviceData {
49 typedef std::shared_ptr<DeviceData> SP;
60 virtual void fillPGDesc(OptixProgramGroupDesc &pgDesc,
64 std::vector<OptixProgramGroup>
hgPGs;
72 const std::vector<OWLVarDecl> &
varDecls);
75 std::string
toString()
const override;
81 RegisteredObject::DeviceData::SP
createOn(
const DeviceContext::SP &device)
override;
91 const std::string &progName);
96 const std::string &progName);
109 typedef std::shared_ptr<Geom> SP;
115 std::string
toString()
const override;
121 uint8_t *
const sbtRecord,
124 const DeviceContext::SP &device,
141 assert(device && device->ID >= 0 && device->ID < (
int)
deviceData.size());
Definition: Geometry.h:48
void buildHitGroupPrograms(GeomType *gt)
std::vector< OptixProgramGroup > hgPGs
Definition: Geometry.h:64
virtual void fillPGDesc(OptixProgramGroupDesc &pgDesc, GeomType *gt, int rayType)
Definition: Geometry.cpp:33
Definition: Geometry.h:41
virtual std::shared_ptr< Geom > createGeom()=0
DeviceData & getDD(const DeviceContext::SP &device) const
Definition: Geometry.h:139
std::string toString() const override
Definition: Geometry.cpp:78
void setAnyHitProgram(int rayType, Module::SP module, const std::string &progName)
Definition: Geometry.cpp:95
std::vector< ProgramDesc > closestHit
Definition: Geometry.h:99
std::vector< ProgramDesc > anyHit
Definition: Geometry.h:102
void setClosestHitProgram(int rayType, Module::SP module, const std::string &progName)
Definition: Geometry.cpp:84
RegisteredObject::DeviceData::SP createOn(const DeviceContext::SP &device) override
Definition: Geometry.cpp:72
Definition: Geometry.h:108
std::string toString() const override
Definition: Geometry.cpp:118
void writeSBTRecord(uint8_t *const sbtRecord, const DeviceContext::SP &device, int rayTypeID)
Definition: Geometry.cpp:127
GeomType::SP geomType
Definition: Geometry.h:131
std::vector< DeviceData::SP > deviceData
Definition: Object.h:86
Definition: Geometry.h:31
Definition: SBTObject.h:33
const std::vector< OWLVarDecl > varDecls
Definition: SBTObject.h:70
const size_t varStructSize
Definition: SBTObject.h:66
Definition: SBTObject.h:118