HDK
|
#include <GU_AgentBlendShapeUtils.h>
Public Member Functions | |
bool | reset (const GU_Detail &base_shape, const GU_AgentShapeLib &shapelib, const GU_AgentRig *rig, UT_StringHolder *warnings=nullptr) |
exint | numInputs () const |
Returns the number of blendshape inputs (primary shapes). More... | |
exint | inputChannelIndex (exint i) const |
Returns the GU_AgentRig channel index for the specified input. More... | |
const UT_StringHolder & | primaryShapeName (exint i) const |
Returns the name of the primary target shape for the specified input. More... | |
void | getInBetweenShapes (exint i, UT_StringArray &shape_names, FloatArray &shape_weights) const |
void | getShapes (exint i, FloatType w, UT_Array< const GU_Detail * > &shapes, FloatArray &weights) const |
exint | numTargetShapes () const |
The total number of primary and in-between shapes. More... | |
UT_Array< GU_ConstDetailHandle > | targetShapes () const |
Returns a list of the geometry for the target shapes. More... | |
int | fillTargetShapeWeights (const FloatType *channel_values, std::pair< int32, fpreal32 > *target_weights) const |
Definition at line 63 of file GU_AgentBlendShapeUtils.h.
int GU_AgentBlendShapeUtils::InputCache::fillTargetShapeWeights | ( | const FloatType * | channel_values, |
std::pair< int32, fpreal32 > * | target_weights | ||
) | const |
Fill a buffer (of max length numTargetShapes()) with the index and weight for each active target shape based on the provided rig channel values. Returns the number of active target shapes.
void GU_AgentBlendShapeUtils::InputCache::getInBetweenShapes | ( | exint | i, |
UT_StringArray & | shape_names, | ||
FloatArray & | shape_weights | ||
) | const |
Returns the names and weights of the in-between target shapes for the specified input (i.e. shapes with weight 0 or 1 are skipped).
void GU_AgentBlendShapeUtils::InputCache::getShapes | ( | exint | i, |
FloatType | w, | ||
UT_Array< const GU_Detail * > & | shapes, | ||
FloatArray & | weights | ||
) | const |
Appends to the provided list of shapes and weights, given an input index and weight value. When there are in-between shapes this selects the appropriate pair of shapes to blend between based on the provided weight.
Returns the GU_AgentRig channel index for the specified input.
Definition at line 78 of file GU_AgentBlendShapeUtils.h.
|
inline |
Returns the number of blendshape inputs (primary shapes).
Definition at line 75 of file GU_AgentBlendShapeUtils.h.
|
inline |
The total number of primary and in-between shapes.
Definition at line 99 of file GU_AgentBlendShapeUtils.h.
const UT_StringHolder& GU_AgentBlendShapeUtils::InputCache::primaryShapeName | ( | exint | i | ) | const |
Returns the name of the primary target shape for the specified input.
bool GU_AgentBlendShapeUtils::InputCache::reset | ( | const GU_Detail & | base_shape, |
const GU_AgentShapeLib & | shapelib, | ||
const GU_AgentRig * | rig, | ||
UT_StringHolder * | warnings = nullptr |
||
) |
Populates the cache. If the optional rig is not provided, inputChannelIndex() will be invalid.
UT_Array<GU_ConstDetailHandle> GU_AgentBlendShapeUtils::InputCache::targetShapes | ( | ) | const |
Returns a list of the geometry for the target shapes.