30 typedef std::shared_ptr<UserGeomType> SP;
35 typedef std::shared_ptr<DeviceData> SP;
44 int rayType)
override;
59 const std::vector<OWLVarDecl> &
varDecls);
64 const std::string &progName);
68 const std::string &progName);
72 const std::string &progName);
91 RegisteredObject::DeviceData::SP
createOn(
const DeviceContext::SP &device)
override;
110 typedef std::shared_ptr<UserGeom> SP;
134 bool useExternalBoundsBuffer =
false;
139 GeomType::SP geometryType);
142 RegisteredObject::DeviceData::SP
createOn(
const DeviceContext::SP &device)
override;
181 assert(device && device->ID >= 0 && device->ID < (
int)
deviceData.size());
189 assert(device && device->ID >= 0 && device->ID < (
int)
deviceData.size());
Definition: DeviceMemory.h:23
Definition: Geometry.h:48
Definition: Geometry.h:41
Definition: Geometry.h:108
DeviceContext::SP device
Definition: Object.h:53
std::vector< DeviceData::SP > deviceData
Definition: Object.h:86
Definition: Geometry.h:31
const std::vector< OWLVarDecl > varDecls
Definition: SBTObject.h:70
const size_t varStructSize
Definition: SBTObject.h:66
std::shared_ptr< GeomType > const type
Definition: SBTObject.h:134
Definition: UserGeom.h:34
DeviceData(const DeviceContext::SP &device)
void fillPGDesc(OptixProgramGroupDesc &pgDesc, GeomType *gt, int rayType) override
CUfunction boundsFuncKernel
Definition: UserGeom.h:48
CUfunction motionBoundsFuncKernel
Definition: UserGeom.h:52
Definition: UserGeom.h:29
std::vector< ProgramDesc > intersectProg
Definition: UserGeom.h:101
ProgramDesc boundsProg
Definition: UserGeom.h:94
std::string toString() const override
UserGeomType(Context *const context, size_t varStructSize, const std::vector< OWLVarDecl > &varDecls)
void setBoundsProg(Module::SP module, const std::string &progName)
void buildMotionBoundsProg()
void setIntersectProg(int rayType, Module::SP module, const std::string &progName)
ProgramDesc motionBoundsProg
Definition: UserGeom.h:97
RegisteredObject::DeviceData::SP createOn(const DeviceContext::SP &device) override
DeviceData & getDD(const DeviceContext::SP &device) const
Definition: UserGeom.h:179
void setMotionBoundsProg(Module::SP module, const std::string &progName)
virtual std::shared_ptr< Geom > createGeom() override
Definition: UserGeom.h:114
DeviceMemory internalBufferForBoundsProgram
Definition: UserGeom.h:123
DeviceMemory tempMem
Definition: UserGeom.h:130
DeviceMemory internalBufferForBoundsProgramKey1
Definition: UserGeom.h:126
Definition: UserGeom.h:109
void setMotionBoundsBuffers(Buffer::SP buffer1, Buffer::SP buffer2)
UserGeom(Context *const context, GeomType::SP geometryType)
DeviceData & getDD(const DeviceContext::SP &device)
Definition: UserGeom.h:187
void setBoundsBuffer(Buffer::SP buffer)
std::string toString() const override
void setPrimCount(size_t count)
void executeBoundsProgOnPrimitives(const DeviceContext::SP &device)
UserGeomType::DeviceData & getTypeDD(const DeviceContext::SP &device) const
Definition: UserGeom.h:195
void executeMotionBoundsProgOnPrimitives(const DeviceContext::SP &device)
size_t primCount
Definition: UserGeom.h:169
RegisteredObject::DeviceData::SP createOn(const DeviceContext::SP &device) override