Skip to content

Commit 6612776

Browse files
committed
Fixes from copilot code review
1 parent 2d7de98 commit 6612776

File tree

2 files changed

+59
-29
lines changed

2 files changed

+59
-29
lines changed

lib/mayaHydra/hydraExtensions/mixedUtils.cpp

Lines changed: 54 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

test/lib/mayaUsd/render/mayaToHydra/cpp/testCustomAttributeTypes.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@
6565

6666
#include <gtest/gtest.h>
6767

68-
#include <cstring>
6968
#include <iostream>
7069
#include <string>
7170

@@ -93,7 +92,11 @@ FindPrimPredicate getPrimPredicate(const std::string& primName, const TfToken& p
9392
GfMatrix4d ToGfMatrix(const MMatrix& mayaMat)
9493
{
9594
GfMatrix4d mat;
96-
memcpy(mat.GetArray(), mayaMat[0], sizeof(double) * 16);
95+
for (int row = 0; row < 4; ++row) {
96+
for (int col = 0; col < 4; ++col) {
97+
mat[row][col] = mayaMat[row][col];
98+
}
99+
}
97100
return mat;
98101
}
99102

@@ -142,7 +145,6 @@ TEST(CustomAttributes, extensionAttributeTypes)
142145
{
143146
MObject cubeNode;
144147
ASSERT_TRUE(GetDependNodeFromNodeName("pCubeShape1", cubeNode));
145-
MFnDependencyNode depNode(cubeNode);
146148

147149
// Values are authored in testCustomAttributes.py. This test only verifies
148150
// the Hydra translation against the expected values.

0 commit comments

Comments
 (0)