static
bool
_TranslateAnimatedUsdAttributeToPlugs(
        const UsdAttribute& usdAttr,
        MPlug& plug1,
        MPlug& plug2,
        const UsdMayaPrimReaderArgs& args,
        UsdMayaPrimReaderContext* context)
{
    if (args.GetTimeInterval().IsEmpty()) {
        return false;
    }

    MTimeArray timeArray;
    MDoubleArray valueArray1;
    MDoubleArray valueArray2;
    if (!_GetTimeAndValueArraysForUsdAttribute(usdAttr,
                                               args.GetTimeInterval(),
                                               &timeArray,
                                               &valueArray1,
                                               &valueArray2)) {
        return false;
    }

    if (!_CreateAnimCurveForPlug(plug1, timeArray, valueArray1, context)) {
        return false;
    }

    if (!_CreateAnimCurveForPlug(plug2, timeArray, valueArray2, context)) {
        return false;
    }

    return true;
}
static
bool
_TranslateAnimatedUsdAttributeToPlug(
        const UsdAttribute& usdAttr,
        MPlug& plug,
        const UsdMayaPrimReaderArgs& args,
        UsdMayaPrimReaderContext* context,
        const MDistance::Unit convertToUnit = MDistance::kMillimeters)
{
    if (args.GetTimeInterval().IsEmpty()) {
        return false;
    }

    MTimeArray timeArray;
    MDoubleArray valueArray;
    if (!_GetTimeAndValueArrayForUsdAttribute(usdAttr,
                                              args.GetTimeInterval(),
                                              &timeArray,
                                              &valueArray,
                                              convertToUnit)) {
        return false;
    }

    if (!_CreateAnimCurveForPlug(plug, timeArray, valueArray, context)) {
        return false;
    }

    return true;
}
Beispiel #3
0
static
bool
_TranslateAnimatedUsdAttributeToPlug(
        const UsdAttribute& usdAttr,
        MPlug& plug,
        const PxrUsdMayaPrimReaderArgs& args,
        PxrUsdMayaPrimReaderContext* context,
        bool millimetersToInches=false)
{
    if (!args.GetReadAnimData()) {
        return false;
    }

    MTimeArray timeArray;
    MDoubleArray valueArray;
    if (!_GetTimeAndValueArrayForUsdAttribute(usdAttr,
                                                 args,
                                                 &timeArray,
                                                 &valueArray,
                                                 millimetersToInches)) {
        return false;
    }

    if (!_CreateAnimCurveForPlug(plug, timeArray, valueArray, context)) {
        return false;
    }

    return true;
}