@@ -612,7 +612,12 @@ void GetExtensionAttributesFromNode(
612612 short value = attrPlug.asShort ();
613613 short defaultVal = 0 ;
614614 enumAttr.getDefault (defaultVal);
615- UpdateAttrs<short >(attrName, value, defaultVal, attrs);
615+ UpdateAttrsValue (
616+ attrName,
617+ VtValue (value),
618+ VtValue (defaultVal),
619+ !ignoreDefault,
620+ attrs);
616621 } break ;
617622 case MFn::kTypedAttribute : {
618623 MFnTypedAttribute typeAttr (attrObj);
@@ -623,7 +628,12 @@ void GetExtensionAttributesFromNode(
623628 typeAttr.getDefault (defaultValObj);
624629 MFnStringData defaultStringData (defaultValObj);
625630 MString defaultVal = defaultStringData.string ();
626- UpdateAttrs<MString>(attrName, value, defaultVal, attrs);
631+ UpdateAttrsValue (
632+ attrName,
633+ VtValue (value),
634+ VtValue (defaultVal),
635+ !ignoreDefault,
636+ attrs);
627637 } break ;
628638 case MFnData::kStringArray : {
629639 const auto valueArray
@@ -634,10 +644,11 @@ void GetExtensionAttributesFromNode(
634644 const auto defaultArray
635645 = GetArrayFromObject<MStringArray, MFnStringArrayData>(defaultObj);
636646
637- UpdateAttrs<VtStringArray> (
647+ UpdateAttrsValue (
638648 attrName,
639- ToVtStringArray (valueArray),
640- ToVtStringArray (defaultArray),
649+ VtValue (ToVtStringArray (valueArray)),
650+ VtValue (ToVtStringArray (defaultArray)),
651+ !ignoreDefault,
641652 attrs);
642653 } break ;
643654 case MFnData::kIntArray : {
@@ -649,10 +660,11 @@ void GetExtensionAttributesFromNode(
649660 const auto defaultArray
650661 = GetArrayFromObject<MIntArray, MFnIntArrayData>(defaultObj);
651662
652- UpdateAttrs<VtIntArray> (
663+ UpdateAttrsValue (
653664 attrName,
654- ToVtIntArray (valueArray),
655- ToVtIntArray (defaultArray),
665+ VtValue (ToVtIntArray (valueArray)),
666+ VtValue (ToVtIntArray (defaultArray)),
667+ !ignoreDefault,
656668 attrs);
657669 } break ;
658670 case MFnData::kFloatArray : {
@@ -664,10 +676,11 @@ void GetExtensionAttributesFromNode(
664676 const auto defaultArray
665677 = GetArrayFromObject<MFloatArray, MFnFloatArrayData>(defaultObj);
666678
667- UpdateAttrs<VtFloatArray> (
679+ UpdateAttrsValue (
668680 attrName,
669- ToVtFloatArray (valueArray),
670- ToVtFloatArray (defaultArray),
681+ VtValue (ToVtFloatArray (valueArray)),
682+ VtValue (ToVtFloatArray (defaultArray)),
683+ !ignoreDefault,
671684 attrs);
672685 } break ;
673686 case MFnData::kDoubleArray : {
@@ -679,10 +692,11 @@ void GetExtensionAttributesFromNode(
679692 const auto defaultArray
680693 = GetArrayFromObject<MDoubleArray, MFnDoubleArrayData>(defaultObj);
681694
682- UpdateAttrs<VtDoubleArray> (
695+ UpdateAttrsValue (
683696 attrName,
684- ToVtDoubleArray (valueArray),
685- ToVtDoubleArray (defaultArray),
697+ VtValue (ToVtDoubleArray (valueArray)),
698+ VtValue (ToVtDoubleArray (defaultArray)),
699+ !ignoreDefault,
686700 attrs);
687701 } break ;
688702 case MFnData::kVectorArray : {
@@ -694,10 +708,11 @@ void GetExtensionAttributesFromNode(
694708 const auto defaultArray
695709 = GetArrayFromObject<MVectorArray, MFnVectorArrayData>(defaultObj);
696710
697- UpdateAttrs<VtArray<GfVec3d>> (
711+ UpdateAttrsValue (
698712 attrName,
699- ToVtVec3dArray (valueArray),
700- ToVtVec3dArray (defaultArray),
713+ VtValue (ToVtVec3dArray (valueArray)),
714+ VtValue (ToVtVec3dArray (defaultArray)),
715+ !ignoreDefault,
701716 attrs);
702717 } break ;
703718 case MFnData::kPointArray : {
@@ -709,10 +724,11 @@ void GetExtensionAttributesFromNode(
709724 const auto defaultArray
710725 = GetArrayFromObject<MPointArray, MFnPointArrayData>(defaultObj);
711726
712- UpdateAttrs<VtArray<GfVec4d>> (
727+ UpdateAttrsValue (
713728 attrName,
714- ToVtVec4dArray (valueArray),
715- ToVtVec4dArray (defaultArray),
729+ VtValue (ToVtVec4dArray (valueArray)),
730+ VtValue (ToVtVec4dArray (defaultArray)),
731+ !ignoreDefault,
716732 attrs);
717733 } break ;
718734 case MFnData::kMatrix : {
@@ -743,7 +759,12 @@ void GetExtensionAttributesFromNode(
743759 }
744760
745761 GfMatrix4d defaultVal = GetGfMatrixFromMaya (defaultData.matrix (&matrixStatus));
746- UpdateAttrs<GfMatrix4d>(attrName, value, defaultVal, attrs);
762+ UpdateAttrsValue (
763+ attrName,
764+ VtValue (value),
765+ VtValue (defaultVal),
766+ !ignoreDefault,
767+ attrs);
747768 } break ;
748769 case MFnData::kMatrixArray : {
749770 const auto valueArray
@@ -754,10 +775,11 @@ void GetExtensionAttributesFromNode(
754775 const auto defaultArray
755776 = GetArrayFromObject<MMatrixArray, MFnMatrixArrayData>(defaultObj);
756777
757- UpdateAttrs<VtArray<GfMatrix4d>> (
778+ UpdateAttrsValue (
758779 attrName,
759- ToVtMatrix4dArray (valueArray),
760- ToVtMatrix4dArray (defaultArray),
780+ VtValue (ToVtMatrix4dArray (valueArray)),
781+ VtValue (ToVtMatrix4dArray (defaultArray)),
782+ !ignoreDefault,
761783 attrs);
762784 } break ;
763785 case MFnData::kNumeric : {
@@ -774,7 +796,8 @@ void GetExtensionAttributesFromNode(
774796 MObject defaultObj;
775797 typeAttr.getDefault (defaultObj);
776798 VtValue defaultVal;
777- bool hasDefault = supportsDefault && ExtractNumericDataFromObject (defaultObj, defaultVal);
799+ bool hasDefault = !ignoreDefault && supportsDefault
800+ && ExtractNumericDataFromObject (defaultObj, defaultVal);
778801
779802 UpdateAttrsValue (attrName, value, defaultVal, hasDefault, attrs);
780803 } break ;
@@ -1761,7 +1784,12 @@ void GetExtensionAttributesFromNode(
17611784 matrixAttr.getDefault (defaultMatrix);
17621785 GfMatrix4d defaultVal = GetGfMatrixFromMaya (defaultMatrix);
17631786
1764- UpdateAttrs<GfMatrix4d>(attrName, value, defaultVal, attrs);
1787+ UpdateAttrsValue (
1788+ attrName,
1789+ VtValue (value),
1790+ VtValue (defaultVal),
1791+ !ignoreDefault,
1792+ attrs);
17651793 } break ;
17661794 default :
17671795 // TODO: Add more types if necessary
0 commit comments