HDK
|
#include <RAY_Procedural.h>
Friends | |
class | RAY_Procedural |
class | RAY_ProceduralChild |
Additional Inherited Members | |
Protected Member Functions inherited from RAY_ROProceduralGeo | |
RAY_ROProceduralGeo (RAY_Procedural *proc, bool writeable) | |
RAY_ROProceduralGeo (RAY_Procedural *proc, const GU_ConstDetailHandle *gdh, int nsegments, const fpreal *shutter_times, bool writeable) | |
bool | setGeometry (const GU_ConstDetailHandle &gdh) |
bool | setGeometry (const GU_ConstDetailHandle *gdh, int nsegments) |
Protected Attributes inherited from RAY_ROProceduralGeo | |
UT_SharedPtr< Data > | myData |
RAY_ProceduralGeo is a read-write handle on mantra's geometry.
You can create these handles by calling RAY_Procedural::createGeometry() and then access the underlying GU_Detail, creating or manipulating geometry.
It's also possible to add motion segments to the geometry in one of three ways:
Definition at line 259 of file RAY_Procedural.h.
|
inline |
Default constructor.
Definition at line 263 of file RAY_Procedural.h.
|
inline |
Copy c-tor.
Definition at line 266 of file RAY_Procedural.h.
|
override |
Destructor.
fpreal RAY_ProceduralGeo::addVelocityBlur | ( | fpreal | pre_blur, |
fpreal | post_blur, | ||
const UT_StringHolder & | velocity_attribute = UTmakeUnsafeRef("v") , |
||
int | acceleration_segments = 1 , |
||
const UT_StringHolder & | acceleration_attribute = UT_StringHolder() |
||
) |
Add motion blur based on the velocity attribute. This returns the maximum velocity displacement (for bounding box computation). The displacement is cached and can be retrieved by calling velocityBounds()
.
The method will returns -1 if the geometry has been locked (passed to mantra). This should be considered an error.
GA_Attribute* RAY_ProceduralGeo::appendSegmentAttribute | ( | fpreal | shutter, |
const char * | name = "P" |
||
) |
Add a motion segment for the given attribute. This returns the motion segment. Note that adding motion segments this way doesn't capture per-primitive transforms (i.e. quadrics, packed primitives, etc.)
The shutter times for all segments should be sequential and added in increasing order. A warning will be printed if the segments are added out of order.
The method will return a nullptr
if the geometry has been locked (passed to mantra).
This method may return a "detached" attribute. The method should be called after the original geometry attributes have been created so the length of the segment attribute is the correct length.
GU_DetailHandle RAY_ProceduralGeo::appendSegmentGeometry | ( | fpreal | shutter | ) |
Append a motion segment.
The shutter times for all segments should be sequential and added in increasing order. A warning will be printed if the segments are added out of order.
The method will return an invalid GU_DetailHandle if the geometry has been locked (passed to mantra).
bool RAY_ProceduralGeo::changeSetting | ( | const UT_StringRef & | name, |
int | argc, | ||
const char *const * | argv | ||
) |
Change a geometry setting:
changeSetting(const char *name, int argc, char **argv)
changeSetting(const char *name, int argc, int *argv)
changeSetting(const char *name, int argc, fpreal *argv)
If the setting specified by "name" isn't found, the function will fail (return false).Some settings which can be changed on geometry include:
bool RAY_ProceduralGeo::changeSetting | ( | const UT_StringRef & | name, |
int | argc, | ||
const UT_StringHolder * | argv | ||
) |
Change a geometry setting:
changeSetting(const char *name, int argc, char **argv)
changeSetting(const char *name, int argc, int *argv)
changeSetting(const char *name, int argc, fpreal *argv)
If the setting specified by "name" isn't found, the function will fail (return false).Some settings which can be changed on geometry include:
bool RAY_ProceduralGeo::changeSetting | ( | const UT_StringRef & | name, |
int | argc, | ||
const int * | argv | ||
) |
Change a geometry setting:
changeSetting(const char *name, int argc, char **argv)
changeSetting(const char *name, int argc, int *argv)
changeSetting(const char *name, int argc, fpreal *argv)
If the setting specified by "name" isn't found, the function will fail (return false).Some settings which can be changed on geometry include:
bool RAY_ProceduralGeo::changeSetting | ( | const UT_StringRef & | name, |
int | argc, | ||
const fpreal * | argv | ||
) |
Change a geometry setting:
changeSetting(const char *name, int argc, char **argv)
changeSetting(const char *name, int argc, int *argv)
changeSetting(const char *name, int argc, fpreal *argv)
If the setting specified by "name" isn't found, the function will fail (return false).Some settings which can be changed on geometry include:
Standard "pointer" operations
GU_DetailHandle RAY_ProceduralGeo::handle | ( | int | segment = 0 | ) | const |
Access the geometry using a GU_DetailHandle. If the geometry is locked, this method will return an invalid handle. The geometry will be locked if it's already been passed to mantra.
|
inline |
Standard "pointer" operations
Definition at line 282 of file RAY_Procedural.h.
|
inline |
Standard "pointer" operations
Definition at line 281 of file RAY_Procedural.h.
|
inline |
Definition at line 273 of file RAY_Procedural.h.
bool RAY_ProceduralGeo::removeSegmentGeometry | ( | const GU_ConstDetailHandle & | geo | ) |
Remove a motion segment that was added with appendSegmentGeometry()
The method will return an invalid GU_DetailHandle if the geometry has been locked (passed to mantra).
bool RAY_ProceduralGeo::setHandle | ( | GU_ConstDetailHandle & | gdh | ) |
Set the geometry for the first motion segment. This method will fail if there are any motion segments already. This will delete any geometry already assigned to the object.
Set the shutter start value. This should be set before any motion segments are added to the geometry. The default shutter open is 0.
|
friend |
Definition at line 376 of file RAY_Procedural.h.
|
friend |
Definition at line 377 of file RAY_Procedural.h.