OWL
|
#include <CurvesGeom.h>
Classes | |
struct | DeviceData |
Public Types | |
typedef std::shared_ptr< CurvesGeomType > | SP |
Public Types inherited from owl::GeomType | |
typedef std::shared_ptr< GeomType > | SP |
Public Types inherited from owl::SBTObjectType | |
typedef std::shared_ptr< SBTObjectType > | 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 | |
CurvesGeomType (Context *const context, size_t varStructSize, const std::vector< OWLVarDecl > &varDecls) | |
std::string | toString () const override |
std::shared_ptr< Geom > | createGeom () override |
DeviceData & | getDD (const DeviceContext::SP &device) const |
RegisteredObject::DeviceData::SP | createOn (const DeviceContext::SP &device) override |
void | setDegree (int degree, bool force_caps) |
Public Member Functions inherited from owl::GeomType | |
GeomType (Context *const context, size_t varStructSize, const std::vector< OWLVarDecl > &varDecls) | |
std::string | toString () const override |
DeviceData & | getDD (const DeviceContext::SP &device) const |
RegisteredObject::DeviceData::SP | createOn (const DeviceContext::SP &device) override |
virtual std::shared_ptr< Geom > | createGeom ()=0 |
void | setAnyHitProgram (int rayType, Module::SP module, const std::string &progName) |
void | setClosestHitProgram (int rayType, Module::SP module, const std::string &progName) |
Public Member Functions inherited from owl::SBTObjectType | |
SBTObjectType (Context *const context, ObjectRegistry ®istry, size_t varStructSize, const std::vector< OWLVarDecl > &varDecls) | |
virtual | ~SBTObjectType () |
int | getVariableIdx (const std::string &varName) |
bool | hasVariable (const std::string &varName) |
std::string | toString () const override |
void | declareVariable (const std::string &varName, OWLDataType type, size_t offset) |
std::vector< Variable::SP > | instantiateVariables () |
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 | |
int | degree = 3 |
bool | forceCaps = false |
Public Attributes inherited from owl::GeomType | |
std::vector< ProgramDesc > | closestHit |
std::vector< ProgramDesc > | anyHit |
Public Attributes inherited from owl::SBTObjectType | |
const size_t | varStructSize |
const std::vector< OWLVarDecl > | varDecls |
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 geometry type that uses optix 'curves' primitives, and that captures the anyhit and closesthit programs, variable types, SBT layout, etc, associated with all instances of this type
|
overridevirtual |
create an instance of tihs geometry - abstract, since the actual class to create depends on what kind of geometry this is
Implements owl::GeomType.
|
override |
create this object's device-specific data for the device
|
inline |
get reference to given device-specific data for this object
|
inlineoverridevirtual |
pretty-print
Reimplemented from owl::Object.
int owl::CurvesGeomType::degree = 3 |
curve degree - linear (1), quadratic (2), or cubic (3)
bool owl::CurvesGeomType::forceCaps = false |
if true, we tell optix to add curve caps on qudratc and cubic segments (which by default wll not have caps). Ignored for linear segments, which always have caps